Skip to content

Animations

A rigged character is only useful once something moves it. The API ships a catalog of 260 CC0 clips, and because rigs come back with Mixamo-compatible bone naming, most engines retarget them with no manual bone mapping.

Browsing and downloading clips is free. Applying one is where the cost sits, and it depends on who does the work: retargeting in your own engine costs nothing, while asking the API to bake a clip into the model is a server-side retarget billed at 10 credits ($0.10) per clip. See pricing.

Getting clips

GET /v1/animations lists the catalog; each entry carries a direct CDN url to a GLB.

bash
curl "https://api.cinevva.com/v1/animations?group=locomotion" \
  -H "Authorization: Bearer $CINEVVA_API_KEY"

Download the clips you need once and ship them with your project. They are CC0, so redistribution inside your game is explicitly allowed with no attribution.

Two ways to animate

Retarget in your engine (recommended, free). Download the rigged character and the clips separately, and let the engine map the clip onto the skeleton. Costs nothing, works for any number of clips, and lets you swap animations later without re-rigging.

Bake a clip into the rig (billed). Pass animation_url to POST /v1/rigs and we retarget the clip onto your character on our hardware and return a file with the motion in it. 10 credits per clip. Useful when your consumer cannot retarget, and the only option for non-humanoid rigs, which the humanoid catalog will not fit. Fast engine only.

Unity

Import the rigged FBX, set Rig → Animation Type → Humanoid, and Unity builds an Avatar from the bone names automatically. Import clips the same way, and any clip with a valid Avatar plays on any Humanoid character.

csharp
// With both character and clip imported as Humanoid, retargeting is implicit.
var animator = character.GetComponent<Animator>();
animator.runtimeAnimatorController = controller; // clips assigned in the controller

If Unity fails to build the Avatar, it is almost always because the model was rigged in a non-standard pose or the bone names were altered after export. Check Configure… to see which bone Unity could not place.

Unreal Engine

Import the rigged FBX as a Skeletal Mesh. For clips authored on a different skeleton, use the IK Retargeter: create an IK Rig for the source and target skeletons, then retarget the animation sequence. Since 5.4, retargeting between two humanoid skeletons is largely automatic once both IK Rigs exist.

Request output_format: "fbx" for Unreal; its glTF import path is far less complete.

Godot

Import the rigged GLB. Godot's SkeletonProfileHumanoid handles retargeting at import time for humanoid rigs: set Retarget → Bone Map and pick the humanoid profile.

Non-humanoid retargeting is still an open gap in Godot itself, so for creature rigs prefer baking a clip with animation_url at rig time.

three.js / Babylon

Load the rigged GLB, then apply clips from separately loaded GLBs. Since both share bone naming, AnimationMixer can play a clip authored elsewhere directly.

javascript
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'

const loader = new GLTFLoader()
const character = await loader.loadAsync('/goblin-rigged.glb')
const walk = await loader.loadAsync('/clips/walk.glb')

const mixer = new THREE.AnimationMixer(character.scene)
mixer.clipAction(walk.animations[0]).play()

// Drive the mixer from your render loop
renderer.setAnimationLoop((now) => {
  mixer.update(clock.getDelta())
  renderer.render(scene, camera)
})

Non-humanoid characters

The catalog is humanoid. A walk cycle authored for a biped will not retarget onto a wolf: the skeletons have different topology, not merely different proportions.

For creature rigs, bake a clip at rig time with animation_url, or author clips against the returned skeleton in your own DCC tool. We are working on a creature clip library; if that matters to your pipeline, tell us what you need so we prioritise the right body plans.

Root motion

Each catalog entry reports root_motion. Clips with root motion translate the character through the world; clips without animate in place and expect your controller to handle movement. Mixing the two without checking the flag produces characters that either moonwalk or drift away from their controller.