BehaviorTree

振る舞いをツリー構造状に定義し、それを逐一実行してくもの.

Untitled

BehaviorTree.CPP

ノード

Treeを構成する各要素のこと.Taskともいう. 「待機中」,「成功」,「実行」,「失敗」の状態があり,この成否状態を利用して状態推移をする.

Actionノード

一番末端にあるノードで,何らかの処理を実行する. 結果に応じて SUCCESS か FAILURE か RUNNINGを返す.

SyncActionノード

同じスレッドでアクションを実行する。同期処理なのでこのアクションは SUCCESS か FAILURE のみ返し,RUNNING は返さない.

AsyncActionノード

別のスレッドでアクションを実行する。非同期処理になっており,アクションの進み具合に応じて SUCCESS か FAILURE か RUNNING を返す.

Conditionalノード

条件判定を行うノード.条件に応じて SUCCESS か FAILUREを返す.

Controlノード

ツリーの枝分かれ部分にあたるノードで,tickの流れを制御する.子ノードを一つ以上持つことができる.

Sequenceノード

子ノードを順に実行するノード.Sequence と ReactiveSequence と SequenceStar の3種類あり,子ノードから RUNNING が返ってきた後の処理がことなる.

Fallbackノード

子ノードのうちひとつを実行するノード.Fallback と ReactiveFallback があり,子ノードから RUNNING が返ってきた後の処理がことなる.

Decoratorノード

Controlノード と同様にtickの流れを制御する.Controlノード と違い子ノードを一つしか持たない.

Inverterノード

子ノードの SUCCESS と FAILURE を反転して親ノードに返す.子ノードが RUNNING を返した場合はそのまま RUNNING を親ノードに返す.

ForceSuccessノード

子ノードが FAILURE を返した場合 SUCCESS を親ノードに返す.子ノードが RUNNING を返した場合はそのまま RUNNING を親ノードに返す.

ForceFailureノード

子ノードが SUCCESS を返した場合 FAILURE を親ノードに返す.子ノードが RUNNING を返した場合はそのまま RUNNING を親ノードに返す.

Repeatノード

子ノードの tick を N 回繰り返す.子ノードが FAILURE を返した場合はループを中断して親ノードに FAILURE を返す.子ノードが RUNNING を返した場合は親ノードに RUNNING を返す.

Retryノード

子ノードの tick を N 回繰り返す.子ノードがSUCCESS を返した場合はループを中断して親ノードに SUCCESS を返す.子ノードが RUNNING を返した場合は親ノードに RUNNING を返す.

DecoratorBlackboardPreconditionノード

指定された条件が満たされた時だけ子ノードを tick する.

Delayノード

指定された時間だけ子ノードの実行を先延ばしする.待機中は親ノードに RUNNING を返す.

Timeoutノード

子ノードが指定された時間より長く RUNNING を返し続けた場合,子ノードを中断させて親ノードに FAILURE を返す.

Groot

BehaviorTree を作成、変更、監視するための IDE