9

726 Chapter 13: reactor
arecompletelyfreetorotatearoundtheconstraint
pivot point, but have no linear freedom relative
to each other in any direc tion; they are attached
together at the point. However, with a Rag Doll
constraint, the objects not only have no linear
freedom, but their possible relative orientation is
also restricted.
In each constraint, these angular and linear limits
are defined in terms of the constraint’s coordinate
system or constraint space. Because a constraint
restricts the movement of its objects relative to
each other, a constraint also needs to maintain
a mapping from each object’s local space to the
constraint space. reactor lets you manipulate
the constrain t space in each object’s local space
separately, as you’ll see in the Working With
Constraint Spaces (page 2–726) sec tion.
Par ent s a nd Childr en
Each reactor constraint can have two objects:
a parent object and a child object. Although
two-bodied constraints actually restrict the
possible movement of both bodies, it is often
simpler to specify how one object is al lowed to
move relative to the other one, particularly when
you are using limits. With reactor, you specify how
thechildobjectcanmoverelativetotheparent.
For some constraints, it makes no difference which
object is the parent and which is the child. For
instance, if you use a Point-Point constraint to
attach two objects together at a common point, it
worksinexactlythesamewayregardlessofhow
you specify the attached objects.
However, with the more complex Rag Doll
constraint, which you typically use to model body
joints, it’s important to specify which object is the
parent. This is because this constraint lets you
specifyanumberoflimitsonhowthechildcan
move relative to the parent object. For example,
when you move your torso, your arm always moves
w ith it. So w hen modeling a shoulder joint, you
would specify that the torso object is the parent,
making the arm object the child. You can then
specify limits on the arm’s movement relative to
the torso.
When you constrain an object to a point in world
space rather than another objec t, the constrained
object is the child object and t here is no parent
object.
Wor k ing With Constra int S paces
For most constraints, by default the constraint
space is aligned with the child body. This means
that the constraint pivot/attachment point is
positioned at the child object’s pivot point, and the
constraint space takes its orientation from the child
body’s local space. The exceptions to this are the
constraints with two attachment points, Springs
and Stiff Springs, and the Point-Path constraint,
each of which has its own default alignment.
You can move the constraint space relative to
each of the bodies by going to the constraint’s
Parent Space or Child Space sub-object level in
the modifier stack, and then using the Move
and/or Rotate tools. The space will then maintain
its position and/or orientation relative to the
corresponding object during the simulation.
reactor also provides some quick shortcuts for
aligning constraint spaces, available with each
constraint. These are:
Align Spaces To Child B ody—This is the default
alignment for all constraints except Spring,
the Stiff Spring variant of Point-Point, and
Point-Path.
Align Spaces To Parent B ody—The constraint
spaceisalignedwiththeparentbody: The
pivot p oint is positioned at the parent bo dy’s
pivot point, and the constraint space takes its
orientation from t he parent object’s local space.
Align Spaces To Child Space—Aligns the parent
and child constraint spaces with the child’s