348 lines
9.3 KiB
Markdown
348 lines
9.3 KiB
Markdown
---
|
|
name: animator-get-data
|
|
description: Inspect a Unity `AnimatorController` asset — controller name, every parameter (name, type, defaults), every layer with its state machine, every state, and every transition. Pair with 'animator-modify' to write changes back.
|
|
metadata:
|
|
generated-by: mcp-plugin-dotnet
|
|
---
|
|
|
|
# Animator / Get Data
|
|
|
|
Inspect a Unity `AnimatorController` asset. Returns the controller's name plus the full set of parameters, layers, states, and transitions — enough to drive a follow-up 'animator-modify' call with valid names.
|
|
|
|
## Inputs
|
|
|
|
- `animatorRef` — reference to the `AnimatorController` asset (path must start with `Assets/` and end with `.controller`).
|
|
|
|
## Returned fields
|
|
|
|
- `name` — controller asset name.
|
|
- `parameters` — every parameter (name, type, default value).
|
|
- `layers` — every layer with its state machine, default state, and weight.
|
|
- `states` — every state across all layers (name, speed, motion).
|
|
- `transitions` — every transition with its conditions, source, and destination.
|
|
|
|
## How to Call
|
|
|
|
```bash
|
|
unity-mcp-cli run-tool animator-get-data --input '{
|
|
"animatorRef": "string_value"
|
|
}'
|
|
```
|
|
|
|
> For complex input (multi-line strings, code), save the JSON to a file and use:
|
|
> ```bash
|
|
> unity-mcp-cli run-tool animator-get-data --input-file args.json
|
|
> ```
|
|
>
|
|
> Or pipe via stdin (recommended):
|
|
> ```bash
|
|
> unity-mcp-cli run-tool animator-get-data --input-file - <<'EOF'
|
|
> {"param": "value"}
|
|
> EOF
|
|
> ```
|
|
|
|
|
|
### Troubleshooting
|
|
|
|
If `unity-mcp-cli` is not found, either install it globally (`npm install -g unity-mcp-cli`) or use `npx unity-mcp-cli` instead.
|
|
Read the /unity-initial-setup skill for detailed installation instructions.
|
|
|
|
## Input
|
|
|
|
| Name | Type | Required | Description |
|
|
|------|------|----------|-------------|
|
|
| `animatorRef` | `any` | Yes | Reference to the AnimatorController asset. The path should start with 'Assets/' and end with '.controller'. |
|
|
|
|
### Input JSON Schema
|
|
|
|
```json
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"animatorRef": {
|
|
"$ref": "#/$defs/AIGD.AssetObjectRef"
|
|
}
|
|
},
|
|
"$defs": {
|
|
"UnityEngine.EntityId": {
|
|
"type": "string",
|
|
"pattern": "^[0-9]+$"
|
|
},
|
|
"System.Type": {
|
|
"type": "string"
|
|
},
|
|
"AIGD.AssetObjectRef": {
|
|
"type": "object",
|
|
"properties": {
|
|
"instanceID": {
|
|
"$ref": "#/$defs/UnityEngine.EntityId",
|
|
"description": "instanceID of the UnityEngine.Object. If this is '0' and 'assetPath' and 'assetGuid' is not provided, empty or null, then it will be used as 'null'."
|
|
},
|
|
"assetType": {
|
|
"$ref": "#/$defs/System.Type",
|
|
"description": "Type of the asset."
|
|
},
|
|
"assetPath": {
|
|
"type": "string",
|
|
"description": "Path to the asset within the project. Starts with 'Assets/'"
|
|
},
|
|
"assetGuid": {
|
|
"type": "string",
|
|
"description": "Unique identifier for the asset."
|
|
}
|
|
},
|
|
"required": [
|
|
"instanceID"
|
|
],
|
|
"description": "Reference to UnityEngine.Object asset instance. It could be Material, ScriptableObject, Prefab, and any other Asset. Anything located in the Assets and Packages folders."
|
|
}
|
|
},
|
|
"required": [
|
|
"animatorRef"
|
|
]
|
|
}
|
|
```
|
|
|
|
## Output
|
|
|
|
### Output JSON Schema
|
|
|
|
```json
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"result": {
|
|
"$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Animation.AnimatorTools-GetAnimatorDataResponse"
|
|
}
|
|
},
|
|
"$defs": {
|
|
"System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Animation.AnimatorParameterInfo)": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Animation.AnimatorParameterInfo"
|
|
}
|
|
},
|
|
"com.IvanMurzak.Unity.MCP.Animation.AnimatorParameterInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"defaultFloat": {
|
|
"type": "number"
|
|
},
|
|
"defaultInt": {
|
|
"type": "integer"
|
|
},
|
|
"defaultBool": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"defaultFloat",
|
|
"defaultInt",
|
|
"defaultBool"
|
|
]
|
|
},
|
|
"System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Animation.AnimatorLayerInfo)": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Animation.AnimatorLayerInfo"
|
|
}
|
|
},
|
|
"com.IvanMurzak.Unity.MCP.Animation.AnimatorLayerInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"defaultWeight": {
|
|
"type": "number"
|
|
},
|
|
"blendingMode": {
|
|
"type": "string"
|
|
},
|
|
"syncedLayerIndex": {
|
|
"type": "integer"
|
|
},
|
|
"iKPass": {
|
|
"type": "boolean"
|
|
},
|
|
"defaultStateName": {
|
|
"type": "string"
|
|
},
|
|
"states": {
|
|
"$ref": "#/$defs/System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Animation.AnimatorStateInfo)"
|
|
},
|
|
"subStateMachines": {
|
|
"$ref": "#/$defs/System.Collections.Generic.List(System.String)"
|
|
},
|
|
"anyStateTransitions": {
|
|
"$ref": "#/$defs/System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Animation.AnimatorTransitionInfo)"
|
|
}
|
|
},
|
|
"required": [
|
|
"defaultWeight",
|
|
"syncedLayerIndex",
|
|
"iKPass"
|
|
]
|
|
},
|
|
"System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Animation.AnimatorStateInfo)": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Animation.AnimatorStateInfo"
|
|
}
|
|
},
|
|
"com.IvanMurzak.Unity.MCP.Animation.AnimatorStateInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"speed": {
|
|
"type": "number"
|
|
},
|
|
"speedParameterActive": {
|
|
"type": "boolean"
|
|
},
|
|
"speedParameter": {
|
|
"type": "string"
|
|
},
|
|
"cycleOffset": {
|
|
"type": "number"
|
|
},
|
|
"cycleOffsetParameterActive": {
|
|
"type": "boolean"
|
|
},
|
|
"cycleOffsetParameter": {
|
|
"type": "string"
|
|
},
|
|
"mirror": {
|
|
"type": "boolean"
|
|
},
|
|
"mirrorParameterActive": {
|
|
"type": "boolean"
|
|
},
|
|
"mirrorParameter": {
|
|
"type": "string"
|
|
},
|
|
"writeDefaultValues": {
|
|
"type": "boolean"
|
|
},
|
|
"motionName": {
|
|
"type": "string"
|
|
},
|
|
"transitions": {
|
|
"$ref": "#/$defs/System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Animation.AnimatorTransitionInfo)"
|
|
}
|
|
},
|
|
"required": [
|
|
"speed",
|
|
"speedParameterActive",
|
|
"cycleOffset",
|
|
"cycleOffsetParameterActive",
|
|
"mirror",
|
|
"mirrorParameterActive",
|
|
"writeDefaultValues"
|
|
]
|
|
},
|
|
"System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Animation.AnimatorTransitionInfo)": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Animation.AnimatorTransitionInfo"
|
|
}
|
|
},
|
|
"com.IvanMurzak.Unity.MCP.Animation.AnimatorTransitionInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"destinationStateName": {
|
|
"type": "string"
|
|
},
|
|
"hasExitTime": {
|
|
"type": "boolean"
|
|
},
|
|
"exitTime": {
|
|
"type": "number"
|
|
},
|
|
"hasFixedDuration": {
|
|
"type": "boolean"
|
|
},
|
|
"duration": {
|
|
"type": "number"
|
|
},
|
|
"offset": {
|
|
"type": "number"
|
|
},
|
|
"canTransitionToSelf": {
|
|
"type": "boolean"
|
|
},
|
|
"conditions": {
|
|
"$ref": "#/$defs/System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Animation.AnimatorConditionInfo)"
|
|
}
|
|
},
|
|
"required": [
|
|
"hasExitTime",
|
|
"exitTime",
|
|
"hasFixedDuration",
|
|
"duration",
|
|
"offset",
|
|
"canTransitionToSelf"
|
|
]
|
|
},
|
|
"System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Animation.AnimatorConditionInfo)": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Animation.AnimatorConditionInfo"
|
|
}
|
|
},
|
|
"com.IvanMurzak.Unity.MCP.Animation.AnimatorConditionInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"parameter": {
|
|
"type": "string"
|
|
},
|
|
"mode": {
|
|
"type": "string"
|
|
},
|
|
"threshold": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"threshold"
|
|
]
|
|
},
|
|
"System.Collections.Generic.List(System.String)": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"com.IvanMurzak.Unity.MCP.Animation.AnimatorTools-GetAnimatorDataResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"parameters": {
|
|
"$ref": "#/$defs/System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Animation.AnimatorParameterInfo)"
|
|
},
|
|
"layers": {
|
|
"$ref": "#/$defs/System.Collections.Generic.List(com.IvanMurzak.Unity.MCP.Animation.AnimatorLayerInfo)"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"result"
|
|
]
|
|
}
|
|
```
|
|
|