s_meg
(s_meg)
1
こんにちは。
コンストラクションスクリプトを使って床や壁を自動生成するレベルを作成し、
NavMeshBoundVolumeを置いてナビゲーションさせたいのですが、
OpenLevelでそのレベルを読み込むと、うまくナビメッシュを生成してくれません。
普通にレベルを開いてゲームを走らせる分には問題ないのですが、
おそらくOpenLevelした時は、以前にそのレベルを開いたときに生成されたナビメッシュが
呼び出されているのかと…(AIキャラは部分的には動くので)
OpenLevel時にナビメッシュをビルドしてくれるような命令はないものでしょうか?
プロジェクト>ナビゲーションメッシュ>Runtime
の Runtime GenerationをDynamicにすればうまくいくことは確認したのですが、
どうもDynamicでは一部のAIキャラの動きが微妙なものになってしまっていて
できれば使いたくないのです。
ぜひご教示いただければ幸いです。
PAVI_PAVI
(PAVI_PAVI)
2
On Navigation Bounds Update を使用するとNavigationMeshをリビルド(アップデート)してくれます。
添付画像ではレベルブループリントから実行しています。

ただしこの方法はNavmeshのRuntime Generationを Dynamicに設定している場合のみ 有効です。
StaticではNavmeshがリビルドされませんでした。
PAVI_PAVI
(PAVI_PAVI)
3
s_meg
(s_meg)
4
なるほど…、ありがとうございます。
Staticではそもそもリビルドするという概念ではないということなんでしょうかね。
AIコントローラーの方を工夫してDynamicに設定時にも微妙な動きにならないようにしてみようと思います。
s_meg
(s_meg)
5
あれからRuntime GenerationをDynamicにし、微妙な動きをするAIを色々改良したのですが、
アタッチした武器などのコリジョンを外したところ大幅に動きが改善されました。
なぜStaticのNav Meshでは問題なく動いていたのかはわかりません…
ということでNav MeshはStaticではOpenLevelした時にリビルドされるようなものではない(Staticのライトのようなもの?)という解釈でこの質問を解決したことにさせていただきたいと思います。
ありがとうございました。