初めてのUnrealEngine5

こんにちは。
[CYBIRD Advent Calendar 2023](https://qiita.com/advent-calendar/2023/cybird)の6日目担当の@gumitaです。
5日目は@kyorokyoroさんの「FirebaseRemoteConfigのパラメータキーが存在しない場合の注意点」でした。
まだ見ていない！という方はぜひご覧ください。

## 簡単に自己紹介
2021年に新卒入社し、現在はイケメンシリーズの１タイトルでクライアント兼サーバーエンジニアとして開発/運用を行っております。
今回はUnrealEngineをとても浅い知識でさわってみたログになります。
初めて扱う際の参考になれば嬉しいです。

## まずUnrealEngineとは？
Epic Gamesより開発されたゲームエンジンで、グラフィックが綺麗であるのが特徴的です。
また、CG動画の制作もこのエンジンで作成可能です。
このエンジンで作られたゲームとして、Fortnite（フォートナイト）、FINAL FANTASY VII REMAKE、ストリートファイターVなどが挙げられます。

## UnrealEngineを入れてみよう！
#### 動作環境
- MacBook Pro(メモリ16GB) Intel Core i7
- MacOS Monterey
- UnrealEngine 5.2.1
- Xdebug 13.4.1

#### 事前準備
1、Epic Games Launcherをインストール
2、EpicGameアカウントを作成
3、Launcherにて、UnrealEngine 5.2.1バージョンをインストール
〜ここからはMacの方のみ〜
4、Appleアカウントを作成
5、現在のMacOSに合うXcodeをインストール
6、Xcodeをアプリケーションに格納
7、ターミナルから、Xcodeを格納したところでコマンドラインツールの実行
    ```
    sudo xcode-select -r
    ```

Macの場合やることが多くて、つまずきながらやっていたら2日過ぎました...。
時間と容量に余裕がある時に準備することをおすすめします。

## 簡単なゲーム制作開始！！
ここまでお疲れ様です。
やっと開発できるようになったので、今回は最初からセットアップされているテンプレートを使用して簡単なものを作成していきます。
UnrealEngineの用語に関しては公式に説明がありますので、そちらを参考にしていただければ幸いです。
公式ドキュメント：https://docs.unrealengine.com/5.2/ja/

### ステップ1： プロジェクトの作成
ファーストパーソンを選択し、右側はブループリントを選択、スターターコンテンツにチェックをした状態でプロジェクトの作成を行います。
![スクリーンショット 2023-12-04 12.00.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2295658/1b17b1a9-ce45-4f0d-a54a-949837a50e7b.png)

プロジェクトを開き、実行すると既に簡単なステージ、キャラの動きと銃を拾って撃つ動きがついています。便利ですね！
ここにチュートリアルとして、以下の要素を追加していこうと思います。
- オブジェクトの色や大きさを変更
- 当たったオブジェクトは消える

### ステップ2： オブジェクトの操作
操作に慣れるためオブジェクトをいじっていこうと思います。
操作感はほぼUnityと変わらず、Unityに慣れている方は扱いやすいと思います。
エディタビューポートにて、オブジェクトを1つ選択します。
![スクリーンショット 2023-12-04 12.34.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2295658/5e5bc63c-0828-188a-027d-fabcbb80707c.png)
右上にいろいろオプションがありますね。
現在十字の矢印マークが選択されているので、移動が可能です。出ている矢印を引っ張ると移動ができます。
大きさを変える場合は、![スクリーンショット 2023-12-04 12.36.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2295658/1e3a61c5-a588-a9fc-d339-585add6e0464.png)こちらのマークを押します。移動と同じ要領で四角いものを引っ張るとその方向に拡大します。
もちろん、詳細のトランスフォームからも設定可能です。
では、右上の![スクリーンショット 2023-12-04 12.43.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2295658/df220e41-284e-950d-bbde-8dba48cf2009.png)こちらの数値が出ている方をクリックしてみてください。スケールスナップが設定でき、数値を大きくすると先ほどより大きく拡大します。
設定したスナップごとに数値を変更してくれるので活用してみると良いかもしれません。

### ステップ3： マテリアル変更
次はマテリアルの色を変更しようと思います。
詳細に、マテリアルという項目があるのでそちらのイメージが出ている方をダブルクリックすると、次のようなタブが表示されます。
![スクリーンショット 2023-12-04 12.51.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2295658/3aacf057-adab-d6fc-7a09-7dde85acc7a9.png)

surface PropertiesのBaseの色を変えるとマテリアルの色が変わります。
パラメータを少しいじると、金属みたいに反射させることも可能です。楽しいですね。
しっかり保存して次のステップへ行きましょう。
![スクリーンショット 2023-12-04 12.55.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2295658/c903d5c3-41aa-3342-0b45-a09e20546014.png)

### ステップ4： オブジェクトを消す〜ブループリント編〜
次は弾が当たったオブジェクトに対して消す作業を行います。
やり方は大雑把ですがお許しください。
まず特定のオブジェクトの詳細にて、タグを設定します。名前はなんでも良いですが、TargetObjと名付けました。
![スクリーンショット 2023-12-04 13.34.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2295658/56a69c53-4904-407b-0555-0961cd005342.png)

エディタビューポートの下の方にコンテンツドロワーというのがあるので、そこからBluePrints内のBP_FirstPersonProjectileをダブルクリックして開きます。
![スクリーンショット 2023-12-04 14.01.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2295658/41c69e10-672b-477c-f270-a3f89587659c.png)

ブループリント内の操作は少し扱いづらいですが、選択はマウスの左クリック、右ドラッグで視点の移動、右クリックでノードの作成が出来ます。
既にいろいろ設定されていますが、全て消して次のように組みます。
![スクリーンショット 2023-12-04 13.57.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2295658/82d58f8b-4039-cf40-7226-af243f67cd4e.png)
すると、指定Tagのついたオブジェクトに弾が当たると、当たったオブジェクトは消えます。
違うオブジェクトだと現在Helloとログが出るようにしております。
これで大まかに作成完了となります。
あとはレベルを増やしてシーン遷移をさせたり、よりゲームっぽくするならば得点システムを作るのも良さそうですね。ぜひやってみてください。

## 最後に
UnrealEngine5は初めてでしたが、視覚的にも分かりやすく制作できるので、プログラムが苦手だという方にもおすすめできるエンジンだと感じました。
ぜひ今回の記事を参考に始めてみてください！

[CYBIRD Advent Calendar 2023](https://qiita.com/advent-calendar/2023/cybird)、7日目は@kazurasakaさんの「ゼロから始めるAI学習（知識編）」です。
お楽しみに！