I went through this tutorial for rigging last summer. I had almost finished rigging the character myself afterwards but then once university started again I got distracted by everything else! I’ll need to revise and try my own rigging projects again lest I forget what I learned last year and during class.
Quick start to rigging in maya: Volume 1
My notes for reminders:
Make a reference layer for the model and reduce display port to low detail for speed.
Enable wire-frame on shaded and x-ray joints.
Adjust the direction of the joint using the ‘joint orient’ in attribute editor. Parent and unparent as needed.
03 Completing our work on the joints for the left leg
Name your joints e.g. – bn_l_shin_01, be_l_thigh01
04 Adding inverse kinematics to the leg and mirroring joints
05 Adding joints for the torso, neck, and head
Create a center for the bone/joints to snap to in the torso by point constraining a locator between the two hip joints.
06 Creating eye joints
Create two joints for eye and center to eyeball. Parent to main head chain and mirror across to other eye. Test the smooth bind option, changing bind type to ‘selected joints’.
07 Building the arm joints
Think of what view is best for telling Maya what direction the joint bends. Turn on ‘Snap to projected center’ to snap to center of mesh. Create the arm joints and then join to the clavicle.
09 Finishing the skeleton
Name the joints e.g. Bn_l_pinky_a01, bn_l_pinky_ b01 etc. rpIK_l_arm01. Keep skeleton and IKs in groups in the outliner.
10 Binding the character
Why do we skin the character before adding the controls? We need to test the deformations with the current joints. Search by name for bn*01 to select these. Select the smooth bind command and bind to ‘selected joints’. The bind method ‘heat map’ gives objects closer to the joint more weight. Set weight distribution to neighbours so that joints won’t affect geometry that is far away. Heat distribution and neighbour options are new features that allow joints to be moved without influencing other joints that they should not be influencing.
11 Skinning tools and techniques
Use the ‘move skinned joints’ tool for adjusting joint positions. An IK handle would need to be removed before doing this. Use control menu to select edge loops and vertices. Open the component editor to edit the weight of influence on the joints. 0 to 1. Check/uncheck ‘hide zero columns’. Select badly deformed vertices and use the weight hammer to average the deformation. Test deformation using animation. Shift+w will key the translate values. Use the ‘paint skin weights’ tool. Using the ‘replace’ option will paint whatever value is in the ‘value’ box onto the model weight. Select the joint that you want to modify the influence of (right click and ‘select influence’). Then use the paint influence tool to replace the strength of influence on certain points. For areas that need more subtle influence e.g. In between toe joints, change ‘replace’ to add and change the value to 0.5 for example. Geometry group needs to be selected in outliner before paint tool’s influence can be selected. You can also select points (shortcut F8) and use the weight hammer tool. You can mirror the skin weight once finished on one side.
12 Establishing a global control
Create a square with linear cv curve tool
13 Rigging the torso
Create box curves for the upper back and pelvis and shape them around the geometry. Freeze transforms and rename, e.g. Anim_chest01, anim_pelvis01. Also add control for the mid back and a centre of gravity control. Use parent constraint for the anim_COG01 to the root node. Lock and hide the channels that aren’t needed. Group controls under the parent control int the outliner for cleanup.
14 Setting up the head and neck controls
Create/import the box curve for the head and shape it. Always rename and freeze the transforms. Orient constrain the head to the neck control. Create the neck control and parent to the chest. Parent the head control to the neck control (servant+master+p). Orient constrain the neck bone to the neck control (master+servant+constrain). Remove the channels that aren’t needed (only leave rotate in case of head and neck controls.
15 Eye controls
Select the geometry of the head and then the two eye bones then Skin –>edit smooth skin–>remove influence so that the eyes don’t move the skin of the head. Create square contols and center them at the center/end of eye joint and move them straight out so that they’re still centered for a point constraint. FT and rename. Create a third control and center between the left and right eye controls for both eyes. How do you center between two objects? – a point constrain – then delete the constrain. Parent two controls to the anim_eyes01control. Then parent eyes control to head control. Dynamic parent controls will be in next level to allow this control to be turned on/off.
Pay attention to the axis of the joint as this is important for aim constraints.
Take a look at what’s pointing up and what’s pointing towards the eye e.g. Positive ‘y’ and positive ‘x’. The channels in the ‘aim options’ are binary on/off, +/-. Recolour the controls for clarity. This is found in drawing overrides under object display.
16 Rigging the clavicles
Create a square curve for the clavicle. Center it on the clavicle, move it out to where it can be easily selected and then re-center the pivot point with ‘dv’.
The control can be mirrored by putting it into a group and then scaling the group by -1 in the axis you want to mirror it across. Rename, FT, and then parent to control. Remove unneeded channels and orient constrain to the clavicle.
17 Controlling the arms
Need two controls – one for whole are and other for twisting of IK handle. Create a box curve and snap to joint that has the IK handle. Duplicate this snap to elbow joint, then move backwards. Mirror across by grouping and scaling. Lock and hide unneeded channels and colour code sides. Now we need to constrain the wrist so that it will move more smoothly with body and not reorient itself – orient constrain the box control with the wrist bone and point constrain to the wrist joint. Pole vector constrain the elbow control to the IK handle to control the twist.
18 Setting up the leg controls
Center the control curves needed on the legs and leg end joints. Rename and freeze transforms. Create pole vector constraints between the IK handle and the knee. Notice that the whole leg twists to adjust for surface direction (?).
Create a polygon by snapping to the leg top, bottom and middle joint so that it creates a plane with the same tilt as the leg.
Pull out the plane with the move tool set to ‘normal average’….unexplained?
19 Rigging a foot roll
Duplicate the foot joints and delete the toes then resize. Rename with the prefix jDrv for joint driver (as this will not effect geometry). Duplicate the toe and move it back to the heel so as to act as the heel role control. Unparent the heel and then unparent the ankle (shift+p). Select the toe>skeleton>reroot skeleton. Now this chain pivots from the toe. Select the toe and then parent it to the heel to create the heel role.
Mirror the joint across. Now we need to apply constraints. What drives what? The system is driven by animation control – the box around ankle. Parent the heels to animation control. Grab new ankle+IK handle>point constrain. Orient constrain the bn_ankle to the foot driver bone (footdrv+ankle>orient constrain). Orient constrain the foot to the toe. (toe is master).
Controls now need to be added to the foot role system.
20 Finishing our foot roll system
Select both leg controls and modify>add attribute. Make ‘displayable’. Add ‘foot roll channel’ also.
Select foot roll as driver and the jDrv bones:heel, foot, toe, as the driven, then key the rotate channels. The connections made are not keyframes but links between parameters. Set the footroll to 0, rotate the toe to it’s max roll position and then key(adjust foot at same time to soften bend ant ankle). Key a position for 0.5 also with the toe flat and the heel coming up. Lastly key a position for -1 on the heel roll with the heel pointing up.
21 Controlling the fingers and toes
Create extra channels for the ‘fingerControls’, rootX, rootY. rootZ, mid and end. Create channels for toe X. Y and Z. Create channels for toe x, y and z also.
Now we can work on the fingers. Open the connection editor and load the 3 finger roots into the right. Connect the rootx to the 3 rotates of the the fingers and do the same for root y and root z to their respective rotate channels. Select the mid finger joints and repeat. Select the end joints and repeat. Movee on to the toes. Connect toeX to rotate x etc.
22 Cleaning up the rig
Should only be able to see controls – joints and IKs should be hidden.