RuntimePartitionLHGridのHLOD設定の補足解説
Last Edited Time: June 6, 2025 4:34 PM
RuntimePartitionLHGridはWorldPartitionRuntimeHashSetと共にUE5.4に追加されたワールド分割方式です。
LHはLooseHierarchicalの略でセルの境界を柔軟に調整することで以前の分割方式に合った境界の問題や意図せぬプロモーションの問題を解決しています。
しかしHLODの設定方法が少々変更されており混乱を生む可能性があります。本トピックではHLODの設定方法について補足解説します。
RuntimePartitionLHGridをセットアップする
RuntimePartitionLHGridを利用するにはWorldSettingsのWorldPartitionSetupに設定が必要です。
HLODの設定
- MainGrid
- CellSize 12800, 2 HLOD Layers
- MainGrid_HLOD0 (default HLOD layer)
- MainGrid_HLOD0_Merged
- MainGrid_HLOD1
- 一部のアクターはHLOD0にMergedを設定します
- CellSize 12800, 2 HLOD Layers
- Landscape グリッド
- CellSize 25200, Single HLOD Layer
- Landscape_HLOD0
- ランドスケープアクターには RuntimeGrid:Landscape と HLODLayer:HL_Landscape_Instancing を設定する
- CellSize 25200, Single HLOD Layer
- SmallGrid グリッド
- CellSize 6400, Single HLOD Layer, SpatiallyLoaded
- SmallGrid_HLOD0
- 少し遠くでも見えてほしいの小物アクターには RuntimeGrid:SmallProps と HLODLayer::HL_SmallProps_Instancing を設定する
- CellSize 6400, Single HLOD Layer, SpatiallyLoaded
HLODLayerを準備する
他の分割方式と同じようにHLODLayerアセットを利用します。ただし一部の設定は参照されず後述のHLODSetupsを参照するように変更されていることに注意してください。
アクターはHLODLayerへの振り分けの際に、設定されているHLODLayerを自身が属しているRuntimeGridのHLODSetupsから検索しその設定を適用します。
今回はレベルの設定に合わせて5つのHLODLayerを作成します。
1.MainGrid_HLOD0
2. MainGrid_HLOD0_Merged
3.MainGrid_HLOD1
4.Landscape_HLOD0
HLODは常に表示可能にしたいのでIsSpatiallyLoadedにはチェックを付けません
5.SmallGrid_HLOD0
IsSpatiallyLoadedにチェックを入れて、ParentLayerを空にします
HLODSetupsの設定
レベルの設定に合わせてHLODSetupsを設定します。
MainGridの設定
HLODSetups配列を追加し、Index0にMainGrid_HLOD0とMainGrid_HLOD0_Mergedを、Index1にMainGrid_HLOD1を設定します
さらにIndex0にはIsSpatiallyLoadedにチェックを入れます
セルサイズは12800でローディングレンジも適切に設定します。
Landscapeグリッドの設定
HLODSetupsは1段でIsSpatiallyLoadedのチェックは外したままです
SmallGridグリッドの設定
HLODSetuposは1段でIsSpatiallyLoadedのチェックを入れます。IsSpatiallyLoadedのチェックはHLODLayerアセットの設定も併せて設定してください
設定は以上です。メニューからBuild > BuildHLOD を選択してHLODをビルドしてください。
Tips
- アクターがどのランタイムグリッドに属していたとしてもHLODLayer設定が空の場合にはDefaultHLODLayerが適用されます
アクターにデフォルト以外のHLODLayerに割り当てるにはかならずアクター毎の設定が必要になります - 各グリッドのHLODSetupにはDefaultHLODLayerを追加しておく必要があります
- HLODSetupの名前はユニークにする必要があります
- HLOD振り分けの際に自身が属しているRuntimeGridのHLODSetupsにHLODLayerが見つからない場合には以下の様なエラーが出力されます
RuntimeGridとHLODLayerの組み合わせが適切か確認してください
- Landscape用のセルサイズはランドスケーププロキシのサイズと等しい設定にすることをお勧めします
- 複数段のHLODLayer設定時、CellSizeを全て統一することで素直なHLODの切り替え動作が得られます
- HLOD作成時間やメモリの節約、ランタイムのパフォーマンス改善のためにHLODに含める必要のない小さなアクターは積極的にInclude (Actor|Component) in HLOD のチェックを外してください
- 小さすぎるセルサイズ設定はHLOD作成時間を増加させランタイムのパフォーマンスも低下させます
- WorldPartitionのCell振り分けの詳細は Saved/Logs/WorldPartition/ フォルダ内のログで確認できます