AIチュートリアル④ 〜プレイヤーを攻撃する〜

AIがプレイヤーを攻撃するようにする。

1. サービスの作成

ブラックボード[BB_SamuraiTaisho]にBool型のキー[PlayerIsMeleeRange]を追加する。

そして、ビヘイビアツリー[BT_SamuraiTaisho]の[ツールバー]>[New Service]から新しいサービスを追加し、[IsPlayerInRange]と名付ける。
サービスとは、AIのセンサーのように状況を検知するもので、定期的に何度も実行される。デコレーターで判定に使うブラックボードの値を更新する。

[IsPlayerInRange]でFloat型の変数[MeleeRange]、Blackboard Key型の変数[BB_IsInRange]を作成する。
コンパイルし[MeleeRange]の初期値を「500」に設定する。

MeleeRangeは攻撃の間合い、BB_IsInRangeはその間合いにプレイヤーが入ったかどうかを表す。

そして下のようにブループリントを組む。

それが出来たらビヘイビアツリー[BT_SamuraiTaisho]を開き、[Chase Player]ノードを右クリックして[Add Service]>[Is Player in Range]をクリックしてサービス[IsPlayerInRange]を付ける。
[IsPlayerInRange]の[BB is in Rnage]を「PlayerIsMeleeRange」に設定する。


2. 攻撃用のタスクを作成する

まず敵キャラのブループリント[Pawn_SamuraiTaisho]にBool型の変数[KiriWaza]を作成しておく。

そしてビヘイビアツリー[BT_SamuraiTaisho]から新しいタスク[MeleeAttack]を作成する。
[MeleeAttack]を開き、下のようにブループリントを組む。


3. アニメーションBPの設定

敵キャラのアニメージョンBP[AnimBP_SamuraiTaisho]を開き、以下のようにブループリントを組む。


4. ビヘイビアツリー の編集

そしてビヘイビアツリーを編集する。

[Simple Parallel]ノードは[Finish Mode]を「Delayed」にする。