Animancer v6.0 is currently available for testing.

Inspector

An AnimancerComponent should usually be attached to the same object as the Animator that it will control so anything which deactivates that object will deactivate both components at the same time. This also allows the AnimancerComponent to automatically get the reference to the Animator when it is added so you do not need to manually assign it in the Inspector. Once that reference is assigned, it will automatically collapse the Inspector of the Animator and show its relevant fields beneath the reference (you can freely expand it again if you want to see it).

Regular Animator Animancer Component

The Animator is still here, it's just collapsed.
  • You can access this documentation via the [?] help icon in the top right (the same applies to any of Animancer's other components).
  • The Controller field is not shown since Animancer does not use it.
  • Due to a Bug in Unity, changing the Update Mode to or from AnimatorUpdateMode.AnimatePhysics at runtime will have no effect so it shows a warning in the Inspector.
  • The Action On Disable field determines what will happen when the AnimancerComponent or the GameObject is it attached to are disabled (see the AnimancerComponent.DisableAction enum for details).

If the Animator reference could not be found or has been lost, the Inspector will display a warning which you can click on to quickly search for that component on any of the object's parents or children.

Animation Details

The Inspector shows the details of all State and Layers in real-time with various controls and context menu functions.

Unlike the Animator window used to set up Animator Controllers, this interface is not used to manually configure states and transitions. That is all done by scripts so this panel is only for debugging and testing. Normally it will only appear in Play Mode, however it works exactly the same if your scripts start playing animations in Edit Mode.

  1. The Weight indicates how much each animation affects the final result of the Blending. The value displayed here is rounded to save space, but the full value is also shown when the details are expanded. Values that are currently being rounded are shown in italics and values closer to zero are proportionally greyed out.
  2. Each state has a foldout arrow which can be expanded to show its details.
  3. A green bar indicates the progress of each animation that is currently playing. It turns yellow if the animation is paused.
  4. When the details are expanded, the exact time is shown with a slider to let you control it manually, a multiplier label to indicate how many times it has looped, and an [N] button to toggle the display between AnimancerState.Time and AnimancerState.NormalizedTime.
  5. The details also include various other important values for that state. Each of the controls corresponds to a property with the same name in the AnimancerState class which can be accessed by code.

Controls

  • Ctrl + Click on an animation to Cross Fade to it (see below).
  • Holding Shift as well will instead queue that fade to occur once the current animation finishes.
  • You can drag and drop any AnimationClip into the AnimancerComponent Inspector to create a State for it.

Context Menus

Right Clicking on any state in the Inspector will open a context menu containing various useful functions:

  • Play and Cross Fade play the target state. You can Ctrl + Click on an animation to trigger a Cross Fade without opening the menu. This will use the default fade duration (0.25 seconds). These functions are disabled in the video below because the target state is already playing.
  • The End Event sub-menu shows the details of the End Event if one is registered.
  • The Inverse Kinematics sub menu allows you to enable and disable Inverse Kinematics.
  • State Documentation opens the API Documentation page for that state type.

The context menu for AnimationClip assets also has some additional functions:

  • Toggle Looping swaps the Motion.isLooping flag between true and false. This function works for all selected animations at once, which is useful since you can't edit multiple AnimationClips at once. Note that for some reason you need to close Unity and restart it for this change to actually take effect.
  • Toggle Legacy swaps the AnimationClip.legacy flag between true and false.
  • New Locked Inspector and Watch are added by Inspector Gadgets.

Animation Types

Type Description
Humanoid Any Humanoid animation can be played on any Humanoid character thanks to Unity's Humanoid Animation Retargeting system.
Generic Generic animations are more efficient than Humanoid, but do not support retargeting and can only be played on the specific hierarchy they were made for.
Sprite Sprite animations are actually just Generic animations which happen to control the SpriteRenderer.sprite rather than rotating bones. This means that the way Animancer differentiates between them may not be 100% accurate because an animation could do both so it is only a recommendation in the Inspector rather than an error message.
Legacy Legacy animations are not supported by the Playables API (and thus Animancer). If you have a model set to Legacy, you will need to change it in the Rig tab of its Import Settings. Otherwise if you have an AnimationClip which is a ".anim" asset (not imported as part of a model), the Toggle Legacy Context Menu function shown above will swap the animation type.

Each object will only be one specific animation type so it will show a warning for any animation of the wrong type. The warning icon will also be displayed for any animations that are trying to animate properties that do not actually exist on the current character. Clicking on it will log a detailed message explaining exactly which of the properties exist and don't:

Some of the properties animated by 'ClipState (SpiderBot-MoveRight)' do not exist in the Rig of 'DefaultHumanoid' so they will have no effect.
- The AnimationType of the 'SpiderBot-MoveRight' animation is Generic while the 'DefaultHumanoid' Rig is Humanoid.
- This message has been copied to the clipboard (in case it is too long for Unity to display in the Console).
- 73 of 80 bindings do not exist in the Rig: [x] = Missing, [o] = Exists
> [o] rotation, scale
> Root: [x] position, rotation, scale
    > BackUpperLeg: [x] rotation, scale
        > BackLowerLeg: [x] rotation, scale
    > Core: [x] rotation, scale
    > FrontUpperLeg: [x] rotation, scale
        > FrontLowerLeg: [x] rotation, scale
    > LeftUpperLeg: [x] rotation, scale
        > LeftLowerLeg: [x] rotation, scale
    > RightUpperLeg: [x] rotation, scale
        > RightLowerLeg: [x] rotation, scale

If this feature is affecting your performance too much while you have a character selected, you can disable it via the Display Options in the layer Context Menu.