ワールドパーティションで動的ナビメッシュを対応させるために色々試しているのですが、うまくいかない為お聞きしたいです。
目標
- ベースナビメッシュが変更されていない場合
→ チャンク読込時は “読み込みのみ” で終わらせたい(再ビルドを発生させたくない)。 - 初回起動 はナビメッシュは読み込みのみ。
- 動的に建築物を配置(ゲームプレイ中の建築など)した場合は、
その周辺タイルだけを Dirty → 再生成させたい。 - チャンクを一度アンロード → 再ストリーム した時は、動的配置した建築物を取得して、周辺のタイルだけDirty->再生成させたい。
(出来れば)3.でビルドしておいたナビデータをロードして終わりにしたい(Dirty 0 が理想)
試したこと
■ 公式 WP テンプレートマップ
(新規レベル作成 → World Partition → そのまま)で少数オブジェクトを事前配置し、Build Paths でベース NavMesh を焼く
=>期待どおり:チャンク読込=タイル読み込みのみ。Dirty 0 / 再ビルド 0
■自作 WP マップ(大規模・大量オブジェクト)
同一設定で実行
=>一部 StaticMesh を含むセル読込時に 毎回 Dirty が立ち、タイル再ビルドが走る
■公式のドキュメント(ワールド パーティション化ナビゲーション メッシュ | Unreal Engine 5.6 ドキュメンテーション | Epic Developer Community )通りに対応してもうまくいかない
聞きたいこと
- 上記目標は設計上そもそも可能でしょうか?
- 可能な場合、
- IsSpatiallyLoaded / DataLayer / RuntimeGrid など
どの設定が“Dirty 0 運用”に必須でしょうか? - StaticMesh が再ビルドを引き起こす典型原因と対策があれば教えてください。
- Dynamic で再生成したタイルを次回ロード時に再利用する(=保存しておく)公式手段はありますか?
よろしくお願いします。
バージョン:UE5.5
World Partition(WP):有効
ナビモード:Dynamic