AI animation
Buril's animation pipeline ships in three layers, from purely local OSS to fully cloud-driven. You pick the layer per task — there's no lock-in.
The three layers
| Layer | Cost | Quality | Latency | Best for |
|---|---|---|---|---|
| L1. Local OSS | $0 | Decent for stylized / NPC | Seconds | Background animation, NPC reactions, prototypes |
| L2. Cascadeur bridge | Cascadeur subscription | Hand-author + AI assist | Minutes | Hero animation, exact timing control |
| L3. Cloud (DeepMotion / Move.ai) | Per-clip credits | Best mocap-quality | Minutes-hours | Photoreal characters, action set-pieces |
You compose freely. A common production pattern is L3 for the main hero arc, L2 for facial/idle refinements, L1 for background NPC chatter.
L1 — Local OSS pipeline
The local pipeline strings together absorbed OSS components into a deterministic animation generator. Tool family: animation_ai_local_*.
Components:
- Motion priors — small (~50 MB) priors trained on locomotion data, packaged as ONNX models that run via Unity Sentis.
- Mixamo-style retarget — bone-mapping shim that retargets generic clips onto an arbitrary Humanoid rig.
- Procedural overlays — breathing, weight shift, gaze follow. Composable on top of any base clip.
A typical call:
Generate a 2-second idle for the Player avatar, with a slight head-turn toward the camera.
The animation-author specialist runs:
animation_ai_local_pick_prior --motion idleanimation_ai_local_sample --duration 2.0 --seed 42animation_ai_local_overlay_gaze --target cameraanimation_ai_local_retarget --target_rig Player.HumanoidAvataranimation_clip_save --path Assets/Animations/Player_Idle_001.anim
Total time: 5-15 seconds. Cost: $0.
The local priors live at Library/BurilCache/animation_priors/ and download on first use (~200 MB total).
L2 — Cascadeur bridge
When you need exact control plus AI fill, use the Cascadeur bridge. See Cascadeur bridge for the full setup; the relevant headline:
Push the Player rig to Cascadeur, set the running cycle preset, run AI keyframes,
and bring back a 1-second clip into Assets/Animations/Player_Run.anim.
Requires a Cascadeur Indie+ subscription for the cascadeur_keyframe_run step.
L3 — Cloud providers
Two cloud providers are wired in 1.0:
DeepMotion (text-to-mocap)
animation_cloud_deepmotion_generate
prompt: "Character performs a running dive forward and rolls to a kneel"
duration: 2.5
rig: Humanoid
Returns an FBX clip. Pay-per-credit. You wire your DeepMotion key in Settings → Providers → DeepMotion.
Move.ai (video → mocap)
animation_cloud_move_ai_from_video
video_path: /tmp/reference.mp4
output_format: humanoid_fbx
Returns an FBX clip retargeted onto a Humanoid rig. Useful for ingesting reference performances into the engine. Pay-per-credit.
Combining layers
The studio handles cross-layer composition. Example:
Generate a 5-second action clip: cloud-driven body motion (DeepMotion), AI-keyframed
arm flourishes (Cascadeur), local procedural breathing overlay throughout.
The animation-author specialist plans:
- L3 → DeepMotion call for the body trunk.
- L2 → Cascadeur for arm keyframes layered on top.
- L1 → procedural breathing overlay across the full 5 seconds.
- Merge via Unity's Animator layer system.
Lipsync
Lipsync is a separate concern from body animation — see Voice & lipsync for the dedicated pipeline (ElevenLabs + Audio2Face + uLipSync).
Quality tips
- Always retarget to your specific rig before saving. Generic Humanoid retargets work but lose subtle proportions. The
animation_clip_validatetool will warn if a clip looks generic. - Use Animator layers, not Mecanim Blend Trees, for combining sources. Layers preserve each source's intent; blend trees mix everything into mush.
- Cache cloud outputs.
animation_cloud_*tools deduplicate identical prompts viaLibrary/BurilCache/animation_cloud/. Same prompt + same seed → cached result returned instantly, no API charge.
Common issues
| Symptom | Fix |
|---|---|
| Clip plays at the wrong speed | Frame rate mismatch. Set target_fps explicitly in the tool call. |
| Hands clip through body | Retarget bone offset issue. Run animation_clip_validate --auto-fix-hand-ik. |
| Facial doesn't drive | L1 doesn't include facial AI. Use the lipsync pipeline or hand-author. |
| DeepMotion auth error | Key not set, or quota exhausted. Check your DeepMotion dashboard. |
Read next
- Cascadeur bridge — L2 details.
- Voice & lipsync — facial animation pipeline.