ビヘイビアツリーの極小サンプルUnrealEngine4研究所UnrealEngine4の研究/開発をしてます。ガルルソフトウェア研究所です。>2016年11月10日11:30カテゴリUE4iOSビヘイビアツリーの極小サンプルビヘイビアツリーを使ったAIについて取り組んでみたので、できるだけシンプルにして覚え書き。・敵の移動用の思考パターン(探す、走る、休むを繰り返す)の策定これらをCとかでプログラミングしていく過程を想像する。・迷路データ:まあ平面の単純なものなら2次元配列で作れる。・迷路解析:Aスターアルゴリズムあたりで解析。ステージを解析して迷路データを自動作成したい・移動ロジック・・・・・探す、移動する、止まる、をフローに書いて動いてほしいこんな都合の良いツールはゲーム本編の制作よりも大変そうでわがままなんだけど、UE4は各種ツールでこれをフォローして僕のわがままを聞いてくれる。迷路データは2次元じゃなく立体的な交差にも対応していてすごい。ナビメッシュでステージを解析して迷路データを自動作成できる・移動ロジック・・・探す、移動する、止まるを「ビヘイビアツリー」に書いて、そのとおりに動かせる既存のプロジェクト(TwinStickシューター)で実装してみた。・ブラックボード・・・・各タスク間で情報を共有するためのメモ用紙ナビメッシュはステージ中の迷路に当たる部分をざっくり立方体で包むことで作ることができる。ビヘイビアツリーでは、探す、移動する、休むの3つのタスクが設定されていて、これらと関連付けられた敵キャラがAIControllerを通じて移動してきます。これを実現したUE4の極小プロジェクトをおいておきます。TwinStickシューターに敵キャラを追加して、自分の位置をめがけて移動するサンプルです。目的地に到着したら2秒休んで、また自分の位置を補足する、を繰り返します。注意するべきは、PAWNで「移動する(MoveTo)」タスクを実行するときはコンポーネントに「FloatingPawnMovement」を追加してやること。敵キャラがCharacterの場合は問題ないが、PAWNの場合はこのコンポーネントを追加しておかないと「MoveTo」できないので注意。