View Full Version : scale constraint bug?

04 April 2010, 01:35 AM
someone explain this to me. So I have one joint chain scale constrained to another joint chain.
jointA2 constrained to jointB2
jointA3 constrained to jointB3

So when I scale jointA2 not only does jointB2 scale but jointB3 and jointB4 scaled slightly also. and even though I only scale in X it seems to scale X and Z in the children of the joints
ie jointA2 scaleX = 2.536
jointB2 scaleX =2.536
jointB3 scaleX =1.301
jointB4 scaleX =0.965

it seems to have something to do with a second set of connections that are created.
jointA3.parentMatrix[0] ->[0].targetParentMatrix
jointB3.parentInverseMatrix[0] -> jointScaleConstraint.constraintParentInverseMatrix

Is this a huge bug or what? It also seems to sheer joints when jointB is directly connected to jointC
Maya2010 linux

04 April 2010, 04:58 PM
mmm... so the shearing seems to be happening when the scale to inverseScale aren't connected up. And if I scale constraint the entire chain from the root (jointA1 to jointB1, jointA2 to jointB2, etc) it seems to behave properly. But if constrain just the joint*2, 3, 4's and not joint*1 and I scale jointA1 then jointB2 and everything below it scales. ???

04 April 2010, 04:51 PM
okay, seriously, I gotta know if my machine is gimped. new scene. scale constraint joint chain A (white selection) to joint chain B (green selection). Scale one joint on joint chain A to 2.5 on the X, and some weirdness happens on the joint B chain.
File attached.

04 April 2010, 08:54 AM
Hi sabathyus,

Yeah same happens on my computer in that z is being scaled on the other jointchain, even though the original scale happens in the X axis. Only thing I notice, is that it seems to happen when the on the child joint of the joint that is being scaled. Also I noticed that the child joint scales actually in X and Z by very small amounts. Not really sure what it it about, unfortunately. THe same problem doesn't occur with geometry itself, but I guess thats obvious as it is very different.

I guess you could specify which axis you want to constrain when creating the constraint....although that is not very flexible.

04 April 2010, 04:33 PM
yeah, I was thinking that too but I'm not sure if it would work for what I'm trying to do....

I think it might be sheering! It looks like the effect you get on a single chain when all the joints have a broken connection between .scale -> .inverse scale. That would sort of explain the effect but not why. I did a bug report so we'll see what they say.

04 April 2010, 09:14 PM
First what is the intent and purpose of this. Just to have one set of joints mimic the other. If that is the case you can direct link the scale to each other. No real need to constrain. You would use the constriant if they are different scales and offset from each other to begin with.

Secondly, stop using orient constraint. Normally I am all about finding new ways to do things. But orient constraint is for adjusting the internal axis orientation rotation of MULTIPLE objects. Use Parent Constraint (Rotate only). This will save you tons of time and heartache.

if your just linking you can do the following;
A is the controller B is the controlled.

connectAttr -force jointA1.scale |jointB1.scale;

connectAttr -force jointA2.scale |jointB2.scale;

connectAttr -force jointA3.scale |jointB3.scale;

CGTalk Moderation
04 April 2010, 09:14 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.