0
$\begingroup$

Does anyone know how I can keep my model's feet from rotating around it's body in a 360-degree motion, as seen below? enter image description here My model's feet are suppose to swing back-and-forth in opposite directions of one another in order to create the appearance of walking.

I've attempted to add a Bone Constraint to see if it was possible to place a restriction on the feet's rotation on the model. Unfortunately, I haven't had much luck in trying to setup the Bone Constraint, as I can't seem figure out how to properly set up the Bone Constraint in a proper manner.

Any help, as always, would be greatly appreciated.

EDIT: I replaced the original Blend file with a new updated version.

Blend file download:

$\endgroup$
1
1
$\begingroup$

Sorry, I see a lot of mess in your file, some of the problems: objects don't have loc, rot and scale applied; some objects are parented one to another, you have three different rigs for a single simple character, bones are set to quaternion while animation is on Euler, and so on .....

There is no need of constraints, I think you should get a better understanding of the rigging principles and then start again from scratch.

As usual, there are many methods to reach yout goal, I'll try to illustrate one of them: in this method we don't use vertex groups: every object is directly parented to a bone of a single armature, and the 5 objects stitch together thanks to the armature parent ties.

  • After the end of modelling process, you have 5 objects: body, foot.L, foot.R, and the two eyes (after applying the mirror modifier).

  • Unparent (Alt+P) every object one to another, then move and rotate them to their rest position (it can be feets right under the body, in central position)

  • Select one object and apply (Ctrl+A) location, rotation and scale, so that every object has his origin in 0,0,0 location, 0,0,0 rotation and 1,1,1 scale

  • Create a new rig with one bone for the body, one bone for the leg.L and one for the leg.R (in your example there is no need for the other four "feets" bones), then, in edit mode, select (in this order) leg.L, leg.R and body bones, <Ctrl+P> and choose "Keep offset" option.

  • In pose mode select a bone and choose "Euler XYZ" option in the Nproperties tab; do the same with the others 2 bones.

  • Go to pose mode, select leg.L bone, go to object bone, select the foot.L, shift select the leg.L bone, press Ctrl+P and choose "Bone" option: in this way the whole foot.L object will follow all movements of the the leg.L bone.

  • do the same with foot.R and body (shift select eyes, body and body bone, in this latter case)

  • If you move (in pose mode) the body bone, the body object will follow it, and so will do the feets, because leg bones are parented to body bone and feets objects are parented to leg bones.

  • to program a basic walk cycle go to frame one, rotate the two leg bones in contact position (one forward and one backward), then select all bones and press I and choose rotation option. Go to frame 41 and press i again. go to frame 11 and select all bones press Alt+R to reset the rotation of the bones, then pressi I. Go to frame 31 and press I again. Go to frame 21 and set the legs rotation to the inverted contact position (one backward, the other forward).

Set the cycle from 1 to 40 and GO!

In this way the cycle will be:

  • 1 contact
  • 11 passing
  • 21 inverted contact
  • 31 passing
  • 41 (1 again) contact

If you repeat the cycle, you can then animate the location of the body (which, as seen, will move the whole character).

Good luck and keep it on, I also had lots of headaches in understanding rigging, search Nathan Vegdahl free you tube tutorials for deep understanding of advanced rigging.

$\endgroup$
8
  • $\begingroup$ Thanks for going to all that effort for the write-up on how to improve my animation rig. Everything is now working properly, except for one small issue: I can't bend the feet on the model in order to give it a more natural-looking walking animation. This was the reason that I originally included the extra feet bones as a part of the main "leg" bone. I tried adding the extra feet bones back onto the model via extruding from the "leg" bone, but for some reason the extruded bones are not attached to the foot mesh itself, resulting in the foot bones not doing anything when I try to move them. $\endgroup$ – user35500 Sep 18 '17 at 4:55
  • $\begingroup$ If you want a mesh deformation my method doesn' work: if two or more bones control a single mesh (foot), you must use vertex groups. The method is that a bone will control all vertices that belong to a vertex group with the same name, according to the "weight" of each vertex (0.0 means no movements, 1.0 is complete control). Vertices that are assigned and weighted to two or more vertex groups will be controlled by both bones, ensuring a smooth transition. For a standard rigging, join all objects together, then select the character, shift select the rig, Ctrl P, choose "Automatic weights" $\endgroup$ – josh sanfelici Sep 18 '17 at 6:08
  • $\begingroup$ After playing around with the model some more, I've come to the conclusion that I have no idea what I'm doing. By fiddling around with some of the settings, I managed to get the feet able to swing back and forth around the body, with the feet also able to bend. However, there's a problem where the feet aren't rotating from the main body joint, instead the feet appear to be rotating around the 3D cursor for some bizarre reason. There's some severe mesh deformation with ramp-like spikes protruding from the feet mesh as I rotate the feet. $\endgroup$ – user35500 Sep 18 '17 at 17:15
  • $\begingroup$ Not helping matters is the fact that I'm not entirely clear on the whole vertex groups and weighting. I attached each bone to a Bone Group, but I'm not sure if that has anything to do with what you're talking about. As far as I can tell, vertex groups seem to be the same thing as individual bones, judging by the fact that the list of vertex groups is the same as the individual bones. All I'm trying to do is to get the feet to move back and forth without any deformation of the main body's mesh, while the feet themselves bend as it walks for a more natural-looking stride. $\endgroup$ – user35500 Sep 18 '17 at 19:19
  • $\begingroup$ I uploaded a new version of the Blend file with a more up to date model. I'm not sure if that'll help any way, but I figure its worth a shot. $\endgroup$ – user35500 Sep 18 '17 at 19:21
0
$\begingroup$

TO restrict any rotation in any axis, press shift and the axis you dont need. For example, if you dont want to do it in the x-axis, then press shift + X. Kapish?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.