コンテンツにスキップ

Animator Branch Builder

1 つの Int パラメーターの値によって切り替わる、AnyState を使わない VRChat 向けの定番ステート構造を自動生成します。開始ステート(例: Wait)から各ステートへ分岐し、値が変わると終了へ戻る、という配線を指定した数だけ一括で作成します。

  • 開始ステート → 各ステート → 終了 の分岐トランジッションを一括生成
  • 生成されるトランジッション条件
    • 開始 → ステート N : param Equals N
    • ステート N → 終了 : param NotEqual N
  • 既存レイヤーへの追加、または新規レイヤーの作成に対応
  • 指定名の Int パラメーターが無ければ自動作成
  • Has Exit Time / Transition Duration などの共通トランジッション設定を一括指定
  • Write Defaults の一括指定
  • 再実行時、同じ遷移先・同じ条件のトランジッションはスキップ(多重生成を防止)

メニューから開きます。

Tools > Mekanyanko Tools > Animator Branch Builder

Animator を持つ GameObject や AnimatorController を選択した状態で開くと、対象コントローラが自動でセットされます。

項目 説明
Animator Controller 生成対象の AnimatorController。
Layer 追加先レイヤーを選択。末尾の <新規レイヤーを作成> を選ぶと新規作成になります。
New Layer Name 新規レイヤー作成時のレイヤー名(新規選択時のみ表示)。
Int Parameter 分岐に使う Int パラメーター名。既存 / 新規のどちらかが下に表示されます。
State Count 生成するステートの数(1 以上)。
Start State 開始ステート名(例: Wait)。デフォルトステートになります。
End State 終了ステート名。Exit にすると Exit ノードへ接続、他の名前なら同名の通常ステートへ接続します。開始ステートと同じ名前にすると Exit を経由せず開始へ直接戻るループになります。
Write Defaults 生成するステートの Write Defaults 値。
Has Exit Time / Exit Time トランジッションの Exit Time 設定(共通)。Has Exit Time が OFF の間は Exit Time は無効。
Transition Duration (s) トランジッションの遷移時間(秒・固定時間指定)。
Transition Offset トランジッションの Offset。
Create ボタン 確認ダイアログの後、生成を実行します。
  1. メニューからウィンドウを開きます。
  2. Animator Controller をセットします(オブジェクト選択で自動取得も可)。
  3. 追加先の Layer を選択、または新規レイヤーを作成します。
  4. Int Parameter に分岐用パラメーター名を入力します。
  5. State Count に生成するステート数、Start State / End State に開始・終了ステート名を入力します。
  6. 必要に応じて Write Defaults と共通トランジッション設定を調整します。
  7. Create ボタンを押し、確認ダイアログで OK を選ぶと生成されます。
  8. 生成後、新規作成・再利用・スキップの内訳がダイアログで表示されます。
  • この操作は Undo できません。 実行前に AnimatorController のバックアップを取ることを推奨します。
  • ステート名 N は 000, 001 … のように 3 桁ゼロ埋めで生成されます。
  • 同名のステートが既にある場合は再利用されます(重複生成はしません)。
  • 同じ遷移先・同じ条件のトランジッションが既にあればスキップされるため、設定を変えて複数回実行しても分岐は重複しません。
  • Int 以外の型で同名パラメーターが既に存在する場合はエラーとなり、生成できません。