View Full Version : control curves rotation axis coinciding with joint rotation

07 July 2011, 08:59 PM
Hi there,

In Maya:

I dont know if anyone else has had this problem - but it is confounding us. When setting up a simple FK control curve on say the wrist for example, many times the control curve isnt exactly perpendicular to the local rotation axis of the joint movement, so when we position the control curve to be perpendicular to the joint - it has a rotational value added, but the rotational handles are lines up with the rotational handles of the joint that we want to move.

Freeze Transformations: then the control curves rotational handle go back to being skewed (out of alignment with the joints)

We want to Freeze transformations before constraining the curve, but wed really to keep those rotations control handles to remain aligned with the joints rotational handles. This will make it an exact control when animating - grab the rotational handle of the curve, rotate it, and the joint will move exactly in the proper direction.

Any ideas about how to get the rotational handle of any control curve to run perpendicular to the shape after freezing transformations?

07 July 2011, 07:17 AM
what I like to do is create to group nodes above the control curve, parent the control curve under these groups (while the control curve is still at the origin). Next you parent the top group under the joint that the control curve will end up controlling, zero out any transformations on that top group after you parent it so that the groups along with the control curve snaps to the joint. Now, unparent that topmost group, leave the transformations on the top group alone and check your control curve, it should oriented exactly as the joint is.

or, you could also just parent constraint the top group "with maintain offset" turned off to the joint itself and then delete the constraint after.

07 July 2011, 07:35 AM
Freezing transformation will reset the rotation of the child to be the same as its parent. If, a control curve is a child of the world(I has no parent in the outliner), it will snap back to world axis when you freeze its transformation. It's impossible to have a control curve which is a child of the world to has zero rotation and also align with a joint.

You'll need "zero-group" as the parent of your control to store the value you don't want to has on your control. So, create a control, group it to itself, align the group to the joint (temporary parent the group to the joint then set all translate and rotate value to zero then unparent it) then you'll get the curve aligned, with zero rotation -no freezing needed.

You can also use this code as your shelf button to parent-snap something to another:

global proc parentSnap() {
string $selA[] = `ls -sl`;
string $parent = $selA[0];
string $child = $selA[1];
delete`parentConstraint $parent $child`;

hope this helps :D

CGTalk Moderation
07 July 2011, 07:35 AM
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.