Arbor3からの移行

Arbor 3: FSM & BT Graph Editor(以下Arbor3)」からの移行について説明します。

Arbor3とLogic Toolkitには互換性がありません。
Arbor3で開発していたプロジェクトをLogic Toolkitに乗り換える場合は以下の点を参考に組みなおしが必要になります。

アーキテクチャの相違点

要素 Arbor3 Logic Toolkit
ステートマシン ArborFSMコンポーネント State
ビヘイビアツリー BehaviourTreeコンポーネント BehaviorTree
データフロー DataSlot
FlexibleField
Calculator
OutputDataPort
InputDataPort
InputField
データ演算ノード群
データ変換ノード群
グラフの階層化 SubStateMachine
SubBehaviorTree
関数グラフ
(Task Graph, Evaluate Graph)
変数 ParameterContainer Blackboard
API呼び出し 組み込みスクリプト
リフレクションによる呼び出し
スクリプト自作
組み込みスクリプト
スクリプト生成
スクリプティング
ノード用スクリプト MonoBehaviour SerializeReference

グラフの相違点

Arbor3

  • グラフの種類としてステートマシンとビヘイビアツリーが用意されている。
  • MonoBehaviourから派生した「Unityオブジェクト」で管理。
  • 子グラフも内部的に同GameObjectにコンポーネントを追加する形式で実現。
  • グラフコンポーネントを持ったプレハブを作成することで擬似的にグラフの再利用が可能。

Logic Toolkit

  • ノードの種類によってのみどのように実行されるかが制御される。
    • ステートマシンはStateで実現。
    • ビヘイビアツリーはBehaviorTreeで実現。
  • SerializeReferenceで管理。
  • 子グラフはUnityオブジェクトの制限なく追加可能。
  • Logic AssetTask Graph AssetEvaluate Graph Assetというアセットによりグラフの再利用が可能。

ノード用スクリプトの相違点

Arbor3

  • MonoBehaviourから派生した「Unityオブジェクト」で管理。
  • MonoBehaviourのメッセージ(OnCollisionEnterなど)も呼び出される。
  • ノード用スクリプトは流用不可
    Stateに使用できるのがStateBehaviourスクリプトのみのため、BehaviourTreeでも同一処理を作成したい場合はActionBehaviourスクリプトも別途作成する必要がある。
  • APIのメンバーアクセスを行うには、高負荷なリフレクションによる呼び出しか、スクリプトの記述が必要。

Logic Toolkit

  • SerializeReferenceで管理。
  • MonoBehaviourのメッセージ(OnCollisionEnterなど)は呼ばれない。
    • メッセージを受け取るMonoBehaviourスクリプトを介して、イベントを待ち受けるなどの置き換えが必要。
  • ノード用スクリプトが流用可能
    ActionComponentやTaskComponentが、StateにもBehaviorTreeにも利用可能。
  • APIのメンバーアクセスを行うスクリプトを生成可能。

組み込み機能について

Arbor3

  • 各種コンポーネントと関連スクリプトで対応。
  • 対応していない機能についてはそれぞれユーザーにスクリプトを記述してもらう方式。

Logic Toolkit

  • アセット本体の機能を絞り込むため、最低限の組み込み機能のみ実装。
  • スクリプト生成機能によりメンバーアクセスが可能であるため、個別にスクリプトを記述する必要なケースが少ない。
  • 必要に応じて対応パッケージを別途提供予定。