Unreal Engine 5 チュートリアルつまづきメモ(5.4.2)

# 初めの一歩

Unreal Engine 5(以下、UE5)初学者が公式チュートリアル動画"[Your First Game In Unreal Engine 5](https://dev.epicgames.com/community/learning/tutorials/e2V/your-first-game-in-unreal-engine-5)"を利用してUE5について学んだ際につまづいた点のメモ。
見出しの`[]`内は動画内の時間。

## 先人のありがたい言葉

> チュートリアルを参考にしながらエディタを触る際は
> そこで使われているUEと*同じエンジンバージョン*を使うのがオススメ！
> [猫でも分かるUnreal Engineの学び方 - 超初心者向け編 - 2023 v1.0](https://www.docswell.com/s/EpicGamesJapan/KW1WNR-HowToLearnUE5_2023#p30)

今回のチュートリアル動画の場合、5.0.0を使用するのが正解か(動画の[00:48]を参照)。
本記事は愚かにも当時の最新バージョンである5.4.2を使用した者の記録である。

## 事前準備

1. [Epic Games Launcherをインストール](https://store.epicgames.com/ja/download)
1. `Unreal Engine`をインストール
    * 特に事情がない限り最新版を利用
1. `Stack-O-Bot`の入手
    * チュートリアル内で使用

### Stack-O-Botの入手

https://www.unrealengine.com/marketplace/ja/product/stack-o-bot

チュートリアル記事には`FirstGameInUE5_Source.zip`がダウンロードできるようなことが書いてあるが、直接当該のzipファイルがダウンロードできるわけではない。
Launcherから`Stack-O-Bot`をインストールしてみると`StackOBot/Content/FirstGameInUE5_Source.zip`が置かれていた。こちらを解凍して利用する。


## Your First Game In Unreal Engine 5

公式のチュートリアル動画を見て学ぶ。

* [公式ページ - Your First Game In Unreal Engine 5](https://dev.epicgames.com/community/learning/tutorials/e2V/your-first-game-in-unreal-engine-5)
    * 公式ページはブラウザウィンドウ内を占める動画の面積が小さい
        * マルチディスプレイで全画面表示できない場合はYouTubeで閲覧した方が便利
* [YouTube](https://www.youtube.com/watch?v=Itd677YZi50&t)
    * シングルディスプレイ環境だとこちらの方が便利

* 日本語字幕があるので適宜利用する
* Editorの言語設定は英語にしておいた方が動画と同一の表示となり混乱が少ない
    * 参考: [エディタ言語について(日本語⇔英語の切り替え方法) - UnrealEngine5の教科書](https://zenn.dev/daichi_gamedev/books/unreal-engine-tutorial/viewer/ready-laungauge)
    1. 上部メニュー`編集` > `エディタの環境設定`
    1. `地域&言語` > `エディタの言語` > `英語(English)`

### Sphereがない[1:50]

Createメニューに`Sphere`と入力しても`Sphere`が表示されず、表示されるのは`Trigger Sphere`のみ。Editorの言語設定を英語にすることで`Sphere`が表示されるようになる。
日本語で`Sphere`に相当するのは`形状`>`球`。一々言語の違いでつまづくのは面倒なのでEditorの言語設定を英語にする。以降、言語によるつまづきは扱わない。

画面最下部のConsole Command欄に`culture=en`と打つことで簡単に英語に切り替えられる。`culture=ja`で日本語に。

### SkyLightを追加しても空が出ない[1:33]

※動画を見直したところ`Create Sky Atmosphere`を押していたので、単に手順を見逃しただけだった

`Create SkyLight`を押して`SkyLight`を追加するも、真っ暗なまま。赤いエラーメッセージが表示される。
> A sky light with real-time capture enable is in the scene. It requires at least a SkyAtmoshpere component. ..

メッセージにしたがい`SkyAtmosphere`を追加することで空が表示される。
`Env. Light Mixer` > `Create Sky Atmosphere`

### SM_Crate.FBXがない[3:47]

[Stack-O-Botをインストール](#Stack-O-Botの入手)して`FirstGameInUE5_Source.zip`を解凍すると`Props`ディレクトリの下にある。

### 頂点カラーが白一色[7:27]

`SM_Crate.FBX`のインポート時に頂点カラーが無視されている。
`Vertex Color Import Option`を`Replace`に変更して、`Reimport Base Mesh`をクリックすると頂点カラーが正しく反映される。

1. `Content Drawer` > `SM_Create.FBX`を開く
1. 画面右の`Details`タブ > `Import Settings` > `Mesh` > `Vertex Color Import Option`
    * `Replace`に変更
1. 画面左上`Reimport Base Mesh`をクリック
    * 頂点カラーが白一色から変更されていることを確認

### Replace Selected Actors withの候補にCubeがない[9:22]

`RECENTLY PLACED`とある通り、一度`Cube`を置くと表示されるようになる。

### ライトの方向の変更方法が分からない[18:24]

急にライトを回転させているが操作方法が不明。
`Directional Light`を選択して回転させればよい。
キーボードの`E`を押すと回転モードになる。`Q`で選択モードに戻る。

### F_FlatRockが置けない[24:31]

`Foliage`の岩(F_FlatRock)のアイコンをクリックしてもドーム状のエフェクトが出ず、クリックしても岩を配置できない。
`Filiage`の岩のアイコンにカーソルを合わせるとチェックボックスがある。チェックボックスをクリックするか、岩のアイコンをダブルクリックすることでチェックが入り、`Foliage`が有効になる。この状態でようやく配置可能になる。
動画もよく見るとチェックが入っている。

### 3ベクターノードの追加方法が分からない[40:18]

動画では突如出現する3ベクターノード。
キーボードの`3`を押しながら左クリックすることで`Constant3Vector`ノードを追加できる。
動画だと一つしかない出力が4つに増えているが、おそらくバージョンアップで3値それぞれ分けて出力できるようになったのであろう。

`1`を押しながら左クリックで`Constant`(スカラー定数)、`2`を押しながら左クリックで`Constant2Vector`(二値定数)、`4`を押しながら左クリックで`Constant4Vector`を追加できる。

### MI_BotFaceがなぜか明るい[41:24]

動画ではマテリアルのプレビューが黒字に緑の楕円形になっているが、実際のエディタ上では全体的に明るく表示されてしまう。
MI_BotFaceノードのBaseColorへの入力からParamノードを外した後に、BaseColorが灰色になっている。
MI_BotFaceノードのBaseColorの右にある灰色の四角をクリックして黒くすることで動画と同じ見た目になる。

余談。
動画では`M_BotFace`になっている。しかし`SKM_Antbot.fbx`をImportすると`MI_BotFace`が追加される。
動画の37:59を確認すると`MI_BotFace`となっている。38:33辺りで`M_BotFace`に変更されている。
ルールとしてMaterialの接頭辞は`M_`であるから修正したのであろう。

### BP_Botが移動方向に向かない[44:13]

`Orient Rotation to Movement`にチェックを入れた後、動画では`BP_Bot`がぐるぐる回転しているが、実際には向かない。
`BP_Bot`の`Details`>`Pawn`>`Use Controller Rotation Yaw`のチェックを外すことで動画と同様の挙動となる。

### State Machineが追加できない[47:18]

`Add New State Machine...`が存在しない。
`state machine`で検索したときに出てくる`Animation`>`State Machines`>`State Machine`を選べばよい。

### A_Ant_Walkアニメーションがループしない[50:04]

歩きだして1ループでアニメーションが停止してしまう。
`Loop Animation`を有効にすればよい。
`ABP_Bot`>`AnimGraph`>`Locomtion`>`Walk/Run(state)`>`A_Antbot_Walk`>`Details`>`Settings`>`Loop Animation`にチェックを入れる。

### SM_PressurePlate_Platformが白くない[1:01:44]

`SM_PressurePlate_Platform`が白ではなく`SM_PressurePlate_Frame`と同じ色になってしまう。動画では`Frame`の方がピンク、`Platform`は白で表示されている。しかし、実際には両方ピンクで表示される。
`M_Plastic`を見直すと頂点カラーを無視してピンクにしているように見える。
下図のように`BaseColor`に入力する値を調整することで`Platform`が白で表示されるようになった。`Stack-O-Bot`の`ML_Base`にそれらしきものがあったので参考にした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294575/136dc432-8d96-c116-1420-8fd8227b2e15.png)


# 参考

* [UnrealEngine5の教科書 [ゲーム開発入門編,第一巻]](https://zenn.dev/daichi_gamedev/books/unreal-engine-tutorial)
    * 第四章まで無料
* [Unreal Engine 5 チュートリアルをやってみた](https://qiita.com/mbamba/items/fa3749e4c06e9b51ade9)
* [Unreal Engine 5.4 のドキュメント](https://dev.epicgames.com/documentation/ja-jp/unreal-engine/unreal-engine-5-4-documentation)
  * [基本を理解する](https://dev.epicgames.com/documentation/en-us/unreal-engine/understanding-the-basics-of-unreal-engine?application_version=5.4)
* [猫でも分かるUnreal Engineの学び方 - 超初心者向け編 - 2023 v1.0](https://www.docswell.com/s/EpicGamesJapan/KW1WNR-HowToLearnUE5_2023)