こんにちは夏凛です。
前回の続き
今回もUE4で「空中」で移動するAIを作成していきます。 前回までにBPでの空中移動を実装しました。続きとなりますので見ていない方は前回のページをご覧ください。
今回からビヘイビアツリーに入ります。AIといえばビヘイビアツリー使ってなんぼの感じあります。今回はビヘイビアツリーの個人的メモですので、実装について知りたい方はごめんなさい。次回に飛んでください。
目次
1.ビヘイビアツリーについて
2.まとめ
1.ビヘイビアツリーについて
ビヘイビアツリーについてはゲームでよく使われる思考行動パターンのひとつで、AI キャラクターに独自の思考と意思決定をさせたい時に使われます。徘徊するか攻撃するか追跡するかなど敵キャラクターの行動分岐の実装にとてもぴったりなものですよ。それを自由な振る舞いを実現できるとか色々言われてますね。
概要は「AIコントローラーによる追跡と攻撃 – 未来派図画工作のすすめ」から説明を引用します。図解の分かりやすさで一番でいつも拝見しております。詳しく知りたい方はサイトまで見に行くと幸せになります。
"AIコントローラー
キャラクターブループリントにAIコントローラーを設定すると、そのキャラクターの振る舞いはAIコントローラーに委ねられる事になります。AIコントローラーは大きく「行動・記憶・知覚」の3つの機能で構成されており、それらの関係性は非常に興味深く設計されています。しかし、それぞれの関係が入り組んでいるために、すんなりと理解するのは難しく、ざっくりと構成を把握するために下記のような図を作ってみました"

引用元:AIコントローラーによる追跡と攻撃 – 未来派図画工作のすすめ
上の図を叩きこんでください。「ビヘイビアツリー」を使用する場合、「AIコントローラ」
「ブラックボード」の計3つが必須です。そこに「ビヘイビアツリー」で使用する独自の「デコレータ」「サービス」「タスク」が加わり、この6つを主に使用していくことになります。
「AIコントローラ」で知覚・嗅覚など5感を設定でき、使用するビヘイビアツリー、ブラックボードをBPで「Run~」として呼び出します。
「ブラックボード」は、変数を設定でき今何をしているのかを保持できます。要はビヘイビアツリー専用の変数の認識で問題ないと思います。(保持できるからDBみたいなものだとも記載している方もいます。)
「ビヘイビアツリー」は行動パターンです。
<1.知覚:AIPerceptionで認識したターゲットを>
↓
<2.知覚&記憶:ターゲットとの距離が10M以内なら>
↓
<3.行動:ターゲットに向けて追跡する>
等、条件を指定して行動パターンをきめることができます。
「タスク」は攻撃する・防御する・ターゲットに向かって移動するなど最終的に実行したい処理のことです。デフォルトでは「MoveTo」タスクなどですね。もちろん独自に「タスク」を作ることもできます。
「デコレーター」はビヘイビアツリー内で条件式として使われます。一定の距離にいるか?
攻撃中か?など必ずTrue/Falseで返し、条件分岐としてシーケンサやセレクターに組み込んで使います。
「サービス」はビヘイビアツリー内で常に更新するものに使用します。要はTickで行った方が良いものですね。「知覚内で認識したターゲットは何か?」とか定期的にコールバックした方がよさそうなものはサービスにした方が良いです。
「シーケンサ」は成功すればすべてのタスクを実行します。一連の処理に便利で、人が障害にあった場合の行動を組み込むのに便利です。
「セレクター」は一つのタスクを実行したい場合に使います。
例えば、攻撃手段が「弓」「剣」とあり、「剣」が選択されていれば「剣」の攻撃タスクが呼ばれ、「弓」が選択されていれば「弓」の攻撃タスクが呼ばれるとかどちらか一方にしたい場合かな。「弓」や「剣」いずれかのノードが成功を返した場合、ノードは成功ステータスであるとみなします。
私が参考にしたサイトです。
ビヘイビアツリーの概要 | Unreal Engine ドキュメント
AIコントローラーによる追跡と攻撃 – 未来派図画工作のすすめ
UE4でAIとビヘイビアツリーと-基礎-
Unreal Engine 4 UE4学習 26日目 ブループリントを使用した AI の紹介(2/2)
2.まとめ
「ビヘイビアツリー」「AIコントローラ」「ブラックボード」「デコレータ」「サービス」「タスク」「シーケンサ」「セレクター」を覚えておくことが大事です。
AIについては忘れることが多いので備忘録として残します。
次回から実装に移ります。
前回
次回
【UE5/AI/ビヘイビアツリー】空中で動くAIを作ってみよう 第3回~ビヘイビアツリー実践編~ 2022/06/01 更新しました!
Comments