FBX Model importing in at -90 X rotation

I have several (unskinned) models in 3DS Max. Whenever I import my models they come in at a X = -90 rotation. Resetting them to 0,0,0 makes them face down.

I have exported my model using both Y axis and Z axis as the up. I have also reset the XForm.

My modeler seems clueless as to why this is happening. Anyone have an idea?

This is just how it is. Max and Unity uses two different coordinate systems, so some conversion will happen. If you want an object to be imported into Unity with no initial values on rotation, you’ll have to make those initial values exist in 3ds Max:
Push the “Affect Pivot only”. Rotate X axis by 90 degrees, so that Y is pointing up.
Then the object will have 0,0,0 as rotation values, when inported into Unity :slight_smile:
If your modeller make sure to always initiate modelling in top view in 3ds Max, local Y will be pointing upwards in Max automatically…

2 Likes

Thank you Kragh. I was going to actually do this, but I thought it might be a really sloppy hack around a deeper issue. Thanks for letting me know it’s just more quirky 3D stuff.

I don’t need to do any rotating in max. When exporting, I select “Y-UP” for axis, and it exports/imports fine. I always collapse transforms (etc) to clear up scaling, mirroring etc, though.

Well, you don’t need to set a rotation in max, and the model will come in just fine. But it will have a rotation in Unity on its x-axis at 270 degrees (-90). If you change this to 0, your model will be rotated compared to your max-scene. And that is just how it is. If you don’t experience this, Jaimi, it’s because you misunderstand what I speak about :wink:
So again; to have your model having 0,0,0 in your Unity transform rotation, you need to have it 90,0,0 in Max.

Ah, I see what you’re saying. Everything looks correct, and the base game object is correct, but my biped is rotated at 270,90,0 just like you say.

Maya rules! :slight_smile: haha

I cannot rotate at all my fbx exported from Blender. Any ideas?

What do you mean by ‘cannot rotate at all’? You cannot change the inspector values? You cannot rotate it via script?

Old topic, but I also got stuck on this just now.

In Blender, all transforms are at 0, and these exist FBX export options for choosing which axis should be forward and which should be up, but regardless of what I choose, the model comes into Unity rotate the wrong way.

I need to wrap my head around this, but haven’t managed yet. This must be a common problem with an easy solution? Both apps have coexisted for years now.

The thing that’s weirdest to me is that if I click on the model itself in the Project - Assets - Models list, before even adding it to the scene, I can see in the inspector that the X -90 rotation already there and greyed out! (And the model rotated the wrong way in the preview as well.)

1 Like

Hi, I had the same problem. It was very annoying! Finally, I was able to solve it making my 3D object as a child of a “empty” object making any transformation / rotation on it, not in the 3D imported model.

that isn’t really a solution. Everyone can do this. But there is no point of putting an empty game object when you can have your model exported correctly.

Is still not possible to change transform when importing in Unity? I never got the reason why the transforms has to be locked; when they could be enabled and I would not need to go through EVERY single mesh I want to use, and correct the orientation.

There are cases when you can’t just generate a new empty object and place the mesh in it…

You can use this very useful max script

or my tweaked version (ui fix, success alert disabled)

may not work with animation and rigged models
example of settings

2 Likes

@io-games Do you have a update version of this script that works with rigged models?

sorry, no(

I know it’s probably a bit too late but I found a fix with 3ds max. Okay so I figured it out!

  • In 3ds Max rotate your model -90 degrees on the axis that appears wrong within Unity. (For me it’s the Z axis)

  • Use reset XForm on the model in 3ds Max to reset it’s rotation to 0.

  • Rotate the model again 90 degrees in 3ds Max to bring it back to it’s correct state.

  • Export!

For some reason Unity needs the model to have +90, if it doesn’t it automatically rotates it… but if the model already has a +90 degrees rotation it does nothing and you end up having your model rotated correctly and it’s transform all 0.

Answer updated*

1 Like

Thanks Tony_T for showing us how to do it in 3ds max. I think figured out how to do it in Blender…

  • In Blender rotate your model -90 degrees on the axis that appears wrong within Unity. (For me it’s the X axis)

  • With the object selected, hit Control-A and then select the “Rotation” item in the context menu that appears near your cursor.

  • Export!

1 Like

Bug still exists in 2019.3 :frowning: Has anyone submitted a bug report?

it’s not a bug. It’s just different coordinates system in different 3d apps.