How do you or can you snap a rotation when changing an objects pivot rotation?
I have a simple model of the earth that is basically 3 concentric spheres, earth -> clouds -> atmosphere. I constructed it for a scene and tilted it at the proper 23 degrees and set up a camera for some still shots. I also translated it off the world 000 such that I could orbit it around a central point for a later simulation. Now I want to have the globe rotate on its axis but I'm now hosed because since everything has be globally rotated I cannot simply grab the y axis and do a rotation. I can select the rotate Y manipulator but to rotate only on the y axis you actually have rotations on all 3 axis. What I want is to reorient the rotational pivot to the axis of the current spheres position with the transformations frozen in that new position. I know how to change an objects rotation pivot using component mode but there appears to be no way to snap this exactly to the geometry, which in my case would be to the top vertex of the sphere. I've seen tutorials where you use a null, adjust the pivot rotation and then center the objects pivot to the null center. In every case the modeler was "eyeballing" the location of the new rotation, which for the purpose of the particular model was more than sufficient. In my particular case close does not work as you get a noticeable wobble on your surface textures since the pivot is not exactly aligned.
Now, granted, this is not a terribly complicated model and in boxing myself into this corner I can see that I can easily fix this by rebuilding the model and using nulls in a more judicious manner. That being said, I've run into this exact same issue a number of times before where rebuilding the model is not so easy, so if there is a solution out there that someone knows hot to accomplish this with Maya I would certainly like to know it.
I also use Modo in my 3D modeling and correcting this problem in Modo is a fairly straight forward procedure. That it cannot be done in Maya confounds me.
I'm not sure I understand the problem correctly. You want to tilt the object, then freeze its rotations so that it looks tilted but still reads 0 for all three rotation axes... but then still be able to rotate it around its own (tilted) equator using just one axis of rotation? Also, I'm assuming you have the three spheres parented to one another, so you only need to worry about transforming one of them, not all three, correct?
If that's the situation, I'm not sure I understand the workflow you are after. It seems to me that you are creating a difficulty by freezing the transformations and then trying to undo that difficulty by editing the object's rotation axes... and it's not clear to me why you'd want to do that.
The main purpose of freezing rotational transformations is to 'tell' Maya (or any 3D software, I imagine) which way you want the object to rotate. You should never freeze transformations with the object at an unnatural angle (such as the 23 degree tilt you describe here). When you do so, you are essentially 'telling' Maya that you want the object to rotate around a different Y-axis than its original one (in this case, making it precess instead of revolve).
As you pointed out, the cleanest way to set this up is probably with nulls (or groups or any other sort of nested transform). However, you might also get the results you're after by changing your approach to the rotation slightly. Try this: create a default sphere, then move it away from the origin, and rotate it the desired 23 degrees on the Z-axis (not X). Now you should be able to just rotate it on its own Y-axis and get the revolution you're after with no wobble or precession, correct?
If you can't use the Z-axis for that 23-degree offset, and must use X for some reason, you could also change the rotation order for the sphere. If you make it YXZ instead of XYZ then the Y axis will keep oriented to the sphere's equator even when you rotate it 23 degrees on X. Again, this is arguably a less clean workflow than simply using nulls to offset the object's angle.
Hope that helps somehow. If I haven't understood the problem correctly, please post again. If you could post a copy of your scene (or a similar example) that might help too.
Well, as you described, part of the problem is that I did in fact freeze the object when I should not have. What is frustrating is that appears to be a non recoverable error. In Modo I can reorient the workplane and snap my rotation axis back to where it should be and recover my error. Their appears to be no way to do this with Maya. Also, there appears to be no way to snap a rotation translation to either an object or incremental angles. I understand that is more of a CAD feature and Maya is really an artist tool but there are times I find when I need to snap things precisely and it is difficult to do in Maya. Not impossible but there are a lot more gyrations you need to do.
Ah, okay, I understand better now.
Yeah, I don't think Maya has a one-click solution to undo frozen transformations. I guess Modo must store the original axis somewhere, which I must admit sounds like a nice feature.
Here's what I would do to try to restore your planet's rotation axes:
1. Move it to the origin.
2. Create a locator.
3. Snap the locator to the "north pole" of the sphere.
4. Create an Aim Constraint which makes the sphere point at the locator. Make sure you leave 'Maintain Offset' turned ON. When you create the constraint there shouldn't be any visible change in the planet's rotation.
5. Now move the locator directly above the origin (set X and Z to 0). The planet should rotate to follow it, leaving its pole pointed straight up.
6. Delete the constraint and the locator.
7. Freeze rotations on the sphere.
This worked well in a quick test for me. I can't swear that it will work in every case.
As for snapping the rotation axes, you can activate snapping for any use of the rotation tool in Maya, so if you want to adjust the local rotation axes in component mode (as you mentioned in your original post), you can snap to increments as you do so. Access the snapping settings for the rotate tool by holding down 'e' and left-clicking in the viewport, or by selecting the tool and accessing the Tool Settings window. Also note that by default the global increment snapping hotkey is 'j'... hold it down while rotating anything for 15-degree increments.
Hope that's somewhat helpful.
Thanks for the tip! I will look into this. Been working with Maya for about 4 years now and I'm convinced the depth is somewhere around infinite. It was discouraging at first but now I just plow through things and when I get stuck just figure it out or ask questions.