Jun 10, 2011
Post id: 308148 Report Item

I have a node based stretchy IK setup on my arms.

The setup is as follows (see attached):

two distance locators parented to wrist and shoudler controls.
distance shape conencted to multiply divide node input 1x, and first term of a condition node.
multiply divide node output x connected to condition node color if ture
condition node out color r connected to scale x of elbow and shoudler joint
with the multiply divide node set to "divide" and the condition node set to "greater than"
The second term of the condition node is the joint length, as is input 2 of the multiplly divide node

The stretch is working great, however the problem arises when scaling the charcter universally. To scale, I am scaling the master control that is above the rig. (see attached image- selected control is what is being scaled)

The problem arises as the scale x (stretch) on the joints is being triggered by the joint size increaseing with the universal scale of the rig.

Does anyone know how to set the stretch up in a way that I can universally scale the character as well as having stretching capabilities? Also, does anyone know a way to toggle the stretchy?

Thanks in advance.


Jul 05, 2011
Post id: 308347 Report Item

Use the distanceBetween node.

Connect the matrices instead of the points. This way you can choose in which space you want the distance to be calculated...

Make sure the two locators are in the same space and connect their matrices (not the world matrices or you'll calc distances in world and scaling won't work correctly)
The calculated distance will stay the same even if you scale (Guess that is what u need)

Jul 08, 2011
Post id: 308380 Report Item

Just factor in the global scale into your distance calculations.  If you globally scale by 2, divide your distance by 0.5.

Jul 26, 2011
Post id: 308476 Report Item

Just place another MultiplyDivide node in your scene. So from the distance Out goto the in1X of the global scale MDN and the global scale value you be in the in2x of the global MDN. Then jsut plug the outX of the global MDN into where you had the distance out going into your other MDN node and that should be it.