ノードコンポーネント

ノードが実行中に処理を行うノードコンポーネントについて説明します。

基本的なノードコンポーネント

  • 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

  1. Decoratorも使用できます。 ↩︎

  2. 出力DataPortがある場合のみ使用できます。 ↩︎