Object angles/rotation differ between Unity and 3DSMax

I’m failing to find any logic connection between object angles in Unity compared to 3DS Max.

In the image below I did some tests trying to find the matching object orientations between unity and 3DSmax, but the results differ wildly:

In the first example both use a rotation of (30, 30, 30) degrees.

In the second I could match the orientation making the Z rotation in Max (0, 30, -30) the negative of the Y rotation in Unity (0, 30, 30).

Applying that ‘formula’ in the third example (30, 30, 30 vs 30, 30, -30) still causes two different orientations however.

Could anyone shed some light on this, or come op with a formula/code snippet to get matching object rotations?

Max and Unity use different axis orientations, but that’s not really a problem as long as you rotate the pivot in max the right way and export it. In max, the green arrow needs to point up and when the model is looking forward (towards positive y / upwards in the top view), the red arrow needs be point left IIRC. This will make the imported model have it’s forward vector towards positive z in Unity, which is what you want.

@Cherno I’m afraid that’s not the issue here - unless I’m really missing something. From my tests, you cannot get the same object orientations by simply flipping the model or rotating it 90° around some axis. The orientation is fundamentally different between Max and Unity.

As posted on the forum:
I’m trying to create a custom 3D model importer, which uses MaxScript to export model data to TXT format which my Unity game then reads. But as mentioned above, object angle rotations appear to have a completely different meaning in Unity and Max, so the imported orientations are wildly incorrect.

Here’s a detailed answer :