Class 3 - Week 10 - Two Point Constraint System

Let's start this post with a scenario.

An old man with a cane is walking back home after a pleasant stroll,
when he notices that the neighbor's pesky kids are rampaging through
his yard again. He hobbles as quickly as he can towards them, shaking
and swinging his cane in the air, and telling them to get off his lawn.

A simple enough scene, but how would we set that up? We could
constrain the cane to the hand, making it much easier to get nice
clean arcs in the arm and in the cane swing, but every contact with
the ground will need to be continually counter animated as any change
in the body (if you're in Fk), arm, or hand will cause the cane tip
to slide on the ground.

That sounds quite tedious. So, how about moving the pivot point of
the cane and constraining the hand to the handle? This will make
walking with the cane a snap as you can easily plant it without any
fear of counter animating. But what's this? Now when we try to get
nice arcs, drag, or overlap in the arm and cane swing, it has become
a veritable nightmare as you are animating backwards.

Instead of going from the root of the action outwards (hips, torso,
arm, hand, cane), you're having to animate the cane before the arm
or hand, which means a lot of going back and forth making sure
everything is turning out right. Plus, you'll be stuck leaving the
arm in Ik mode, which, depending on your workflow, might be quite
a hassle. And once again, if you need any minor changes done to the
arc of the arm afterwards, be prepared for quite a bit of counter animating.

Luckily for us, this is where a 2 point constraint system comes in.
While not the easiest thing to set up initially, it will give you the
best of both worlds, allowing you to pivot the cane from the ground
easily, then switching the control to the hand later, making it a
breeze to get you're arcs the way you want them in either Ik or Fk.

Before starting, make sure you have your character and stick
ready and get the hand in the pose you need it to be on the
stick. You can always change it afterwards but it's a bit more
of a hassle to do later on.

For this setup, I will only be using Parent Constraining and
Parenting throughout. I prefer not to use Point and Orient
constraints as they can give odd rotations at times.

Also, keep in mind that when you are constraining an object,
you need to select the parent then the child. On the other
hand, when you are Parenting an object, select the child
first then the parent. Parenting can be done by simply
hitting the P key.

Let's start with setting up the system that will allow the
hand to control the cane. (Fair warning, there will be quite
a few locators in these steps.)

  1. Create a locator and name it FingerConstraint (keep
    in mind that when naming an object in Maya, you cannot use
    spaces in the name).
  2. Place it on the finger control curve (the ball at the
    tip of the fingers). The exact position doesn't really
  3. Parent constrain the locator to the finger controls.
    Make sure Maintain offset is checked in the constraint
  4. Create another locator and name it
  5. Place the locator at the handle of the stick.
  6. Parent Constrain the stick to the StickHandleConstraint
  7. Finally, Parent StickHandleConstraint to

Now let's set up the system that will give us the power to
pivot the stick in place! It's important to make sure that
you don't move the stick during this entire process. If you
do move it, undo the movement to put it back in it's original
position. Moving things now could cause them to not line up
properly later.

  1. Create a locator. Name it StickPivotConstraint.
  2. Place it at the tip of the stick. This placement has to
    be fairly exact as you want to make sure the stick pivots
    from the very tip and not a spot higher or lower.
  3. If the stick you are using is made of polygons, with the
    move tool active, you can hold down the V key and
    middle-mouse-drag over the tip of the stick to snap the
    locator to the end of it.
  4. Constrain the stick to StickPivotConstraint.
  5. Create another locator and name it IkWristConstraint
  6. Move it to the Ik wrist control. If your arm is in Fk
    mode, switch it to Ik first.
  7. Constrain the Ik Wrist to the IkWristConstraint
  8. Parent IkWristConstraint to

With all of that out of the way, it's time to set up a
switch attribute that will make things easier for us to
animate later on.

  1. Select the Finger Control Curve.
  2. Go to Modify > Add Attribute.
  3. Name the new attribute StickControl and set it as a
    Boolean (Boolean with give the attribute "on/off"
  4. Go to Animate > Set Driven Key > Set
  5. In the Set Driven Key window, load the Finger Control
    Curve as the driver and select the Stick Control attribute
    in the top right pane.
  6. Make sure Stick Control is set to off in the channel box.
  7. Select the stick and under the "parentConstraint1" node
    (it should be beneath the main attributes under a section
    called SHAPES in the Channel Box) and set the Stick Pivot
    Constraint to 0 and Stick Handle Constraint to 1
  8. With the stick still selected, open the Hypergraph which
    you can find Window and hit "Graph > Input and Output
  9. Select the parentConstraint1 node and load it as the
    Driven in the Set Driven Key window.
  10. Select the Stick Pivot Constraint attribute in the
    Set Driven Key window and hit key, then do the same with the
    Stick Handle Constraint attribute.
  11. Go back to the finger control and set the Stick Control
    to 1.
  12. Now back to the stick. Set Stick Pivot Constraint to 1
    and Stick Handle Constraint to 0.
  13. Key them both in the Set Driven Key window as you did before.
  14. Now select the Ik wrist control and place a key on it.
    This will create a blend parent attribute. By default, it
    will be set to 0. Set it to 1
  15. Load the Ik control as the driven.
  16. With the Stick Control still at 1, select the stick
    switch and blend parent 1 attributes in the Set Driven key
    window and hit Key.
  17. Set both Stick Switch and the blend parent to 0 and key
    them again.

And that should do it. You should now be able to just turn
the "Stick Control" attribute On or Off depending on how you
want to control your animation. Keep in mind that you will
still need to set the hand to Ik whenever you have the stick
pivoting on the ground. I had thought of making it automatic
but the potential headaches it could cause outweigh the

Hopefully that helps and if you want help going through it
or if something doesn't make sense, feel free to contact me
through AMConnect, Skype or by PM at any time.

No comments:

Post a Comment