この記事では、備忘録と個人的なチートシートの意味合いで、Godot Engineのアドオン「LimboAI」について、ビヘイビアツリーで使用可能なタスクを一覧でまとめます。

※LimboAIの導入方や基本的な使用方法については以下の別記事でまとめています。
あわせて読みたい


【Godot4.3】LimboAI で階層型ステートマシンを作成する
この記事では、Godot Engineのアドオン「LimboAI」を使用して、階層型ステートマシンを作成する方法についてまとめていきます。※ビヘイビアツリーについては以下の記事…
あわせて読みたい


【Godot4.3】LimboAIを使用してビヘイビアツリーを構成する
この記事では、Godot Engineのアドオン「LimboAI」を使用して、ビヘイビアツリーを構成する方法についてまとめていきます。 ※同アドオンLimboAIを使ったステートマシン…
目次
基本となるタスクのクラス
タスクは、大きく分けて以下4種類に分類されます。
LimboAIに組み込まれている各タスクは基本となる以下4種のタスククラスのいずれかを継承する形で構成されています。
(→カスタムタスクを作成する場合は、どのクラスを継承するかで種類を設定できます)
| タスク名 | 概要 | クラス例 |
|---|---|---|
| コンポジット (BTComposite) | ・子タスクの実行フローを指定する制御タスク ・複数の子タスクを持つことができる | Sequence, Selector,Parallel |
| デコレーター (BTDecorator) | ・子タスクの動作方法を指定する制御タスク ・子として持てるのは1つのタスクのみ | AlwaysSucceed, Invert, TimeLimit |
| アクション (BTAction) | ・実際の処理を実行するリーフタスク | PlayAnimation, Wait |
| コンディション (BTCondition) | ・条件判定をおこなうリーフタスク ・条件の可否によってSUCCESS/FAILUREを返す | CheckVar, InRange |
タスク一覧
この項では、各カテゴリごとに基本となるタスクの概要についてまとめています。
概要は最低限の内容を要約したものになりますので、より詳細な仕様等は公式ドキュメントページの各クラスリファレンスをご参照ください。(タスク名にリンクを張っています)
Blackboard
| タスク/クラス名 | 概要 |
|---|---|
BTCheckTrigger | ・指定したbool変数(true/false)の値を検証する ・trueの場合、変数をfalseに切り替えた後、SUCCESSを返す ・falseの場合、FAILUREを返す |
BTCheckVar | ・指定した変数の値を検証する ・条件の結果が真であればSUCCESS、偽であればFAILUREを返す |
BTSetVar | ・変数に指定した値を設定する ・変数の設定に成功すればSUCCESS、失敗すればFAILUREを返す ・オプションで設定の直前に実行する処理の指定も可能 |
Composites
| タスク/クラス名 | 概要 |
|---|---|
BTSelector | ・最初にSUCCESSが返されるまで、順次実行を行う ・ 結果は、最初に成功する1つのタスクが処理 or すべて失敗 |
BTSequence | ・FAILUREが返されるまで、順次実行を行う ・結果は、すべての子タスクが成功 or 最初にFAILUREが出た時点で中断 |
BTParallel | ・すべての子タスクを同時に実行する ・マルチスレッドではないことに注意(同Tickで順次処理を行う形) |
BTDynamicSelector | ・Tick毎に、最初のSUCCESSまで、順次実行を行う |
BTDynamicSequence | ・Tick毎に、FAILUREが返されるまで、順次実行を行う |
BTProbabilitySelector | ・設定した確立によって子タスクを選択し、実行する |
BTRandomSelector | ・最初のSUCCESSまで、ランダムな順序で実行を行う |
BTRandomSequence | ・FAILUREが返されるまで、ランダムな順序で実行を行う |
Decorators
| タスク/クラス名 | 概要 |
|---|---|
BTAlwaysFail | ・SUCCESSをFAILUREに変換する |
BTAlwaysSucceed | ・FAILUREをSUCCESSに変換する |
BTCooldown | ・子タスクが前回実行された時から、設定した時間が経過している場合にのみ彩度実行を行う |
BTDelay | ・設定した時間分の遅延後に子タスクを実行する |
BTForEach | ・設定した配列の各要素に対して、子タスクを実行する |
BTInvert | ・FAILUREをSUCCESSに、SUCCESSをFAILUREに変換する |
NewScope | ・新しい Blackboard スコープを作成する |
BTProbability | ・指定した確率で、子タスクを実行する |
BTRepeat | ・指定した回数、子タスクを実行する |
BTRepeatUntilFailure | ・FAILUREが返されるまで、子タスクを繰り返し実行する |
BTRepeatUntilSuccess | ・SUCCESSが返されるまで、子タスクを繰り返し実行する |
BTRunLimit | ・指定した回数で、子タスクの実行回数を制限する ・実行回数が制限を超過した場合はFAILUREを返す |
BTSubtree | ・新規にサブツリーをインスタンス化して実行を行う |
BTTimeLimit | ・指定した時間で、子タスクの実行に制限時間を設定する ・制限時間を超過した場合、処理を中断してFAILUREを返す |
シーン
| タスク/クラス名 | 概要 |
|---|---|
BTAwaitAnimation | ・指定したアニメーションの再生完了まで待機する |
BTCheckAgentProperty | ・指定したエージェントのプロパティ値を検証する |
BTPauseAnimation | ・指定したアニメーションの再生を一時停止する |
BTPlayAnimation | ・指定したアニメーションの再生を開始する |
BTSetAgentProperty | ・指定されたエージェントのプロパティに値を割りあてる |
BTStopAnimation | ・指定したアニメーションを停止する |
Utility
| タスク/クラス名 | 概要 |
|---|---|
BTCallMethod | ・指定したノードまたはオブジェクト内のメソッドを呼び出す |
BTComment | ・BehaviorTreeに注釈や説明文を追加する |
BTConsolePrint | ・コンソールにテキストを出力する |
BTEvaluateExpression | ・指定されたノードまたはオブジェクトに対して式を評価する |
Fail | ・常にFAILUREを返す |
BTRandomWait | ・ランダムな時間で、待機を行う |
BTWait | ・指定した時間だけ、待機を行う |
BTWaitTicks | ・指定したTick数分だけ、待機を行う |
リンク
リンク
