: Blender : FBX : UE4 : Normals : Tangents : Binormals :

Hey guys. I’m at a stage in UE4 development where content creation is now a main focus. FBX / Blender support > UE4 still seems lack-luster and the devs seemed to have taken a long break from the issue. My/and several other peoples bug requests on the official dev page(s) have gone silent and the issues have seemingly been left un-resolved. One dev in charge said a few times that a lot of this is due to UE4, having a weird implementation of FBX, and as well FBX being a complete POS in general. I don’t disagree with the dev(s), but the problems still remain.

Currently I’m looking at a Maya LT 2016 subscription to fill the gap. (I’ve used Maya professionally a long while in the past (and I thought I had left it in the past long ago, but then AD bought Softimage and then killed Softimage), I personally dislike Maya deeply, and I am not excited about the prospect of using it again, but it seems necessary atm as it has the best FBX support of any package, and UE4 requires FBX)

  1. What does the future look like for Blender > UE4 ? (I suspect anyone who goes beyond just having fun in UE4 and tries to make a full project will end up leaving Blender out of necessity) On the other hand, Blender is working quite nicely for Valve workshop games because of the dedicated .SMD system that is available.

  2. How have you guys been finding Blender > UE4?
    deleted: I think I spoke too soon / frustrated

  3. Is there any other solution for Blender > UE4?

  4. Any new tricks I might have missed. (the forum posts/bug reports are spread out over several forums, but I think I’ve studied them all closely, any magic working systems I might have missed?)

  5. I had an idea that since UE4’s code is open for edit/addition, perhaps it might be possible to skip .FBX and do a .blend file importer/exporter on the UE4 side (or some other similar solution)


Also, big thank you to the Blender devs for even attempting to tackle these issues. In the past, every single time I’ve played with modding, one package (be it Max, Maya, or Softimage) always had better support than the others depending on the engine (Elder Scrolls, UE, HL2, etc.) Some engines favored Maya, others favored max, others matured and eventually had near equal support, others used Softimage officially and then let the plug-ins die off and depreciate. It’s always been a mess, I know how hard the devs are working, and that other issues may be more important to their roadmap. Thanks -cheers

limited support for custom normals/tangents and binormals

Please be specific and tell us what the limitation is.

Telling us something is limited, is not enough information.

Yeah, I can try. So… normals face out perpendicular to the polygons. Binormals and tangents are perpendicular to the normals, but going in different directions. So one issue is, since it’s automatic generation with no options upon export, you don’t get to choose which way the Binormals and Tangets point. Other 3D apps allow said control, and further would allow you to individually manipulate each and every one at any angle you wanted (not sure why we’d need that last bit, but other apps do allow it for whatever reasons/SFX) (or use a brush or other selection technique for larger edits) (I’ve never seen an app that did any of this stuff particularly quite well, not Softimage, Not Maya nor Blender, maybe Max is good at it, I don’t know). Here, it seems you just get what you get upon export, and hopefully there’s no problems since there are no controls. You also don’t get to view Binormals or Tangents inside Blender (again i think they are created on export, so it’s a crapshoot which direction they will favor and face *but perhaps this isn’t a problem)

EDIT: deleted confusing info.

So in one image I’m attaching you see a set piece from a production project UE4/Epic released and shared. The other image is the same thing made in blender, normals/binormals/tangents all look fine (here they are all displayed at once in this image instead of separately / and they are facing a different direction from the UE4/Epic set piece, again we get automatic results on this, no way to control the direction other than rotating the object, freeze transforms and re-export to try again (not always practical/feasible when it’s not a perfect square/flat plane). Perhaps I’m over thinking this but I’m worried that not having control over the directions might be a problem somewhere, otherwise it looks good.

As far as general FBX issues to be more specific about, I would suggest going to the official dev page and looking at open tasks related to the FBX addon. I think most of the issues have their own cases or are at least mentioned with-in another case. They range from the FBX export scale function not working with animations, if you try to use the fbx scale function to export a custom rigged/blender mesh, your scale for the object won’t be the same when you start to play an animation. The current work-around is to make sure you don’t need to use the export scale function in the first place when doing custom blender work.

Also, I have to use the older exporter for most things, because you get “multiple-root bone” errors otherwise, which require a very weird work-around, the older version of the exporter in the options, doesn’t have this issue. The FBX version numbers are blender centric, they don’t line up with anything like “settings for FBX 2014 or 2016, etc.” they are 6.4 ascii and 7.4 binary respectively. Both of them make different files beyond just ascii/binary encoding, the binary one is the one that gives the multiple root errors for rigged/animated pieces, I try to avoid that one, others have mentioned weird work-arounds dismantling your rig in specific ways before export to get around that part of the error, or again, just use the other version of the exporter.

There are problems with adding a second animation to your first/original imported skeleton, you have to jump through a lot of fancy import seperately/re-targeting tricks in UE4 or the results are un-usable and deformed, and - or, you may also have to apply a trick to make sure every bone has a slight rotation value keyed on it somewhere.

Because of requiring lots of work-arounds and do’s/don’t’s you have to follow, things become inflexible, and I don’t think it’s good enough beyond playing/testing/having fun/and the months you spend learning UE4, for learning/playing it has it’s issues but it’s good enough, but for production… it’s not production ready. As I have researched this issue, there have been similar complaints related to FBX when exporting for Unity engine and bugs that come, go, and come back again a release or two later. Here is the thing. If you look at FBX for Houdini, in their forums, those guys are also facing similar issues in conjunction with UE4/FBX. So obviously FBX it’s not a great format and or your devs are very correct and something about the way UE4 implemented the FBX SDK is off. Every day I’m finding new problems/limitations and roadblocks, not related to Blender itself, but all related to exporting via FBX and sending to Unreal. It doesn’t leave a whole lot of time for the art of things.

This must be an absolute nightmare and near impossible of a chore for the Blender devs. All I know, is that I can’t move forward with my project easily and I’m pretty sure I need to use Maya as a middle man between Blender and UE4 and or wait, possibly a long time, who knows. That is why I made this thread, to make one last call to see if I am missing anything big, or if there is another middleware tool I could use, and if not, to see if we can solve this for later, because I would rather send that Maya subscription monthly over to the Blender devs (everything else about Blender is working well enough or coming along nicely in each release). 2 months+ have went by since this was last discussed here, many dev attempts have been made via updates/nightly builds, but not much has changed.


Not quite sure what to do with all that…

Tangent and Binormal
Well, Is there any real use to be able to choose different orientations? In blender, those are generated using mikktspace algorithm (for tri/quad only, and using an UVMap as ref too). Now, since UE4 (and other game engines afaik) have options to import tangent space instead of recomputing it, I do not really see the issue here…

We could probably quite easily add custom tspace to custom lnors system if really needed, but - as you mentioned yoursef - issue is then to give nice ways to edit those! We already lack serious custom normal editing currently… :confused:

Animated armatures and scale
This is known issue, will work on it when I have time and witt, fixing FBX bugs is always a big PITA.

Multi-root armature issue
Not aware of this, afaik there’s no report about it in our tracker, which is first mandatory point if you want to get it investigated.

I’m using blender for my project in ue4. Yes I’m aware of a lot of these nigglies too. But I’ve found a reliable enough work flow till some more of the bugs are ironed out. That scale one is the most frustrating one for me.

PS mont29, if you need sample files I’m still happy and available to make some up from max or blender.

Thank for the update Mont. I will report the multiple-root error, so you can see it with-in a few days. I’m going to try hard in the future to be patient and as clear as possible with better visual examples and clearer written descriptions.

Gibbz hit the nail on the head, the Scale issue, is currently the most important. It’s the problem that was driving me crazy and inspired me to write this thread here, when I was probably too tired and frustrated for my own good to even attempt to write something technical at that time.

Normals/Tangents/Bi-Normals. I’m not nearly as concerned with this stuff at the moment, it is working well enough. Like you said it’s Normal angle control, and a good system for interacting with it that is missing. And then to be able to see Tangents/Bi-Normals in editor, and the option to flip the direction they are pointing would be a nice touch, if not unnecessary/overkill.

Scaling madness shall be fixed by rBf30fc86ab552f193b89…

Awesome! Thanks a bunch mont29! Your a champ :slight_smile: