Animating Transformations in Hierarchies

Transformations are propagated down through hierarchies. Each object’s local position is stored relative to its parent. It’s as if the parent’s center is the origin of the child’s world.

Objects in hierarchies behave differently when they transformed, depending on whether the objects are node-selected or branch-selected. By default:

• When you branch-select a parent object and animate its transformation, the animation is propagated to its children.

• When you node-select a parent and animate its transformation, its children are not transformed unless their respective local transformations are animated. For example, suppose the child’s local translation is animated but its rotation isn’t: if you translate the parent, the child follows; however if you rotate the parent, the child stays in place.

This is because animation on the local transformations is stored relative to the parent’s center. You can make unanimated children follow the parent with the Constrain > Child Transform Compensation command (or ChldComp button) on the Constrain panel (see Transformations and Hierarchies [ Transformations ]).

• When you animate a child object, its animation is always done relative to its parent (local animation).

• When you animate anything in global, it’s always done in relation to the world origin: it does not matter if your objects are in a hierarchy or not. Nothing is inherited if you have global transformation keys because they override any parent-to-child inheritance.

 

Chains are an exception because the end location of one element always determines the start location of the next one in the chain.

Changing the Animation Inheritance

By default, children follow the parent when branch-selected, but you can change all that.

The Active option on the Options page of the Local Transform property editor turns this parent constraint on or off. When this option is off, the object does not follow its parent when the parent is transformed (does not inherit its transformations), not even when the parent is branch-selected nor when Child Transform Compensation is off.

Keeping the Active option selected, you can also toggle the Constrain > Position, Orientation, and Scaling options to determine each one’s inheritance individually.

 

One reason to disconnect the inheritance is if you always want to animate an object globally. If you deselect the Active option, the global transformation parameters (instead of local) are marked automatically when you activate a transformation manipulation mode because the object does not inherit the parent’s transformations. Then it’s easy to key the global parameters immediately.

For example, you cannot key the global position or orientation of bones, but if you wish to animate a bone globally, you can prevent the bone from inheriting its parent’s position or rotation by deselecting the appropriate Constrain options (Position or Orientation).

Only the specific type of transformation that’s being affected is considered. For example, suppose the child’s local translation is animated but its rotation isn’t. If you translate the parent, the child follows; however if you rotate the parent, the child stays in place.



Autodesk Softimage v.7.5