Saturday 1 July 2017

CHARACTER RIGGING

Step 1 What is Character Rigging?

In 3d animation, character rigging means the process of preparing the character for animation. The idea is to use special helper objects and modifiers to prepare a set of tools that make the animating process as easy as possible. We’re going to rig the character by using the Morpher modifier for the facial animation and the Skin modifier (in conjunction with bones) for the rest of the body. In the picture below you see a character pose you can be easily do after completing this tutorial.
Character rigging in 3ds Max

Step 2 Facial Animation and Morpher

The Morpher modifier is commonly used for lip sync and facial animation. The Morpher modifier deforms the original object according to predefined target objects. The biggest task is the creation of the target objects ( morph targets ). The modifier itself is really simple to use.

Step 3 Creating Morph Targets

Let’s create the morph targets for our character:
  1. Go to the front viewport and clone the monster ( Press and hold SHIFT in keyboard and move the monster ). Make sure you make a normal copy ( not instance or reference). From now on we work on the copy.
  2. Remove Turbosmooth and both Unwrap UVW modifiers from the copy.
  3. Go to the Editable Poly or Edit Poly modifier ( Make a selection > Modify panel ) below the Symmetry modifier and activate the vertex sub-object level.
  4. Create a new facial expression like in picture below by moving vertices. You can freely move vertices around but make sure the vertex count stays the same at all times. If you add or remove even one vertex, it won’t work with the Morpher modifier ( Tip: Consider activating the polygon sub-object level and hiding part of the model to make it easier to select vertices around the mouth. If you hide the back of the model you don’t have to worry about accidentally selecting vertices there. )
  5. Give appropriate name for your morph target such as ‘mouth afraid’.
Morph target for facial animation
Now we have one morph target and that’s enough for the sake of this tutorial. If you are about to create some serious facial animation, you need more morph targets. Just create more copies from the original and create expressions like smile, amazement, blinking eyes and so on. It’s often a good idea to create separate targets for eyes and mouth and separate targets for the left and right side (like wink) as well to have maximum control over the expressions. The Morpher modifier lets you combine the expressions of several different morph targets.

Step 4 Using the Morpher Modifier to Animate Facial Expressions

Now select the original monster model and try the Morpher modifier:
  1. Apply the Morpher modifier ( Make a selection > Modify panel > Modifier List > Object-Space Modifiers > Morpher ) and move it just below the Turbosmooth modifier.
  2. Go to the ‘Channel List’ rollout and right-click on the first ‘- empty -‘ slot.
  3. Click on ‘Pick from Scene’ and then on the morph target (mouth afraid). Now the first morph channel is activated. Just use the spinner to morph between the original model and the morph target. If you modify the morph target, remember to reload it by clicking on ‘Reload All Morph Targets’ button.
Morpher modifier in character rigging
Tip: Turn ‘Use Limits’ off in the ‘Global Parameters’ rollout to go beyond the 0-100 range. Try for example negative values to get some interesting ( and maybe even useful ) results. Remember also that channel percentages can be mixed when you have multiple morph targets.

Step 5 Creating Bones for the Character Rig

While the Morpher modifier controls the facial expressions, the bones control the rest of the body. Let’s create the skeleton:
  • Turn the Turbosmooth modifier off ( to see the bones better )
  • Go to the front viewport and create three bones from top to bottom like in picture below ( Create panel > Systems > Bones ). When you have created three bones, just right-click to end the bone creation. Exiting the bone creation mode creates a small nub bone at the end of the chain, which will be used later with IK ( inverse kinematics ).
Now we have four bones that are linked to each other. The first bone is the parent of the second, the second is the parent of the third, and so on. If you move the first bone the whole chain follows. You can also double click on the parent to select it and all its children.
Leg bones in a character rig
Next we’re going to create bones for the spine and the head:
  • Create two new bones like in picture below. We’re not going to assign IK to the head and spine so delete the nub bone. Leave a little gap between the spine bone and first bone of the leg. ( We leave the gap to avoid linking the two bones in question. If we started creating the bones by clicking on an existing bone, they would be automatically linked.)
Spine bones in a rig
Open Bone Tools ( Animation > Bone Tools… ), activate the ‘Bone Edit Mode’ and move the spine bone to meet the first bone of the leg like in picture below. Close the Bone Tools.
Using Bone Tools to scale bones
Next we’ll create the arm bones. This time we want to link the arm bones to the spine so start creating the bones by clicking on the spine bone. Create four bones ( plus the nub bone) for the left arm like in picture below.
Arm bones in a character rig
Now we have all the bones we need and we just have to fit them inside the character. Go to the left viewport, select all the bones and move them to the center of the character. Rotate the bones like in picture below. Notice how the knee bends. We bend the bones now to make them work better with IK.
I wasn’t really sure how I should rig this weird monster character so I did the leg bones pretty much like I would for a human-like character (except for the fact that there is only one leg). You can also create two “legs” inside the monster if you want to make it “walk”. It all depends on how you want your character to move. Does it move by flying, jumping, crawling, walking, or by all these means?
Bones in 3ds Max
Go to the top viewport and rotate the arm bones so that they fit inside the character. Make sure the arm bends a little.
Aligning bones in 3ds Max
Select the whole arm by double clicking on the clavicle bone (the bone between the spine and the arm). Use the mirror tool ( The main toolbar > Mirror ) to make a mirrored copy of the arm ( make sure to make a standard copy, not instance or reference ). Position the new bones like in picture below.
Mirrored arm bones
We still have to link the right arm to the spine:
  1. Go to the front viewport
  2. Activate ‘Select and Link’ ( The main toolbar > Select and Link )
  3. Click and hold on right clavicle bone. Drag and release on top of the spine bone. ( To check that the linking was successful, select only the spine bone and try moving it. Both arms should follow. Undo the move. )
Linking bones
Now the skeleton is complete, but let’s create one more helper object to serve as a master that is used to move the whole skeleton. Create a dummy ( Create panel > Helpers > Dummy ) and position it exactly where the spine bone and the first leg bone meets. Check the position in both the left and front viewports.
Use the ‘Select and Link’ tool ( The main toolbar > Select and Link ) to link the spine bone and the first leg bone to the dummy. Now if you move the dummy, the whole skeleton should follow. Try this to make sure everything is ok and finally undo the move.
As a final step, link the eyes ( if you have them ) to the head bone. Now the eyes stay in place whenever the character moves.
Complete character rig

Step 6 Inverse Kinematics (IK)

Now the skeleton is complete and we go on with inverse kinematics. Inverse kinematics if often assigned in the character rigging process, especially for the legs. Let’s assign inverse kinematics to enhance our rig:
  1. Select the character, right-click on it, and click ‘Hide Selection’ in the menu. ( we hide the character to see the bones better )
  2. Go to the left viewport, select the first leg bone, activate HI solver ( Animation > IK Solvers> HI Solver ), and click on the nub bone of the leg. Now IK has been assigned to the leg and there is a new blue helper object in the end of the IK chain. The helper object is often called IK handle and is used to control the movement of the whole chain. Try to move it to see how it works ( undo the move afterwards ).
Assigning inverse kinematics to the leg
Next go to the front viewport and assign IK also for both arms. Make the IK chain from the first bone of the arm to the nub bone ( Don’t touch the clavicle bone ). Test how the arms work. They should work well in the top viewport.
IK HI solver in arm
Now all the IK solvers have been created. At the moment you can’t rotate individual bones in the IK chain. To be able to do that, select the IK handle, go to the motion panel, and click ‘Enabled’ in the IK Solver rollout. This is the on/off switch for inverse kinematics for the selected IK chain. This button can also be animated so the animator can easily switch between inverse kinematics and forward kinematics ( just rotating the bones in the chain) while animating the character. Leave it on for now.
As a final thing, try to move the green dummy to see how the character responds when inverse kinematics is in use ( undo afterwards ).

Step 7 Rotational Joint Limits

Next we’re going to enhance the rig even further to limit the rotational movement of the bones:
  1. Go to the left viewport and select the first leg bone
  2. Go to the Hierarchy panel and activate the ‘IK’ tab
  3. Go to the ‘Rotational Joint’ rollout.
  4. Deactivate the X Axis
  5. Deactivate the Z Axis
  6. Y Axis > To: 240
  7. Y Axis > From: 140( If these values don’t work in your case, try something different. Just click and hold on top of a spinner and move the mouse to easily try different values. The idea is to limit the bone’s movement without forcing it away from its original position. ‘Preferred’ should be between ‘From’ and ‘To’.)
  8. Y Axis > Limited: Yes
  9. Repeat steps 4-8 for the second leg bone, but use values: From: 0 To: 90
  10. Repeat steps 4-8 for the third leg bone, but use values: From: -140 To: -70
Now the leg bones can rotate only along Y axis and within limited range. Try to move the leg with the IK handle to see the difference. Now It’s up to you whether you want to set the limits for the arms as well or not. You might want to come back to this step after the skinning process to see the movement of the character while trying out different values.
Adjusting rotational joints

Step 8 Character Skinning / Vertex Weighting in 3ds Max

Character skinning is the process where we define how the model responds to the movement of the bones. We’ll use the Skin modifier for that purpose. Let’s unhide the character ( Right-click on the viewport and select ‘Unhide all’ from the menu ) and go on with the skinning process:
  1. Apply the Skin modifier on top the Morpher modifier ( Make a selection > Modify panel > Modifier List > Object-Space Modifiers > Skin )
  2. In the Skin modifier in the Parameters rollout, click ‘Add’, Select all the bones except for the nub bones, and click ‘Select’. Now the bones deform the character but it’s not pretty.
  3. Now is a good time to turn the Turbosmooth modifier back on to see how the final surface deforms.( Sometimes Turbosmooth gets messed up while working on the Skin. If this happens, just remove it and apply it again. )
  4. Activate the Envelope sub-object level.
  5. Select the head bone in either the viewport or in the bones list.( on envelope sub-object level we deal with envelopes. Each bone has a capsule-shaped envelope and each envelope has an inner and an outer bound. The shape and size of the envelope determines which and how vertices are affected when the bone moves. The influence of the bone is strongest inside the inner bound and it falls of as it approaches the outer bound. )
  6. Select the outer bound of the envelope at the top of the bone.
  7. Change the radius of the envelope bound to 85 either by moving it or by inserting the value with keyboard( This is not exact value. The suitable value depends on the size of your character. Just look at the picture below to size the envelope correctly ).
  8. Select the outer bound of the bottom of the bone and give it the same radius. ( The idea is to make the outer bounds of the envelopes so big that the whole width of the character falls inside of it ).
Vertex weighting
Let’s repeat the process and apply appropriate radius values for the rest of the bones ( Keep in mind that these are not exact values. Suitable values depend on the size of your character. Just look at the picture below to size the envelopes correctly ). Make sure you change only the radius values of the outer bounds. ( In my experience you can often get good results by adjusting only the outer bounds ):
  • All the leg bones, the spine bone, and the head bone: Radius: 85
  • Clavicle bones ( the bone between the spine and arm): Radius: 19
  • All arm bones except for the armpit/shoulder area: Radius: 40
  • Armpit/shoulder area: Radius: 19
Bone envelopes in the Skin modifier
Now the skinning/vertex weighting process is done. Deactivate the envelope sub-object level and try to rotate each bone to see how the character deforms. Try also the IK handles and the master dummy. I recommend undoing all the rotations afterwards to keep the neutral pose.

Step 9 Character Rigging Tip: Weighting Vertices Manually

This is an optional step. Just some theory and tips. If you are lucky you can get pretty good results just by adjusting the envelopes sizes, but there is often a need to fine tune the behavior of individual vertices as well. To weight vertices manually:
  1. Turn Turbosmooth off ( to make selecting vertices easier )
  2. Turn ‘Vertices’ on ( Skin > Parameters > Vertices )
  3. Now you can select vertices on your character so select the vertices you would like to adjust ( selected vertices are indicated by white small surrounding boxes )
  4. Select the bone ( either in the viewport or in the bones list ) for which you want to change the vertex weights
  5. Adjust the the ‘Abs. Effect’ value ( Skin > Weight Properties ) to set the new vertex weight
( The weight value of a vertex (Abs. Effect) always amounts to 1.0. This value can be divided between several bones. For example, vertex’s weight could be 0.7 for bone-1 and 0.3 for bone-2. In that case the bone-1 would have much higher influence on the vertex. In other words, the vertex would follow the movement of bone-1 much more than it would the movement of bone-2. )
Tip: The weighting/skinning process can be made easier by animating the bones. Just animate some natural bone movements. At first, the character will look ugly and distorted but keep in mind that as long as you keep the neutral pose in keyframe 0, nothing will break. You can always reverse everything by going to frame 0 and removing all the keyframes. The benefit of the animations is remarkable. You can see the deforming character while working on envelopes just by moving back and forth on the timeline.
Character animation
That’s my take on character rigging. Let’s continue in the comments! In case you’re wondering, I made the light and glow effects in Photoshop.

No comments:

Post a Comment