Skip to main content

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 .glb that has an animation, as clip.glb with 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.

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 .anim packages 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.