Forward Moving Run Cycle Tutorial

(Using "Adam")

In this tutorial, we'll go through the basic steps to produce a stationary run cycle.  Unlike the walk cycle tutorial, Adam will actually move forward in 3D space.  We will be taking advantage of the expressions that move Adam's root as the legs move.  Keep in mind that if you choose to do your run with Mira or Earl, the root will have to be animated by hand.

Differences between a walk and a run

The differences between the walk and run outlined below are described in the book, Cartoon Animation by Preston Blair.  There are many differences, but the following are the most notable:

  1. The position of the back foot in the contact position (when the front heel hits the ground) determines the speed.  In the walk, the back foot is still touching the ground.  In the run, the back foot has already left the ground when the front foot contacts.
  2. In a run, the body leans forward more.
  3. The arms swing conversely with the legs as in the walk, however the arms and legs are in their maximum stretched position when the character is in midair at the high point of the action.  In the walk, this happens in the contact position.

We will illustrate the differences as we progress through the tutorial. 

As in the walk cycle, we will start with a side view.

We will take a similar approach as was used in the walk cycle tutorial.  The cycle will last 1 second, we will start by animating the legs, then the torso, hips, arms, and head.

Animating the legs/feet

In order to make positioning the legs easier, we'll move the ROOTCONS down a bit. 

Select the ROOTCONS and move it down about 4 units.

Now we can move the legs with a better idea of how the knees will be bent.

At frame 1, move the LFOOTCONS forward in Z about 33 units.  We'll go ahead and add the foot rotation now too (about -25 degrees about the X-axis).  Set keyframes for the translation and rotation of the foot control.

Now select the RFOOTCONS and move it up (positive Y)  about 20 units, and back (negative Z) about 7 units.  Rotate the foot control about 60 degrees about the X axis, and set keyframes for frame 1. 

This pose will be our "contact position".  Note that the back foot is off the ground as the front foot is making contact.  Examine the difference between the foot positions between the walk and run at the point of contact.

       

Now we will start to see the advantage of the expressions set up on Adam's controls.  

Go to frame 3 and select and move the RFOOTCONS forward about 25 units (The translate Z value should be around 22), up about 5 units, and rotated about X another 60 degrees. 

We also want the front foot to lay flat at this point.  Rotate the LFOOTCONS back to zero.  Set keyframes.

Notice that as you move the right foot forward, Adam's body is moving forward as well.  If you are using a different character than Adam to create your run, you will have to move the ROOTCONS manually.  We will continue animating the legs in this "pose to pose" manner. 

Go to frame 6, and set keyframes for the RFOOTCONS about 5 units down, 26 units forward, and rotated -60 degrees about X relative to it's prior position. 

The next pose will be at frame 9.  Position the RFOOTCONS at about (0, 20, 77) and with a rotate value of -9 about the X axis.  Set keyframes.  Also set a keyframe on the LFOOTCONS.

Go to frame 12.  Position the RFOOTCONS at about (0, 8 105), rotated -36 degrees about the X-axis.  Set keyframes.  Next, select the LFOOTCONS and position it at (0, 31, 48) rotated about the X-axis 59 degrees.  Set keyframes.

At frame 15, position the RFOOTCONS at (0, 0, 110) rotated -36 degrees about the X-axis and the LFOOTCONS at (0, 20, 68) rotated 60 degrees about the X-axis.  Set keyframes.  We are once again in our contact position with the opposite foot forward. 

Scrub through your animation, if there is anything you feel should be changed, now is a good time to do it.  Are you happy with the positions of the legs?  Are the steps too big?  Once you've got the legs as you like them for frames 1 - 15, repeat the above steps, adding the appropriate values to Adam's feet, for frames 16-30 to complete the cycle. 

Remember to check your function curves for overshoot in the Graph Editor if the feet are sliding, or rotating/translating through the floor.

Here is an example of what the animation looks like at this point.  Funny.

Animating the ROOTCONS

As in the walk cycle, Adam's body is initially much too upright, and too far behind his front leg when it lays flat on the ground (this happens first at frame 3).

To fix this, let's move the ROOTCONS about 8 units forward, and rotated about the X-axis roughly 35 degrees.

Scrub through your animation.  Now Adam looks like he has some direction and intent.  Eventually, we'll be animating the rotation of the TORSOCONS similarly to how we did in the walk cycle.  But first we'll animate the vertical motion of the root, so that we can easily apply follow-through to the torso rotation.

Animating the Root's Vertical Motion

Adam reaches his low point when his front foot hits flat on the ground, much like in the walk.  The high point is when the legs are most outstretched (and the arms are also most outstretched as noted above).

The front foot makes full contact first at frame 3.  Go there and translate the ROOTCONS down to -8.  Set a keyframe.

The high point happens at about frame 11, when Adam's legs are outstretched.  Go to frame 11, and set a keyframe for the ROOTCONS translated up about 12 units from its last position.

Repeat the two steps above for the next low and high point.  Determine the proper value of the ROOTCONS translate Y value for the beginning and end frames as you did in the walk cycle.  Set keyframes for those times.

Scrub through the animation, and make sure you're happy with the amount that Adam moves up and down. 

Here is an example of what the animation looks like at this point.

Animating the Hips

Just like in the walk cycle, we need to animate the hips to coordinate with the legs. 

As before, when Adam's weight is distributed onto one leg, the opposite hip drops.  At about frame 3 is where we first want to have this hip rotation at it's maximum. 

Go to frame 3, and rotate the HIPSCONS about the Z-axis approximately -15 degrees.  Set a keyframe.    We want Adam's hips to be in this position until his left foot leaves the ground, so set a keyframe for the HIPSCONS with the same Z-rotation at frame 8 (just before Adam's left foot leaves the ground).

When both of Adam's feet leave the ground, we want the hips to "level out" with regards to rotation about the Z-Axis.  So, at frame 11, where Adam is at his highest point, set a keyframe on the HIPSCONS with a value of 0 for the Z rotation.

Repeat these steps, rotating the hip the appropriate values about the Z-axis for the other foot plant.

We want to also add Y-rotations to the hips, such that when the front leg comes forward, the corresponding hip follows. 

Go to the frame where your character's legs are first most outstretched (frame 11, if you've been working with the tutorial's "exact" numbers).  Rotate the HIPSCONS about 15 degrees about the Y-axis and set a keyframe.

Repeat this step for when the other leg is forward and most outstretched, rotating the hips the opposite way.  Set keyframes for these times, as well as the first and last frames of your animation, with the appropriate values.

Here are examples for the animation so far from the Side, Front, and Top.

A Tip on Camera Movement:  For the previous "Top" playblast, the camera follows Adam such that he stays exactly in the center of the screen.  We accomplish this camera movement by point constraining a locator to the ROOTCONS, baking the simulation in to get the world coordinates of the ROOTCONS, and then copying the translate Z function curve from the resulting baked keys on the locator to the "Top" camera's Translate Z values.  The same function curve can be applied to the side view to move that camera as well, which we will be doing for the remainder of the playblasts.

Animating the Torso

Remember in the walk cycle that you animated the rotation of the TORSOCONS such that the upper body continued to rotate forward, even after Adam's root had already translated to it's lowest point.  You must again apply this follow-through, with the run.  Again, you can (and should) use the custom attributes to relax Adam's back a bit, and to make the run look more natural. 

Again, as in the walk cycle, you must animate the upper body rotations to counter balance the hip rotations.  Since you've done that in the walk cycle, we won't illustrate the steps here. 

Instead, here are examples of the animation after some animation has been applied to the torso:

Side, Front, and Top

Animating the Arms

The arms should reach their most outstretched position at the highest point of Adam's run.  This is the same point as his legs are the furthest outstretched.  Later, you may offset these slightly to reduce the "perfect" look.

The high point of Adam's run occurs first at frame 11.  Go to frame 11, and position Adam's arms at their most outstretched position.  In the example below the LHANDCONS is placed at (-19,-8,107) and the RHANDCONS is placed at (19,-4,70).  Set keyframes. 

Repeat this step for the other high point in the cycle.

Note: Don't forget that you should place the elbow controls and keyframe them as well. 

This is a good way to get the arms in their approximate positions for the other parts of the cycle.  Go to frame 19 (slightly after the front foot comes in full contact with the ground) and move the hands down.  In the example below, the left hand is positioned at (19 -19,126) and the right hand at (19,-24,129). 

Create a similar pose for the other low point in the run (around frame 4).  Set keyframes.

Now, use frame 15 to get a similar pose for the arms for the beginning and end frames.  The example below shows the pose created for the beginning pose.

The tricky part about the above step is that you have to match the end pose to the beginning pose exactly, in order for the run to cycle correctly.  The only attribute you really have to alter is the Translate Z value, because Adam is moving forward.  The easiest way to calculate this is to determine how far the feet have traveled in Z and add that to the translate Z value of the arms for the last pose.  You can use the same translation values for the elbow constraints, since they are parented under the wrist controls, you do not have to add the extra value to the Z translation.

Here are some examples of what the animation looks like at this point. 

Side, Front, and Top.

Head

As in the walk cycle, we want to again apply the principles of "follow-through" and "overlapping" to the head as well.  Depending on the attitude of your character and how focused he/she is on it's destination, you'll want some head bob.  This head movement should happen behind the torso X rotation as the front foot hits the ground.

You've already done this in the walk cycle.  Apply the same principles to the run.  Keep in mind that you may want to rotate the NECKCONS to counter balance the torso rotations.

Here are examples with head movement added.

Side, Front, and Top.

 

Things to keep in mind...

There are obvious problems with the animation thus far.  What this tutorial serves to do is give you a good foundation on which to apply your tweaks.  Some obvious are the leg and arm "pops".  These sudden jerks are distracting, and typically caused by cusps in function curves, or simply too little time between keyframes.  Adjust these by manipulating the function curves as you did in the walk cycle. What follows is a brief description of tweaks made to the run cycle to produce the "tweaked" final animation.  Once again, this requires lots of iterations, lots of playblasts, and lots of patience.  The changes made to achieve the final animation include the following:

 

 

 

Tweaked run cycle: Front, Side, Top

Below are some images comparing the run cycle before and after the tweaks:

 

Cycling your animation

Cycling this animation is only slightly different than how you cycled the walk animation, because your character is moving forward in space.  The easiest way to cycle your animation is to open the Graph Editor as you did in the walk cycle, select the TOPCONS and everything below it in the Graph Editor (refer back to the walk cycle method for doing this).

Now, select Curves->Post Iinfinity->Cycle with Offset.

This will cycle your animation, while keeping your character moving forward.  If you want to see how the curves continue on into infinity, select View->Infinity.

If your animation isn't cycling correctly, this is a good way to figure out why.  Make sure you have the proper keyframes set for the beginning and end frames.  For example, if you forget to set a keyframe on a control for the last frame of your cycle, the curves will cycle from the last key you set, causing your animation to be off slightly.

That's it for the run.  Remember, lots of iterations are required for a good animation.  Also, be sure to get feedback from others.  Someone who hasn't been looking at your animation over and over while you've been animating can often spot something that you've overlooked.  Feedback is crucial!

Jason Ilano 09/2000