UE5まわり覚え書き

:::note warn
2022年の記事です
:::

UE5を勉強中なので自分用にメモしておきます。

UE4ですが<a src="https://www.unrealengine.com/ja/blog/unrealquest-01-archives">アンリアルクエスト</a>の<a src="https://epicgames.ent.box.com/s/a6usckg3g8h4mh4nkl811nt78wpdf423">サンプルプロジェクト</a>をあさるといろいろ入っていました。<a src="https://gamemakers.jp/article/2023_05_22_39396/"> > 2023年版はこちら</a>

## UnrealEngineでUIを作るには
UnrealMotionGraphic UI デザイナ(UMG)を使います。見た目でUIを作成できるツールです。
ウィジェットって機能と見た目が備わった部品をおいて作るのですが機能の編集はブループリントなのでUI画面を1枚作りたいときはWBP(ウィジェットブループリント）を作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105499/35a3bbaf-9b0e-bed0-4a82-dc33d51cc072.png)
コンテンツドロワーで右クリックから作成できます。UMGフォルダを作って複数枚まとめるとアンリアルクエスト風になります。

実際にランキングUIを作りゲームクリア・ゲームオーバーで画面に呼び出すときですが、プレイヤーブループリントを編集してゴール後へノードを２つ追加します。まずグラフ上で右クリックでノード追加「create widget」を選ぶとノードができ返り値は Widget です。WidgetはActorを継承してるのでViewportに追加できます。widgetからピンを伸ばして「Add to Viewport」ノードを設置しすればUIが追加できました。

## ゲームモードブループリントは値を保持するのに最適
１マップで終わるミニゲームならレベルブループリントにスコア設定をまとめて書いてもいいです。けれどマップをまたぐとスコアが消えちゃうのでゲーム毎の状態を記録できると便利ですよね。ゲームモードブループリントをつかえばイベントグラフのBeginPlayでゲームの初期設定も書けて解決です。

GameModeはUE5に搭載されていて初めに使うプレイヤーポーンも設定できます。
GameModeBPはコンテンツドロワーから”基本アセットを作成 > ブループリントクラス > GameModeBase”で作れます。
またゲームモードは複数作れるので初めに使うゲームモードをプロジェクトに設定しておきます。上部メニューの”編集 > プロジェクト設定 > 検索欄 GameMode”で設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105499/ff34968d-c753-1b60-5081-3ead0ce986f5.png)
UE5からかもですが開いてるレベルのメニューにあるブループリント一覧ボタンからプロジェクト設定のゲームモードを設定できる欄がありました。

## アクターが持つコンポーネントの値参照がシンプルにできる
ブループリントのアクターはコンポーネントが入れ子になってます。
Unityとの違いでユニティのPrefabは階層構造を持つけどコンポーネントは持たないのでコンポーネントだけコードから引き出すには専用のメソッドが必要です。

UEはシンプルでコンポーネントも入れ子です。アクター内ではどこからでもオブジェクト参照できるのでコンポーネントを取り出す専用のコードが不要です。
グラフ上でオブジェクトを参照して変数値や関数を引っぱりだすのはシンプルですね。参照をグラフで管理できるのがブループリントの利点ですよね。

UnityにもビジュアルスクリプトでBoltがありますがコンポーネントを取り出して変数を参照するひと手間はそのままですね。

## ブループリントエディタでGPUを使ってる
今はRizen7CPUに付属のGPUでGForce800ぐらいの性能なのですがブループリントを編集中はGPU使用率が90%をこえてちょっと動きが鈍いときがあります。ゲーム中より重く感じる...。なので専用GPUがあるとブループリントの編集が快適そうです。GForce1080以上はほしいかも。なくても動かせてるので全然いいですけどね。シェーダのコンパイル時間を短縮できるのでどちらかというとCPUが高性能だと体感よかったです。

## コリジョンは形状をそのまま使うこともできた
普通より処理負荷がかかりそうですが手すりのある螺旋階段とかで使いまして普通に動きました。BPを開いて詳細に"comp"で検索してプルダウンを"use complex collision as simple"にすると形状そのままのコリジョンになります。

## 3Dモデルについて（主に自作の話）
:::note warn
自作は憧れますがUEを使いこなすだけなら１からの自作はあまりおすすめしません。きれいなモデルもUEのマーケットプレイスに数十ドルでそろってるしVRoidやDAZStudioやCC3といった生成ツールもあります。
どちらかというと既存キャラクターと既存アニメーションを組み合わせてゲームにする技術のほうが楽しいし求められるでしょう。
キャラクターづくりに没頭したい場合はシナリオライターや漫画家の道を真剣に模索するか綺麗さや一貫性にこだわらない大味な設定にすると決めればいいかもですね。
:::

### ZBrushの有用性
３Ｄモデルはいろんなツールで作れるけどZBrushは習得すればいろいろ作れるようになる。造形用ってだけあって粘土細工のように使えます。建築系のツールで見かけない操作を単純にする機能がたくさんありました。トランスポーズなんてそうだけど初めはクセが強い。ポリグループとかマスクとか併用して使えるようになる。

### 3DCGツールは併用がいい。動きはBlenderとか他のツールで
ZBrushは動きがつけれないからそこはBlenderとかに頼ったほうがいい。
Blenderも骨を入れたりアニメーションしたりでいろいろあるかもですけどね。
Blenderは造形用ツールとしては難しいかもしれない。ショートカットとかいろいろ。スカルプトができて3Dプリントに使えてもゲームへリトポロジーするなら大変かも。
ZBrushも３Ｄプリント用だったりＣＧのレンダリング用でゲームで使わない機能も結構ある。ゲーム用に使う機能を選別してからショートカットを盛っていくのが環境構築に向いている。

ツールを絞って学ぶ始めの頃はとくにデカールをはりつける手順とテクスチャマップにする手順は習得が必須だと感じました。（おいおい3Dペイントソフトでできるようになります）

### サブディビジョン
ポリ数は増やすのは簡単だけど減らすと形が変わる。最初からポリ数が少なくて後から丸くしたりディティールだけ別データで盛りつけるサブディビジョン（ディバイド）って機能がゲーム向きだ。

### UV
言い出したらきりがないけどUVについてはシームをつけて綺麗に展開できるBlenderは結構いい。3Dペイントソフトはマテリアルを盛ってラインやデカールを張ったテクスチャを出力するもの。属性を設定して発光体をラインで入れた発光用テクスチャも作れる。UVは事前にきれいに開いておいてテクスチャをペイントする。きれいに開けたら画像ソフトで描いてもいいかも。

:::note info
トポロジーの流れを整理するためにはZRemesherとか形状を単純化するデシメーションとかあとはつなぎ目をなめらかにするユニオンリメッシュとベンドアークやベンドカーブの使い方単純な形を作るTransformTypeとかそれを編集するZModelerとか。
:::

### ベースメッシュ
造形の人体ベースメッシュは図があると作れる。指が５本ある造形は正直VroidとかDazStudioやReallusionのCC3かはじめから入ってるテンプレートを流用したほうがいい。自己流でしても近いものかそれ以下だしベースを作って力尽きる。キャラ作りたいなら割り切ろう。

:::note info
3Dでのキャラづくりは絵心はいらないけど参考資料は用意しよう。いろんなキャラの形状を再現するようにまねたり工夫したりできればいい。後からつのを生やすでもいい感じになる。髪の束やベルトは単純な形にして武器の先端とか目が行くところにディティール付けするくらいがちょうどよかったです。
:::

### ペイント
ZBrushはテクスチャペイントでなく頂点ペイントだけど頂点ペイントって四角の頂点に色を記録するから混色したり伸びたりする。袖口にエッジを一本追加してよせるとすっきりしたきれいなラインになる。

### 作品
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105499/edd1d3f0-90a7-fe27-9b1a-898e620fe6c5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105499/bb224564-4e67-af0a-b9db-9a6c6d349251.png)
参考にしたベースメッシュ画像

その他に参考にした資料はファイアーエムブレムのキャラクター画像にネット上の騎士のイラストと混ぜた感じです。角は飾りで、まつげや瞳はインターネットの画像を参考にしました。パーツの造形はシンプルにして槍の先を盛って強そうにしてます。

### 作品2
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105499/d939621e-afc5-0d7a-bfe9-1871d7a9ab80.png)
カラバリを追加（90分くらい）牙をはやして敵キャラにしようと考えましたがなにか違う。

:::note info
目が同じだと同じキャラに見えるし牙が美しくないので口ピアスとかにしたほうがよかったかもしれないですね。またスカートのすそを上げてパンストにしたりコートのすそを短くしてモコモコをつけてもいいかも。
武器は同じ長物でも刃の周りに重さを出して強さを引き立たせれば口の牙でも似合うかもしれないです。またスカートから短パンにして髪の先を立たせても活発な感じがでていいかも。
:::