0
$\begingroup$

I have purchased a model.

This model is rotated for a promo rendering.

I have tried to rotate it to a zero position manually, but I find it both time taking and just not perfectly accurate.

Does Blender provide any way to automatically rotate an object to its geometry?

Thank you!

$\endgroup$
1
$\begingroup$

There isn't an 'automatic' method, because we don't know what rotations have been applied when importing a model.

But there are a bunch of different methods for aligning a model in some way. Here is one:

Identify a face on the model that you want aligned facing one of the global axes. Select that face and align your view to the face in the orientation you want it using the Shift+Numpad short cuts or the view menu. Aligning your view to the Top of the face (Shift+Numpad 7) will result in that face being aligned to global Z when you're finished (use Left and Front views if you want to align to X or Y).

Snap your cursor to selection and keeping your view aligned switch back to object mode and add an object (a cube is fine). Make sure to choose 'Align: View' before messing with anything else.

enter image description here

Aligning the new object to View will give it the transformation rotations that the face would have to have gone through to be where it is compared with the global 'world' orientations. You can now simply select your original object, then the new object and join them (Ctrl+J). Then clear rotations and it will be aligned to what ever global axis you wanted. Obviously you then delete the cube in edit mode.

There is some way to do this using custom transform orientations (2.8: The + button in the transform orientations drop down) instead of adding an object. But I don't remember how, so maybe someone else can post that method.

enter image description here

$\endgroup$
  • $\begingroup$ I'm using Blender 2.8. When I add a cube, I don't see your "Align" property anywhere. Where would I find it? $\endgroup$ – tmighty Aug 23 at 18:59
  • $\begingroup$ I got it according to this answer: blender.stackexchange.com/questions/149566/… $\endgroup$ – tmighty Aug 23 at 23:32
  • $\begingroup$ Can you have a look at how I could do it with a grouped object? I have uploaded my grouped model here, and I don't see how I could apply your answer in this case. Thank you! pasteall.org/blend/index.php?id=52238 $\endgroup$ – tmighty Aug 25 at 19:14
  • $\begingroup$ @tmighty I think you mean parented (grouped is something else)? You should be able to use the same method, but instead of joining the objects you would set parent. In your example file you would parent your top level empty to the new object, then remove the rotations from the new object and clear parent on the empty making sure to 'keep transforms'. $\endgroup$ – hekete Aug 26 at 4:52
  • $\begingroup$ Thank you, but it's hard to understand what I should do. Would you mind describing the required steps in a new question? This would help me a lot: blender.stackexchange.com/questions/149745/… Thank you! $\endgroup$ – tmighty Aug 26 at 12:51
1
$\begingroup$

Kinda depends on what you mean. A model is composed of a lot of geometry. Is there a specific face you want facing front?

If so, try this:

Select a face. Ctrl-alt-space to create a custom orientation on the basis of that face.

Object mode, snap cursor to selection. Create an empty. Duplicate that empty. Move that duplicate 1 unit in the custom Z. Give the original empty a locked track (lock Z, probably) targeting the duplicate. Parent your mesh to your original empty (keep transform). Delete or mute the empty's constraint. Unparent the mesh (keep transform.)

enter image description here

That's assuming you're already oriented properly up/down (Z axis). If you're not, you can use similar techniques, combining a damped track and a locked track.

$\endgroup$
  • $\begingroup$ Hey, that's clever! $\endgroup$ – hatinacat2000 Aug 22 at 22:31
  • $\begingroup$ @Nathan Thank you, but I'm using Blender 2.8. The shortcuts don't work this way anymore. $\endgroup$ – tmighty Aug 22 at 22:40
  • $\begingroup$ They do if you chose "2.7 interface" at initial startup-- that's a 2.8 screenshot I gave above. Can't tell you what your particular hotkeys are, but you should be able to figure it out with a bit of googling. The only one I gave a hotkey for was "create custom orientation" anyways. $\endgroup$ – Nathan Aug 22 at 22:47
0
$\begingroup$

We have no context for what kind of "geometry" your model has because you have told us nothing about it. So the best we can do is offer examples that might not be relevant to you.

First consider a plane. A plane might be considered in "zero-position" (as you are implying) if its normal is parallel to the Z-axis. We could rotate any plane in arbitrary orientation to "zero-position" by measuring its X and Y rotation offsets and rotating about both axes by the negation of those values. But this is challenging because Blender's default floating point precision for measuring tools is only 4 decimal places (if I recall correctly). Blender's internal precision much higher though. I am pretty sure you can change your preferences to get more digits returned at the front end.

No tool native tool exists to automatically "undo" rotations but it shouldn't be difficult to implement one for somebody already experienced writing Blender scripts. We would just need to identify a line segment (or two vertices) to be aligned and an axis to align it to (the Z-axis, in the previous example).

The above criteria should work for objects with distinguishable poles (like UV Spheres) or planar features, but "right-side up" would be relative to the edge/vertices the user chooses to align.

$\endgroup$
0
$\begingroup$

This video helped me perfectly: https://www.youtube.com/watch?time_continue=87&v=NEUa1IA7NBQ

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.