ノードコンポーネント
ノードが実行中に処理を行うノードコンポーネントについて説明します。
基本的なノードコンポーネント
- EventComponent
イベントが来たことをノードに伝える処理を行うノードコンポーネントです。
Unityのメッセージ(OnCollisionEnterなど)や入力イベントなどを待つ場合に利用します。 - ActionComponent
一瞬で完了する処理を行うノードコンポーネントです。
メンバーの呼び出しやデータの演算などに利用します。 - EvaluateComponent
条件判定を行うノードコンポーネントです。
ステートの遷移判定やビヘイビアツリーの実行判定などに利用します。 - TaskComponent
継続的に実行する処理を行うノードコンポーネントです。
時間経過の待機やトゥイーン処理、非同期処理の完了待ちなどに利用します。 - ServiceComponent
結果を返さずに常時実行する処理を行うノードコンポーネントです。 - CompositeComponent
BehaviorTreeの子ノードの実行を制御するコンポーネントです。 - Decorator
BehaviorTreeの実行判定を行う処理を行うノードコンポーネントです。
ノードとの関係
ノードが どのように実行するか を定義したものであるのに対し、ノードコンポーネントは どのような処理を行うか を定義したものとなります。
ノードが実行される際に、各種ノードコンポーネントに定義した処理を行います。
ノードによってはノードコンポーネントの処理結果を使用して接続先ノードの実行などを行います。
各ノード型と利用できる基本的なノードコンポーネント型の関係図は以下の通りです。
EventComponent | ActionComponent | EvaluateComponent | TaskComponent | ServiceComponent | |
---|---|---|---|---|---|
Action | ✅ | ✅ | |||
Task | ✅ | ✅ | ✅ | ||
State | ✅ | ✅ | ✅ | ✅ | ✅ |
BehaviorTree メイン | ✅ | ✅ | ✅ | ✅ | |
BehaviorTree Decorators1 | ✅ | ||||
BehaviorTree Services | ✅ | ✅ | ✅ | ✅ | |
Service | ✅ | ✅ | ✅ | ✅ | |
Signal Evaluation | ✅ | ✅ | |||
Compute | ✅2 | ✅ |