This is the english translation of the second part of a rigging tutorial I wrote.
Hand and palm rig
Hands have much more freedom in movement than legs but fortunately they do not need an animation system for "sticking" to ground and rolling over heel like legs do. Thus we can use simpler rig here.
First we create handles that determine the location and direction of palms.
In
Edit Mode select the palm bone of left hand and make a copy of it (
Shift-D). Because the original is mirrored the copy will be mirrored too. Rename the new bones to
IK_Hand_L ja
IK_Hand_R.
NB! The new bones are coincident with the original ones thus to select them it may be necessary to right-click two times.
|
Palm handle in Edit Mode |
The new bones are connected to forearm as are hands. We want to make them children of chest and not connected to parent's endpoint so that they move together with upper body but allow us to move them individually as well.
Select
IK_Hand_L, confirm that the
Connected checkbox is disabled and chose chest bone on the
Parent field. Repeat the same procedure with the handle of right hand.
|
Bone properties panel for IK_Hand_L |
Now change the shape of handles to something more intuitive, for example flat box roughly the same shape as hand.
|
The shape of palm handle |
Like the one of leg the
IK chain of hand needs an additional handle that determines the direction of elbow. We create it as a child of hand
IK handle
IK_Hand_L/R.
In
Edit Mode select the endpoint of
IK_Hand_L and create mirrored bones (
Shift-E) extending backwards. Rename these new bones to
IK_Elbow_L ja
IK_Elbow_R.
|
Creating IK_Elbow_L |
Give them some intuitive shape (for example the same as knee targets), switch off
Connected checkbox on
Bone Properties panel and them move these to about 1m behind elbows.
|
IK_Elbow_L location |
Now select the left forearm in
Pose Mode and add
Inverse Kinematic constraint to it.
Chose
IK_Hand_L as target and
IK_Elbow_L as
Pole Target. The length of the cain is two bones. Although shoulder has to move together with the arm, it does not animate well if attached to the
IK chain. Thus we will animate it manually.
If the elbow will twist to unnatural direction change the
Pole Angle value (-90, 90 or 180 degrees) so that elbow would point to
IK_Elbow_L.
|
Arm IK chain properties |
Select the palm handle and drag it around. Hand should move along with it trying to keep the wrist at the starting point of palm.
Create similar same
IK constraint for the right arm.
Next we have to make a hand to follow not only the location but also the rotation of
IK_Hand_L/R so it can be turned easily by turning the handle.
Select the bone of the left palm, add
Copy Rotation constraint to it and select
IK_Hand_L as target bone.
|
Copy Rotation constraint of the left hand |
Confirm that if the handle is rotated the palm rotates along.
|
Positioning arm and hand by IK handle |
Add a similar constraint to the right palm.
The rig of arms is now complete.
Notice that the elbow targets
IK_Elbow_L/R move together with palms. In most "normal" arm positions it places elbows quite naturally but time to time we have to adjust it by hand to position elbows the correct way.
Finger rig
Animating all finger bones individually is hard and time-consuming. In most situations fingers do not move separately but bend together into fist of if grabbing objects. To make creating such animations easier we add
Copy Rotation constraint to all finger bones.
Select the second bone of left index finger and add
Copy Rotation constraint to it. Select the first finger bone as target. Enable the
Offset checkbox so it can rotated individually if needed. At last select
Local Space from both coordinate system field (
Space).
|
Finger constraint panel |
Add similar constraint to the third bone choosing the second as target.
Confirm that if the first bone of the index finger is turned the whole finger curls.
|
Bending of rigged finger |
NB! For the finger bones to turn naturally the same local coordinate system axes (either
X or
Z) have to be aligned with the anatomical rotation axis for all finger bones.
Repeat the same procedure for other fingers and thumbs.
Now there is an easy method to curl fingers individually. In real animations all fingers of the same hand usually move together. To simplify such movement we create helper bone that bends all fingers together.
In
Edit Mode select the end of the left hand bone and create mirrored bones (
Shift-E) extending upwards from the hand at right angle. Rename these to
IK_Fingers_L and
IK_Fingers_R. Adjust the
Roll field at
Bone Properties panel so that the local
X axis of it is aligned with the
X axes of the finger bones.
|
Finger handle |
Give a more intuitive shape to the new bone, for example a flattened box.
|
Finger handle shape |
Now add
Copy Rotation constraint to the first bones of all fingers using the new bone (
IK_Fingers_L/R) as the target. Like for finger bones enable
Offset checkbox and chose
Local Space for both coordinate systems.
|
Finger handle constraint panel |
Confirm now that by rotating IK_Fingers_L/R the hand bends into fist.
|
The action of finger handle |
The hand rig is now complete.
Upper body rig
Normally the bones of upper body (backbone and chest) do not bend individually. Also neck and head tend to bend together with upper body. For animation rig we make chest and neck to copy the rotation of backbone but keep head separate.
Select chest and add Copy Rotation constraint to it. Select backbone as target, enable Offset and chose Local Space on both coordinate system fields.
|
Chest constraint panel |
Add similar Copy Rotation constraint to neck selecting chest as target.
Confirm that by bending or turning backbone the whole upper body bends. Because Offset is enabled we are able to move chest and neck individually as well.
The upper body rig is now complete.
Eyes
Animating eyes by hand is hard because even slightest difference between the movement of left and right eye makes character squint. To make it easier we add additional bone and make it to be the target that the character looks at. We create it as a child of
Base so that even if we change the body position (either by
COG, backbone or head) eyes will always look at the same point.
In
Edit Mode select the end of
Base and create a new bone. Disable
Connected checkbox and rename it to
IK_Eyes.
Move it to about 1,5m in front of and 20 cm below eyes. Give it a more intuitive shape (for example the same as knee handles).
|
The placement of IK_Eyes |
Now select the bone of left eye and add
Track To constraint to it. Chose the new bone(
IK_Eyes) as the target. Because eyes are normally symmetrical we do not need to set up direction (default global
Z will work).
|
Eye constraint panel |
Add similar constraint to the right eye.
Confirm that by moving
IK_Eyes the character looks at it (it should work also if we bring the target closer to face).
The eye rig is now complete.
Finalizing
Move all rig handles to separate skeleton layer.
- Movement
- Base
- IK_Foot_L/R
- IK_Toe_L/R
- IK_Knee_L/R
- IK_Hand_L/R
- IK_Elbow_L/R
- IK_Fingers_L/R
- IK_Eyes_L/R
All skeletal bones (the ones associated wit the mesh by weights) should go to another layer. Helper bones that are never animated directly go also to separate layer.
In addition to
IK handles we will animate the following skeletal bones:
- Pelvis
- Backbone
- Chest and Neck (if needed)
- Shoulders
- Individual finger bones (if needed)
- Head
- Jaw
Try to move all abovementioned bones and confirm that the character moves as expected.
The simple animation rig is now complete.