It does not work properly. As I had posted earlier, joints use a special scale connection with inverseScale attribute (only joints have this tranform property) when you create a chain hierarchy. This gives a special behavior when scaling a parent joint. And using scale constraint messes up this inverseScale calculation in joint transform and so the child joints scale weirdly when scaling the parent joint.
So use connection and a blend node(blendColors) on a joint chain to blend between scale values.
edit:
From reading on forums I get that the problem is with constraints not taking "segment scale compensation" into consideration. So orient constraint suffers from the same problem. I had encountered this problem when working on a stretchy setup on arms.
Hey Maulik,
ReplyDeleteI just ran into the same problem (and this came up when I Googled it) - only I didn't use a blend node at all, just an expression. Did you ever figure this out?
Hey Jessica,
ReplyDeleteI am not sure what exactly you are doing. The problem is that the constraints don't take "segment scale compensation" into account. I don't remember if I solved this, but one of the ways could be to use a group transform on top of joints?
-M
what do you mean when you say,
ReplyDeleteuse a blend node, is that literally a blend node? (i cant find reference to those in maya help) or an expression or script?
to clarify, i have:
ReplyDelete-an ik joint chain with its own stretch expressions,
-an fk joint chain with its own stretch expressions,
-a bind joint chain to which all my geometry is attached,
i want to attach the bind chain to both control joint chains and control the blending of scale values between them with one master slider (ie: the ikfk switch)
the scale constraint "sounds" like it is what i want, but im getting dodgy scaling on my child joints.
any ideas?
Hey Jordan,
ReplyDeleteThere is a node called blendColors that you can use to blend two float values. And there is a slider to decide how much each of input goes into output.
To blend, translate, rotate and scale values you can use this same node.
-Maulik
thanks, that fixed everything!
ReplyDelete