前書き
ボスキャラクターなどは通常の敵キャラクターと比べてより複雑な動作が求められます。例えば、ボスが特定の体力値以下になると攻撃パターンが変わる、フェーズが進むごとに新しい攻撃方法を使う、といったパターンが考えられます。これをTopDownEngineのシステムをもって実現するためには、複数のAIBrainを用意し状況に応じてそれらを切り替える必要があります。
以前に何度かTopDownEngineにあるAIBrainについて紹介させていただきましたが、今回は「敵AIパターンを複数設定する方法について」紹介していこうと思います。
前回のAIBrainに関連した記事については以下になります。
そもそもAIBrainとは?
AIBrainは、TopDown EngineでAIキャラクターの行動を管理するコンポーネントです。AIBrainは一連の「決定ツリー」や「ステートマシン」に基づいて、キャラクターがどのように動作するかを決定します。
っということでAIBrainを使うことでNPCなどの行動を決定することができますが、TopDownEngineのDemoなどを見てみるとAIBrainを使用する場合は1キャラクターに付き1つ作成されていることが多いと思います。
例えば、以下のKoalaNinjaのコンポーネントを見てみると以下のようにAIBrainが1つだけある状態です。基本はこの形になると思いますが、今回は「敵AIパターンの複数(=AIBrainを複数持つ)」方法について紹介していきます。
複数のAIBrainを作成する方法
複数のAIBrainを設定するやり方はいろいろあると思いますが、私は以下のようにAIBrain用のオブジェクトを作成し、それぞれのAIBrainを読み込ませる方法をとっています。
また、上記の場合複数のAIBrainがあるため最初に動かすAIBrainを事前に設定しておく必要があります。Characterコンポーネントの中にCharacter Brainという項目があるのでAIBrainを設定しているオブジェクトを事前に設定しておきましょう。
AIBrainを切り替える方法
TopDownEngineではAIBrainを切り替えるコンポーネントがすでに実装されていますので、こちらを使うのが簡単かなと思います。「AIActionSwapBrain」のNewAIBrainにAIBrainが設定されているオブジェクトを設定することで別のAIBrainを設定することができます。
実際にAIBrainを切り替えてみました
以下のようにAIBrainを切り替えるためのAIBrainを作ってみました。プレイヤーが見つかったらAIBrainSwapに移行して、AIActionSwapBrainを実行するだけのAIBrainになります。
上記のAIBrainを動かしてみると以下のような動画になります。現在どのAIBrainが使用されているかどうかはCharacterコンポーネントのCharacter Brainから確認することができます。
最初はランダムに移動していてプレイヤーが見つかっていませんでしたが、プレイヤーを見つけたとたんにCharacterBrainがAIBrain_NoAttack+Runに切り替わったことが分かります。
このように
- AIBrainを別のオブジェクトして作成する
- AIActionSwapBrainを使って1.で作成したAIBrainを設定する
ことで複数のAIBrainを切り替えることができます。
まとめ
今回は敵AIパターンを複数設定する方法について紹介しました。
今回のように複数のAIBrainを切り替えることで複雑な敵キャラの動きを実現することができます。特にボスキャラクターなどフェーズごとに行動を変えたいといった場合には有効な手段になりますのでぜひ複数のAIBrainを切り替える方法を覚えていただきより面白いゲームを作っていただけたらと思います。
コメント