Locking the Feet's Rotation

 
 
 

When actors go around a curve or a corner, especially a sharp one as in the image below, you may notice that their feet slide a bit to the side (the X direction). To prevent this shifting, you can constrain (lock) the orientation of the actor's feet.

For best results, you should lock the feet when the actors are in a walk cycle because the feet are in contact with the ground for the longest amount of time, as compared to running. You need to find the frames in the walk cycle in which the actor's feet are on the ground and then lock the rotation of the feet for the duration of each foot's cycle.

To lock the feet's rotation:

  1. Make sure that the deformers are parented correctly in the rig proxy for constraining the feet (and legs) - see Modifying the Actor's Rig.
  2. Move to any frame in the timeline where the actors are in their walk cycle in the crowd simulation.

  3. In the simulation point cloud's Skeleton Simulation ICE tree, get a Crowd Lock Feet Constraint compound and plug it into an ICETree port below Set Locomotion.

    If you're using the Crowd Stride Control constraint in conjunction with this constraint, plug this constraint below the Crowd Stride Control compound so that the stride length is calculated first.

    Note

    You can also use this compound in another ICE tree in the Simulation region and put it above the tree that contains Set Locomotion.

  4. Open the Crowd Lock Feet Constraint compound's property editor and specify the rig proxy deformers to use for the Left and Right legs as described in Constraining the Legs to the Ground.

  5. Set the Root Direction and Knee Direction to the deformer's local axis that is pointing toward its children, as described in Constraining the Legs to the Ground.

  6. Set the Animation Cycle Index value to match the Pose ID of the action source you want to use for locking the feet, such as the walking action which is usually Pose State ID 1. You can find out the action source's Pose State ID value from the Pose State compounds, usually inside the Set Locomotion compound.

  7. For each foot, you need to set the frame range in which you want to lock its rotation when the foot is on the ground with the Lock Start End Range values.

    To help figure out what these frames are in the walk cycle, plug a Get Current Frame in Cycle compound into a port on the ICETree node in the Simulation region. This lets you see the current frame of the cycle relative to its original animation source.

    Note

    You could also check the frames of animation in the action source using the Get Actor Pose compound as described in Testing the Animation in an Action Source.

  8. In the Get Current Frame in Cycle compound, set the Cycle Index value to match the Animation Cycle Index value in the constraint compound, and select the Show option to see the frame numbers on each actor in the viewport.

  9. Go to a frame in the simulation where either foot is at its first frame of full contact with the ground: this frame is the Left/Right Foot Frame In value (in the Crowd Lock Feet Constraint compound) for that foot.

    In this image, the right foot is just fully on the ground at approximately frame 29 in the walk cycle.

  10. Do the same thing for either foot when it is behind the body and is at its last frame before the heel starts to lift up: this frame is the Left/Right Foot Frame Out value for that foot.

    In this image, the right heel is still in full contact with the floor and is just about to lift up at approximately frame 9 in the walk cycle.

  11. Set the Blending Frames Out value to the number of frames over which to blend between the constrained and unconstrained foot positions. This prevents the feet from popping after they reach the frame defined by the Left/Right Foot Frame Out value.