Animator Parameters
Animator parameters connect Ultimate Character Controller’s movement, abilities, and equipped items to transitions and blend trees in a Unity Animator Controller.
Add the Version 3 parameters
- Open Tools > Opsive > Ultimate Character Controller > Character Manager.
- Select the character, enable Animator, and assign the intended Animator Controller.
- Select Build Character for a new character or Update Character for an existing one. Character Manager adds each missing standard parameter to the assigned controller.
- Open the controller in Window > Animation > Animator and select the Parameters tab.
- Compare every name and type with the tables below. Names are case-sensitive.
- Build transition conditions around the values the character actually uses, then verify them in Play Mode before editing another flow.
The Version 3 parameter builder adds 22 parameters: 13 shared character parameters, four parameters for each of slots 0 and 1, plus LegIndex. If a parameter already exists with the correct name but the wrong type, the builder does not replace it; correct that parameter manually.
Movement and look parameters
| Name | Type | Version 3 behavior and common use |
|---|---|---|
HorizontalMovement |
Float | Receives the horizontal component of the locomotion input vector. Use it as the horizontal axis of a locomotion blend tree. Animator Monitor applies Horizontal Movement Damping Time. |
ForwardMovement |
Float | Receives the forward component of the locomotion input vector. Use it as the forward axis of a locomotion blend tree. Animator Monitor applies Forward Movement Damping Time. |
Pitch |
Float | Receives the active look source’s pitch when a look source is present. Use it for vertical aim or look poses. Animator Monitor applies Pitch Damping Time. |
Yaw |
Float | Receives the character’s rotational change multiplied by Animator Monitor’s Yaw Multiplier. Use it for turn-in-place or turning blends rather than as an absolute world rotation. Animator Monitor applies Yaw Damping Time. |
Speed |
Float | Normally becomes Moving Speed Parameter Value while the character is moving and 0 while stopped. An ability can temporarily override it, such as Speed Change. It is not a direct world-speed measurement. |
Height |
Float | Receives a height value set by an ability. Height Change can set its configured height when active and restore 0 when it stops. |
Moving |
Bool | Becomes true or false when the character starts or stops moving. Use it for clear idle-versus-movement decisions. |
Aiming |
Bool | Follows the character’s aiming event and is forwarded to equipped item animators. Do not assume it is always true in first person; verify the live value for the project’s Aim setup. |
MovementSetID |
Int | Receives Animator Movement Set ID from the dominant equipped Character Item. Use it to select stance families such as default, melee, or bow movement. |
LegIndex |
Float | Used by the supplied controller’s transition conditions to choose a leg-compatible entry back into movement. Keep it when retaining those transitions; a custom controller that does not use leg-aware entry conditions does not have to reference it. |
HorizontalMovement and ForwardMovement describe controller input, not the character’s measured velocity. Use Speed, Moving, or a project-specific parameter when a transition needs a different meaning.
Ability parameters
| Name | Type | Version 3 behavior and common use |
|---|---|---|
AbilityIndex |
Int | Receives the Ability Index Parameter from the highest-priority active ability that supplies one. 0 represents no selected ability in the standard flow. Use it to select an ability state or sub-state machine. |
AbilityChange |
Trigger | Is set when AbilityIndex changes. Use it with the index condition so the Animator can enter or re-enter the correct ability flow when the selection changes. |
AbilityIntData |
Int | Carries ability-specific integer detail in addition to AbilityIndex. For example, Interact exposes Ability Int Data Value so different interaction animations can share one ability index. |
AbilityFloatData |
Float | Carries ability-specific continuous or variant data. Current abilities use it for values such as fall velocity, steering input, or idle variation. An ability can request damping when updating it. |
The first active ability by priority that supplies each value wins. Do not use AbilityIntData or AbilityFloatData without defining what that value means for the selected AbilityIndex.
Item-slot parameters
Version 3 adds this group for slot 0 and slot 1. Replace <ID> with the numeric Slot ID:
| Name pattern | Type | Version 3 behavior and common use |
|---|---|---|
Slot<ID>ItemID |
Int | Receives Animator Item ID from the Character Item equipped in that slot. 0 represents no equipped item in the standard flow. Use it to select the item family. |
Slot<ID>ItemStateIndex |
Int | Receives the state index from the highest-priority active item ability for that slot. Use it to select actions such as Use, Reload, Equip, or Unequip. |
Slot<ID>ItemStateIndexChange |
Trigger | Is set when the slot’s item or item state changes to a nonzero value. Use it with the ID and state-index conditions to enter or re-enter the intended item action. |
Slot<ID>ItemSubstateIndex |
Int | Carries the action’s variation within the selected item state, such as an attack sequence or another Animator Audio State Set choice. |
For example, a pistol with Animator Item ID 2 performing the standard Use item ability in slot 0 can expose Slot0ItemID = 2 and Slot0ItemStateIndex = 2; the substate distinguishes the selected use variation.
If the inventory uses slot 2 or above, add all four matching parameters manually. Animator Monitor treats a slot as available in a controller when it finds that slot’s Slot<ID>ItemID; keep the full four-parameter group together.
Choose parameters by use case
- Directional locomotion: Drive a two-dimensional blend tree with
HorizontalMovementandForwardMovement, then useMovingfor clean entry and exit conditions. - Turn-in-place: Use
Yawwith suitable positive and negative thresholds. Tune Yaw Multiplier and Yaw Damping Time on Animator Monitor before changing many transitions. - Ability selection: Pair
AbilityChangewith the intendedAbilityIndex. AddAbilityIntDataorAbilityFloatDataonly when one ability needs multiple animation choices. - Equipped stance: Use
MovementSetIDfor a broad stance andSlot<ID>ItemIDwhen the animation is specific to an item family. - Item action: Pair
Slot<ID>ItemStateIndexChangewith the Slot Item ID and Item State Index. Use the substate only for a variation inside that action. - Return to movement: Use the live movement values and, when keeping the supplied leg-aware transitions,
LegIndexto choose a compatible re-entry pose.
Verify in Play Mode
- Select the active character model and open Window > Animation > Animator.
- On Animator Monitor, expand Editor and enable Log Ability Parameter Changes and Log Item Parameter Changes.
- Enter Play Mode and move in every direction. Watch
HorizontalMovement,ForwardMovement,Moving,Speed,Pitch, andYawrespond. - Start an ability. Confirm that
AbilityIndexandAbilityChangeselect the expected state, and inspect any ability data value used by its transitions. - Equip and use an item in each supported slot. Confirm its Slot Item ID, Item State Index, change trigger, and substate match the intended item and action.
- Stop the action, unequip the item, and return to idle. The active indexes should return to their standard neutral values and the Animator should leave the action state.
- Disable the logging options after testing.
Troubleshooting
| Symptom | Check | Fix |
|---|---|---|
| The Console says the Animator is not designed for Ultimate Character Controller. | Version 3 validates HorizontalMovement, ForwardMovement, and AbilityChange during Animator Monitor initialization. |
Add the missing parameters with the exact names and types, then check the complete table rather than stopping at the three validation names. |
| Character Manager ran, but a transition still reports a type mismatch. | A parameter with that name may already have the wrong type. | Delete or rename the incorrect parameter and recreate it with the type in this page; the parameter builder only adds missing names. |
The character moves but Speed remains 1. |
The default Moving Speed Parameter Value is 1; Speed is not measured velocity. |
Use the directional parameters for blend magnitude, tune Moving Speed Parameter Value, or provide a deliberate ability override. |
| An ability index changes but its state does not restart. | The transition may test only AbilityIndex and ignore AbilityChange. |
Add the change trigger to the intended entry transition. |
| An item equips but the item state never changes. | The controller may lack the complete slot group, or its transition may omit Slot<ID>ItemStateIndexChange. |
Add all four parameters for that slot and use the change trigger with the ID and state index. |
A slot above 1 never updates. |
The standard builder creates only slot 0 and slot 1. |
Add the four correctly named parameters for the additional Slot ID. |
| Aiming transitions are wrong in first person. | The controller may assume Aiming is permanently true. |
Watch the live value and build transitions around the Aim ability behavior used by the project. |
| The parameters are correct but the wrong state plays. | The configured ability, item, or movement-set ID may not match the transition threshold. | Compare the Inspector values with Default Animator Values and correct the ID or transition. |
Related tasks
- Animator Controller explains how to organize layers, states, and transitions around these parameters.
- Default Animator Values lists the supplied Ability Index, Item State Index, Animator Item ID, and Movement Set ID mappings.
- Animator provides the full setup and customization route.
- Abilities explains ability priority and Ability Index Parameter.
- Item Slots explains the Slot IDs used in item parameter names.
Developer reference
AnimatorBuilder.AddParameters checks each standard name and adds it only when no parameter with that name exists. It creates the 22-parameter Version 3 baseline but does not verify or replace the type of an existing parameter. AnimatorMonitor hashes these exact names and writes values through Unity’s Animator API.
Movement and look values update during the character’s animation update. Ability and item-ability selections are marked dirty and resolved by active-ability priority at the synchronized update point. AbilityChange and each Slot<ID>ItemStateIndexChange are Unity Trigger parameters rather than persistent booleans.
For item slots, Animator Monitor first checks for Slot<ID>ItemID. If that parameter is absent, the controller does not receive the state-index, change-trigger, or substate writes for that slot. The same values are also forwarded to active supported child and item animators.