Walking horse + mini-tutorial

This is the final (final?) version of the walking horse.
The animation below is just a sample piece of the MPEG animation. [>] Download the 1.5Mb MPEG complete animation.

Below, there is a mini tutorial about the armature’s design. If you find any mistake (my english or any other) please send me a note and I will correct it. If you want a .blend copy of the armature send me a mail. (the site I’m using to hotlink the animation doesn’t allow other file formats)

[email protected]

TUTORIAL: Armature design for complex legs
The objective of this mini-tutorial is to show a design for complex leg armatures, such as the one is needed for 4 feet animals. The standard human leg armature is unusable for animals because animal legs have more than 2 bones between the back and the feet (or hoofs), so a simple ik_solver approach results in wired movements.

Let’s take a look to a horse’s walking cycle (front legs):
http://www.2and2.net/Uploads/Images/horse.gif
On the one hand, during the backward movement, the hoof moves straight because it is in touch with the floor, the leg is completely rigid, and the shoulder part has to compensate the relative movement beetwen the leg and the body.

On the other hand, during the forward movement the leg bents and the bones seem to be free so allowing the hoof to return (some inches over the floor) to its original position.

To achieve these behaviours, we need two different types of control: one that makes possible to move the whole leg without relative movement of the bones, and other one to handle the hoof and bend the intermediate bones of the leg.

This is the proposed armature:
http://www.2and2.net/Uploads/Images/armature1.jpg
The blue bones are the handling bones, these are the bones that can be draged (or rotated) to make the leg walk.

First, select the bone Hoof.L, and make it child of LegHadle.L
Make sure that Leg.L bone has the “IK Link to parent” button pressed

Then, put the armature in Posing-mode (Ctrl-Tab) and add the following constraints:

a) To the IK_Back, add an IK_Solver to the bone Back3
b) To the IK_Arm.L, add an IK_Solver to LegHandle.L
c) To the ForeArm.L, add an Copy Location to IK_Arm.L
d) To the IK_Cannon.L, add an IK_Solver to Hoof.L
e) To the IK_Leg.L, add an IK_Solver to LegHadle.L

Then, select the bone Hoof.L and drag it over the LegHandle.L bone. That’s it.

Now, it is the time to test our armature.

  1. Dragging the bone Back3 up and down you can simulate the movement of the animal’s back. Note that the backbone follows smoothly this movement, and the chest adjusts itself to allow the leg system to be rigid.

  2. Dragging the LegHadle.L right and left you can simulate the animal pace. Note that the leg remains rigid, and the hoof follows the movement without any rotation. In the walking cycle, this bone is supposed to go from the right end of the pace to the left end, and then return to the original position.

  3. Dragging and rotating the Hoof.L, you can simulate the forward movement of the walking cycle. If you drag the bone up, the leg bends preserving the position of the chest.

Nice sweet model and walkcycle, but the diagram a bit confusing could you overlay the mesh with it?

I have horses… and

I must say your walkcycle is okay, I’m going to point out a few problems

but first, horse legs are surprzingly thin. They are thinner than those.

okay, the problem I see, particularly with the rear hooves is that you have them rotate too much. particularly that you have them point back so far and almost point forward.

hooves hold up a horse like we would [had we had the strength] if we walked on outstretched fingers. They don’t rotate close to that much, and from what I remember don’t make them flat when they step on the ground, they step with the front first and as they put their weight on it the back goes down.

looking more, I don’t seem to understand the bump just forward of the hips moving up and down that much either.

whatever, it is probably better than I could do without rotoscoping.

[and this is more of a mini-tut on rigging than animation]

now, back on topic. You describe the way an IK rig is created pretty well.

This is great! I have never animated a quadruped before. This would also be great to test out with Harkymans crowd script.

And…

(not too sure) but I guess that horses and most quadri, walk with a crossed motion, ex: right front with left rear at the same time forward and so on…

Nice work
Bye

Nope, horses have more than one “style” of moving. (I’m struggling with english here :slight_smile: ). I don’t know the exact word, but
let’s call the first one step. 4 measures, in the order of it’s hoof touching ground: rear left, front-left, rear right, front right. (So exactly as he has done it)
second one: trotting: 2 measures: (rl+fr) - (rr+fl)
third one: pace: 2 measures: (rl + fl) - (rr+fr)
fourth one: (canter or gallop, though gallop means the previous one in Hungarian): 3 measures: rl - (rr+fl) - fr

Fonix Wircs:
I added the mesh to the armature design. I hope it helps.

z3r0 d:
Thanks very much for the comments. About the horse, the model was taken from a toy. it is supposed to be the one you find pulling a wagon, you know, short and thin legs. In spanish the name is “percheron”, I don’t know the english word.
That was my 3rd version of the walking cycle. The first one didn’t use IK_solvers. The sliding feet efect was very visible. The second time I tried to use simple IK_solver. The feet seem to be dancing without control. When I used this design the animation was much more easier. If you want a copy of the blender file, please send me a mail and I will share it.

OTO:
The animation follows a photo secuence taken from http://bowlingsite.mcf.com/Movement/HWalk.html

Thanks,
[email protected]

I’m always learning…and talking :slight_smile:

The fence bumps are a different size, so the fence pops into a different look after the animation ends.

Random

R2Blend:
the porpose of the animated GIF is just to undertand the horse’s walking cycle.
The real animation is the MPEG linked at the first line. I modified the post to make it clear.

Thanks.