Looking at Positions, Objects, or Goals

 
 
 

You can constrain an axis of a deformer to always point in a certain direction as defined by a global position, an object, or an actor's goal. This axis of the constrained deformer always faces the defined target, thus affecting the deformer's orientation, the same as a typical direction constraint.

For example, you can constrain the actors' heads so that they all keep their eye on the ball at a tennis match, or have their arms constrained to point toward some object.

The hierarchy of the rig proxy matters when you want to constrain multiple deformers in a branch, such as an arm, leg, or the upper body. Make sure that the deformers are parented correctly in the rig proxy, then you can constrain the parent deformer to affect that branch. See Modifying the Actor's Rig for more information.

Looking at Objects or Positions

Using the Crowd Look At Constraint compound, you can constrain the orientation of a deformer in an actor's rig proxy to point at a position: this can be an object or simply a position in global space.

  1. In the simulation point cloud's Animation Definition node in the Animation_Blending ICE tree, get a Crowd Look At Constraint compound.

    TipYou can also create a new ICE Tree on top of Animation_Blending and connect the Crowd Look At Constraint compound to it. This means that the constraint will be applied after the animation blending has been done based on the different Animation States and is not only applied to a single Animation State.
  2. In a Get Data node, set the reference to the deformer you want to constrain.

    This is usually the head bone, but you can use any other deformer (including a parent deformer) such as the spine deformer to rotate the actor's torso.

    You can display the rig proxy as described in Modifying the Actor's Rig to help you find the correct deformer.

  3. Plug the Get Data node's Out Name output into the Proxy Deformer Name port of the Crowd Look At Constraint compound.

  4. If you are constraining a parent deformer, make sure that the Child Transform Compensation option is off in the Crowd Look At Constraint compound's property editor so that the child deformers are also affected by the constraint.

  5. In another Get Data node, specify the position that you want to use as the constrainer for the deformer. For example, you could set the global position for an object (for example, ball.kine.global.pos).

  6. Plug this node's Value output into the Target Position port of the Crowd Look At Constraint compound.

    If you want to simply use a global position with no object, enter the XYZ values as the Target Position in the constraint compound's property editor.

  7. Set the XYZ value for the Local Vector to the deformer's axis that you want to point to the target position.

  8. Connect the Execute output to the Pose Modifier port in the Define Animation State node.

    The Pose Modifier changes the prerecorded animation by changing the transformation values for single deformers.

    You can check to see which vector is axis forward this by selecting the deformer in the rig proxy in a 3D view and activating the Translate tool in Local mode. In the image below, the Z axis is used as the local vector.

Looking at a Goal

Using the Crowd Look At Goal compound, you can constrain the orientation of a deformer in an actor's rig proxy to point at the actor's current goal. This is usually a goal object, but it may also be an interim goal, such as a wall exit point.

In the image below, the actors initially turn their heads toward the first goal. After they pass within the goal's radius, they turn their heads toward the next goal.

The procedure for constraining a deformer to a goal is almost the same as for constraining to an object or position (see above), except that the actor's current goal is automatically used - there's no need to define it.

  1. In the simulation point cloud's Animation Definition node in the Animation_Blending ICE tree, get a Crowd Look At Goal compound.

  2. In a Get Data node, set the reference to the deformer you want to constrain.

    This is usually the head bone, but you can use any other deformer, including a parent deformer.

  3. Plug the Get Data node's Out Name output into the In Proxy Deformer Name port of the Crowd Look At Goal compound.

  4. If you are constraining a parent deformer, make sure that the Child Transform Compensation option is off in the Crowd Look At Goal compound's property editor so that the child deformers are also affected by the constraint.

  5. Set the XYZ value for the Local Vector to the deformer's axis that you want to point to the goal.

  6. You can also set a rotation limit for the deformer with the Max Angle, such as to prevent actors' heads from spinning completely around, unless this is something you want to do!

  7. Connect the Execute output to the Pose Modifier port in the Define Animation State node.

Creative Commons License Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License