こんにちは!ジェイです。
現在制作中のTPSオンラインゲームの敵AIを作るためにBehaviorTreeの使い方を学んでいく制作過程で、注意するところを残すようにします。
最初に以下のBehaviorTreeのチュートリアルをやってみて基本を覚えました。
UE5のビヘイビアツリーは以下の要素で構成されています。
- ブラックボード
- ルートノード
- コンポジット
- サービス
- デコレーター
- タスク
以上の項目をこの動画ですべて学ぶことができます。実行結果は以下
ビヘイビアツリー入門
— ジェイ@ゲーム制作VTuber (@JY20160816) 2023年5月29日
定位置を巡回して見つかったら追跡して見失ったら元に戻る#UE5#ゲーム制作 pic.twitter.com/WsF2lkwdxg
これが終わったのでさっそく同じ人の動画のShooter AIを始めました!
しかし、UE4で説明されているせいか、いくつか違う点があって苦労しました💦
以下は相手の方向を向くだけのタスクです。最初はSetFocusのNewFocusに繋がっていたノードはGetPlayerControllerでした。
だけど、なぜかLocationだけ取得できてなかったので、以下の様にしたらうまく動作するようになりました。
まずはTargetはブラックボードで変数を作る(KeyTypeのBaseClassをActorに変更すること)
以下の様にAIControllerで設定して(KeyNameをブラッグボードで作った変数名と同じにすること)
ビヘイビアツリーを開き変数名を指定します。これによりブラックボードにある変数から、タスクに渡して使うことができます。
以上の修正を加えることで、ShooterAIの動画の続きが問題なくできそうです。