Automatisation With Constraint
The last part to get something workable, is to group all bones under controler and sub-controler, so when you want to animate the arm for example, you don’t have to move each single bone.
you can get the starting blend file (same as final weight paint file) here.
Some technical knowledge first:
We will put ik solver constraint all over the place in two minutes. To know how it was designed to work is a good idea. If you remember we builded a “T” shape with bones named as “null_” or “ik_”. the null bone is the holder of the solver, the one you will add an ik solver constraint to it. It as to be part of the chain(the ik button). Ik bones are target of the previous ik solver. So if you see a setup like that:
the solver would go on the last bone of the chain, here 3_up_Finger.L and the target would be the little one nowhere, here ik_up_Finger.L. Sometime the ik or null bone will not have an “ik_” or “null_” name, but usualy we know what will do what. For example here: the “3_” bones of all Fingers are holder of ik solver and “ik_”, the target of each.
Reminder: to add a constraint to a rig: go in pose mode and select a bone then go in object button (F7KEY) and in the constraint panel select ik solver. you have to enter the armature’s name then the bone’s name. If the title turn red you did an eror when typing the name(Check for Caps!) or the target is parented higher than the solver in the chain.
Also don’t forget to do both side of the rig for bone named .L or .R. We can’t morrir the constraint, sadly.
First we will do the big controler:
-Pelvis
-ik_Back
-ik_Arm.L
-ik_Arm.R
-ik_Heel.L
-ik_Heel.R
Note there is no ik_Foot. This is because the foot use sub-controler(ik_Heel and ik_Toes) parented to ik_Foot so when you move ik_Foot you move both sub-controler who move the rest with the ik solver.
-Pelvis:
Nothing to do! All the surrounding chains are parented to it. So they will move if you move it.
-ik_back:
This is the target of a solver you will put in the back chain. The nearest will be okay. Like here i’m gonna put the constraint on bone 4_Back.
-ik_Arm:
The target of the solver of the arm. if we keep this “T” shape in mind. the logical place to but the constraint would be on the “Hand” bone and the target: ik_arm.
-ik_Heel:
ik_Heel is the target and null_leg is the holder of the constraint. Always refering to this “T” shape.
Ok the easy part is done. Now we have to do all the Finger one by one. The “3_” bone of each finger is an holder and the “ik_” one, the target.
The Foot & toes:
This is a bit weird to do, but ease the animation of a foot(when a character walk on the toes for instance). First the “Foot” bone is not moved by anything. We need it to point to the heel and at the same time the toes. But we can’t parent it to the rest of the leg because the ik of the toes would influence all the leg too. So we break the chain without the dependancy by setting a copy location constraint on the Foot, targeting the “null_Leg” bone. And to force the Foot bone to look at the toes, we will give an ik solver to the child of Foot: “null_Foot”, (done to hold an ik solver) targeting the “ik_toes” bone.
And last thing: the toes need to follow the foot but not to rotate with it. so as seen previously with the Foot bone, a simple copy location will do the job, targeting “null_Foot”
Some quick fix:
this is good and working. but if you tried the finger, the move of the ik bones is a bit odd:
they are moving everywhere but no following the chain. giving unknow result when moved. This is because these bone are parented to the chain itself so when you move the ik bone, the chain move, which move all the children, so you move the ik_bone two time more far than it should.
The best way to fix it is by parenting all the “3_” bones to the Hand bone. this way your safe.
To get a more stable rig you can add an other bone with an ik solver to pull the join the good way. Without, it’s easy to get such result:
Select the join between upper_arm and lower_arm and extrude a bone. Select the bone and move it back enough. Name it an easy name such as ik_upper_Arm.#.
Do the same for the leg but on the other side, naturally.
Go in pose mode and put an ik solver on the bone parent to the target (the “ik_” bone), There the solver would be put on the 4 bone with a name starting with “lower_” like lower_arm and lower_leg. So it give something like a “T” shape again.
You can get the Final blend file here.
And you’r done.
This was how to rig a character in blender 2.36.
Gabio