Even though that I have rigging in Maya for a long time, I have not been able to get a clear answer for this particular question.

As a personal preference, I always use Null objects to set my controller object's transformation attributes to zero.

But most of the time, I have also seen some riggers that just put their controllers where they want and go to the menu and select "Reset Transformations".

I know that using a empty group works finer than the other one. But that is exactly What I want to learn?

Why do we use empty groups? What is the main benefit of this method?

I hope I have been able to as clear as possible about my request?

I'll be waiting for your great replies.

Best Regards;

Ozan

choi-margatta

06 June 2010, 11:01 AM

When you reset the transformation of a transform node, its local rotation axes reset to its parent object. So controlling the rotation axis of the object when zeroing out its channel, we use empty group.

ozioz

06 June 2010, 12:38 PM

Ok, thank you so much but I can not use Maya because I am in office right now.

When I get home, I will take a look at the process again and try to explain What I have been trying to achive.

I watched a video tutorial which has been made by Digital Tutors. The instructor always use "Reset Transformatins" command the controller object.

So it is a prove that He does not know how to rig and gives the animator a corrupted rigging system.

I am so confused about that.

Anyway, do not get anger with me! I am so carious about that.

Help me

Ozan

choi-margatta

06 June 2010, 01:40 PM

I will not get anger with you. Don't worry. :wavey:

I wouldn't say that DT tutorials spread incorrect information. They are doing great job as far as I can see. I haven't seen the tutorial you mentioned though.

Actually the whole point of freezing the controller is that we want it to have a default position where it is placed so that we can transform it to its default position by zeroing out its channels. Right? Say that we created a nurbs curve controller to control a joint. We placed the controller and after some paranting operations to put the controller in the right hierarchy, we see that the controller's channel is dirty now. If we freeze the transformation now, the local axes of the controller resets to its parent object, and the axes of the controller and the joint don't match anymore. Preventing this, we should create empty group whose local rotation axes are exactly same with the controller. And place the empty group where the controller is supposed to be, and parent the controller to the empty group. And now the controller is automatically zeroed out. Because it is now in the center of the parent object, which is empty group.

You can also freeze the transformation of the controller if dirty, as long as its parent is an empty group with its local axes are the same.

ozioz

06 June 2010, 01:47 PM

Thank you so much body!

I can say that You explained as best as it could be. Now I have a clear solution to Why we should use empty Null objects.

You were greate.

By the way, Is there any script that automates this process. ( you know select the controller, shift select the joint and there you have it. )

Best Regards;

Ozan

Geuse

07 July 2010, 10:31 PM

The main reason using empty groups are really for the fk controllers as they are controlled by rotation. For example: You create an arm controller and parent constrain it to the joint, delete the constraint so you now have it lined up with the joints rotation axis. When you freeze this you'll set it back to the origin axis and though the shape is aligned correctly, the axis are not! As you want to control the joint with the controller, you could orient constrain it with "maintain offset", but the axis for the controller will still be aligned to the origin axis and when animating, it's a very bad representation of the joint's axis. But, by putting a group with the same orientation as the joint, putting the controller inside the group and freeze it, we can zero out the controller and let it constrain the joint itself with the same orientation axis so the representation is exact.

Another thing you want to look into is also orientation order, which is very important and are mainly based on which orientation you use in your joint hierarchy. Consistency!

Besides using empty groups for this purposes, empty groups are used in space switching setups etc. Wherever they can aid you and you can find a purpose for them.

ozioz

07 July 2010, 10:44 PM

Thank you so much body, I got the idea. That was so clear and I want to thank all of you guys.

I have been searching for the script and looks like I'll be searching for it. Cause I have no been able to find anything so far. ( The script that automates the process of this type of controller. )

Best Regards;

Ozan

Geuse

07 July 2010, 12:46 AM

I have something that I use for fk controllers. You choose a nurbs curve and shift select the joints, then run the command and it renames everything and puts each element in a parent hierarchy.
If you only want the groups to be oriented and named corresponding to each joint it could be alot simpler.

Follow Us On:

The CGSociety

The CGSociety is the most respected and accessible global organization for creative digital artists. The CGS supports artists at every level by offering a range of services to connect, inform, educate and promote digital artists worldwide. More about us on TheArtSociety.com