Curving bones
The funny part of making a toon style rig is that we are allowed to add all kind of weird stuff and exaggerated deformations. But rig toons are challenging as well. One common problem is how to “bend” our characters as they were made out of rubber ? Among the many possible solutions to this problem the one that I’m going to explain I found the easiest and faster to set up.
The system is based on the deformation of a mesh deformer by using an armature with B-bones. It can be applied to legs, arms or even the spine of a character so I’m going to explain it on a generic limb, but we can think of it as a thigh for instance. It won’t really matter.
I’d like to thank Alambrito here who has kindly lent me his left leg for me to play with. That’s a true friend ! !

In Edit Mode let’s duplicate the thigh bone and subdivide it in two bones. We must unparent and disconnect these resulting bones. We now switch the direction of the last bone in the chain so it points to the root of the thigh bone. We should have something like in the image here.
Each one of these we can rename them as we please, I have used the names “SDEF_thigh_down” and “SDEF_thigh_up”. In my own name system, the prefix SDEF means “secondary deformer”.
Precisely at the thigh middle point we will add a control bone, and name it “CA_SEC_thigh” (CA_SEC means secondary animation control).
The SDEF bones will work as B-Bones, so I set a value of Segments high enough, 16 or more would be OK. For now I don’t care about In and Out values.

Now a short discussion about B-Bones. B-Bones will look curved only in Pose Mode and only if their children are rotated. So we are going to add children to our SDEF bones. Ideally these children should be aligned to their parents. There are many ways to create aligned bones and I have explained these methods before in this same section.
In the screenshots I have hidden the upper side bones for clarity sake. I have named the SDEF children adding the word “tip” to the original names. If we now select these “tips” and rotate them, we will be able to see the “B-Bone” effect in the parent bone (as long as we set B-Bone in armature visualisation).
Obviously we can rotate the tip bones independently but what we need here is to set up a way both tips rotate to create a smooth and continuous curve together between the up and down set of bones as if it was a unique curve.
Let’s set up the control having this idea in mind. To begin with we need the SDEF bones to point at the place where we want the maximum of the curve. To get this, we select CA_SEC and then one of the SDEF parent bones and add a StretchTo constraint. Let’s do the same with the other SDEF parent bone. Now if we drag CA_SEC in Pose Mode, SDEF bones will stretch to reach there. To avoid the “tip” bones to be scaled up/down when stretching the parents, we can press the “S” button in bone settings for both tips.
If we select one of the tips and rotate in X or Z axis we will see how the parent bone is curved. Now we’ll try to get this effect when the CA_SEC bone is moved .
Let’s select CA_SEC and then one of the tip bones and add a Transformation constraint.
In SDEF_thigh_tip_up bone, the desired effect is that when we traslate CA_SEC forward (Y axis in Normal coordinates) it rotates backwards (this is a rotation around Z Normal axis).
In the Transformation constraint we will fill in these values, in this case we will set limits for Y Location -1.0 and 1.0 in the first column, and then we will tell Blender to map the Y Location value to the Z Rotation coordinate in the second column ( Y->Z option in the third combo box corresponding to Z coordinate). A mapping value for rotation around -25 degrees and +25 degrees would be enough but we can change this later if we want more or less curvature.
In same way we want that when the control is traslated in Z normal axis (to the left and the right) the tip bone was rotated around its X normal axis. So we will fill in Location Z values limits -1.0 and 1.0 and then choose mapping Z->X with inverted values, say +25 and -25 degrees in order to get the right curvature.
We have to repeat this for the Transformation constraint in SDEF_thigh_tip_down bone and we are done. If my explanations suck, you can always check this SAMPLE BLENDFILE. In the blend, all control bones are in bonelayer 1 and the remaining bones are in bonelayer2.
For this set to work when we rotate the entire thigh in either IK or FK mode, we need to parent the SDEF_thigh_up, SDEF_thigh_down, and CA_SEC bones to the original “thigh” bone. Normally all these bones will be in a hidden bonelayer, while the CA_SEC bone can be in bonelayer where all secondary deformation controls are stored.
Now that the rig is ready we can focus a bit on the deformation part. Either case we use a mesh deformer or we use these bones to deform the character mesh directly, we must deactivate the “Deform” option of all bones excepting SDEF_thigh_up and SDEF_thigh_down bones.
Curve shape is very customizable, by choosing different values for In and Out for the SDEF bones bbone settings we can get different shapes.
Well, that’s it, hope you find this useful. Seeya !

January 19th, 2009 at 8:51 am
Hello, Malfeico, very nice solution. I remember Bassam`s BlenderConf 2007 video here he presented his own solution of bending bones. (PS: I post a comment with a little question also in your previous FK - IK thread.)