Blender to Other Software pipeline (Up-Axis)

Let me start this thread with a question. Is it easy to work between blender and more specialized software (ZBrush, Unity, etc…) compared to other 3D Modeling Software. I think it depends on your needs, but I would like to discuss Z-Axis up.
For example, when importing the FBX into Unity, you check apply transforms (!Experimental), but dealing with animations or rigs makes the process a bit more complicated. It’s an issue that comes up often and usually a work around is needed. So I’m posing some questions.

  • Why is it Z-Axis up when Y-Axis up is the much more common standard in the animation industry?
  • based on the changes to Blender 2.80, it seems they are trying to make migrating to blender easier. Is this something you personally would like to see change, or at least the option to?

The only issue I can figure is for the addons, but I think a variable that get/sets to the up and forward axis could solve many problems there. What are your thoughts?


I don’t think that there is any true “standard.” Import/export routines should deal with swapping the coordinate tuples around automatically.

It would be great if that was handled by the exporter.

I thought that was the standard because it seems the majority of software for animation/modeling purposes goes with Y-Axis Up. Maya, Houdini, Unity, ZBrush, and I recently heard about modeling software Rocket 3F. I was actually surprised when I investigated UE4 and saw it used Z-Axis up.
It apparently uses a variable in the fbx file “coordiante system used” to correct imported models, if that information is available. I’m not sure what information Blender’s fbx exporter includes.

It shouldn’t be that difficult for exporters to convert from Z-up to Y-up if needed, a number of exporting addons already do this (as it’s just coordinates).

Where it could be tricky for Blender users is if the devs. decide to switch to Y-up, any code in the source and in addons that use coordinates would need some re-arranging.

I personally wouldn’t like to see Blender developers make a change like this in Blender. It should be handled by exporters and importers.

If we have to use a common system then I suggest the one that people have been using perfectly well since the 17th century :stuck_out_tongue: