Animator Branch Builder
1 つの Int パラメーターの値によって切り替わる、AnyState を使わない VRChat 向けの定番ステート構造を自動生成します。開始ステート(例: Wait)から各ステートへ分岐し、値が変わると終了へ戻る、という配線を指定した数だけ一括で作成します。
- 開始ステート → 各ステート → 終了 の分岐トランジッションを一括生成
- 生成されるトランジッション条件
- 開始 → ステート N :
param Equals N - ステート N → 終了 :
param NotEqual N
- 開始 → ステート 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 ボタン | 確認ダイアログの後、生成を実行します。 |
- メニューからウィンドウを開きます。
- Animator Controller をセットします(オブジェクト選択で自動取得も可)。
- 追加先の Layer を選択、または新規レイヤーを作成します。
- Int Parameter に分岐用パラメーター名を入力します。
- State Count に生成するステート数、Start State / End State に開始・終了ステート名を入力します。
- 必要に応じて Write Defaults と共通トランジッション設定を調整します。
- Create ボタンを押し、確認ダイアログで OK を選ぶと生成されます。
- 生成後、新規作成・再利用・スキップの内訳がダイアログで表示されます。
- この操作は Undo できません。 実行前に AnimatorController のバックアップを取ることを推奨します。
- ステート名 N は
000,001… のように 3 桁ゼロ埋めで生成されます。 - 同名のステートが既にある場合は再利用されます(重複生成はしません)。
- 同じ遷移先・同じ条件のトランジッションが既にあればスキップされるため、設定を変えて複数回実行しても分岐は重複しません。
- Int 以外の型で同名パラメーターが既に存在する場合はエラーとなり、生成できません。