Open Character Motion below the canvas or in Assets. A character is reusable artwork with bones, slots, attachments, skins and animation clips. Scene nodes hold independent instances.
Author a character
- Setup: create a character, import PNG layers, then arrange offsets and pivots. Cropped layers start at the root and need positioning. Add bones, choose parents, and attach images. Keep world pose refuses transforms that would introduce unsupported shear.
- Animate: create a clip, scrub local time and key a pose. Auto-key starts off. Each property channel has its own outgoing curve; select keys to copy, shift or scale timing. Collisions fail without replacing existing keys. Ghosting shows adjacent poses.
- Compose: choose the instance skin, place clips on scene time, set speed, fades, weight and additive/override blending. Bone masks include descendants; placements blend in list order.
Meshes and controls
Mesh tools create a regular grid, edit vertices/UVs and paint normalized weights with up to four influences. Linked skin variants share source geometry. Deformation channels specify topology version; changing topology while incompatible keys remain is rejected. Clipping supports up to eight masks, including inverse masks. Sequence attachments choose images at their authored FPS.
Constraints include one/two-bone IK, transform, cubic paths, spring physics and pose sliders. Physics uses fixed 1/120-second steps for repeatable seeks. A zero-scale parent cannot be inverted. Setup and animation poses stay separate; project undo and revision checks protect saved edits.
Agents and proposals
Document v2 adds characters while v1 remains readable. Old clients cannot save v1 over a v2 project. Discover operations through the live schema. Use inspect_motion in MCP, dsa motion PROJECT_ID --node NODE_ID --time 1, or GET /api/projects/PROJECT_ID/motion.
Generation mode motion returns validated operations and a preview document with baseRevision and baseBriefRevision. Apply only after review, using the returned document revision and expectedBriefRevision on document PUT. A stale document or brief returns 409; re-read before generating again.
Export
Native motion ZIP contains the editable document, manifest and bundled player. Import this ZIP through Character Motion to copy rigs and images into the current project. Imports validate bounded ZIP/JSON and never execute bundled scripts. It is a Studio format; Spine/PSD and game-engine adapters are not supported. HTML and React retain the native player. PNG sequence and spritesheet exports contain actual PNGs and a frame manifest; set start/end/FPS. The end boundary is exclusive, limited to 300 frames and 64 megapixels total. Imported assets are embedded; portable packages reject remote media.
Video retains the existing 60-second limit and encoder requirements. WebGL renders interactive characters; Canvas2D handles multiply blending and is the fallback, with the same pose/mesh evaluator. SVG is a static vector/texture representation and may be slower for dense meshes.