敵AI 6:プレイヤーを見失った敵が捜索を始める

プレイヤーを見失った敵が捜索を始めるAI。

Ali Elzoheiry氏のチュートリアルから学ぶ敵AIの第6回になります。過去記事で作成したものが必須になります。
敵AI:敵がルートを巡回しプレイヤーや音に気付くと反応
敵AI 2:敵が間合いを取りながら攻撃してくる
敵AI 3:敵が逃げて隠れて再び攻撃してくる
敵AI 4:近距離タイプと遠距離タイプの敵を分ける
汎用性と拡張性の高いダメージシステム
敵AI 5:敵の攻撃とブロック

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

AIコントローラー: AIC_EnemyBase

関数: HandleForgotAcot
新規作成。
ノードを組む

【インプット】Actor – Actor
関数: HandleLostSight
新規作成。
ノードを組む

【インプット】Actor – Actor
イベントグラフ
ノードの編集

・画像でイベント On UnPossessがカスタムイベントになっているのは間違い。そういうイベントがノードにあります。
ノードの編集

HandleLostSightの追加

環境クエリ: EQS_Seeking

BP: AI > 環境クエリ
名前: EQS_Seeking
ノードを組む

・Points: Coneを追加。

・テストを追加 > Pathfinding

・テストを追加 > Trace

ビヘイビアツリー: BT_SubTree_Seeking

BP: AI > ビヘイビアツリー
名前: BT_SubTree_Seeking
新規作成。
ビヘイビアツリーを組む

BTTask_SetMovementSpeedのSpeedはSprinting。
Move ToのBlackborad KeyはPointOfInterest。
Waitは1秒。
LoopのNum Loopsは5。
Run EQS QueryのQuery TemplateはEQS_Seeking、Blackborad KeyはPointOfInterest。
BTTask_SetMovementSpeedのSpeedはJogging。
Move ToのBlackborad KeyはPointOfInterest。
BTTask_FocusのFocus TargetはPointOfInterest。
BTTask_FocusTargetから名前変更してBTTask_Focusにしています。変数のAttackTargetKeyFocusTargetに名前変更しています。
Waitは1秒。

ビヘイビアツリー: BT_EnemyBase & BT_EnemyMelee & BT_EnemyRanged

BT_EnemyBaseとBT_EnemyMeleeとBT_EnemyRangedにBT_SubTree_Seekingを追加します。

ビヘイビアツリーを組む

・CombatState
の次(右)にRunBehaviorを配置しますが、InvestigatingStateを複製して編集するのが楽です。
Blackboard Based Conditionのオブザーバーを中止はBoth、Blackboard KeyをState、Key ValueはSeeking。
・ついでにInvestigatingStatePassiveStateBlackboard Based Conditionもオブザーバーを中止はBothに変更します。
※画像だとCombatState (Selector)から下の線が消えていますが、実際は繋がっています。
現時点で、一番右のPassive State (Selector)が上の画像と違って長くなってしまっている場合、BT_SubTree_Passiveにまとめて構いません。

コメント

  1. UtnvUnina より:
  2. Outstanding feature

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