ATMWRIによるUE5の記録

Unreal Engine 5 を使い始めました

ぷちスタ作業初日

公式チュートリアルで肩慣らし

一か月ほどUE5を触ってきたが、各種機能を掘り下げていったっきりで、通しでアプリの作成を1度もしていない。ぷちコンのDiscordでもお勧めされていた公式チュートリアルYour First Hour in Unreal Engine 5 で復習をする。 Epicランチャーからいけるオンラインチュートリアルとは別のチュートリアル?のようで、その辺どうなっているのかよくわからないが少なくともこちらはUE 5 向けとあるので情報は新しそう。  

0.手を動かす前に

実際にTPSテンプレートでプロジェクトを作成した状態

プロジェクト設定前の状態
室温33度下で、何もしていないテンプレ状態のプロジェクトがこれだと暑すぎる
Edit -> Project Settings -> Engine -> General SettingsFramerateUse Fixed Frame Rate にチェックして Fixed Frame Rate を 30 にした。
FPS固定に設定後
心なしか涼しげな風が・・・来るわけない。この設定変更が難かしらの副作用を生むかもしれないので一応注意しておく。

1.Levelを作成する

emptyなLevelを作成して要素を配置していく

  1. フロアを配置
    適当なStatic Meshを配置・・・Alt + xyz軸でその場で複製できる
  2. ワールドを照らす明かりを追加
    Lights -> DirectionalLightで配置する
  3. プレイヤーの初期位置を指定
    All Classes -> PlayerStart・・・Endキーで最短のmesh表面に張り付く
  4. 大気の追加
    Visual Effects -> Sky Atmosphereで大気を追加し、DirectionalLightのDetailでAtmosphere Sun Lightにチェックを入れる。最初からtrueだった
  5. フォグの追加
    Visual Effects -> ExponentialHeightFogでフォグがかかる。大気の下が真っ黒だったのがましになる。
  6. 雲があったりなかったり
    Visual Effects -> VolumetricCloudで雲を追加できる
    ここまででの作業で画面はこんな感じに
    EmptyのLevelへ最低限の要素を追加
    プレイしたらbuildしてね的なメッセージが出たのでBuild -> Build Lighting Onlyでビルドしたら警告?メッセージは消えた。

2.ビジュアル要素を体験

LearningKitを使用したチュートリアル

  1. Migrateしたlevelをロードする
    3分くらいPCが唸る

    LearningKitの初回ロード

  2. SkyLightについて
    環境光だったり、シャドウ内のライトらしい。これを0にしてもなお光っているのはemissiveな属性を持っているとか。SkyLightを赤くしたら影がこんな感じに赤くなる

    SkyLightを赤くする

  3. 明暗順応について
    ポストプロセスボリュームが有効だと、暗いところから明るい場所へ人間の目が徐々に慣れていく感じの効果を再現するPostProcessVolume -> Detail -> Lens -> Exposureで露出パラメータを設定できる
    ポストプロセスの露出設定
    Min BrightnessMax Brightnessで設定した範囲でAuto Exposureが動作する。同じ数値を設定した場合は順応の変化がなくなる。Metering Modeをmanualにして固定とかにしていたが、どっちがいいんだろう。
  4. ライトシャフト
    DirectionalLightLight ShaftsLight Shaft Occlusion, Light Shaft Bloomを有効にすると、こんな感じに光のアレが表現される。Scalability:Hight以上でないと表示されなかった。
    ライトシャフト
  5. ライトの種類
    • Static: あらかじめシャドウとライトがベイクされる光源
    • Stationary:光源は移動できないが、シャドウが動的に生成される
    • Movable:動的にライト・シャドウが生成される
  6. Lumen
    初期設定でProject Settings -> Rendering -> Global Illmination -> Dynamic Global Illumination MethodLumenに設定されている
    Lumen 初期値
    これをNoneにするとパフォーマンスが改善するがこんな感じになる
    Lumen Noneにするとこうなった

3.ブループリントを触る

  1. LerningKitをプレイする
    なぜかそのままプレイできないので、ひとまずWindow -> World SettingsGame ModeをオーバーライドしてDefault Pawn ClassBP_ThirdPersonCharacterにすると動かせた
    TPテンプレートのプレイヤなら動く
  2. 動かなかった理由
    インポートしたLevelなので、もとのTPテンプレートプロジェクト設定と整合性が無くて動かない。

    LearningKitのBP側に出たエラー

  3. プロジェクトのInput設定
    TPテンプレートのプロジェクトセッティングでは以下のようになっている。

    PJ SettingsでInputを確認

  4. Input関係のノードを置き換える
    LearningKitのBPでWARNING!の出ている箇所はInputEvent関連なので、TPテンプレートのInput設定に置き換えていく。

    LearningKitのWARNING表示とInputEventの追加

  5. Action Mappingsの追加
    BPに表示されているWARNINGはProject Settings -> Inputに同じ名前でActionを新規作成してコンパイルを実行すると消えた。

    PJ SettingsにActionを追加していく

4.まとめ

公式チュートリアルは、ここまでで作成したプロジェクトで色々試してみよう!というまとめで締めくくられている。 Content Examplesが各種機能を網羅されていていいらしい。
最初の1時間というタイトルから肩慣らしのつもりが

と、3倍の時間が掛かってしまった。

Q:UE5でゲーム作れそうですか?
A:まったくできる気がしない