Animations
An animation is a package of its own (.anim): animations/walking.anim/ holds its document
(object.json: uid, name, loop, which is on by default, and clip {uid, path}) and its clip
(clip.glb: a skeleton and its animation). It is one item in the Project tree.
- New › Sakin › Animation makes the package. Its Design tab is its form: Name and Loop, with the clip's length and the bones it moves.
- Import Clip… brings in a
.glbthat has an animation, asclip.glbwith a new uid. - A clip binds to a model by bone names; fitting a clip to another skeleton (retargeting) is not there yet.
Packages are named for what they are for: human-walking.anim.
Characters link animations
A character keeps only the link: its document's animations list holds {name, animation},
where animation is the animation package's uid. Ten characters share one walking.anim, and a
package can move within the project without breaking the link. Animations are not placed, and are
not part of Import Model or the Inspector.
The Animation window
Animation (Sakin › Tool Windows; at the bottom, and it floats or moves to a window of its own as every tool window) follows the selected editor's package, as the Inspector does, and reads its animations from its document.
- On the left, the list: the name the character gives each animation, the package it plays, its length, "once" for those that do not loop; one that is missing from the project, or has no clip, is red.
- On the right, the selected animation's timeline, its name, and the package it plays (a click opens it).
- The chosen animation plays on the model in the package's Design tab from its start. Play / Pause goes on or holds it where it is; dragging the timeline goes to that moment and holds it; Rest Pose leaves the model in its bind pose. An animation that does not loop plays once and stops on its last moment.
- Add Animation… offers the project's
.animpackages in the selector, with their length, their loop and how many of the model's bones each moves. One without a clip, one that moves none of the model's bones, or one already linked shows with why, and cannot be chosen. The chosen one is linked under a name made from its own. - Remove Animation removes the link; the animation stays in the project.
Linking, removing, a name and the loop are each one undoable command; an empty name, or one another animation of the package has, is refused. When an animation package changes (its loop, a new clip), the characters linked to it show the change.
What plays is not part of the document; it is remembered per package while the project is open. The view skins the model on the processor, so clicks and bounds follow the pose. Only the package's own model plays: placements stay in their bind pose, and facial expressions (morph targets) do not play yet.