Rigging a Character
Let start with a simple character and try to apply a relatively easy yet performant rig on it.
to do so we will go through the following steps:
-Building the armature and name bones
-Create Vertex group and name them.
-parenting the armature with the mesh.
-Fine tune the vertex groups with weight paint.
-Create automated stuff with constraint.
i’m using this character.
Evily based on nozzy’s one. But started from scratch:
*Building the armature and name bones
Ok, first enable the named drawing in edit window (F9KEY). So you can follow the name easily.
Add a bone under the character named Root. This bone will be the Parent of all chain’s root and single bones. This is done to make sure if you want to move the entire armature, you just have to move one bone(ie when your character walk). This could be done in object mode with keyframe on the armature object. but then you can’t store this animation in action window as action only record bones, better stick with bones in animation if you can.
Add control bone.
It’s important to add controls points where all the chain is gonna be animated from (thanks to IK solver!). So add some at key position like foot, pelvis, neck and arms. From now on we will keep in mind to build only one side of the armature the left one, as the rightone will be a copy-paste.
When adding control point, don’t forget to parent it to the Root bone, without IK(the IK button) and name it. Also dont forget to put them unskinnabe.
Also take note of the name conventions. The names is made of the name of bone followed with a "" and then the name of the chain it is part of. Next you get the side of the armature, mean if you are working on the left part (.L or .Left) or the right part (.R or .Right). This side convention is usefull. cause it let you work on one side of the armature and then copy the left part on the right part and vis versa (animation or bone).
Also these bones(and some other like null or ik) must be set to unskinnable(under the name feild in edit window) as this will save us some job when parenting the armature to the mesh. Because doing so will not assigne vertice to these bone as they are not part of the rig to move the topology, but to move the rig itself!)
So here you would get:
-Pelvis (it’s in the middle and is the root of the chain, so a simple name.)
-ik_Back(it’s in the middle and is part of the “Back” chain, his name is “ik”.)
-ik_arm.L(It’s on the left side and is part of the “Arm” chain, his name is “ik”)
-ik.Foot.L(For the Foot…)
We will build the chain of the Back and Head now.
Starting from the Pelvis bone, add a bone at the root of “Pelvis” and extrude bone along the back up to the head, following the topology so it will deform nicely, puting the edgeloop in the middle of each bone:
give then name such as 1_back up to the neck. The bone in the neck should be named Neck_back (though Neck could do the job too, I’m just applying the convention, i have to show the example you know…) Also the bone in the head should be Named Head_back.
Don’t forget to parent 1_Back to the Pelvis bone. so when you move the Pelvis, the Back chain will move along.
Next we add the chain or the arm.
start by adding a bone in the shoulder next to the root of 4_back. add 2 bones along the arm at the following place on the picture. End on the control of the arm.
parent the root of this chain to the bone 4_Back. Name it Upper_Arm.L and lower_Arm.L
Next we will add the chain of the leg.
add a bone next to the Pelvis as in the following picture. Do a chain of 2 bones. Place correctly the tips of the bone so when the mesh will deform it will look ok. Also don’t forget to name it ok(the chain is named leg btw) and parent the first bone to the Pelvis.
The most easy is done. now we will create the two pieces of bones to work the hand and foot out. Imagine the hand and foot as a big module independant of the body. All you need to do is build it and ask the arm to follow the hand or the leg to follow the foot.
To do so, there is already good ref about that:
hand and foot as explained in the blender book:
Though i’m not gonna let you do that alone. Let’s see the logic behind this and the way it will work in our rig.
Ok we will Create the hand in itself is independant of the body when it come to animating (as the foot though) so you can more easily do poses. This is done via the controller bones we added. Let’s see what we can do:
extrude the bone of the arm in the hand. Name it Hand.L
Next add a bone at the root of all 3 fingers. Put 3 bones in each. because we need at least 3 bone to get a decent effect and we need room to place an ik solver. Name them as in the image. #_POS_Finger.L (POS is position, like lo-mid-up) and also extrude an other bone at the root of 3th bone to the front. No need to be big and all because it will be you ik target for the ik solver on bone #3. Make sure the ik button is not pressed for the target. Also dont forget to put them unskinnabe.
it should give you something like this:
see the following blend file for the rig as example.
A Complex system, the foot is. The explained methode is realy easy and funny to anim. And can be found in many rigs examples. The base principe is about moving stuff without moving something else. In this case we what to be able to move the entire foot via the controler. bu we also want to be able to move only the rear or front of it. With differend sub-controler who is following the foot controler who is following the Root bone.
so we start with the top of hierarchy:
-we already did the foot controler.
-There is two sub-controler: front and back.
-Then the bone of the foot is in the middle, giving it direction.
-Plus some minor bone used as iksolver holder and ik target.(as the “T” of bones we did for the fingers.
From the doc we can understand the “how it work” very well. Let’s do it:
Extrude a bone from the last bone of the leg(lower_Leg.L). Name it null_Leg.L and make sure ik button is on. Re extrude from the same bone. Name it Ik_Heel.L and make sure ik button is off, parent it to the bone “ik_Foot.L” so this sub controler will follow the controller of the foot. The null bone will be the holder of the ik solver but will not be part of the rig to animate. and the Ik we added will be the target, and one of the two sub-controller to play with. Also dont forget to put them unskinnabe.
Next: extrude a bone from one of the 3 bone we just worked with so it give an “X” shape. This bone will do the entire Foot up to the toes. Name it Foot.L and remove the parent it might have. This bone will be alone, pointing to 2 targets at the same time. Then extrude up from the Foot.L boneand name it null_Foot.L. The holder of the ik solver. Make sure ik button is ok(I’m still saying this! just keep in mind when you extrude a bone it keep the ik on). re extrude down from Foot.L. Name it “ik.Toes.L” as this will be the target. Don’t fogret to set ik off (Though when you extrude in the middle of a chain the ik button is off by default. cool hein). Also parent it to ik_Foot.L as this is the other sub-controller. Also dont forget to put them unskinnabe.
Extrude to the front a bone from Foot.L. Name it “toes_Foot.L” and remove ik and parent it to Root bone.
It should look like this:
So now we have an entire side of our rig ready to be attached to the mesh. Though one side is not enough, we will need copy it on the other side, redo the name from .L to .R and put the right parent. ouf!
But we got a soluton!
Go here and copy the script you will find at the end of this page in a text file you will name renamator.py:
With the help of this script. we will be able to rename the end of the bone’s name.
Start by editing your armature. Select all the bone ending by a .L: the Arm, Hand, finger, leg and foot. Go in front view and do a shift-d. place it on the other side or the character. maintaining the CTRLKEY to make sure you are on a know scale. Press MKEY to flip the bones on the x axe. Now try placing it at the same place as the other half is using the CTRL key and maybe the shift key and ctrl key at the same time for fine tune. Now. you will find that all the name you placed will have .001 instead of .L and this will scrap all the cool stuff we could do with flippose when animating.
Now load the script in a text window and press ALT-P. YOu will by facing a simple interface where you can choose which par tof the name you want to edit, the old suffix you want to replace (Here it’s 001) and the new one we want to put instead®. Also put the name of the Armature you are working on. Now say “Change it!” and boom! all the name will be ok. Quit the script and close the text window.
The blend file with the complete Armature.
-Create Vertex group and name them.
-parenting the armature with the mesh.