- ■目次
- ・ProxyGeometryToolはどういうことができるのか?
- ・ProxyGeometryToolでマージアクターを試す
- ・HLODでProxyGeometryを試してみる
- ・その他、UE4.20で行えるようになったこと
UE4の4.20出ました~('ω')ノ
ついに正式リリース版として、4.20がリリースされました。
モデル編集だったり、IRサンプルなどのサンプルが充実したり、
いろいろな箇所が変化しました。
今回はアクターの結合を行ったり、新規LODを作成することで、
ドローコールを減らして最適化する際に利用される、
ProxyGeometryToolを紹介していけたらと思います。
ProxyGeometryToolはどういうことができるのか?
上のほうのタイトルでも少し話をしましたが、
ゲームを開発していく上で複数のアクターなどを、
配置したりする必要が出てくる時があるかと思います。
その際に複数のActorを結合して、新しいLODを作成したり
テクスチャ・マテリアルなどをまとめること負荷を軽減する。
ProxyGeometryではSimplygonと同じようなことを行えるようになっています。
SimplygonについてはこちらのURLで確認してみてください!
ProxyGeometryToolでマージアクターを試す
まずはProxyGeometryToolでマージアクターを試してみます。
UE4.20からProxyGeometryToolのマージアクターがデフォルトで使えます。
下の絵のStaticMeshをProxyGeometoryToolでマージしてみます。
頂点は合計で53万頂点程あります。
こちらをあらかじめレベル内に配置しておきます。
まずウィンドウのデベロッパーツール>マージアクタを選択します。
アクターをマージするための画面が出るので、
その中の真ん中のアイコンを選択します。
アウトライナ内に配置した先ほどのスタティックメッシュアクターを選択します。
これで右下にあるアクタをマージを選択すればマージできます。
マージしたした後と前のモデルを比べてみます。
頂点が3408まで低下しています。
頂点の多いスタティックメッシュやパーツがバラバラになっているものを、
まとめることでドローコールを削減したりすることもできるので、
多くのメッシュのアクターを呼び出してると感じたら、試してみてください。
実際にProxyGeometryToolで結合したものと結合前のパーツ全部並べた状態です。左が53万の頂点で右が3,408頂点になっています。
HLODでProxyGeometryを試してみる。
先ほどはアクターマージで行いましたが、
今度はHLODを使用した方法を行ってみようと思います。
まずはプロジェクト設定でHLODのメッシュ削減用のプラグイン設定します。
「hie」と検索すると「Hierarchical LOD Mesh Redution Plugin」が出る。
こちらを「ProxyLODMeshReduction」を選択します。
プロジェクト設定が完了したら、ワールドセッティングから、
「Enable Hierarchical LOD System」をONにします。
※補足:
ウィンドウから階層LODアウトライナーを選択して、
「Hierarchical LODSetup」のHLODレベル内部にある「SimplifyMesh」にチェックを入れておきます。
※こちらにチェックを入れないとProxyを使用したLODになりません。
作成が完了すると、LODのレベル表示がある箇所に、
どれぐらい削減されているのかと元の三角ポリゴン数が表示されます。
今回は93456から1402まで削減できています。
実際にLODで表示したものがこちらになります。
LODを行う前(三角ポリゴンで93456)
LODを行う前(三角ポリゴンで1402)
遠目で見るとある形にほぼ変化がわからない感じになります。
微調整をすればもっときれいになります。(マテリアルとかLODの精度など)
LODのモデルについては階層LODアウトライナーのSaveAllから保存ができ、
Mapと同様の箇所にHLODというフォルダが作成されてそこに保存されます。
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