Adverti horiz upsell

RH AutoRig 3.2.3 for Maya (maya script)

An auto biped rigger with some extra tools

Button download


  • 2014, 2013, 2012, 2011, 2010, 2009, 2008

Operating Systems

  • Linux
  • Mac
  • Windows


Last Modified:12/16/2016
File Size: 255 KB


Rig, maya, Rigging, Auto rig


Shoulder rotation

Submitted by: conghal conghal
Hey, so I love your script so far, but I seem to be having some pretty serious issues with the shoulder. it seems unlikely that you wouldn't notice all this, though, so maybe it has something to do with the way my Maya preferences are set? 
So, if I go through everything up to making a bind skeleton, the rotation order on the shoulder FK control will be a bit weird; if you rotate the arm down parellel to the body (along the Y-axis), the gimbal locks, but if I just change the rotation order for the curve (YZX seems to make the most sense to me), the shoulder still twists as it swings back and forth (as it would if it were rotated forward along Z, down along Y, and then twisting along X as it passes the body). So the problem seems to be with L_ and R_jnt_shoulder1, (if I make the skeleton visible and parent locators to all the shoulder joints I can see that one spinning as it swings back and forth). Changing its rotation order either has no effect or breaks the twist joints, and changing the rotation order for L or R_drj_shoulder1 causes R_jnt_shoulder1 and the twist joints to stop rotating along Y altogether.
I think I've found a bit of a workaround, but I haven't really played around with it enough to know if it'll break anything else. if I go into the bound skeleton and delete the shoulder's 'b_RightShoulder_parentConstraint1' (which targets R_jnt_shoulder1), and then add a new parent constraint which targets R_drj_shoulder1, it seems to be able to swing without twisting (with the control curve's rotation order changed/the IK pole vector turned on).

Hopefully that all made sense, but I can try to put together a video to show what I mean if you need me to.

Replies to this question:

  • Nick Dupree

    Nick Dupree said about 8 years ago:

    Yep, this has been an ongoing problem for quite a while. Sometimes it happens and sometimes it doesn't. It really just has to do with the gimbal rotation. drj_shoulder is a driver joint for jnt_shoulder (this is where the problem stems from). The reason there is a driver joint is to nullify the x rotation of the shoulder. Try twisting the shoulder with your current workaround and you will see why this is important. I have two fixes in mind. The first would be to plug in a multiply divide node with a very small value in 2X and connect the two joints with that (easiest). The second would be to use a aim constraint approach (which I actually use a lot throughout the rig). If you want to give one of those methods a go feel free. I will update the auto rigger over the weekend with a fix though.
  • conghal

    conghal said about 8 years ago:

    I forgot to mention that I'm not using any twist joints for my bind skeleton, which is what makes the work-around work, I suppose, but either way I haven't noticed any troubles so far. I just tried something a bit like this : except instead of having a second IK chain, I duplicated the shoulder twice, deleted all the children of both, parented one under the other and then translated the child out a bit, duplicated that little chain twice and translated both of the new children so they're evenly spaced, parented all three under the original shoulder joint. So if the elbow was ~20 units from the shoulder it would be something like: + shoulder_joint |+ elbow |++ wrist |+++ hand |+ shoulder copy 1 |++ shoulder copy (translated 5 units) |+ shoulder copy 2 |++ shoulder copy (translated 10 units) |+ shoulder copy 3 |++ shoulder copy (translated 15 units) and then I made a 'bend' set driven key to control the rotation of the three parents (rotate the longest one x, the second longest 2x, the shortest by 3x or something like that.) The child joints end up at an angle, but you could probably set the key to rotate them the other way or aim them at something or parent something else to them. I'm not sure exactly how twist joints are supposed to work, but my weird test project seems to do some things. ANYWAYS, on a vaguely related note, how complicated would it be to make the orientations of the control curves adjustable? I like having the Y rotation control twist and positive X as the main rotation, but my workaround for this is pretty much the hackiest thing ever (duplicate, delete children, group, remove from group, rotate group, add to group, freeze rotation, parent original curve to duplicate, delete original curve shape node, set driven key to control old set driven key from duplicate, except now switching to IK doesn't hide it aughh). Related fun fact: I'm not sure how you're doing the spine twist, but it turns out that the IK spline 'advanced twist controls' only work with X as the primary joint axis (I definitely figured this out the hard way). All that to say, it seems like the curves can have a different orientation from the actual joints, but I can't figure out how to make all the set driven keys/constraints/whatever else is going on work if I try to change the orientation. Thank you so much for your quick response and fantastic support, though. Feel free to ignore all this, everything is basically working great and I should really probably just get back to learning to animate.
  • Nick Dupree

    Nick Dupree said about 8 years ago:

    Hey I haven't forgotten your post, just been a little busy. I'll respond when I get a chance.
  • Replyindent

    conghal said about 8 years ago:

    Oh hey, don't even worry about it. Like I said, I found a workaround that works great for me for the shoulder thing, the rest is just thinking out loud and general suggestions for maybe/someday. I have a couple other thoughts as well, but I can post all that to the requests area when I get a chance. I'm still super happy with the script and thanks again for everything.

Post a reply: