gamebox

unityとかゲームとか

【arbor第4回】arborで始めるビヘイビアツリー入門1【アセット】

2019/5/24 記述
unity 2019.1.1.f1
Arbor 3.5.3

 

※arbor記事一覧はこちら  

 

ステートマシンの次はビヘイビアツリー(BehaviorTree)だ! ということで、
arborでビヘイビアーツリーに初めて触れてみました。

 

FF15開発のこのページにかかれていますが、

AI最前線の現場から【スクウェア・エニックス】ゲーム・キャラクターはどのように意志決定するのか | Think IT(シンクイット)

現在のゲームのキャラクターの人工知能の約7割程度がビヘイビア・ツリーで作られていると推測されます

 と、ゲームキャラAIの多くはビヘイビアツリーを使って作られているようです。

 で、調べてみたのですがステートマシンよりも少し難しく感じた。
わからない用語ばかりで、「パルスのファルシのルシがパージでコクーン」状態。

 

そういう訳で用語から調べる事にしました。
まず”ビヘイビアツリー”を直訳すると、Behavior(挙動)のTree(ツリー構造)…よくわからないから実践あるのみ。

 

一番基本的な事は公式のこちらで…

AIエージェントの作り方 | Arbor 3

と言いたい所だけど、ビヘイビアツリー基本の説明があまりなく、ナビメッシュ絡みの説明も多くちょっと分かりづらかったです。

 

BehaviourTreeの作成

HierarchyウィンドウのCreateボタンから、「Arbor > BehaviourTree」を選択してBehaviourTreeを追加します。

 

f:id:rgamebox:20190524211533p:plain

 

コンポジットの作成

コンポジット(Composite)という実行ルートを制御する為のノードで、5種類あります。

f:id:rgamebox:20190525001449p:plain


・Sequencer

・Selector

・RandomSequencer

・RandomSelector

・RandomExecutor

 

まずはシーケンサーを見てみましょう。 

 

Sequencer シーケンサー

子ノードを左から順に実行し、失敗した子ノードが見つかったら失敗を返し終了する。 子ノードがすべて成功したら成功を返す。

 

f:id:rgamebox:20190528225557p:plain

 

・Arborエディター上で右クリックして、

コンポジット作成 → Sequencer で作成

 

・その後に右クリックで

アクション作成 → Wait でwaitアクションを3つ作成します。

待ち時間のSecondは1(秒)を入れます

※waitノードの歯車を選んで複製で作成するのも楽です。

 

f:id:rgamebox:20190528231253g:plain

 

左から右に実行されるコンポジットなので実行結果はこうなります。

 

ながくなったので今日はここまで。

 

※arbor記事一覧はこちら