Coordinate System


My name is Constantine I use blender for 9 years now to make models for games in unity and my problem is the coordinate system. Its right handed while unity’s is left handed and that means the y and z axis are different.

What I usually do before I export a model is to go into edit mode and select all the vertices then rotate them on the X axis by 90 degrees.

Can we get rid of the hustle and confusion because things get even more messed up with animations.

What I propose is for an added user choice on the user preferences similar to the select with left or right click option. Which will allow us to change the coordinate system from right handed to left handed.

That would help beginners and veterans a lot instead on digging for hours on forums and videos to get it right.

Thanks for your time.

This seems to be more of an exporter related feature request. What kind of exporter are you using? Would something like a checkbox “Flip on x-axis” when exporting solve your problem?

Well the ones that work with unity are .fbx and .blend and the problem is consistent and the same with both.

Also, it isn’t the x axis that needs flipping, more like z and y axis that are different, you see in blender z is up but in unity y is up. Also when I make movement scripts in unity if I don’t restrict movement in y axis the object moves at the same time on both y and z axis no matter what it looks like on screen and I have come across a lot of problems when scripting movement and rotation for a spacecraft that moves on all 3 axis.

3ds max has the same issue. To be honest I think the easiest way to workaround is to just put everything under a gameobject with orients your models correctly. Then put all of this under your root node, now you have identity orientation which is simple to work for the game code.

For static meshes it’s easy to fix the orientation at export time. See the fbx exporter from renderhjs on bitbucket.

While it would be a nice feature, I can imagine that it is not a simple task to just switch axis on the blender side. I doubt this will ever rank high on a developers Todo list for now.

Yeah Its a problem many have and there are many solutions, using an empty game object and parent your imported one is on way to go as you mentioned.
I was just surprised nobody mentions it around here and with all those kids using blender to make objects for games one would think that this would be something with above average priority.

It is annoying at times when I forget myself and I end up with an unexpected result, but you might have suggested another fix, maybe less tedious for the blender developers to do, fixing it during exportation…

As a 3D generalist working in the games industry, I’m also using Blender daily in connection with Unity, and I’m not experiencing any of the issues you’re describing. The fbx exporter handles all of that junk for you.

Also, NEVER use blend files directly in Unity. The downsides compared to “real” fbx are endless, especially if you’re using the default import script that comes with Unity. That one is pure garbage and hasn’t been updated in at least five years. (For instance, it expects you to be using Blender 2.4.)

Write your own one-click fbx exporter button as a python addon for Blender. Check the API doc to put together your ideal export parameters.

1 Like