敵AI 3:敵が逃げて隠れて再び攻撃してくる

敵が攻撃して逃げて隠れる→再び出てきて敵が攻撃して逃げて隠れるというAI。


敵AIの第3回になります。過去記事で作成したものが必須になります。
敵AI:敵がルートを巡回しプレイヤーや音に気付くと反応
敵AI 2:敵が間合いを取りながら攻撃してくる

記事は自分でやり直す時のために簡単にまとめているものですから、学習するなら参考元の
Ali Elzoheiry氏のSmart Enemy AI Tutorial Seriesの動画を視聴してください。

環境クエリ

BP: AI > 環境クエリ
名前: EQS_FindCover
新規作成。
ルートから線を伸ばしてPoints: Gridを配置。

SimpleGridで右クリックしテストを追加 > PathFinding
設定変更は不要。

SimpleGridで右クリックしテストを追加 > Trace
※Context Height Offsetは100でもいいと思います。

SimpleGridで右クリックしテストを追加 > Distance

ビヘイビアツリー

前回までに作成したAttack(Sequence)Strafe(Selector)を一時的に切断します。

FindCover(Sequence)

BTTask_SetMovementSpeedのSpeedをSprintingにする。

Run EQS QueryにEQS_FindCoverを選択する。
Blackboard KeyにPointOfInterestを選択する。

Move ToのAcceptable Radiusを10.0にする。
Blackboard KeyにPointOfInterestを選択する。

BTTask_MoveToIdealRangeのAttack TargetをAttackTargetにする。
Ideal RangeをAttackRadiusにする。

テストプレイ

BP_EnemyBaseにPatrol Routeをセットしているなら解除してください。

BP_EnemyBaseのコリジョンのトレース応答 > Visibilityがブロックになっていると、プレイヤーの視界が敵の体で遮られるためプレイヤーから見た敵の背中側の死角が「隠れられる場所」として認知されてしまいます。ブロックではなく無視するかオーバーラップにしましょう。

参考元

Smart Enemy AI | (Part 4: EQS) | Tutorial in Unreal Engine 5 (UE5) | Youtube

コメント

タイトルとURLをコピーしました