Transformations and Hierarchies

 
 
 

Transformations are propagated down 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.

Basics of Transforming Hierarchies

Objects in hierarchies behave differently when they transformed depending on certain conditions.

By default, a child object follows it parent when the parent is transformed if any of the following conditions are true:

  • The object has animation on the corresponding local transformation parameters. This is because animation on the local transformations is stored relative to the parent's center — when the transform values are updated to their animated values, the child snaps into its correct place in relation to its parent.

  • The ChldComp (Child Transform Compensation) option is off on the Constrain panel. See Child Transform Compensation.

  • The parent is branch-selected.

A child does not follow the parent if all of the following conditions are true:

  • The parent is node-selected.

  • ChldComp is on.

  • The child does not have animation on the corresponding local transformation parameters. 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.

You can change the default behavior by deactivating the parent constraint. See Parent Constraint.

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

Child Transform Compensation

The ChldComp option on the Constrain panel controls what happens to unanimated children if an object is node-selected and transformed. This is the same as the Constrain Child Transform Compensation menu item.

  • If this option is on, the children are not visibly affected. Their local transformations are compensated so that they maintain the same global position, orientation, and size.

  • If this option is off, all children with an active parent constraint follow the parent. You cannot move the parent without moving its children.

Child Transform Compensation does not affect what happens when a child has local animation on the corresponding transformation parameters or when the parent is branch-selected.

Parent Constraint

The settings on the Options tab of the SRT [Properties Reference] control how an object inherits transformations from its parents.

Activating and Deactivating Transformation Inheritance

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

You can also use the Position, Orientation, and Scaling options to turn inheritance on or off for translation, rotation, or scaling individually.

Controlling How Position Is Affected

When the parent of an object is scaled or rotated, the object's position can be affected.

  • The Affected by Orientation option on the Options tab of the Local Transform property editor changes the object's position when its parent or ancestor is rotated. When this option is on, the descendant orbits like a geosynchronous satellite that stays over a fixed spot on the earth as the earth rotates. When it is off, the descendant spins around its own center when an ancestor is rotated.

  • Affected by Scaling changes the object's position when its parent or ancestor is scaled. When this option is on, the object moves away from or towards its parent in global space as the units of distance (in which its relative position in local space is measured) change size. When this option is off, the child scales with its parent but its center does not move.