HLOD (Hierarchical Level of Detail)について
UE4 | 4.16.1 |
SimplygonSDK | 8.2.228.2800 |
- HLODの概要
- 有効化・準備
- HLOD設定、Cluster設定
- Cluster自動生成
- Cluster手動設定
- ProxyMeshの生成
- SimplygonによるProxyMesh生成
- ProxyMeshの確認
- 参考
HLODの概要
通常のLODはアセット一つの中で頂点数を減らすという処理に対して、HLODは遠景の複数のアセットをまとめ、DrawCallを下げるといった処理をやっている
UE4でこの機能を設定するためには、Clusterの生成(指定) -> ProxyMeshの生成の2プロセス(HLODのビルド)を行う
有効化・準備
- 適当なマップを開き、World Settings > LODSystem > Enable Hierarchial LODSystemをチェック
- Window -> Hierarchical LOD Outlinerより、設定windowを表示
HLOD設定、Cluster設定
Hierarchical LOD Outliner内下部、LODSystemより、Hierarchical LODSetupの数を適当に増やす
この設定は、WourldSettings下部のものと同期している
Hierarchical LODSetup内には、Cluster generation settings, Mesh generation settingsの二つが内包されていて、生成時のlevelに応じて自動で設定されている
Cluster generation settings
Desired Bound Radius | 自動クラスタリング時、このサイズに複数メッシュが含まれている場合同一クラスタとなる |
Desired Filling Percentage | 自動クラスタリング時のフィルファクタ、フィルファクタとは |
Min Number Of Actors to Build | クラスタのビルド時、内包するアクタの必要最小数 |
Mesh generation settings
Simplify Mesh | これをEnableにすることで、HLOD生成をSimplygonに渡し、MeshReductionも行うようにする、後述 |
Cluster自動生成
Clusterの設定が終わったら、Hierarchical LOD Outliner左上のGenerateClustersより、自動クラスタリングを行う
生成されたクラスタは、Hierarchical LOD OutlinerにLOD毎に一覧表示されている
Hierarchical LOD Outlinerでクラスタを選択すると、Viewport内に選択されたクラスタが表示される
Cluster手動設定
Hierarchical LOD Outlinerで、クラスタ内に含まれるアセットを手動で移動することが出来る、自動生成後に、必要であれば手動でクラスタ構成を編集する
また、クラスタはクラスタを含むことが出来、高いHLODでは、低いHLODに有るクラスタを内包することができる
World Outilinerから直接アセットをドラッグアンドドロップすることで、完全に任意なクラスタの定義を行うことも可能
Hierarchical LODVolumeというVolumeをレベル内に配置し、自動クラスタリング時のクラスタのガイドとすることが出来る
自動クラスタリング時に、このVolumeを尊重しクラスタリングを行う
ProxyMeshの生成
Clusterの設定が済んでいる状態で、Hierarchical LOD Outliner上部 Generate Proxy Meshesをクリックすることで、ProxyMeshが生成される
Levelのmapファイルが保存されているディレクトリ内にHLODというディレクトリが新たに作られ、その内部に生成されたProxyMeshやテクスチャ類が保存されている
クラスタ毎に作成されたProxyMeshはHierarchical LOD Outlinerでクラスタをクリックすることでそれぞれ確認することが可能
SimplygonによるProxyMesh生成
Hierarchical LODSetupの Mesh generation settings -> Simplify Mesh がEnableであれば、ProxyMeshの生成をUE4ではなくSimplygonで行うようになる
SimplygonGridと通信するために、エディタ設定を行う必要がある
EditorPreferences > General > Miscellaneous > Simplygon Swarm にて、Use Simplygon distributed proxy serverにチェック
次に、SimplygonSwarmを起動する、Windowsのスタートメニューより、Simplygon Grid > Simplygon Processing Agentを起動
ここでGenerate Proxy Meshesを行うと、Simplygonで非同期のProxyMesh生成タスクが開始される、
しばらく待っているとHierarchical LOD Outliner内のクラスタが逐次更新され、Simplygonにより生成されたProxyMeshが確認できるようになる
ProxyMeshの確認
Hierarchical LOD Outliner上部にあるForced viewing levelスライダを動かすことで、指定したHLODを表示することが出来る、NoneではAuto
また、StaticMeshなどのLODとは異なり、オリジナルアセット -> HLOD0 -> HLOD1 ... の順に変化していく
Viewport内でViewModeをHierarchicalLodsにすることで、色によってHLODレベルを確認することも可能