Tutorial: Rigging an IK Arm in Maya


https://i.ytimg.com/vi/WkKx9ijydjk/hqdefault.jpg



Follow the link to sign up for a free 7 day trial on Lynda.com:
http://www.jasonbaskin.com/baskin_lyndaTrial.html

In this tutorial, I describe the process for creating a basic IK arm rig in Maya. Topics include:

– Joint creation (clavicle, shoulder, elbow, forearm, and wrist)
– Clavicle control creation (using the aim constraint)
– Hand control creation (using an IKRP solver, point constraint, and orient constraint)
– Automated forearm roll (using expressions)

I’ll be posting more tips and tutorials soon.

source


43 responses to “Tutorial: Rigging an IK Arm in Maya”

  1. I've pretty much been able to rig anything pretty ok, but I've never seen a decent setup for an automatic forearm roll to fix the twisting issue when the hand rotates on the X axis. I'm sure you guys know what that is.

    So in a basic arm setup we have a RP IK solver with a manipulator curve that drives the IK handle with a point constraint and the orientation of the hand joint using an orientation constraint. Mechanically this works fine. What a lot of people are taught to do with the forearm and wrist issue is to create a forearm joint in between the wrist and elbow. That's a good idea until we try to automate it. If we use the .rotateX /2 expression that most people teach that only works until the hand manipulator gets moved at a certain angle to where the orientation of the hand creates gimble lock.

    So then if we use the Object Axis orientation for the rotate manipulator we don't have to worry about gimble but unfortunately that forces us to rotate the hand manipulator on all 3 axis thus making the forearm rotate even when we rotate the hand up and down because of the three axis rotating together to over come the gimble lock. It also makes a mess in the curve editor some times creating euler flips.

    So what does a professional wrist and forearm setup really look like?? I seriously have never seen one. All I've seen are some half baked setups. Thanks for any hints on this. I'm guess it requires a double manipulator setup for the hand and wrist region?

  2. So when I move the control for the wrist, it detaches from the skeleton and stretches my ik handle. the control remains unattached when I unclick. the rig is still up and the ik handle stays stretched. where did I go wrong?

  3. Whenever I place the IK Handle from the shoulder to the wrist it turns the entire joint set up backwards and doesnt follow the anatomy of my mesh. Yet when I see you do it, it doesnt move your joint setups at all. Is there a fix for this or am I missing something?

  4. Hey, I was just following this tutorial but I hit a rock.
    It at the part where I need to move the Pivot Point from the Forarm to the hand by selecting the "Effector" and hitting "Insert" but my issue is that when I click "Insert" t doesn't do anything.

    – Is there any other way around it, maybe manually?

    Thank you.

  5. I checked lynda, and you don't have any continuation on this rig. Like the head and hands. Most important how to parent it all together. The hands i can do, but the head would be great if u could make a tut on for your rig.

  6. My hand control is sitting backward so when I twist it the forearm is twisting the opposite way.
    What do I write in the "expression Editor" to make my forearm do the opposite of my Wrist CTRL so that the problem solves itself?

  7. Nice tutorial. A good tip instead of parenting temporarily the group, is to actually use it so the rig does not break.
    For instance, create a null group "Ctrl + G"
    Select the Joint + Ctrl Select the null grp and do a Point Constraint and a Orient Constraint with Maintain Offset off – On the settings
    Go to the group on the outliner and delete the PointConstraint and OrientConstraint on the null grp.
    Parent the curve to the Joint and freeze its transformations.
    Now you will have a null grp with garbage values and the curve inside of it. This way the rig will never break because the null group is acting like "glue" on the joint with the proper Rotation and Translation values.

  8. thanx jason.
    i have maya skel Joints named arm, forearm, wrist, palm1, palm2. as u said i have snapped ik handle to wrist end after drawing ik handle (to forearm). that has worked. no issues.

    then i did…
    1) constrained palm1 rotation xyz to L hand ctl.
    2) set driven keys for palm2 for small secondary rot effect.
    3) as u said, i gave expression "wrist.rx = palm1.rx;" . then just to check, when i rotated in x the L_hand_ctl to +20 and did undo.
    as a result wrist and palm1 was showing -20 (when L_hand_ctl rotx = 0).
    4) then i changed the controller in expression like this..
    "wrist.rx = L_hand_ctl.rx;". then i checked rotating the L_hand_ctl in x to +20 and then again to 0. now the wrist joint was showing correctly as 0.

  9. I still cant manage to get the expression rotation and the wrist orient to work with one another — i keep getting the 'may not evaluate as expected' warning and the whole thing goes bad…. im using maya 2016 so that might be the issue?

  10. I have a problem please,after skinning I do any pose , bones and geometry respond good , when I close Maya and reopen it I found bones are in the same pose position I left it , but the geometry lose connection with bones and return to their position before skin. Bones still colourd and if I move them the geometry do not respond. How to fix that please. Thank you very much

  11. Hi! I've been using your videos as guide to rig my characters and I always have a difficult time rigging the arms. This time, I've successfully aimed the control to the left arm properly but it doesn't work correctly with the right arm. When I move the controller, the joints move up and down as well but they spin and I've kept trying to fix it but I can't 🙁 Can someone pls help me

  12. Any trick for the forearm twist joint for Maya LT? There aint no expression editor there. And I kinda tried everything i could think of, but Node Editor allows only raw inputs, can't operate a divide on a parameter(specifically a float, integers are accepted though). Also, how do you make your controls follow your rig around? I move da hand but the elbow control just stays in the same place. It still works though. Will I break something if I parent a control to something it constraints?

  13. I follow all the instructions but when i try to rotate the hand control like in 8:34, the last joint does not follow the other side of the hand control. Almost as if the hand control rotates way faster than the wrist joint actually does.

  14. very nice tutorial. really helped me a lot. But i'm having a tiny problem. When I try moving the pivot of the effector, my arm starts spinning around like crazy such that I cannot get the pivot to the wrist. please help.

  15. Hi there. I hope someone here can help me. I have made an arm with a rig, but the only thing I need to do now is apply the forearm twist. The way I have my forearm rig set up is that instead of one forearm joint, I have 2. In the expression editor, how does it apply? Where as with one joint is is by half, how do I divide it by 2? Is it one following the wrist by 33% and the same with the other joint?

  16. Hi Jason, When I aim constrain and orient constrain my hand ctrl to my Hand IK Handle, my forearm joint was unable to rotate anymore, this resulted in the expression being useless. Any solution you would kindly suggest?

Leave a Reply