アルゴンUE4&アプリ開発日記

UE4のモバイル開発やアプリ開発をメインに紹介します!主に初心者から中級者向けに紹介していく予定。

【UE4】Ver4.20でProxyGeometryToolとHLODを合わせて試す!

UE4の4.20出ました~('ω')ノ

ついに正式リリース版として、4.20がリリースされました。

モデル編集だったり、IRサンプルなどのサンプルが充実したり、

いろいろな箇所が変化しました。

今回はアクターの結合を行ったり、新規LODを作成することで、

ドローコールを減らして最適化する際に利用される、

ProxyGeometryToolを紹介していけたらと思います。

ProxyGeometryToolはどういうことができるのか?

上のほうのタイトルでも少し話をしましたが、

ゲームを開発していく上で複数のアクターなどを、

配置したりする必要が出てくる時があるかと思います。

その際に複数のActorを結合して、新しいLODを作成したり

テクスチャ・マテリアルなどをまとめること負荷を軽減する。

ProxyGeometryではSimplygonと同じようなことを行えるようになっています。

SimplygonについてはこちらのURLで確認してみてください!

www.unrealengine.com

ProxyGeometryToolでマージアクターを試す

まずはProxyGeometryToolでマージアクターを試してみます。

UE4.20からProxyGeometryToolのマージアクターがデフォルトで使えます。

下の絵のStaticMeshをProxyGeometoryToolでマージしてみます。

頂点は合計で53万頂点程あります。

こちらをあらかじめレベル内に配置しておきます。

f:id:yoshikata1990:20180727061524p:plain

まずウィンドウのデベロッパーツール>マージアクタを選択します。

f:id:yoshikata1990:20180724233717p:plain

アクターをマージするための画面が出るので、

その中の真ん中のアイコンを選択します。

アウトライナ内に配置した先ほどのスタティックメッシュアクターを選択します。

f:id:yoshikata1990:20180727062922p:plain

これで右下にあるアクタをマージを選択すればマージできます。

マージしたした後と前のモデルを比べてみます。

頂点が3408まで低下しています。

f:id:yoshikata1990:20180727232808p:plain

頂点の多いスタティックメッシュやパーツがバラバラになっているものを、
まとめることでドローコールを削減したりすることもできるので、

多くのメッシュのアクターを呼び出してると感じたら、試してみてください。

実際にProxyGeometryToolで結合したものと結合前のパーツ全部並べた状態です。左が53万の頂点で右が3,408頂点になっています。

f:id:yoshikata1990:20180728004803p:plain

HLODでProxyGeometryを試してみる。

先ほどはアクターマージで行いましたが、

今度はHLODを使用した方法を行ってみようと思います。

まずはプロジェクト設定でHLODのメッシュ削減用のプラグイン設定します。

「hie」と検索すると「Hierarchical LOD Mesh Redution Plugin」が出る。

こちらを「ProxyLODMeshReduction」を選択します。

f:id:yoshikata1990:20180728161054p:plain

 プロジェクト設定が完了したら、ワールドセッティングから、

「Enable Hierarchical LOD System」をONにします。

※補足:

f:id:yoshikata1990:20180728165935p:plain

ウィンドウから階層LODアウトライナーを選択して、

「Hierarchical LODSetup」のHLODレベル内部にある「SimplifyMesh」にチェックを入れておきます。

※こちらにチェックを入れないとProxyを使用したLODになりません。

f:id:yoshikata1990:20180728175057p:plain

作成が完了すると、LODのレベル表示がある箇所に、

どれぐらい削減されているのかと元の三角ポリゴン数が表示されます。

今回は93456から1402まで削減できています。

f:id:yoshikata1990:20180728195303p:plain

実際にLODで表示したものがこちらになります。

LODを行う前(三角ポリゴンで93456)

f:id:yoshikata1990:20180728200946p:plain

LODを行う前(三角ポリゴンで1402)

f:id:yoshikata1990:20180728200249p:plain

遠目で見るとある形にほぼ変化がわからない感じになります。

微調整をすればもっときれいになります。(マテリアルとかLODの精度など)

LODのモデルについては階層LODアウトライナーのSaveAllから保存ができ、

Mapと同様の箇所にHLODというフォルダが作成されてそこに保存されます。

f:id:yoshikata1990:20180728201347p:plain

HLODを使用したProxyLODの使用方法については以上になります。

その他、UE4.20で行えるようになったこと

下のリンクで4.20の行える設定が増えています。

LODを深く知るためにも後で見ておこうと思います。

ImprovingNormals(法線の設定)

https://docs.unrealengine.com/en-US/Engine/ProxyGeoTool/ImprovingNormals

NormalCalculationMethod(ノーマルの計算方法)

https://docs.unrealengine.com/en-US/Engine/ProxyGeoTool/NormalCalculationMethod

FillingGap(遠目で見たときに内部を閉じるような設定)

https://docs.unrealengine.com/en-US/Engine/ProxyGeoTool/FillingGap