Keep up-to-date with Free tutorials!!


Sign up to our twice-monthly newsletter today for the latest tutorials, interviews and product information.

Sign me up to receive third-party emails from 3dtotal's partners, too!

- Latest news
- Exclusive Shop Offers
- Preview early content
- Plus much more


Not Ready to take that step? OK, Why not just Subscribe to the RSS Feed

submit tutorial
1 | 2 | 3 | 4
Introduction to rigging in Maya - The shoulder and the arms

| Your Rating:
rating star fullrating star fullrating star fullrating star fullrating star full
(Score 5 out of 5 after 23 Votes)
| Comments 5
Date Added: 3rd March 2014
Software used:

Adding the twist joints

To create the twist joints, first select l_upperArm_jnt by hitting Ctrl+D and then un-parent it from the shoulder by hitting Shift+P. Then select l_shoulder_jnt and hit Ctrl+H to hide it. To split the joints, I will be using a script that you can download from CreativeCrash. Open up the script in a MEL tab in the Script Editor, highlight all the text (Ctrl+A) and then hit Enter on the number pad on your keyboard to Execute it, or Command > Execute. Quickly go in and rename the duplicated joint chain for the arm so the naming does not clash with other joints in the scene. Now select the root joint in the chain and hit Select Start Joint on the Joint Splitter tool. Set the Jnt Qty to 3 and hit Split Joints. Select the lower arm joint and also split that joint with the same settings.

Adding the twist joints using the Joint Splitter tool

The arm chain now consists of 9 joints altogether. We only need to keep the 3 joints between the arm root and the elbow and the 3 joints between the elbow and the end of the arm. So, select the second joint in the chain and hit Shift+P. Delete the joint that is now floating on its own. Then select the joint that was the elbow joints and hit Shift+P. Now, select the next joint down from the elbow and hit Shift+P and then delete the free-floating elbow joint. Lastly, delete the end joint from the forearm portion. You should now have 2 chains, both being made up of 3 joints.

Now, unhide l_shoulder_jnt by selecting it in the Outliner and hitting Shift+H. Select all 3 twist joints for the upper arm and then parent all 3 under l_upperArm_jnt. Then, select all the twist joints for the lower arm and parent them under l_lowerArm_jnt. Rename the joints from top to bottom; l_upperArmTwistA_jnt, l_upperArmTwistB_jnt, l_upperArmTwistC_jnt, l_lowerArmTwistA_jnt, l_lowerArmTwistB_jnt, and l_lowerArmTwistC_jnt. To make the lower arm joints twist correctly with the rotate Y of the wrist (we'll do this with an expression), select l_armEnd_jnt, go Skeleton > Orient Joint Tool (Options). Turn on Orient Joint to World and hit Apply.

Parenting the twist joints to the relevant driving joints

Driving the twist joints

To drive the upper and lower arm twists, we will use an expression. Go Window > Animation Editors > Expression Editor and create the following expression:

l_upperArmTwistA_jnt.rotateY = l_lowerArm_jnt.rotateY * 0.25;
l_upperArmTwistB_jnt.rotateY = l_lowerArm_jnt.rotateY * 0.5;
l_upperArmTwistC_jnt.rotateY = l_lowerArm_jnt.rotateY * 0.75;

l_lowerArmTwistA_jnt.rotateY = l_armEnd_jnt.rotateY *0.25;
l_lowerArmTwistB_jnt.rotateY = l_armEnd_jnt.rotateY *0.5;
l_lowerArmTwistC_jnt.rotateY = l_armEnd_jnt.rotateY *0.75;

Rename the expression l_armTwist_expr. Once we parent the geometry to the arm, the effects of this will be more noticeable.

Using an expression to drive the twist joints

Creating the low-res mesh

We now need to chop up the mesh and parent it to the relevant joints. I won't go into detail here, as it is the same process I employed to create the low-res mesh for the torso, the neck and the head. Do make sure to rename the chopped up geometry using the same naming convention that we used for the torso and the neck and head geometry.

Chopping up the model and parenting it under the relevant joint

Creating the FK and IK joints

Select l_upperArm_jnt, hit Ctrl+D to duplicate it and then Shift+P to bring it out of the hierarchy. In the Outliner, open up the joint chain and delete all the twist joints and the duplicated geometry that came along. You should be left with 3 joints which you should then rename from root to tip: l_upperArm_FK_jnt, l_lowerArm_FK_jnt and l_armEnd_FK_jnt. Now select l_upperArm_FK_jnt and hit Ctrl+D. Rename the new joint chain to end with _IK for all the joints instead of _FK.

Duplicating the original arm chain for the FK and the IK joint chains

Now we will constrain the joints that will drive the mesh to both the FK and the IK joint chains. In the Outliner, select in this order: l_upperArm_FK_jnt, l_upperArm_IK_jnt and then l_upperArm_jnt and go Constrain > Orient. Then select in this order: l_lowerArm_FK_jnt, l_lowerArm_IK_jnta and then l_lowerArm_jnt and go Constrain > Orient. You can also do the same for l_armEnd so we can see the results of the forearm twist. Later on, I will break the constraint to l_armEnd_jnt as I will use a control to drive the forearm twisting.

Using Orient Constraints to drive the main arm chain

< previous page continued on next page >

1 | 2 | 3 | 4
Related Tutorials

Introduction to rigging in Maya – cleaning up the rig

by Jahirul Amin
published on 2014-05-20

Keywords: Maya, Rigging, Hands, Fingers, Thumbs, Animation

rating star fullrating star fullrating star fullrating star fullrating star half (19)
Comments 2 Views 41525

Introduction to rigging in Maya – The hands

by Jahirul Amin
published on 2014-03-17

Keywords: Maya, Rigging, Animation, Hands, Arms, Shoulder, Character

rating star fullrating star fullrating star fullrating star fullrating star full (14)
Comments 0 Views 56288

Introduction to Maya: Polygons, NURBs and Sub-Ds

by Jahirul Amin
published on 2013-07-10

Keywords: introduction, maya, ui, tools, modeling,

rating star fullrating star fullrating star fullrating star fullrating star half (13)
Comments 2 Views 116044

Maya Modeling: Body Blocking

by Jahirul Amin
published on 2013-08-08

Keywords: character, body, modeling, maya,

rating star fullrating star fullrating star fullrating star fullrating star half (39)
Comments 2 Views 158324
Readers Comments (Newest on Top)
Jahirul Amin on Tue, 19 September 2017 10:43pm
Hi Peter, It's been a while since I wrote this but hopefully this helps: For the Orient Joint Options (Creating the Joints), for the clavicle, I am using the following: Primary Axis to Y, the Secondary Axis to X and the Secondary Axis World Orientation to X (the first image). And then for the scapula joints, I am using the following settings: Primary Axis is set to Y, Secondary Axis is set to Z and Secondary Axis World Orientation is set to X (+) (the third image). So yes, the instructions and the screenshots are different as that was the behaviour I was after in those areas. Regarding the parent/orient constraint for the controls (for this step: Creating FK Controls), I would set it to just orient as you won't need translate for FX (which is what the parent constraint would give you). Hopefully that helps - if not, let me know or send me a scene file and I can take a look. Thanks J
Peter on Tue, 19 September 2017 4:44am
Is it supposed to be the X and Y or X and Z. The instructions and the screenshots are different.
Peter on Sat, 16 September 2017 4:30am
Is the constraint supposed to be Parent or Orient. The provided script is set to parent but you say to change it from Orient.
Andrew on Tue, 11 March 2014 1:05am
Very much loving this tutorial series. Can we expect to see a section devoted to integrating the system with the HIK once the setup's done?
Dan Willers on Mon, 03 March 2014 2:00pm
cool stuff dude!
Add Your Comment..