Hey yall! I am fairly new to Unity but am a seasoned 3ds max user. I have been developing some assets for a game and have run into an issue with some of my assets. When imported into Unity for some reason they have inherit rotation/translation or sometimes both. When I look at them in 3ds max they have no translation or rotation so I am not sure where the problem is occuring and how to fix it.
I drag the asset from the folder into Unity’s project folder. Then I drag the asset from the project folder into the Hierarchy section so it adds the object to the scene. That is when I notice that there is rotation or translation. Here are two screen-shots showing the mesh in 3ds max and then the mesh in unity.
Water Droplet - No animation.
Harvester - All of the harvester parts are linked to the cab so therefore the cab is technically the root object that they all follow. It has some animation but not much.
Any thoughts on this would be greatly appreciated. Thanks!
This is, sadly and infuriatingly, normal behaviour for Max assets.
3DS Max uses Z up rather than Y up (as Unity has it). So Unity imports the FBX and - in order to get the up axis correct, rotates the model on import rather than re-building the data with the Unity-correct axes.
Thanks for the reply. Its odd but when I export a mesh that is rigged it gets proper 0 translation/rotation when imported.
The fbx exporter has a Y-Up conversion when exported. Is there something else I need to do when exporting, such as rotate the object -270 degrees on the X axis? Thanks!
The Y-Up conversion is literally a simple little boolean value in the file that says whether the file is Y or Z up. It’s not a proper conversion - that’s left to any FBX importers to sort out for themselves
Didn’t notice that skinned stuff came in without rotation… I think there’s some slightly more sinister stuff at work (the bones are actually rotated).
It’s a pain in the arse, generally, until Unity guys write a proper importer that actually rejigs the data rather than adding rotations (or someone writes a proper Max exporter that does the same)
Not that I know of, I’ve just ended up working with it.
It doesn’t really break anything other than being a bit of a pain. If you need relative vectors and such, you need to either parent your model to an empty game object, or use transform.right as transform.forward…