For many motion graphics designers and animators, one of the most time-consuming and tedious tasks is the character walk cycle. Each character will react differently when rigged, and as such, there isn't really a fool proof method that works everytime. Some characters are prone to leg popping, others have exaggerated proportions that won't allow for a standard walk cycle.
I don't have a magic solution for that, but what I have figured out, is an incredibly quick method of getting a rigged character walking in just a few clicks. Before I go on though, I must stress that by no means is this a replacement for creating decent walk cycles, it mainly serves as a quick dirty fix to get a character walking fast, if time or budget is tight, or if you just struggle with walk cycles altogether.
Also, this tutorial assumes you know the basics of rigging a character using DUIK. If not, you can download it here, and you can find the tutorials for it here. It's an incredibly powerful plugin that I would recommend to anyone using After Effects, not just character animators.
Rig up your characters legs as normal using DUIK tools. This will create 2 Controller Nulls (let's call them both controllerNull) to manipulate the position of the legs. (Make sure the 'Auto-Stretch' check box for each Controller Null is switched off. It's important that the legs don't stretch for this technique to work).
Create a new Null (let's call it walkNull), and place it exactly half way between the controllerNulls. Then parent your controllersNulls to the walkNull.
Now Rotate the walkNull for the quickest walk cycle you've ever made. As you can see, the results aren't perfect, the blue leg is never further forward than it's vertical position, and the red leg is never further back than it's vertical position. This is because each controllerNull is rotating around a common centre that isn't quite correct for either leg.
If we position our legs on top of each other to create a full side angle character, you'll see that the technique works much better, this is because the controllerNulls can now orient a common centre that works for both legs.
Now that we have a working (side angle) walk cycle rig. Simply alter the scale of the walkNull to change the step size for your character, you can even bring it to a stand by scaling it down to 0%.
In order for this rig to work properly for our 3 quarter angle character, we now need to do some simple parenting. Firstly, you'll need to arrange the legs into their 'extreme' poses, (i.e. one leg fully extended forward, the other fully back), then duplicate the walkNull, so you now have one for each foot. Place the two walkNulls right over the rotation point for each leg (below).
Parent each controllerNull to their respective walkNulls. You can now rotate these independently to control each leg.
Create a new Null, and place it between the two walkNulls, we can call this masterNull. The masterNull will serve as a main driver for the rotation of the legs, and also their position along a surface later in this tutorial.
Alt-click on the rotation parameters of the two walkNulls, and pick-whip their value to the rotation value of the masterNull. This allows our masterNull to drive the rotation of each walkNull around their own axis simultaneously, not the axis of the masterNull. You'll notice this rig moves much more naturally than the rig we made in Step 3.
Now for some real magic. Pay attention as it gets a bit messy now. But with some simple scripting, we can drive the rotation of the legs by the position of our masterNull, eradicating that common 'foot slide' you often get when animating walk cycles.
Firstly, you need to duplicate the masterNull (let's call this positionNull), here you'll see I've enlarged it to distinguish from the original (below). Now you must parent the two walkNulls, the masterNull, and the pelvis shape to the positionNull. Finally, pick-whip the rotation parameter of the masterNull to the x-position of the positionNull.
The below animation consists of just 3 keyframes!
If the feet are sliding around a little, you can add a simple multiplier onto the end of the masterNulls rotation script. Speed it up by multiplying by a value greater than 1. Slow it down by multiplying by a value less than 1 (but greater than 0). Below I've added a *0.5 multiplier to slow the rotation of the feet.
And here (below) I've added a *2.0 multiplier to speed up the rotation of the feet.
Luckily the rotation speed was just about right at the default value, so I didn't need to use a multiplier.
Lastly, you can add secondary animation to this rig just like you would any other. As you can see below, for a little extra character, I added a simple up/down movement on the pelvis.
I hope you found this tutorial useful. If you liked it, please give it a share. I'll be doing many more in the future so subscribe in the box, and for any questions, fire away in the comment box below. Also, if you're stuck for inspiration for your motion graphics, check out my post on finding your inspiration.