Hello,
I should have the latest version if the latest version is 1.4.13. I did the most rudimentary test possible. I have just installed the addon and did not change any default settings. I have just selected a single static mesh in Blender, and exported it to Unreal using the tool. The mesh is a building which has 4775x3460x2385 centimeters in Blender, and ends up being size of 47x34x23 centimeters in Unreal. I do not understand how this could pass any QA testing.
Blender interprets its internal system units as meters while UE4 as centimeters. So the conversion here is necessary. You can’t just tell Blender users “Well, ignore what Blender tells you and interpret meters in Blender as centimeters”.
Here’s a video:
Aside from incorrect scale, also the forward axis is incorrect. Blender’s forward axis is -Y where as Unreal’s is +X. This is absolutely crucial to get right as well, because Blueprint and C++ functions like “GetActorForwardVector” rely on it. You don’t want to get a forward vector of your car actor just to get the left or right side of the car mesh.
And of course, any ugly workaround like parenting a mesh under root scene node rotating in 90 degrees are not acceptable, for many reasons, one example being Unreal’s native movement components rely root component being the one which checks for collisions, and if you have something like a capsule collider as your blueprint root, you can’t really change the orientation of the capsule, as root component does not have any rotation within the blueprint component editor concept. I am writing this just in case I’d get answer that the proper forward axis is not important.
Lastly, in the video, you can see me changing units in Blender between centimeters and meters, to show you that in Blender, this setting only changes how the Blender’s internal system units are interpreted and displayed in the UI. It does not actually change scale of the scene in any way. Only the Unit Scale value does, and adjusting that one breaks big portion of Blender’s tools, as Blender simply wasn’t designed with changes of that value in mind.
The main point of having any kind of “bridge” tool is to address exactly these issues. So that user doesn’t have to mess with cryptic FBX settings to find the right combination, both on Blender’s end and Unreal’s end. It makes me all the more confused given the fact that the recent addon version actually added FBX settings right to the addon preferences:
This is the absolute opposite of what should be done. The point of having some sort of bridge exporter is that these things are sorted out for us. It should be one click always works solution. Having actual exporter settings to mess with should only be relevant if the import/export target software is not known. But here, you have the advantage of knowing the exact conditions in both output and input software, so these settings should never be a factor for the end user.
Bottom line is that if I have a 20 meter wide, 20 meter deep and 10 meter tall thing facing what’s considered a “Front Axis” in Blender, I want to end up with a 20 meter wide, 20 meter deep and 10 meter tall thing facing what’s considered a “Front Axis” in Unreal.
EDIT: One more thing that makes no sense to me. In the Path section of the preferences, there string fields for paths that the tool creates in the UE project content folder. Why are these global? Let’s say I work on a robot and a tree in Blender. I certainly want to have tree meshes in completely different location in content folder structure than the robot parts. Is the end user workflow really intended to be that the user keeps going deep in the addon preferences every single time they work on a different asset to change the global export path? This must be very frustrating and lead to numerous errors causing the asset to be unintentionally exported to a wrong folder because user forgot to do a chore of going to usep preferences and mess with global, scene file independent addon settings. These paths are unique to assets, so they should obviously be saved as the .blend file property, not as a global addon preference.