【Godot4.3】LimboAI タスク一覧メモ

GodotEngine

この記事では、備忘録と個人的なチートシートの意味合いで、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数分だけ、待機を行う

おすすめの本①
おすすめの本➁(Godot)
GodotEngine
ひらまめ(hiramame)をフォローする

コメント

タイトルとURLをコピーしました