Page MenuHome

FBX Importer Doesn't Respect Size and Hierarchy
Closed, DuplicatePublic

Description

System Information
Operating system: Windows 10
Graphics card: GeForce 1080

Blender Version
Broken:
2.80 Beta
2018-12-03 00:27
Hash: a205493426b

Short description of error

Imported FBX files don't have the size or hierarchy correct. We have FBX files that were authored in 3DS Max. They import into Maya just fine. They import into UE4 just fine. But importing them into Blender results in size issues and parenting issues. See the attached screen shot. The left shows the imported models in Blender. The right shows the exact same FBX files imported into Maya.

If you look at the selected (orange highlighted) objects in Blender, you can see the circular disc and the vertical pistons that are in the Maya file.

Event Timeline

Brecht Van Lommel (brecht) triaged this task as Needs Information from User priority.Dec 6 2018, 5:53 PM

We need an example .fbx file to demonstrate the issue, to be able to investigate this.

Sure thing. Check these out. The FBX should load into Blender like it does into Maya, UE4, etc. However it does not, as you can see in the attached screen shot.

I dug into the scene and it looks like several of the meshes aren't parented or scaled properly. In this case, the MT_Anim_ARM_03 mesh should be parented in the following hierarchy:

MT_ROOT_Main_Animation

MT_Anim_Root_Arm_All

MT_Anim_Root_Arm1

Bone007

Bone008

There's another part, MT_Anim_ARM_02 that's parented to Bone007. It imports fine. But MT_Anim_ARM_03 should be parented to Bone008 and it's not.

Manually parenting MT_Anim_ARM_03 to the MT_Anim_Root_Arm1 mesh, and then choosing the Bone008 as its parent doesn't resolve the issue.

In addition to this, most of the FBX components I've imported from 3DS Max are located in different parts of the scene when they come into Blender. In Maya and UE4, they all come in relative to each other, so it's literally an import and then you're off and running situation. But in Blender, it's requiring a lot of manual correction, which is not ideal.

Thanks for looking into this! We're looking forward to eliminating UE4 from our pipeline and doing all of our scene layout and rendering in Blender.

Here is what the animation should look like.

I spent some more time with the FBX importer. I've been unable to get the bones to import and orient as you see in this video. That said, I found that if I cleared the origin for the MT_Anim_ARM_03 mesh, then parented it to Bone007, I was able to get it to snap to the general location that it should be. Unfortunately, this had no effect on the scale. I still had to manually resize the mesh to 0.01 scale on X, Y, and Z to get it to be the right size. And even then, I have been unable to get it to orient properly.

Steve Warner (stevewarner) raised the priority of this task from Needs Information from User to Confirmed, High.Dec 7 2018, 2:40 PM

I'm changing the status on this from "Incomplete" because I've supplied the FBX files needed to test this and resolve it. I've changed the Priority to "High" because this issue severely impacts interoperability with other 3D applications. With Blender having adopted LMB as a standard, it's clear that 2.8 is designed to appeal to new Blender users. Those coming from other applications will need a working FBX importer in order to migrate assets and take advantage of Blender's powerful toolset.

Brecht Van Lommel (brecht) lowered the priority of this task from Confirmed, High to Normal.Dec 7 2018, 2:48 PM

We only use High for urgent issues.

Tomasz Zablocki (zabloct) raised the priority of this task from Normal to Confirmed, High.Dec 19 2018, 10:17 PM

Observing the same behaviour i.e. objects moved around and all of them are at the top level without parenting. This is a total blocker for me. Is there a chance this will be solved soon? Cheers.

Bastien Montagne (mont29) lowered the priority of this task from Confirmed, High to Normal.Dec 19 2018, 10:29 PM

@Tomasz Zablocki (zabloct) please read topics, rules, etc. etc. This is certainly not a high prio issue currently, even less given of frustrating FBX and other apps are at handling those scale/units/blabla stuff.

Bastien Montagne (mont29) lowered the priority of this task from Normal to Needs Information from User.Dec 19 2018, 10:45 PM

And actually even moving back to incomplete. We require SMALL AND SIMPLE files (in caps and capitals in the faint hope that it will be read this time)!

How am I supposed to investigate a full 6Mb production file? That kind of issue is to be reproduced with two or three cubes and bones, not a full mechanic hierarchy with tens of bones and objects and huge meshes and animations and… Just importing that monster already takes ten minutes on a debug build!

Bastien, I understand the desire for small and simple files, however if you only ever test small and simple files, then you'll never encounter the types of problems that we're reporting here. These problems don't come up in simple cases. They come up in real-world cases where you have layers upon layers of bones in a hierarchy.

The 6MB file I attached is a heavily stripped down version of a file we got from our animation team. Heavily stripped down. The much larger full file is over 1GB and it loads into Maya, 3DS Max, Modo, LightWave, and Unreal Engine without issue. Blender is the only 3D app we've tried that has this issue.

You noted in a comment to Tomasz Zablocki that other apps have frustrating FBX support. We have Maya, 3DS Max, Modo, LightWave, SketchUp, Unreal Engine, and Unity at our studio, and none have this issue. Can you clarify which apps have similar problems with FBX files?

I would have to agree with Tomasz Zabocki that this issue is a huge issue and one that should be elevated to a high priority. Blender has come a long way in 2.8 and much effort has been invested in making the program friendly to new users. These users aren't all going to be 3D newbies. They're going to be studios like ours that are filled with professionals and who are interested in incorporating Blender into their pipeline.

Our studio's pipeline is currently built around Unreal Engine 4. We create content in Maya, Modo, 3DS Max and then port things into UE4 for rendering. As the Creative Director for a major theme park design company, I see the potential to replace UE4 with Blender in our studio. But if we can't get the files from our art team into Blender, then Blender simply cannot be a part of our pipeline, no matter how much I'd like it to be.

Please reconsider elevating this task back up to Normal or even High. Being able to play nicely with the other 3D content creation tools out there is critical for the success of an app in a professional environment.

Thanks for your consideration.

Just something to mention is that actually Blender's FBX exporter is a bigger problem here. It does not keep parent-child relationship at all. Exporting FBX files from 3DS max works like a charm and I can easily put that into Unity and use it straight away. With Blender this is impossible. Blender is great for standalone rendering but when it comes to using the output in some game engine is just a nightmare.

Bastien Montagne (mont29) closed this task as Archived.Jan 12 2019, 1:15 PM

FBX is a closed format, with no specifications available. Therefore, we have to reverse-engineer everything to get a reasonably OK working code. Therefore we need small files, because 6MB ones are not usable for that, not at all (unless you have hundreds of minions to work on it, job I would not wish to my worst enemy btw). Am tired of explaining this, requested data not provided since weeks, closing.

Steve Warner (stevewarner) raised the priority of this task from Needs Information from User to Normal.Jan 22 2019, 10:39 PM

Since you asked for a smaller file, here you go. It's a 1MB file. It has a mere 4 mesh objects and a paltry 3 bones. That's about as simple as it gets.

Here's what it looks like in Maya. You can see in the outliner on the left. The whole hierarchy has been exposed. There's a few nulls. Three bones and four meshes. Simple.

Here's what it looks like in Blender. You can see the hierarchy on the right. Four meshes. Three bones. Simple.

The .fbx file is attached for your review.

Also, for what it's worth, Collada has the same basic problem as FBX. From what I can tell, this issue has less to do with the FBX format in particular and more to do with how Blender interprets and deals with hierarchies.

When exporting the Maya file as a Collada file, you get the following errors.

While reading or writing a file the following notifications have been raised.
Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'MT_ROOT_Main_Animation' will be saved.
Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'MT_Anim_Root_Arm_All' will be saved.
Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'MT_Anim_Root_Arm2' will be saved.
Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'MT_Root_PistonLowr2_00' will be saved.
Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'MT_Root_PistonLowr1_01' will be saved.
Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'MT_ROOT_Piston_Anim' will be saved.

Importing into Blender you get this:

It's worth noting that the Collada file brings in 4 bones, even though there are only 3 bones in the original file.

Here is how Blender FBX importer sees the hierarchy of the FBX file (every increment means 'child of'):

Unknown[root][HBC]
 MT_ROOT_Main_Animation[HBC]
  MT_Anim_Root_Arm_All[HBC]
   MT_Anim_Root_Arm2[armature][HBC]
    Bone001[bone][HBC]
     Bone002[bone][HBC]
      Bone010[bone]
      MT_Anim_ARM_05
     MT_Anim_ARM_04
   MT_Root_PistonLowr2_00
    MT_Piston_01
   MT_Root_PistonLowr1_01
 MT_ROOT_Piston_Anim
  MT_Piston_00

For some (currently) unknown reason, MT_Anim_ARM_05 does not get properly parented to Bone002 in the end, but even with that aside, we get pieces scattered all around the place - most likely similar issue as reported in T53620, T53821, T54071, etc. We currently do not support some cases of complex parent relationships.

I’ll try to understand the missing parenting issue, the remaining am afraid is more like old known TODO that might be tackled… some day… Unless CG industry finally decides to show a tiny bit of intelligence, decency and common sense, and ditch that … format … thing … whatever into the deepest pits of Hell. Hint: Gltf ;)

Tssst… scaling issue remains, do not close that task you naughty bot!

Many thanks for your continued endurance in looking into this!