ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【ゼロからアンリアルエンジン5】〔AI編〕⑥物音がしたら確認しに行くNPCを作ってみよう。

目次

 

はじめに

 

注意

UE5.0.3の現在の情報です。

今後のアップデートによりUIや機能が変更される可能性があることをあらかじめご理解ください。

 

前回

 

namiton.hatenablog.jp

 

今回は耳の機能で行動を決定します。

 

解説

①音をならしたアクタのキーを追加

BB_NPCを開きます。

 

オブジェクト型の変数を作成します。

何らかの音がしたときのアクタを返してほしいので名前をHearActorKeyにしました。

 

②ビヘイビアツリーの編集

優先度は

プレイヤーを追いかける>音のするほうに移動する>ランダム移動する

という風にします。

 

BT_NPCを開いて、ランダム移動と追いかける間にSequenceノードを挟みます。

ブラックボードからキーがセットさえているか検証します。



③位置を設定するタスクの作成

MoveToはアクタのほかにもVector型で指定することができます。

今回は音が鳴った位置に移動したいので、音が鳴ったアクタの瞬間の位置を登録するためのタスクを作成します。

 

名前はBTT_SetKeyPositionとしました。

 

HearActorKeyの位置からLocationKeyに登録します。

 

④ビヘイビアツリーに組み込み

 

作成したらビヘイビアツリーに組み込みます。

⑤コントローラーの編集

BP_CustomAIControllerからブラックボードのキーに登録します。

 

ObjectValueはArrayElementに接続しています。

 

実行してうまく音を検出したら移動することを確認しましょう。

 

⑥忘れるようにするためのタスクを作成する。

このままだと音が鳴る場所から動かなくなってしまうので、元のランダム移動に戻るように音が鳴った事実を忘るようにするタスクを作成します。

 

BTTClearKeyとしました。

後で汎用性が高いものにします。

 

これで音のなった場所に到着して2秒後に巡回に戻るようになりました。

 

▼全体像

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。