View Full Version : Scalable rig with stretchy back

08-05-2006, 04:40 AM
Is it possible to create a rig with a stretchy spine that is also scalable? I always end up with a double transform on the spine because of how the stretch works (using distance nodes).

I use Maya 7.0.

If so, does anyone have a scene file I can also look at?


08-05-2006, 08:58 AM
hey man,

That's a pretty common problem, often takes a little trial and error depending on the rig. I'm assuming you have ye olde Jason Shliefer method. The important thing is that the spline curve should not be parented under the supermover in any way, it should be under a DO NOT MOVE group. While you're at it, you can throw the spline ik handle in there too. The only things that are ultimately(when I say "ultimately" i'm assuming you'll have controller objects in there too) under the supermover as far as the spine is concerned are the joint chain(s) and the clusters.

The biggest thing is that the curve should never be scaled as the clusters do that for ya.
Hope that helped, spines are a bit picky.

08-05-2006, 09:29 AM
Thanks a ton! I'll give that a shot as soon as I can.

08-12-2006, 01:54 AM
Finally got a chance to try this...

I made sure to put the IK and curve on an unthouchable layer. However, when I select the COG control the curve and Ik handle turns pink. I think the connection is from the back control and those controls are in the scale group. However, if I remove them...

I don't parent joints directly under controllers, I use constraints.

Any ideas?


08-12-2006, 07:41 PM
Hey man, any way you can post a link to your set-up? Its hard to speculate as to how you have it set up.

08-12-2006, 08:16 PM
Here you go. Thanks for taking a look at it for me.

I also noticed that there seems to be a double transform on the upperback control just by translating it. Not sure what all that's about.

The group intended to be scaled is GLOBALGROUP.

Also, if you want to take a look at it, I can't figure out how to parent the wristFK control to the rest of the fk chain without creating a cycle or a double transform on the control itself when the arms stretch.

Thanks again.

Edit: Just realized you're from Oregon City. I used to live in West Linn myself. Go Portland! :)

08-12-2006, 11:35 PM
Hey man,

I did a handfull of things to it, first off, the way you had it structured it was best to have the joints unparented from the controls, but have the ScaleY and ScaleZ connected to the scale of the supermover (ie GROUP CONTROL). I went ahead a reparented a couple things so that the control would dictate the scaling, as well as the rotation and translation, just easier that way. Also, be careful of going too crazy with constraints. Your clavicles had both parent and orient constraints on them. That means that you had two different nodes that could be affecting your rotations at any given time. When the values go green, be very afraid, blue is better :). I didn't get a chance to check out the hand FK thing, it IS the weekend afterall, but check your constraints.

For the record, me no likey the Maya Character Creation method of rigging. One, the guy actually made mistakes in his book, like pivotal steps he left out (at least in the first edition). Secondly, he tends to do crazy elaborate constraining methods that would be better suited with a utility node, direct connections, and some simple parenting. I highly recommend the Art of Rigging series by CG toolkit. Its heaven in comparison, lots of pictures, lots of explanation, and the tutorials on the DVD are top notch.

Anyway, I hope this helped. Remember it now scales from the nurbs circle at his feet and not from the node it did before.

08-12-2006, 11:46 PM
ok, i looked at the hands real quick to, the way I see it, its best to just do away with ltWristFkNull (and thus getting rid of the ltWristFkControl as well). Those pretty much only exist to make a double transformation as both the null and the FK joint are utimately parented under your CONTROL GROUP. Get rid of those, and rotate your wristFK joint directly. That should fix that problem.

08-13-2006, 01:04 AM
Thanks a lot for that!

It's funny that you mention the thing about Maya Character Creation. The author of that book was the instructor for my rigging class a few months ago. I agree though, the book is pretty much outdated and not very clear.

I did purchase the art of rigging from cgtoolkit, which is 20 times better. However, there were a few things that left me hanging. I inspected the goblin rig closely but realized it was missing a few things they covered in the book (stretchy spine, stretchy limbs for example).

I've been trying my best not to parent joints under controls as suggested in the art of rigging and have three main groups (rig, geo, controls), but when you start making ik/fk switches and stretchy limbs some things need to be changed and that's what I've been trying to learn.

Just to clarify what you did:

You moved the actual spine joints themselves to the DONOTMOVE group (I'm assuming the controllers are scaling the clusters and thus the joints).

You parented the RIGGROUP and CONTROLSGROUP directly under the global control so that they would inherit scale.

The spine joints now have direct connections for scale Y and Z to the GLOBALCONTROL.

As for the clavicles I think I just forgot to make a pad group. The clavicles have to rotate when the spine does, but also be controlled spereately by the shoulder control.

I also realized that you put everything below the neckBase under the actual upperBackControl so now there are joints under the CONTROLSGROUP. So I just went ahead and parent contrained it to the control and the only thing I noticed is when you translate the upperBackControl too far in Y the spineEnd joint moves slighty above the neckBase joint (think that has to do with the spline though). So when I do a final bind I think I will bind the neckBase rather than the spineEnd.

One last thing (you can enjoy the weekend first :)).

Is it possible to create a spine bend or bow without creating FK joints to control the spline joints?

Thank you once again. I've learned a lot from you.

08-14-2006, 06:31 PM
I don't have time to download your rig file, but I will guess your main problem with this is that the spine curve length (if this is Jason's spine) is stored in the multiply/divide node which connects from the ArcLength node. If you scale the rig you also need to scale this number. This can be done with a simple expression or another multiply/divide node but you basically have to multiple the original curve length by the rig scale. e.g.

BackCurve_scale.input2X = MasterCube.scaleY * 0.442

My main control here is called MasterCube, the original curve length was 0.442 and my multiply/divide node is called BackCurve_scale, so multiplying the rig scale by the original spine length keeps the spine working when you scale the rig.

I hope that makes sence, It's been a while since I looked at that DVD.


08-14-2006, 06:51 PM
Thanks for that bit of information. I'll give that a shot. FunkyT showed me a different way to try it and got it working, but this is helpful as well.

CGTalk Moderation
08-14-2006, 06:51 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.