View Full Version : freezing transformation
abarman 01-05-2005, 06:16 AM Hi All,
a small stupid doubt about making control handles with curves in MAYA. i am trying to make curve control handles, goal is to keep its initial value of its transformation as zero, so i am freezing its transformation, but when parenting it under the joints, its getting the joint's location values(most probably) and no longar remains as zero. can any body tell me how to make them zero again. or is there any specific way for parenting to keep it to zero?
thanks
ABARMAN
|
|
seven6ty
01-05-2005, 07:06 AM
Well, one question, why are you parenting it under the joint?
Generally I've recently gotten into the habit of parenting the shape of the control curve to the joint, making it so you're essentially just selecting the joint by clicking on the control curve. (Just go "parent -r -shape" with the curve's SHAPE node selected, and then the joint to parent the shape node to.) Other than that, I would have my control curves in a seperate group from my skeleton. In any rate, usually when you freeze transforms on the rotations and translate values, the axis will revert to world. So sometimes you'll have to have a group node above this to take these numerical values, and then once you have your control or whatever under that group node, it should be able to zero out. So yeah, just create a group node above the control to take these values and you should be good.
CoolDuck
01-05-2005, 09:40 AM
I would keep the animation controls (nurbs curves etc) seperate from the joints in the hierarchy in the outliner. I would group the animation controls and the joints seperately. Then use the connection editor to link the curves to the joints. Keeping them seperate makes it easier to find stuff.
I have written some stuff in Word to keep track of what I did with my rig to help me remember, maybe you might find it useful. Just my 2 cents.
Animation controls LRA
When you create a locator to use as an animation control for the elbow, most of the time, the Location Rotational Axis (LRA) doesn't line up with the one of the elbow joint for example. Instead of reorientating the elbow joint (or arm joints) to line up the the animation controls, it is better vice versa. How do you do this?
Group the locator so that is has a new transform node. Snap the group the the elbow joint. The locator inside the group must be frozen transformation. Orient constraint the group to the elbow joint, so that the group is following the LRA of the elbow joint. Delete the constraint afterwards. As a result, the locator inside the group is inheriting the LRA of the group, so locator is point in the same way as the elbow joint. Don't freeze transform the group after this.
What happens when you need this technique for 3 joints? The shoulder, elbow and wrist. You would need 3 locators plus 3 groups. When rotating the shoulder locator, how do you make sure the elbow and wrist moves along with it?
Since the locators are all grouped you can't just parent them together because the groups would stand in the way. You need to add a parent constraint from shoulder locator the the group of the elbow, and one from the elbow locator to the group of the wrist. If you don't have access to the new parent constraint in Maya 6 then you would need a point and orient constraint.
Plus: parent the groups together, see the screenshot.
Explanation: the shoulder locator rotates the elbow group, which rotates the elbow locator, the elbow locator rotates the wrist group, which rotates the wrist locator.
After this you can use connection editor to link things together. For example the rotate of elbow control to the rotate of the elbow joint. If the orientation of both is identical, and the rotational values at zero, it will behaves predictable.
abarman
01-07-2005, 05:27 AM
Thanks for the info GUYS!!
CoolDuck(!), I also wanted to keep the controls in a seperate group, but how can i let the controls move with character without parenting it under the joints?
thanks
abarman
seven6ty
01-07-2005, 06:35 AM
One method I used when creating a joint and control group was to do this:
Create your control and point and orient constrain it to the joint it will control. These constraints will be deleted in a bit, as you really just use them to put the control at the same location, and with the same LRA (to use CoolDuck's shorthand).
You will create two empty null groups. The first (Null_1) is P & O constrained to the joint the control is controlling. The second empty null group (Null_2) is parented to the joint above the joint you will be controlling. This makes it so the control object will follow along with the rotation of the joint above it, however it is rotated.
Then, you take Null_1 which is still point and orient constrainted to the control joint, parent it under your previous null group, Null_2 , and then parent your control under Null_1. Now you can delete the P&O constraints on your controll object, as well as on Null_1. Let Null_1 keep all of it's values in it's translate and rotate values, but freeze those on the control object. (Although now, it should be pretty much zeroed out.)
The last step is to simply P&O constrain the joint to be control to the control object.
Hope that all made sense. :)
CoolDuck
01-07-2005, 11:15 AM
Thanks for the info GUYS!!
CoolDuck(!), I also wanted to keep the controls in a seperate group, but how can i let the controls move with character without parenting it under the joints?
thanks
abarman
Well, I have a COG (center of gravity) control at the waist to move the character up/down/left/right/etc.... I parent the groups of arm control there, in the cog.
(The root joint is parent constrained to the cog)
anthonymcgrath
01-07-2005, 12:00 PM
alot o people seem to insist on a seperate hierarchy for the control curves. I were doing this myself for god knows how long but I've recently found out it isn't actually important and actually inhibits some of the rigging opportunities that a one hierarchy setup offers.
If you can get your control curves and joints under one hierarchy you can use character setup to simply seperate out the control curves and setup zero'd out bindposes and wotnot.
dunno - just wondering what peoples thoughts are on this? I could be well wrong but I used to be obsessive about the one hierarchy for control curves seperate from everything else but now I'm finding out that I can get better results by not trying to stick to this method. what do people think about all this?
ant
newcastle
uk
seven6ty
01-07-2005, 03:54 PM
Ya, I've kind of been getting away from that setup bit by bit, but I'm still using it. Just with using the whole parent -r -shape command on a curve to make it a part of the joint, that makes a lot of my controls (with the extra attributes and everything), a part of the skeletal hierarchy, so like right now, my controls group is only about half of what it normally would be, in length. I also have groups for rigid bound stand in low proxy stuff, and one for smooth bound influence objects. I like to keep it all nice and neat, but at the same time I wouldn't want to have one longgggggg huge hierarchy that I had to search through to find anything I needed... I prefer to kind of spread it out side to side a bit more, with say like, four main hierarchy groups.
anthonymcgrath
01-07-2005, 04:46 PM
wow thank god I'm not the only one to think along those lines haha. Can you explain the parent -r shape stuff - I've heard that mentioned a few times. What kind of methodology is this?
As for searching through the hierarchy - thats why I like the character setup stuff so much. I used always have the hypergraph open selecting the nodes that I want to keyframe but now I hardly have owt open - I just work with what I can select onscreen (my ctrl curves) - everything else is locked out.
Character setup is not the be all and end all but its a good way to get back to a zero'd out character without having to manually do it on each ctrl curve by simply creating a 'pose' so I've found this method is working great for me and feels much more fun to work with when you have numerous characters in one scene -keeps it all nice n controlled for you :)
seven6ty
01-07-2005, 11:27 PM
Yeah sure man. For that parenting thing...
Find the NURBs curve you're using for your control object. In the hypergraph, hit the pod racer looking icon at the top, the yellow box branching off to two grey boxes on the right hand side, to show up and down stream connections for whatever you selected.
This should show you both the regular transform node for your NURBs shape, and a shape node for it. Now deselect everything and select the shape node for the control. Go back to your viewport and shift select the joint you want it to control. Finally, go to the script editor and type in:
parent -r -shape;
(I've made it into a shelf button because I use it a lot.) This will make the curve a selection handle for the joint. You'll have to make sure your joint has it's rotations at zero and lock and hide the scale, and probably the translate values. Then you can add your new attributes directly onto your joint. This method evaluates quicker than normally, as it doesn't have to evaluate a few group nodes, control nodes and the constraints that you'd normally use.
Also, like I said before, this will place these controls in your joint hierarchy, but I've found if you really need to, you can place a null group node in your control hierarchy, and simply have it point and orient constrained to the joint it's following, and then child whatever things in the control hierarchy to it that you need.
Hope this helps, let me know if you have any probs!
CGTalk Moderation
01-19-2006, 10:00 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.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.