ステートマシンの使い方


こちらはArbor 3.2.4以前のドキュメントです。

最新ドキュメントはArbor Documentationをご覧ください。

ArborFSMコンポーネントの追加

ステートマシンを使用するにはArborFSMコンポーネントが必要です。

ArborFSMコンポーネントの追加には以下のような方法があります。

HierarchyウィンドウのCreateボタン

  • HierarchyウィンドウのCreateボタンをクリックするかウィンドウ内を右クリック
  • Arbor/ArborFSMを選択
  • ArborFSMが追加されている状態のGameObjectが作成される。
GIF

ArborEditorウィンドウのツールバー

  • ArborEditorウィンドウを開き、ツールバーの「作成」ボタンをクリック
  • ArborFSMを選択
  • ArborFSMが追加されている状態のGameObjectが作成される。
GIF

ArborEditorウィンドウの未選択メニュー

  • ArborEditorウィンドウを開き、グラフを未選択の時に表示されるメニューの「ArborFSM作成」ボタンをクリック
  • ArborFSMが追加されている状態のGameObjectが作成される。
GIF

Inspectorウィンドウの”Add Component”ボタン

  • HierarchyウィンドウでArborFSMを追加したいGameObjectを選択
  • Inspectorウィンドウの”Add Component”ボタンをクリック
  • Arbor/ArborFSMを選択。
  • GameObjectにArborFSMが追加される。
GIF

Arbor EditorウィンドウでArborFSMグラフを開く

ArborFSMを編集するにはArbor EditorウィンドウでArborFSMグラフを開く必要があります。

  • HierarchyウィンドウでArborFSMコンポーネントが付いたGameObjectを選択。
  • InspectorウィンドウのArborFSMコンポーネントエディタの”Open Editor”ボタンをクリック。
GIF

また、すでにArbor Editorウィンドウが開いている場合はHierarchyウィンドウでArborFSMコンポーネントが付いたGameObjetを選択すると切り替わります。

ステートの作成

  • ノードを作成したいグラフの位置を右クリック
  • メニューの”ステート作成”を選択
  • ステートの名前を入力し、Enterキーで決定。
GIF

常駐ステートの作成

  • ノードを作成したいグラフの位置を右クリック
  • メニューの”常駐ステート作成”を選択
  • ステートの名前を入力し、Enterキーで決定。
GIF

ステートの削除

  • 削除したいノードを選択
  • グラフ内の右クリックメニューから”削除”を選択、もしくはDeleteキーを押す
GIF

開始ステートに設定

  • ノードヘッダ部の歯車アイコンをクリックするかヘッダ部を右クリック
  • 「開始ステートに設定」を選択。
GIF

挙動追加

ステートを動作させるためには、StateBehaviourを追加する必要があります。

  • ノードヘッダ部の歯車アイコンをクリックするかヘッダ部を右クリック
  • “挙動追加”を選択
  • StateBehaviour選択メニューから追加したいStateBehaviourを選択。
GIF

挙動挿入

StateBehaviourを任意の位置に挿入するには、「挙動挿入」ボタンから追加します。

  • ステートの挙動間のセパレータの中央付近をマウスオーバーする。
  • 表示された「挙動挿入」ボタンをクリック。
  • 「挙動追加」を選択
  • StateBehaviour選択メニューから追加したいStateBehaviourを選択。
GIF

挙動のドラッグ

移動

StateBehaviourをドラッグ&ドロップすることで、挙動の順番の入れ替えや他ノードへの移動ができます。

  • 挙動のタイトルバーをドラッグ
  • 同じノードの他の位置や他のノードへドロップ
GIF

コピー

Ctrl(Win) / option (Mac)を押しながらドラッグ&ドロップするとコピーになります。

  • 挙動のタイトルバーをドラッグ
  • Ctrl(Win) / option (Mac)を押しながら、同じノードの他の位置や他のノードへドロップ
GIF

挙動の削除

  • StateBehaviourのタイトルバーの歯車アイコンをクリックするかタイトルバー部を右クリック
  • メニューの”削除”を選択
GIF

ステートの接続

既存ノードへの接続

  • StateBehaviourのStateLinkフィールドをドラッグ
  • 接続先のステートにドロップ
GIF

ステートを新規作成して接続

  • StateBehaviourのStateLinkフィールドをドラッグ
  • ステートを作成したいグラフ内の位置でドロップ
  • メニューの”ステート作成”を選択
  • ステートの名前を入力し、Enterキーで決定。
GIF

リルートノードの接続

リルートノードを作成して接続

  • StateBehaviourのStateLinkフィールドをドラッグ
  • リルートノードを作成したいグラフ内の位置でドロップ
  • メニューの”リルート”を選択
GIF

リルートノード挿入

  • 接続ライン上のリルートノードを作成したい位置を右クリック。
  • メニューの”リルート”を選択。
GIF

リルートノードの方向変更

  • 方向を変更するリルートノードを選択
  • 表示される方向アイコンをドラッグして方向を変更。
GIF

ステートの接続を切断

  • 接続を切断したい接続ライン上を右クリック
  • メニューの”切断”を選択
GIF

StateLinkの設定

StateLinkの歯車アイコンをクリックすると設定ウィンドウが表示されます。

項目 内容
Name StateLinkの名前。
入力するとStateLinkフィールドの表示名が変更される。
Transition Timing 遷移タイミングの設定。
Line Color 接続ラインの色

TransitionTiming

項目 内容
Late Update Overwrite LateUpdate時に遷移するよう予約する。
同フレーム内で既に遷移予約されている場合は上書きする。
Immediate 遷移呼び出し時に瞬時に遷移する。
遷移がループしている場合、無限ループする可能性もあるので使用には注意すること。
Late Update Dont Overwrite LateUpdate時に遷移するよう予約する。(デフォルト)
同フレーム内で既に遷移予約されている場合は上書きしない。

各メニューについて

グラフのメニュー

グラフを右クリックするとメニューが表示されます。

項目 内容
ステート作成 通常ステートを作成します。
常駐ステート作成 常駐ステートを作成します。
演算ノード作成 演算ノードを作成します。
グループ作成 グループを作成します。
コメント作成 コメントを作成します。
切り取り 選択中のノードを切り取ります。
コピー 選択中のノードをコピーします。
貼り付け コピーしたノードを貼り付けます。
複製 選択中のノードを複製します。
削除 選択中のノードを削除します。
全て展開 選択中ノードの挙動を全て展開します。
全て折りたたみ 選択中ノードの挙動を全て折りたたみます。

ステートのメニュー

ステートのヘッダ部を右クリックするか歯車アイコンをクリックするとメニューが表示されます。

項目 内容
リネーム ステートの名前を変更します。
コメント表示 ノードコメント欄の表示を切り替えます。
開始ステートに設定 開始ステートに設定します。
ブレークポイント ブレークポイントの設定を切り替えます。
挙動追加 StateBehaviourを追加します。
挙動を貼り付け コピーしたStateBehaviourを貼り付けます。
全て展開 ノードに追加されている全ての挙動を展開します。
全て折りたたみ ノードに追加されている全ての挙動を折りたたみます。
切り取り ノードを切り取ります。
コピー ノードをコピーします。
複製 ノードを複製します。
削除 ノードを削除します。
遷移(プレイ中のみ有効) プレイ中に選択することで、強制的に遷移します。

StateBehaviourのメニュー

StateBehaviourのタイトルバーを右クリックするか歯車アイコンをクリックするとメニューが表示されます。

項目 内容
上に移動 挙動の順番を上に移動します。
下に移動 挙動の順番を下に移動します。
コピー StateBehaviourをコピーします。
貼り付け コピーしたStateBehaviourを上書きします(同じ型のみ有効)
削除 StateBehaviourを削除します。
スクリプト編集 スクリプトエディタを開きます。

接続ラインの右クリックメニュー

接続ライン上を右クリックすると、メニューが表示されます。

項目 内容
遷移元へ移動 遷移元のステートへスクロールします。
遷移先へ移動 遷移先のステートへスクロールします。
前のノードへ移動 前のノードへスクロールします(リルートノードがある場合のみ表示)
次のノードへ移動 次のノードへスクロールします(リルートノードがある場合のみ表示)
リルート クリックした位置にリルートノードを作成します。
切断 切断します。
設定 StateLinkの設定ウィンドウを開きます。

デバッグメニュー

ツールバーの「デバッグ」ボタンをクリックすると表示されます。

項目 内容
すべてのデータ値を表示 全てのデータラインの現在値を表示に変更します。
すべてのデータ値を非表示 全てのデータラインの現在値を非表示に変更します。
ブレークポイント設定 選択中ステートのブレークポイントを設定します。
ブレークポイント解除 選択中ステートのブレークポイントを解除します。
すべてのブレークポイントを解除 全てのステートのブレークポイントを解除します。
カウントクリア(プレイ中のみ有効) ステートの遷移回数を0に変更します。