Animation system implementation and configuration in Unity.
Overview
This skill provides capabilities for implementing character and object animation using Unity's Animator, Animation Rigging, and Timeline systems.
Capabilities
Animator Controllers
- Create state machines
- Configure blend trees
- Set up animation layers
- Handle state transitions
Animation Rigging
- Implement IK constraints
- Create procedural animation
- Set up multi-aim constraints
- Handle runtime rigging
Timeline
- Create animation clips
- Sequence cutscenes
- Integrate with Cinemachine
- Handle animation events
Avatar System
- Configure humanoid avatars
- Set up animation retargeting
- Handle muscle settings
- Manage avatar masks
Prerequisites
- Unity 2021.3+
- Animation Rigging package (optional)
- Timeline package (built-in)
Usage Patterns
Animator Controller
public class CharacterAnimator : MonoBehaviour
{
private Animator animator;
private static readonly int SpeedHash = Animator.StringToHash("Speed");
private static readonly int JumpTrigger = Animator.StringToHash("Jump");
void Update()
{
float speed = GetMovementSpeed();
animator.SetFloat(SpeedHash, speed, 0.1f, Time.deltaTime);
if (Input.GetButtonDown("Jump"))
{
animator.SetTrigger(JumpTrigger);
}
}
}
Animation Rigging
[RequireComponent(typeof(RigBuilder))]
public class AimRig : MonoBehaviour
{
[SerializeField] private MultiAimConstraint aimConstraint;
[SerializeField] private Transform aimTarget;
public void SetAimWeight(float weight)
{
aimConstraint.weight = weight;
}
}
Best Practices
- Use parameter hashes for performance
- Organize layers by body part
- Use avatar masks for partial animations
- Profile animator updates
- Use sub-state machines for organization