Walking in Graphs

Table of contents:

Terminology

1. Pelvic movements

2. Foot movements

 


Terminology

Gait cycle is the time between successive foot contacts of the same limbs. Thus, one gait cycle begins when the reference foot contacts the ground and ends with subsequent floor contact of the same foot.

Step length is the distance between the heel contact point of one foot and that of the other foot.

Stride length is the distance between the successive heel contact points of the same foot. Normally, stride length = 2 x step length.

Cadence is the rate at which a person walk, expressed in steps per minute. The average cadence is 100 - 115 steps/min. Thus, if you let your character take 10 steps in 156 to 180 frames (using 30 frames/sec), the character's cadence is within a normal range.

 


1. Pelvic movements

Recurring pelvic movements. Vertical and lateral displacements of pelvis, pelvic rotation, and pelvic tilt are recurring movements of the pelvis. The graphs of the attributes that realize the cyclic pelvic movements (in our case, Local Control's Translate Y, Translate X, Rotate Y, and Rotate Z) should look like sine or cosine curves.

Recurring pelvic moment Local Control's attribute to key
Vertical displacement of pelvis Translate Y
Lateral displacement of pelvis Translate X
Pelvic rotation Rotate Y
Pelvic tilt
 
Rotate Z

 

Relationships among the recurring pelvic movements. Look at the graph (screen capture) and diagrams below and see the relationships among the recurring pelvic movements.

Important relationships among the recurring pelvic movements are summarized in the table below.

Cycle:
  • In one gait cycle, Translate X, Rotate Y, Rotate Z, and Back Twist complete ONE cycle.
  • In one gait cycle, Translate Y completes TWO cycles.
Back Twist vs. Rotate Y:
  • Back Twist rotates the shoulders in the opposite direction from the hips.
  • When Rotate Y is at a maximum value, Back Twist is at a minimum value.
  • When Rotate Y is at a minimum value, Back Twist is at a maximum value.
Phase shift between Rotate Y / Back Twist and Translate X / Rotate Z:
  • Rotate Y and Back Twist reach the maximum or minimum value in a double support phase.
  • Translate X and Rotate Z reach the maximum or minimum value in the middle of a single support phase when one leg is passing by the other.
  • Translate X and Rotate Z have a phase shift by 1/4 of a gait cycle (= 1/4 of two steps = 1/2 of a step) from Rotate Y and Back Twist.

in a double support phase

in the middle of a single support phase

Rotate Y (pelvic rotation)
Back Twis
t
reach maximum or minimum values go through 0
Translate X (lateral dispacement)
Rotate Z
(pelvic tilt)
go through 0 reach maximum or minimum values
Note:
  • Values of Translate X and Translate Y are scaled up in the screen capture above.

 


2. Foot movements

Foot translation. When the foot is in a swing phase (i.e., Translate Z is changing its value), the foot is moving above the ground (i.e., Translate Y > 0); When the foot is in a stance (support) phase (i.e., Translate Z is not changing its value), the foot is staying on the ground (i.e., Translate Y = 0).

 

Preventing feet from sliding

When a foot is in a stance phase, the location of the foot should not be changing. If a character is walking along the z-axis and if the character's right foot is in a stance phase, the curve of Translate Z of rightFootControl should be completely flat.

When a foot is in a swing phase, the location of the foot should be changing. If a character is walking along the positive z-axis and if the character's right foot is in a swing phase, the curve of Translate Z of rightFootControl should increase with ease-in and ease out.

Pay attention to the tangents in the screen capture above. They are flat. They allow the curve in the support phases to be flat and give ease-in and ease-out to the swing phases. The durations of support (stance) phases should be slightly longer than swing phases throughout a neutral walk animation.

 

Double support phase vs. Single support phase

Human walk has a double support phase in which the body weight is supported by both legs. See the screen capture below. It shows the z-translations of the right and left footControls together. The durations of stance phases are longer than swing phases throughout a neutral walk animation. The stance/swing ratio is 3:2 on average. As the walking speed increases, the swing phase gets longer and the stance phase gets shorter. In running the stance/swing ratio reverses and double support phases disappear.


See the diagram below. When a foot is in a swing phase the other should be in a single support phase. When a foot is in a stance phase, it goes through a double support phase, a single support phase, and another double support phase.

 

Creating double support phases

When keyframing a human walk, it would be a little bit complicated to key the foot positions if you tried to create equal step lengths, equal gait cycles, and double support phases at the same time. Start keying foot positions (Translate Z of FootControls) with no double support phases so that stance phases and swing phases have the same number of frames (Phase 1 in Workflow). And then create double support phases by making stance phases longer and swing phases shorter (Phase 2 in Workflow).

Z translation of the feet without double support phases. (Step 1 in Workflow)
Z translation of the feet with double support phases added. (Step 2 in Workflow)

Once you key stance and swing phases of equal lengths for both feet (Phase 1 in Workflow), there is an easy way to add double support phases (Phase 2 in Workflow):

  1. Shift-select both footControls and open Graph Editor.
  2. In Graph Editor, click on the left white pane to deselect all the attributes in the graph.
  3. Control-click Translate Z of leftFootContol and Translate Z of rightFootControl. Graphs of Translate Zs should appear.
  4. Type in "f" to frame the entire Translate Z's channels.
  5. Select all the keys for the startings of support phases.
  6. Type in "-=1" in Stats's left box. That moves back all the selected keys in time by one frame. (See the left screen capture below).
  7. Select all the keys for the endings of support phases.
  8. Type in "+=1" in Stats's left box. That moves forward all the selected keys in time by one frame. (See the right screen capture below).
Selecting and moving the supprt phases' starting keys.
Selecting and moving the support phases' ending keys.

Note: The left box of "Stats" shows the frame number of a key while the right box shows the attribute value of a kay, while . You can change the attribute values(s) and frame number(s) of key(s) by typing in numbers in the boxes.

 

Plantarflexion of foot and compliance of foot

When the foot is transiting from a stance phase to a swing phase, it pushes off the ground while rotating around the toes.

 

Dorsiflexion of foot

When the foot is transiting from a swing phase to a stance phase, it catches the weight of the falling body while rotating around the heel.

 

Timing for dorsiflexion and plantarflexion