Arbitrary or Selectable World Axis on Export
This one is relatable for all game artists, I assume. It doesn’t really matter which order a program like Blender uses internally (left- or right handed coordinate system, Y-Up, Z-Up or even like Modo free choice which order and which up-axis, per scene). Y-up is a very, very widespread convention nowadays and left- or right handed system is used inconsistently all over the place. As mentioned, though … it doesn’t matter that much as long as the user is able to stay in one ecosystem - one program. Problems arise as soon as files need to be exported and reimported from one program into another. Especially if the last one in the hierarchy is a game engine and the file is a rigged and animated asset. If a rigged object is imported into another program and the axis are switched up the object needs to be rotated by other means. One common solution is creating an empty object and making the rotated one a child of that. Then applying all the logic and clean transformations to the parent. Another one is simply rotation all the geometry in Blender so that the up axis faces in the Y direction and then exporting the thing. This has a ton of problems with armatures.
The current FBX exporter already has an option that works pretty well for static geometry but it’s still experimental and marked as “known broken with armatures/animation”. Then there are addon solutions as paid solutions to the problem.
Blender already is pretty far but it needs to find an export or implementation that works reliably by default without the need for an addon.
This one is probably pretty difficult to achieve but so important if the user doesn’t need to rely on another software or converter for the last step.
4 Comments
Nearly all exporters (and importers) in Blender are add-ons. So saying it needs to not require an add-on is not going to happen.
That said, maybe add-on developers' lives could be made easier if there were a convenient set of transform functions to help with changing coordinate systems on export. Hell, those functions could probably be written as an add-on itself and exporter developers could enable that add-on when theirs is turned on.
Of course, offering the option would still be the responsibility of the exporter add-on developer, but something like what I'm describing would certainly make their lives easier.
@Jason van Gumster: Yes, you're right - I described that wrong. I actually don't even know why I've written it that way. It doesn't matter if it's an AddOn or not as long as it works. What I meant to say was that it should be something that is bundled with Blender by default (so kind of an Update to the FBX Plugin, I guess). Or even better - a way to set up the axis inside of blender. Though, since the program wasn't designed that way from the ground up that is not changeable any more, I assume.
If there is an easy fix to this that can be invoked on export - by all means that is absolutely fine as well. Ultimately it's just important that a correct axis alignment can be transferred to another program without an additional (re)locator object to correct the whole animation.
The AddOn thing sounds like it currently would have to be based as a fix in every AddOn separately, though, wouldn't it? So if there is a fix for this it currently has to be implemented in every AddOn instead of export Addons simply plugging into Blender, correct?
Hmmm - writing about this I wonder: Would it be possible to simply add a NULL rotation object to the Whole Scene in the beginning to emulate a wold-axis change and then simply export anything that's above that hierachy? You'd still have to SetUp the scene before starting the Animation but that could correct transform differences at least as long as you know where the export is going to, no? (need to check this....)
@motionblur.of.doom: Whatever the fix is (be it an add-on library or something added to the Blender Python API), it would be the responsibility of each import/export add-on maintainer to fix or update their add-ons on their own. Even now, not all export scripts give the option of adjusting coordinate systems (because it's not easy to support). So even if this support were added, any export or import add-on would have to be changed to make use of it.
100% agree, proper spacial exports are probably the biggest downside to using Blender for game dev ( everything else is pretty spot on :D ).