Animation¶
About 100 animations live in one shared assets/animation_library.blend, appended at runtime
and usable by every rig. Play any of them with character.actor.perform("<name>") (or the
idle/say/walk_to wrappers for the common ones).
Whole library verified
All 100 actions load, render, and play their full motion — a fast load-check
(animation_set.py) and a full-length render (animation_full.py) both pass 100/100.
Natural lengths vary widely — from ~1 s gestures to ~48 s (talking_on_phone) and 17–35 s
dances — so bound a shot with shot.clip(seconds) (note: perform(duration=…) is currently
ignored — see Known Issues). A representative pose per family is
below; the full list is in the Asset Catalogue.
Families (representative samples)¶
The full ~100-name list is in the Asset Catalogue.
Playing an animation¶
# in place (the gait cycle plays without translating)
a.actor.perform("running")
shot.mark_actor_has_action(a) # suppress the auto default-idle
# while speaking
bob.say("Victory!", action_name="cheering")
In place vs travelling
perform("walking") runs the gait without moving. To actually travel, use
walk_to/move_to (see Actors) — that adds root motion.
Locomotion whitelist
Only the gaits in LOCOMOTION_ANIMS (walks/runs) loop + repeat to cover distance. Other
actions play once.






