In working with Capt. Blender (see sig) I ran into some problems with bone roll angles. I did some experimenting with them to try and figure them out. I’m not there yet, but I’ll be doing some more experimentation and posting the results here.
Knee Joint with good deformation of calf and hamstrings. Created in top view. Notice how nicely the Bone Axes line up: X axes pointing in the x direction, Y axes pointing along the length of the bone, and Z axes pointing forward or up.
Vertex Group assignments for Shin, Shin.Fan and Thigh, and the Shin.Fan constraint panel. Also shows bones in rest position. Only one problem: the root is at the bottom.
Here is a nice workable knee joint. It uses the same Vertex Groups and bone names as the previous example, but in this case the root is at the top of the thigh bone, which would normally be the case. Notice the z directions are now up and backwards, instead of forwards.
The only thing consistant here is that the x axes all point in the x direction. This makes sense, since this joint rotates around the x axis.
I’m supposing this might be a general principle, that the bone axes corresponding to the axis of rotation point along that axis, but I’m not sure yet how this would apply to something like an elbow, which rotates around x when the arms are down, but rotates around z when the arms are held shoulder height palms down, and rotate around y when the palms are up. Maybe (hopefully) this only applies to the rest position, although it would be quite a trick to make the rotation of the hand affect the rotation axis of the elbow.
This type of fan bone joint should work for hinge joints: the knee, knuckles, ankles (to a certain degree, ankles can rotate, too) and toes. It might work for the elbow, assuming the joint rotation around the bone’s length (bone y axis) can be handled properly.re