unity AIアセットBehavior Designerの使い方をマスターする

どうもききです。

今回はunityでAIを簡単に作成できるアセット Behavior Designerを紹介したいと思います。まず値段が80$なので結構な投資になってしまうと思います。
あとmovementpackなど便利なタスクが使えるものも販売されてます。

使い方自体はそんなに難しくなくAIを作るのに必要な機能が充実しています。

ではまずオブジェクトを選択した状態で

toolからBehaviorDesigner→Editorを選択して画面を開いてください。

(BehaviorDesignerを動かすにはNavmashAgentコンポーネントが必要なのでオブジェクトにこのコンポーネントを追加しておいてください)

開いた状態では何もないのでここからタスク(スクリプトを入れた箱のようなもの)を追加していきます。左のバーからタスクを追加できるようになっています。
様々なタスクがありますが一番代表的なタスクを説明します。

selector

簡単に言うとOR回路のことです複数の子(選択肢)のうちどれか一つが成功なら成功を返します。

sequence

簡単に言うとAND回路のことです複数の子(選択肢)が全て成功なら成功を返します。

この二つはコンポジットタスクといい下にタスクを配置することが出来ます。
上のタスクが親タスクでその下に配置されているものが子タスクといいます。
木で例えたら枝が親でその枝についてる葉っぱが子ですね。

では次にBehavior Designerの一連の流れを説明します。


Enterからスタートし下に降りて左端から順に実行していきます。
selectorの場合ですが左端から順に実行していき成功が返るまで繰り返します。
子が成功を返すと親はその次の親に成功を返します。Enterまで成功が返るとAIは終了してしまいます。

次に条件付きタスク(if文みたいなもの)について解説したいと思います。Can See Objectと書かれたタスクがあると思います。このタスクはターゲットが視界に入ったら成功を返して右のタスクを実行します。seekはターゲットを追跡するタスクになります。
sequenceの場合は左を条件タスクで右が実行タスクになります。
何もなければ一番右が実行され周辺のパトロールになります。

次にAbortTypeについて解説したいと思います。
Abort Typeとはコンポジットタスク(Selsector,Sequence)に設定できる条件のようなもの。
これを設定することで失敗の再評価アクションタスクの停止などがおこなえます。
Abort Typeには次の3つがあります。
Self,Lowpriority,Both

デフォルトの状態だと失敗したタスクは再評価されません。

Selfはコンディショナルタスクが失敗を返したとき右のアクションタスクを停止させます。

Lowpriorityは優先度が高いほうのコンディショナルタスクが成功を返せる状態なら
優先度の低いほうを停止して高いほうを実行させます。

BothはSelfとLowpriorityの両方の機能を持っています。


この画像ではアボートタイプをbothに設定しています。
これで後からターゲットが視界に入ったときに再評価することが可能になります。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)