Bone Roll Angles and Joint Deformations

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

Attachments


2 Likes

While experimenting with the simple joint in my previous post, I discovered a lot about how to use helper bones (fan bones, from some post I read somewhere) to control deformations, and about proper topology to make the best use of those bones. Here’s what I’ve got so far:




Using this rig.


It’s not perfect, expecially in the crotch area. I am looking at toloban’s crotch rig to see if I can incorporate some of his ideas into this rig. The feet will follow Tony Mullen’s Captain Blender rig, that worked well, especially with the action to make the foot pivot down on the heel and up from the ball of the foot.

To begin this investigation, I used the knee joint. The thigh section stands in for the hip or pelvis area, and the shin stands in for the thigh. I slanted the middle edge loop to mimic the slanted connection between the thigh and the hip.

The knee joint has a good deformation with a slanted fan vertex group, as the hip has between the thigh and the hip. The fan bone in this case is the Butt Fan, and there are two of them, so there will be two loops between the thigh and the hip, shown highlighted below. The topology should go all the way around the joint, and be assigned to the fan bones only.

Dealing with the inside fold: With a small gap between loops, the leg deforms more realistically. There is a crease and the “thigh” presses against the “hip.” The fan bone loop topology should narrow in front of the pelvis between the thigh and the hip, and grow wide as the two loops form the roundness of the buttocks.



Hey thanks for the insight man will try this out

Well, I added two Butt bones, to control the “big butt” when the thigh rotated forward. It seems to have helped. However, the Butt flattens out when the leg rotates backward. I may need to put a limit on the butt fan bones, to keep them from moving backwards along with the thigh to prevent this from happening.


The thigh/hip joint deformation has just gotten worse. I’ve tried several approaches, but none of them have worked. I’m not sure where to go from here, so I’m going to post the blend over in Animations to see if anyone has any ideas.


This is an excellent idea. Props and thanks!

Will you post the Wire Frame so I can see how you modeled the knee? THANKS!!!

Will you post the Wire Frame so I can see how you modeled the knee?

Sure.




In the front view you can see the vertex group for the right thigh and the left shin. The loop in between is controlled by the shin fan.

I’ve had little success with the hip joint, so I’ve been investigating jpbouza’s BlenRig stretchy bones. Starting again, with a simple knee joint, to figure out how the BlenRig setup works, and how to use the ideas in my Captain Blender rig.



Here is the basic set up, with one knee fan joint to maintain volume on the outside of the joint, and the stretchy bone placed on the inside of the joint to fix the awkward deformations on the inside of the joint.

The “stretchy bone” consists of three parts: the Knee Anchor bone, parented, but not connected, to the thigh bone, the Knee Target bone, parented, but not connected, to the shin bone, and the Knee Stretch bone itself, which is controlled by a copy location constraint on the Knee Anchor bone, and a stretch to constraint on the Knee Target bone.


This shows the Thigh and Shin vertex groups (I’m using Vertex groups rather than envelopes). Notice they overlap behind the knee. Both vertex groups are weight 1.000.


This is the knee fan vertex group. Weight also 1.000.


These two vertices are all that the Stretchy bone affects. Seems like a lot of work just to keep those two vertices from getting out of line. Still, those two vertices are the cause of the ugly deformations and loss of volume behind the knee when it bends, so I guess it’s worth it. The weight setting is low, only 0.400.


Here the knee is posed partly bent, and the volume in the joint is fairly well preserved.


This is a more extreme bend, and the model creases, however, real legs show similar creases when bent to this extent.

As far as the knee joint goes, the stretchy bone is a slight improvement over the earlier joint with only knee fan bones. However, in playing around with it (moving the Knee Anchor or Knee Target around) it seems to be a more flexible arrangement than the simple fan bone setup.

I was facing lot of problems with mesh deformation, I think now with your solution, my problem will solve.
Can you please make a small step by step tutorial with some sample blend file.?

Hi Orinoco!!

Good deformation!!

If you want to achieve less creasing, I think that you should work with a higher density model. This will give a lot more control over the deformation with weight painting.

Here´s an example of a cartooney character I´ve been rigging lately.

http://www.jpbouza.com.ar/downloads/lup.png

And here´s a much more complex work. This is BlenRig the Dwarf. As you can see, the bone setup is exactly the same as yours, maybe the bone location differs, but it´s basically the same.

See that there´s almost no creasing through the rotation. Finally, when Subsurf is applied the creasing becomes somehow realistic.

http://www.jpbouza.com.ar/downloads/ena.png

Wow!! sorry about the huge image size!!

No. If you don’t understand how to set this up, given the details I’ve already provided, you need to start doing some reading in the wiki. I am not going to rewrite documentation that is already available and easy to find.

Kkrawal, you can download BlenRig from www.jpbouza.com.ar. The Rig is based on stretchy bones, so there you can have an example on how to set things up.

Ah Hah!

work with a higher density model.

Thank you so much! :smiley:

Thanks Orinoco
for taking trouble.

Kkrawal, it was no trouble at all.

It was a refusal to hold your hand and put your fingers on the right keys to walk you through making a joint that bends with fewer deformations. It was excellent advice to you, that you start reading some of the basic documentation for Blender, and stop bugging people for “step by step” tutorials.

Have you any idea, and idea at all, how much time and effort is involved in writing up a “small step by step” tutorial. I think not, otherwise you would not have responded so sarcastically.

Your sarcastic little posts, by the way, which you seem to be in the habit of making, are not going to win you any friends, nor will they persuade people that you are someone deserving of help in the future.

If I were you, I’d think very carefully before I ever made another one. I would also think about what I could do to mend my relationships with the people I’ve already alienated by the sarcastic jabs I’ve made at people in the past.

Orinoco,
this information is really helpfull and I want to thank you for sharing. My question is, theres probably a good resource about Mesh deformations, etc or good Books/DVD from other packages/plataforms, is there anything like it available ? It would be great to read while @ Train going home after work :slight_smile:

I’ll keep a eye in this Post and a few more weeks from now, maybe I’ll try my own ideas to. I’m currently doing some basic excercises with Rigging. When Tony Mullen Book came out, I also had a few problems with Mesh deformation and realised how important were to study this theme.

Thanks

I did find some scholarly papers on the web about a year ago, not specific to any particular 3d program, that discussed deformations in general, and why they were such a problem. I don’t recall where I found them, or I’d provide a link. Other than jpbouza, who has provided links to his work on blen-rig, other people working in this area include Calvin, toloban and BlackBoe. toloban especially has done some outstanding work in rigging shoulder and hip joints.

I haven’t seen any good books on rigging. The Blender Summer of Documentation tutorial on rigging was never finished. Some riggers (including those mentioned above) have explanations of their rigs on their websites.

Anyway, if you find something out about rigging that’s not mentioned above, feel free to post it here. While I realize there is never going to be the “perfect” rig that works for everything, I’d like to collect information on why rigs are set up the way they are, to take some of the mystery out of it. Rigs shouldn’t be these delicately balanced tweaks that might fall apart at any moment, but should be solid and robust, with clear reasons behind the way they are put together.

1 Like

I have a question about this set-up. What type of constraint does the Knee Fan bone have? I gave it a Copy Rotation with the thigh as the BO but that causes the knee to twist 180 degrees after assigning verts to the knee fan bone. Where did I go wrong?

The knee fan bone should copy the rotation of the shin bone, not the thigh bone. Since both bones start in the same place, when the shin isn’t rotated, the knee fan isn’t either. The knee fan influence slider is set to .500, so it only rotates half as much as the shin.

I guess when the bones are lined up, the thigh bone is at a 180 degree angle to begin with, so constraining the knee fan to the thigh would give you the behaviour you describe.