Import FBX as Blueprint Class

We are looking to switch from another engine to UE4. We currently do interactive visualizations of large mechanical CAD assemblies that consist of hundreds, if not thousands of parts, displaying them on touchscreens on PC and mobile. Many of these parts are instances of each other. Bolts, screws, washers, plugs, etc. With the other engine, we could import an FBX with entire assemblies or split into several large assemblies, and it would keep any bolt that was an instance, an instance, and in a hierarchy that could be animated. Mainly exploded views, configuration of switching out large parts, and showing the machines running with lots of moving parts including chained gears. It also kept the materials the same between FBX imports. These are not machines that can be easily reassembled by importing 1 part at a time and placing all of its duplicates, as you would have to account for every single type of bolt, screw, valve, spring, etc, that needs to be placed. Basically turning what currently is a 5 minute import process into a week long venture of organization and rebuilding.

Is there any way to import these large FBX files with hundreds of parts, and keep their hierarchy and placing the instances, into a Blueprint Class? So far the only thing I’m finding is being told to import each part and assemble it in UE4, there has to be a better solution?


I found two plugins doing this job pretty well. One is called FBX builder but needs Maya to export the fbx with freeze transformations properly.

FbxBuilder - Rebuilds FBX static mesh imports to retain original pivots! - Asset Creation - Epic Developer Community Forums!

This plugin needs to have the objects nested inside an actor blueprint - not best method but it works good. You should compile this plugin by himself. Because the author does not provide the updated binaries.

Other plugin is a 3dsmax script called TS_Tools which can do the job in a similar way but is creating boxes that need to be replaced with the imported meshes. Works good…but when you got over 200 meshes to replace…its time consuming.

Both plugin-solutions work - the only downside is that there is no proper way of telling UE4 that imported materials from 3dsmax/Maya and co should be replaced with materials sharing the same namespace or at least giving the option to replace materials in the content browser in a more simple way than the “replace references” action (right click on material in content browser > actions).

Thanks for the response. It looks like the author for FbxBuilder is working on getting it to work with 3ds Max as well. I’ll keep an eye on that one. If it doesn’t delete the instanced geometry like importing currently does, or if it will create the instances where needed, it would seem to be the answer.

The TS_Tools script would work for smaller assemblies, or for probably doing the chains on a sprocket, but with the amount of parts I have, just keeping track of them and applying the correct one would be a huge loss of time.

I’m fearing we’ll have to stick with our current engine for these types of products. Hopefully Epic will focus on importing and the identification of existing materials in future releases, as I’m really drawn towards the material editor and Blueprint coding.

Unity has great features for this kind of imports. Not only is the import by default keeping the hierarchy, it also has features to fetch and process metadata stored in the FBX during import/load, allowing to add all kinds of behavior to nodes, add labels to nodes, tweak the hierarchy, sow/hide certain nodes, etc. A very smart feature giving you almost complete freedom to do with the FBX what you want. Recently I started in UE4 and for this kind of work it is lacking a lot. Hope they can improve this as more and more apps are becoming engineering/technical focused.

Try Import Into Level (FBX Scene Import). Can also access via “regular” Import by selecting File Type of FBX Scene. FBX Scene Import in Unreal Engine | Unreal Engine 5.2 Documentation

FBX Scene Import seems to be the answer you are looking for right? I’m trying to do the same thing but with a list of files and no dialog. Here’s my code and progress but i’m having trouble: