タイトル:
UMGからレベルを開くとAIが動かない
本文:
Titleのレベルに表示したUMGのボタンを押したときに、Open levelブループリントを使ってWave1を開いてゲームを開始するプロジェクトがあります。
ゲームが開始した時の敵NPCの動きとして「一定時間してスポーンした後、かくかく方向を変えて前進しながらゴールに向かう」というものが組み込まれています。
コンテンツブラウザからWave1を直接開いてプレイしたときは正常に動作するのですが、UMGからWave1を開いたときにスポーンした場所から動かない状態になってしまいます。どこを修正すればUMを押した時も正常に動きますか?
作業環境:
Unreal Engine 5.2
Windows 10
参考サイト:
kiruru002
(kiruru002)
2
動的なレベル読み込みについてこちらのブログを参考にしてみてください
qiitaにも記事があります
[UE4] SubLevelを動的生成・削除する
公式ドキュメントはこちら
理解不足で申し訳ありません。
「ブループリントを使ってレベルを Unreal Engine にロード / アンロードする | Unreal Engine 5.2 ドキュメント」を再現しようとしたのですが、イベントピンとして使用しているOn ClickedノードにはOther Actorピンがないため、できませんでした。
load stream levelノードは広くなりすぎるマップを分割して少しずつ読み込む機能、open levelノードは別個のマップを開く機能という解釈でよろしいでしょうか?「Titleレベル」はゲームを始める用でボタンを押すと「Wave1レベル」に移動できるUMGの下でキャラクターが踊っている(AIは入っていない)レベルで、「Wave1レベル」はFPS用でキャラクターが歩き回る(AIが入っている)レベルになっているので、load stream levelノードでいいのかわかりませんでした。
他に気になることがあったので、そちらも書きます。
-
TagetPointブループリントのイベント BeginPlayノードにブレークポイントを追加した時、「Wave1レベル」で直接PIEしたときはブレークポイントで止まるけど「Titleレベル」からUMGで開いたときはブレークポイントで止まらない
-
「Wave1レベル」にはNavmeshがあるのに対して「Titleレベル」にはない
kiruru002
(kiruru002)
4
@user_1c8d0a7b9f09c75228ca0b56d1d01580e8648148c32ab7401aa161
ブレークポイントで止まらないときはプリントデバッグをしましょう
PrintStringを仕込んでログを見るだけです
BPのBeginPlayが呼ばれていないとは考えづらく、おそらくエディターのBreakPpointがレベル切り替え前後で機能していないだけなのではないかと考えます
OpenLevelはPersistentLevelを切り替えますが、LoadStreamLevelはPersistentLevelが同じです
この辺りは stat Levelsコマンドを使用して確認して下さい
さて、ナビメッシュを使用しているとのことで、もしかしたらランタイムでのレベル読み込みでナビメッシュが消えているかもしれません
AIデバッグツールでNav Meshという項目の機能を試してみてください
こちらの "4 - ランタイム時にナビゲーション メッシュを生成する
"項目も参考になるかと思います
プロジェクト設定の Runtime Generation項目を変えるなどできます
コマンド"show Navigation true"も使用して、ナビメッシュを確認できます
関連:NavModifierに関するブログ UE4 NaviMeshを任意の形に動的に変化させたい
ご返信ありがとうございます。
TargetPointのブループリントをコンパイルし直したところ、UMGから「Wave1レベル」を開いた場合でもAIが動き出しました。
コンパイルが必要だったのにコンパイルエラーが発生していなかったこと、1種類のキャラクター用のTargetPointのブループリントをコンパイルしただけで他のキャラクターも動き出したことなど疑問は残りますが、一応は問題を解決できました。
お付き合いいただきありがとうございました。
system
(system)
Closed
7
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.