mcpField
U
unity-animator

unity-animator

github.com/besty0728開発1.9k84 回インストール今日更新
リポジトリ

unity-animator について

Unity の Mecanim を扱う開発者向けスキルモジュールです。Animator Controller、ステート、遷移、パラメーターを作成・設定し、GameObject のアニメーションを確認または操作できます。

主な機能

  1. 01Animator Controller の作成
  2. 02ステート、遷移、パラメーターの管理
  3. 03GameObject へのコントローラー割り当て
  4. 04Animator 情報とステートの確認
  5. 05実行時パラメーターの設定とステート再生

活用シーン

  1. 01キャラクターのアニメーションステートマシン構築
  2. 02アニメーションレイヤーと遷移の設定
  3. 03実行時のパラメーターやステートの操作

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/besty0728/unity-skills --skill unity-animator

インストール後、Claude Code で/unity-animatorを入力して読み込まれたか確認します。

詳細

このモジュールのスキルを呼び出す前に: 名前や説明から推測したパラメーターを使ってスキルを呼び出そうとしている場合は、いったん停止してください。まずこのファイルを読むか、GET /skills/recommend?includeSchema=true でスキーマを取得してください。recommend/schema からすでにパラメーターの定義を取得している場合は、そのまま dryRun に進めます。

トリガー

  • Animator のセットアップまたは接続
  • アニメーションステートマシンの調整
  • 実行時のアニメーションパラメーターの制御

Unity Animator スキル

Unity の Mecanim システムを制御します。Animator Controller の作成、レイヤーへのステート/トランジション/パラメーターの追加、GameObject へのコントローラーの割り当て、実行時のパラメーター設定、ステートの再生を行います。

動作モード

  • Approval:照会系スキル(animator_get_parameters / animator_get_info / animator_list_states、ソースでは SkillMode.SemiAuto とマーク)は直接実行します。それ以外の変更系スキル(create_controller / add_parameter / set_parameter / play / assign_controller / add_state / add_transition、SkillMode.FullAuto とマーク)はユーザーの許可が必要です。許可後、サーバーが一度の手順で実行し、結果を返します。
  • Auto / Bypass:すべてのスキルを直接実行します。Auto では AI が自己評価し、Bypass ではすべて許可します。
  • このモジュールには Delete / PlayMode / Reload / 高危険度のスキルは含まれず、Bypass 限定のブロック項目もありません。
  • animator_set_parameter / animator_play は、シーン内で Animator がアタッチされている GameObject に適用されます。現在 Play mode でない場合、ステートマシンは Editor のプレビューモードでのみ進行し、実行時と完全に同じ動作にはなりません。

行わないでください(よくある誤った推測):

  • animator_create_clip / animator_add_clip は存在しません → AnimationClip は Unity Editor またはアセットのインポートで作成します
  • animator_set_speed は存在しません → Animator コンポーネントに対して component_set_property を使い、propertyName="speed" を指定します

ルーティング:

  • Timeline アニメーションには timeline モジュールを使用します
  • Animator のコンポーネントプロパティには component モジュールを使用します
  • アニメーションのインポート設定には importer モジュールを使用します

スキル一覧

スキル説明
animator_create_controller新しい Animator Controller を作成
animator_add_parameterコントローラーにパラメーターを追加
animator_get_parametersすべてのパラメーターを一覧表示
animator_set_parameter実行時にパラメーター値を設定
animator_playアニメーションステートを再生
animator_get_infoAnimator コンポーネント情報を取得
animator_assign_controllerGameObject にコントローラーを割り当て
animator_list_statesコントローラー内のステートを一覧表示
animator_add_stateコントローラーレイヤーにステートを追加
animator_add_transition2 つのステート間にトランジションを追加

パラメーターの型

型説明使用例
float小数値速度、ブレンドウェイト
int整数値ステートインデックス
boolTrue/falseIsGrounded、IsRunning
trigger一度限りのシグナルJump、Attack

スキル

animator_create_controller

新しい Animator Controller を作成します。

パラメーター型必須デフォルト説明
namestringはい-コントローラー名
folderstringいいえ"Assets/Animations"保存先フォルダー

戻り値:{success, name, path}

animator_add_parameter

コントローラーにパラメーターを追加します。

パラメーター型必須デフォルト説明
controllerPathstringはい-コントローラーのアセットパス
paramNamestringはい-パラメーター名
paramTypestringいいえfloatfloat/int/bool/trigger
defaultFloatfloatいいえ0初期 float 値
defaultIntintいいえ0初期 int 値
defaultBoolboolいいえfalse初期 bool 値
animator_get_parameters

コントローラーからすべてのパラメーターを取得します。

パラメーター型必須説明
controllerPathstringはいコントローラーのアセットパス

戻り値:{controller, parameters: [{name, type, defaultFloat, defaultInt, defaultBool}]}

animator_set_parameter

実行時にパラメーター値を設定します(name/instanceId/pathに対応)。

パラメーター型必須説明
namestringいいえ*GameObject 名
instanceIdintいいえ*GameObject のインスタンス ID
pathstringいいえ*GameObject の階層パス
paramNamestringはいパラメーター名
paramTypestringいいえfloat/int/bool/trigger(デフォルト:float)
floatValuefloatいいえ*浮動小数点値
intValueintいいえ*整数値
boolValueboolいいえ*ブール値

*識別子を少なくとも1つ指定する必要があります。paramTypeに応じた値を指定してください(triggerには値は不要です)。

animator_play

指定したアニメーションステートを再生します(name/instanceId/pathに対応)。

パラメーター型必須デフォルト説明
namestringいいえ*-GameObject 名
instanceIdintいいえ*0GameObject のインスタンス ID
pathstringいいえ*nullGameObject の階層パス
stateNamestringはい-アニメーションステート名
layerintいいえ0Animator レイヤー
normalizedTimefloatいいえ0開始時間(0~1)

*識別子を少なくとも1つ指定する必要があります。

animator_get_info

Animator コンポーネントの情報を取得します(name/instanceId/pathに対応)。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス

戻り値:{gameObject, instanceId, hasController, controllerPath, speed, applyRootMotion, updateMode, cullingMode, layerCount, parameterCount}

animator_assign_controller

GameObject にコントローラーを割り当てます(name/instanceId/pathに対応)。

パラメーター型必須説明
namestringいいえ*GameObject 名
instanceIdintいいえ*GameObject のインスタンス ID
pathstringいいえ*GameObject の階層パス
controllerPathstringはいコントローラーアセットのパス

*識別子を少なくとも1つ指定する必要があります。

animator_list_states

コントローラーレイヤー内のすべてのステートを一覧表示します。

パラメーター型必須デフォルト説明
controllerPathstringはい-コントローラーアセットのパス
layerintいいえ0レイヤーインデックス

戻り値:{controller, layer, layerName, stateCount, states: [{name, tag, speed, hasMotion}]}

animator_add_state

Animator Controller のレイヤーにステートを追加します。

パラメーター型必須デフォルト説明
controllerPathstringはい-コントローラーアセットのパス
stateNamestringはい-新しいステートの名前
clipPathstringいいえnull割り当てるアニメーションクリップアセットのパス。AnimationClipではないパスを指定すると、ステートの追加前に呼び出しが拒否されます
layerintいいえ0レイヤーインデックス

戻り値:{success, controller, stateName, layer}

animator_add_transition

Animator Controller 内の2つのステート間にトランジションを追加します。

パラメーター型必須デフォルト説明
controllerPathstringはい-コントローラーアセットのパス
fromStatestringはい-遷移元のステート名
toStatestringはい-遷移先のステート名
layerintいいえ0レイヤーインデックス
hasExitTimeboolいいえtrueトランジションが終了時間まで待機するかどうか
durationfloatいいえ0.25トランジションの時間(秒)

戻り値:{success, from, to, layer, hasExitTime, duration}


例:アニメーション設定の全手順

import unity_skills

# 1. Create controller
unity_skills.call_skill("animator_create_controller",
    name="PlayerController",
    folder="Assets/Animations"
)

# 2. Add parameters
unity_skills.call_skill("animator_add_parameter",
    controllerPath="Assets/Animations/PlayerController.controller",
    paramName="Speed", paramType="float", defaultFloat=0
)
unity_skills.call_skill("animator_add_parameter",
    controllerPath="Assets/Animations/PlayerController.controller",
    paramName="IsGrounded", paramType="bool", defaultBool=True
)
unity_skills.call_skill("animator_add_parameter",
    controllerPath="Assets/Animations/PlayerController.controller",
    paramName="Jump", paramType="trigger"
)

# 3. Assign to character
unity_skills.call_skill("animator_assign_controller",
    name="Player",
    controllerPath="Assets/Animations/PlayerController.controller"
)

# 4. Control at runtime
unity_skills.call_skill("animator_set_parameter",
    name="Player", paramName="Speed", paramType="float", floatValue=5.0
)

# Trigger jump
unity_skills.call_skill("animator_set_parameter",
    name="Player", paramName="Jump", paramType="trigger"
)

# Play specific state
unity_skills.call_skill("animator_play", name="Player", stateName="Idle")

ベストプラクティス

  1. パラメーターを追加する前にコントローラーを作成します
  2. 意味のあるパラメーター名を使用します
  3. トリガーは発火後に自動的にリセットされます
  4. ステートを再生する前にパラメーターを設定します
  5. 独立したアニメーション(体+顔)にはレイヤーを使用します
  6. ステートを再生する前に、コントローラーにステートが存在している必要があります

正確なシグネチャ

正確な名前、パラメーター、デフォルト値、戻り値は、このファイルではなく、GET /skills/schema または unity_skills.get_skill_schema() で定義されています。

コメント