Repository navigation
3.47.0
Procedural animation generators
Drive an animatable property from a formula instead of hand-set keyframes. A generator is layered on top of the existing animation, and you can bake it into ordinary keyframes when you're done.
| Generator | Parameters | Typical use |
|---|---|---|
| Sine | amplitude, frequency, phase, offset | hovering, breathing, swaying |
| Noise | amplitude, detail, octaves, seed | camera shake, weapon sway, flicker |
| Ramp | from, to, linear / smooth ease | fades, slow drifts |
| Spring | from, to, stiffness, damping | overshoot and settle |
| Follow path | points, closed, even speed, face along the path, loops | patrols, fly-throughs |
What it can drive: bone and node position, rotation and scale; morph-target weights; saved-pose weights; light intensity and colour; material colours and shininess.
- Layered: generators add to the base animation. Follow path is the exception: it replaces the position, and the rotation too when it's set to face along the path.
- Real keyframes: bone, node and morph generators are written into the actual animation track. Playback, scrubbing, the dope sheet and every exporter see the motion. A node generator creates a Generators clip, which appears in the Animations list.
- Mute puts the original keyframes back exactly.
- Bake turns a generator into ordinary keyframes and reports where they went. You can change a baked generator later: editing or re-enabling it un-bakes it, so you can adjust it and bake again.
- Undo: every operation is a single undo step.
- Saved with the asset: a
<file>.generators.jsonfile next to each export keeps generators editable after reopening, including under a new entity name.
Using it
- GUI: Animation mode → Mode Tools → Generators. The target defaults to the selected node. For a follow path, selecting the generator shows the path in the viewport; drag its points with the Select tool (Q).
- CLI:
qtmesh anim hero.fbx --generator sine --target "bone:*/mixamorig:Spine/rotation.z@Idle" --amplitude 8 --frequency 0.5 -o breathing.glb qtmesh anim drone.glb --generator follow-path --target "node:*/position" --points "0,2,0;4,2,0;4,2,4" --orient true --bake -o patrol.glb qtmesh anim model.glb --list-generators [--json] - MCP:
list_generators,add_generator,set_generator(parameters, mute,show_path),bake_generator,remove_generator.
The new default duration is 1 s. Set duration 0 to run until the end of the clip. See docs/ANIM_GENERATORS.md for the full guide.
Full changelog: 3.46.0...3.47.0