Skip to content

AnimatorController DSL (AnimDsl) ​

AnimatorController を JSON (DSL) として入出力するツールです。Claude などの LLM に「読ませる」「書かせる」用途を想定した、名前ベースの宣言形式です。

ウィンドウ: 上部メニューの さたにあしょっぴんぐ/エディタカスタマイザー/AnimatorController DSL (proto)

スキーマ ​

スキーマ対象
sce.animcontroller/v0.1コントローラ全体
sce.animlayer/v0.1レイヤー単体 (参照パラメータの宣言を同梱)
json
{
  "schema": "sce.animlayer/v0.1",
  "layer": "MyToggle",
  "parameters": [{ "name": "MyParam", "type": "Bool" }],
  "stateMachine": {
    "defaultState": "OFF",
    "states": [
      { "name": "OFF", "transitions": [{ "to": "ON", "conditions": [{ "param": "MyParam", "mode": "If" }] }] },
      { "name": "ON",  "transitions": [{ "to": "OFF", "conditions": [{ "param": "MyParam", "mode": "IfNot" }] }] }
    ]
  }
}

Export ​

  • ウィンドウでコントローラ全体、またはレイヤーを 1 枚選んで JSON 化できます
  • Animator ウィンドウのレイヤー右クリック Export Layer As DSL からも出力できます
  • 「JSON をファイルへ保存…」ボタンでそのまま .json 保存 (既定名はコントローラ / レイヤー名から自動)
  • サブステートマシン発の遷移 (sub-SM の transitions) と StateMachine 直付きの Behaviour (behaviours) も出力します。別のサブステートマシンに同名のステートがある場合、遷移先は Desktop/Enter のようなパス表記 (レイヤールートからの sub-SM 名を / で連結。名前の / は \/) で区別します

Validate ​

貼り付けた JSON を適用前に全件検証します — パラメータ宣言の重複・未宣言参照 / ステート名・遷移先の解決 / WriteDefaults の一貫性 / Behaviour 型・Motion の存在など。 エラーは 1 行形式で出るので、そのまま LLM に返して自己修正させる運用ができます。

ステート名の一意性は同じステートマシン内で判定します (別のサブステートマシンにある同名は可)。名前だけの遷移先が複数に一致する時は警告を出すので、パス表記で書き分けてください。

Apply ​

  • 新規作成 — DSL の内容で新しい .controller を生成します
  • 既存への追加 — 既存コントローラへレイヤーを追加します
    • パラメータの衝突は対話的に解決: 同名同型は再利用 / 型違いは「既存を使う ⚠ / 別名で追加」を選択
    • 同名レイヤーは自動リネームされます
    • sce.animlayer はこの「追加」専用です

Import には Newtonsoft.Json が必要

貼り付けた JSON の読み込み・検証・Apply には com.unity.nuget.newtonsoft-json が必要です (SCE_NEWTONSOFT_JSON)。Export とそのセルフチェックは無くても動きます。

MIT License