The Animator component is used to assign animation to a GameObject in your scene. The Animator component requires a reference to an Animator Controller which defines which animation clips to use, and controls when and how to blend and transition between them.
If the GameObject is a humanoid character with an Avatar definition, the Avatar should also be assigned in this component, as seen here:
This diagram shows how the various assets (Animation Clips, an Animator Controller, and an Avatar) are all brought together in an Animator Component on a Game Object:
See Also State Machines, Blend Trees, Avatar, Animator Controller
Property: | Function: | |
---|---|---|
Controller | The animator controller attached to this character. | |
Avatar | The Avatar for this character. (If the Animator is being used to animate a humanoid character) | |
Apply Root Motion | Should we control the character’s position and rotation from the animation itself or from script. | |
Update Mode | This allows you to select when the Animator updates, and which timescale it should use. | |
Normal | The animator is updated in-sync with the Update call, and the animator’s speed matches the current timescale. If the timescale is slowed, animations will slow down to match. | |
Animate Physics | The animator is updated in-sync with the FixedUpdate call (i.e. in lock-step with the physics system). You should use this mode if you are animating the motion of objects with physics interactions, such as characters which can push rigidbody objects around. | |
Unscaled Time | The animator is updated in-sync with the Update call, but the animator’s speed ignores the current timescale and animates at 100% speed regardless. This is useful for animating a GUI system at normal speed while using modified timescales for special effects or to pause gameplay. | |
Culling Mode | Culling mode you can choose for animations. | |
Always Animate | Always animate, don’t do culling even when offscreen. | |
Cull Update Transforms | Retarget, IK and write of Transforms are disabled when renderers are not visible. | |
Cull Completely | Animation is completely disabled when renderers are not visible. |
The information box at the bottom of the Animator component provides you with a breakdown of the data being used in all the clips used by the Animator Controller.
An animation clip contains data in the form of “curves”, which represent how a value changes over time. These curves may describe the position or rotation of an object, the flex of a muscle in the humanoid animation system, or other animated values within the clip such as a changing material colour.
This table explains what each item of data represents:
Label | Description |
---|---|
Clip Count | The total number of animation clips used by the animator controller assigned to this Animator. |
Curves (Pos, Rot & Scale) | The total number of curves used to animate the position, rotation or scale of objects. These are for animated objects that are not part of a standard humanoid rig. When animating a humanoid avatar, these curves would show up a count for extra non-muscle bones such as a tail, flowing cloth or a dangling pendant. If you have a humanoid animation and you notice unexpected non-muscle animation curves, you mave have unnecessary animation curves in your animation files. |
Muscles | The number of muscle animation curves used for humanoid animation by this Animator. These are the curves used to animate the standard humanoid avatar muscles. As well as the standard muscle movements for all the humanoid bones in Unity’s standard avatar, this also includes two “muscle curves” which store the root motion position and rotation animation. |
Generic | The number of numeric (float) curves used by the animator to animate other properties such as material colour. |
PPtr | The total count of sprite animation curves (used by Unity’s 2d system) |
Curves Count | The total combined number of animation curves |
Constant | The number of animation curves that are optimised as constant (unchanging) values. Unity selects this automatically if your animation files contain curves with unchanging values. |
Dense | The number of animation curves that are optimised using the “dense” method of storing data (discrete values which are interpolated between linearly). This method uses less significantly less memory than the “stream” method. |
Stream | The number of animation curves using the “stream” method of storing data (values with time and tangent data for curved interpolation). This data occupies significantly more memory than the “dense” method. |
If your animation clips are imported with “Anim Compression” set to “Optimal” in the Animation import reference, Unity will use a heuristic algorithm to determine whether it is best to use the dense or stream method to store the data for each curve.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thanks for helping to make the Unity documentation better!