2.14 · Animation
Skeletal animation with graph-based blending. Driven by AnimationGraph assets and bone entity
hierarchies, ticked from a TimeManager callback.
UpdateAnimation, which writes a blended pose back into the bone hierarchy.Overview
The animation system blends skeletal poses described by an AnimationGraph asset and applies them
to a hierarchy of bone entities. It is intentionally small: there is no separate animation runtime — the
bones are real Scene entities, the graph is an asset, and the per-step update is a single
TimeManager callback.
Ownership & lifecycle
An AnimationComponent on the root entity points at an AnimationGraph asset and at the
bone hierarchy under that entity. The component's lifetime follows the entity. The graph asset is shared and
managed by the asset system.
Key types
| Type / hook | Header | Role |
|---|---|---|
AnimationComponent | Hazel/src/Hazel/Animation/ | Component on the animated entity. References the AnimationGraph asset and the bone hierarchy. |
AnimationGraph | Hazel/src/Hazel/Animation/ | Asset describing animation clips, blends, and transitions. |
UpdateAnimation(StepContext) | TimeManager callback | Per-step tick: evaluates graphs, computes blended pose, writes back to bone transforms. |
Extending
Add new blend behaviour by extending the AnimationGraph asset format and the matching evaluator
inside Hazel/src/Hazel/Animation/. Bone hierarchies are ordinary entities, so additional rigs do
not require runtime changes — only assets and an AnimationComponent.
Robot joints are driven by MuJoCo via the motion graph + policy pipeline (see 2.13 Robot / MotionGraph), not by AnimationComponent. Use animation for character meshes and other non-physics-driven rigs.