How to lock a character's feet to the ground when the character moves?

Hi, I was wondering if anyone knows a simple way to lock a character’s feet into place so that when the character walks, his feet stay exactly where he steps on the ground. I know this can be done, otherwise all walk animations would look terrible, but I have not been able to figure out how to do this. If anyone can answer, I would greatly appreciate it.

Are you using an IK or FK chain to rig the limbs? If it’s IK then just leave the leg’s target bone on the ground - it will not move. Also do you have an overall “Master” bone in your rig?

Cheers, Clock.

I just used a simple rig… here is what it looks like:

I don’t even know what IK and FK is, I just used a simple rigging tutorial so I could have characters in my animation…

To do what you want - I think you need an IK chain, like in the file below:

skeleton-IK-Fixed.blend (562 KB)

Just press Play to see it all working. You can manipulate it by moving the IK bones, e.g. legIK.R. Have fun with it. Your rig does not have a master bone or any means of moving the feet, and having them stay still. It’s OK for simple animations, but walking around accurately is beyond its capabilities, I am afraid to have to say. Remember that in character rig Ik chains you must have the knees and ankles slightly bent so the IK chain knows which way to go. This was my first character rig - hence the neanderthal pose. :smiley:

When you get more advanced with your character rigging, you can start to use the “Rigify” add-on - it has stupendous capability.

Cheers, Clock.


Which tutorial did you use?

IK stands for Inverse Kinematics, FK stands for Forward Kinematics.

Your simple rig is using Forward Kinematics. One bones rotation affects the next bones rotation and placement in space. Example: If you move your upper arm bone, the lower arm bone will move with it.

An IK or inverse kinematics rig uses a target bone at the end of a bone chain. You rig does not have a hand bone, but if it did, you would generally use the hand as the IK target (or foot for an IK leg rig). Wherever you place your hand (or foot) the arm bones (or leg bones) would automatically move to that position. This way of rigging is useful for walk cycles, because you can “stick” a bone at a location and it will stay put, even if you move the torso. An FK rig will not stay put.

FK and IK both have advantages an disadvantages. Knowing when to use each is part of becoming a good animator.

Good luck!

Ok, thanks everyone for all your help. Could someone possibly link me to a tutorial on IK rigging? That would be great.

P.S. Would I be able to keep my current rig but update it with IK parent bones?

Humane Rigging- Nathan Vegdahl

I did one for aircraft undercarriages on my website, well two actually, the same principles apply to character rigs. Just place a bone at the end of the chain, add an IK Constraint to the bone before that one (the current last one in your leg chain) and set the chain length to the number of bones in either the leg or arm, both two in your case. IK chains MUST target the tail of a bone, this also enables you to move and place this target bone. The length and orientation of this bone is not important, but I suggest you make it obvious and reasonable to see and move.

Website is here: take a look and see if it helps you. As I said, the principles are the same, just the application slightly different - you should be able to relate the IK sections of these aircraft tutorials to the skeleton file I posted above.

Don’t forget the “Master Bone” on the floor! This makes moving the whole character much easier.

Good Luck, Clock.

First, you need a better rig, secondly, there is no “easy” way of moving a characters legs and having them stay in place if the character’s whole body is moving (like walking along a path.) Make an IK rig like most of the people here suggested, and when you animate your character, you have to go in and tweak the feet so that they appear to be in place when the character moves.

Thanks, guys! It works perfectly now!