The design and implementation of an Open Source animation tool.

July 15, 2007

Pegs and Parents

In the editor pane, every object in a scene is shown with a "peg" attached to it that serves as a reliable way to grab hold of the object, as well as establishing the object's center for the purposes of scaling and rotation. Pegs can be linked together in a parent/child relationships, so that one peg's object (the child) will follow the motion of the other (the parent) so long as they are linked. This relationship is one-way, so that moving the child will not affect the parent.

These links are animatable and can change over the course of the scene, so that an object can be attached to a parent for a period of time before being detached again, or even handed off from one parent to another (an object may not have more than one parent at a time). Simply parenting or unparenting an object does not alter its position; it retains the same absolute position, rotation, and scale when it changes parents.

It should also be possible to create "null pegs" which haven't an object attached; these are useful mainly for moving groups of otherwise unrelated objects together for a period of time. While "null pegs" may sometimes be created explicitly, I expect they will usually be created implicitly: a transient null peg is created whenever multiple objects are selected; if it is manipulated, then it becomes permanent (as a child of the objects' nearest common ancestor, if there is one), and the objects in question are reparented to it. In the context of performance capture, the objects will resume their prior parentage after the last frame in the captured manipulation of the peg.

No comments: