FbxBuilder - Rebuilds FBX static mesh imports to retain original pivots!

Hi all!

Wanted to share a plugin I made that lets you keep all of your original pivot points without them moving to 0,0,0 when brought into Unreal.

Source included!

Download plugin: www.fusionlabz.com/downloads/FbxBuilder.zip

Compatible with UE4 version 4.9.2 and requires that you use Maya(Freeze Transformations) to export final FBX to Unreal. Also just for Static Meshes only, no skeletal meshes supported.

Enjoy and let me know if you have any questions!

-Tim

YES!!! I needed this. Much thanks!

Great to see this released!
Good job, :slight_smile:

Awesome effort, but to tell you the truth the procedure to get it all in seems to be more effort than to just zero out the pivots in Maya before exporting…

Hi Damir :slight_smile: yeah, it sounds like a good long procedure but once you know it it is actually really quick to do. I can easily do all the steps in under a minute. It has been really helpful to me and just wanted to share. For example, I had a car that I wanted to import that had four wheels, four doors, a hood, and a trunk lid that all had their own pivots so they could spin/open. The only way I know of now to do that without the plugin is to start in Maya and move every wheel, door, and lid to the origin then import into UE4 so that they retain their pivots. Then in UE4 I would have to reposition all the pieces back into place by hand in a blueprint. For me at least the steps in the plugin are a ton faster than the alternative. :slight_smile:

Fair enough, not bashing, just pointing it out. :smiley:

Out of curiosity - does the importer actually retain the mesh pivots or does it just position them properly based on the struct when I place them inside the BP?

i.e. if I were to open the static mesh editor for the offsetted pieces, will they still be offsetted?

thanks:):):slight_smile:

@DamirH - No worries, didn’t think you were bashing :slight_smile:

The mesh pivots are retained during the building phase of the fbx import…each vertex gets offset so that once it is done building the mesh the pivot is in the correct place. The struct is just for mesh positioning and parenting in the blueprint.

So if you open one of the mesh pieces in it’s static mesh editor, the pivot would be in the correct place on the mesh but it would be at 0,0,0…hope that makes sense lol.

Requires Maya?
I’m not on my Cad machine at the moment so can’t test this but any reason this script will not work using 3DSMax FBX files?

Freeze Transform / Freeze Rotation

Thanks

@GeoffCoope - The Freeze Transform in Max is different from Maya’s unfortunately…the Max version adds a controller and doesn’t really zero everything out for the fbx.

I originally was trying to get Max to work with this plugin but didn’t have much success…however your comment made me look into it again and I actually was able to find a way to make it work using Reset XForm.

I had tried that method before but I think I was using it incorrectly. Even with the Reset XForm there were a couple of technical hurdles to overcome because of the way Max stores it’s fbx info, but I think I have it working now.

I will update the code and release it this evening along with 3ds Max specific instructions. :slight_smile:

Brilliant. Look forwards to giving it a shot.

Any update on the max version of this? I cant wait! its exactly what ive been trying to achieve for weeks!

Hope to have the 3ds Max support up very soon…making some new changes that make it so it works with Maya and Max as well as not having to Freeze Transforms anymore.

It seems very useful. I have very heavy meshes and I was looking for this. Although I am working on Max I shall try pass the file to Maya and use your tutorial to pass the mesh to UE 4. Thank you for sharing your work!

Wow just right in time !! You’re saving the day, will test out your plugin. At the moment i probably need to import from Max to Maya to UE4 since i’m working with Max but i hope it will speed up the workflow maintaining the object pivots and furthermore placing these into the right world position (Level, >300 objects, regular fbx import/placement is a pain when you don’t want to 0,0,0 all your mesh pivots before export)

Looking forward to your 3dsmax implentation! How much?

Best, Toby

Hey, Tim,

We downloaded FbxBuilder and checked in the source locally so everyone can build it for their environments. When the editor attempts to build the DLL, however, we’re seeing errors in the logs saying that it can’t find fbxsdk.h. I don’t see that in the zip file anywhere.

Where can I get my hands on said header file?

Thanks,

@: We’re experiencing a little problem. Somehow we can’t build the game because fbxbuilder wants some extra files we don’t have.

We tried to circumvent the issue by deleting both the plugin and myobject for the final builds but now we get a lot of reference errors due to the blueprint/ the imported fbx referencing to fbxbuilder. Is there a way to get rid of this “after” the BP is build?

General question: Is it possible to delete a Blueprint but maintain/copypaste the objects inside to the world-outliner. At the moment, using a blueprint is not the best solution to work with the assets “after” they imported pretty well.

Looks like FBXBuilder is currently Windows-only and requires the Autodesk FBX SDK: Autodesk | 3D Design, Engineering & Construction Software

Might be able to change the plugin build settings to use the copy of the FBX SDK included in Engine/Source/ThirdParty/FBX/ in the UE4 source code - but that appears to only be the Windows version and not Mac and Linux versions.

How odd - the engine’s FBXImporter.h can’t find fbxsdk.h even if I add the Engine’s ThirdParty FBX include directory as an include dir in FbxBuilder.Build.cs.



[2015.11.11-20.04.22:737]  0]FbxBuilderModule.cpp
[2015.11.11-20.04.22:737]  0]FbxBuilderMainFactory.cpp
[2015.11.11-20.04.22:738]  0]FbxBuilderStaticMeshImport.cpp
[2015.11.11-20.04.22:739]  0]FbxBuilderOptionWindow.cpp
[2015.11.11-20.04.23:541]  0]C:\Program Files\Epic Games\4.9\Engine\Source\Editor\UnrealEd\Private/FbxImporter.h(76) : fatal error C1083: Cannot open include file: 'fbxsdk.h': No such file or directory


I’m kinda stumped at this point - I wonder if UBS does something to Private dirs being used for includes that messes things up.

@Kajisan - Try installing these two things:

Latest FBX SDK:
http://usa.autodesk.com/adsk/servlet/pc/item?id=24746731&siteID=123112

Visual Studio 2013 (Be sure to click the Visual Studio 2013 download and not the 2015 version):
https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx

With both those installed you should be able to package your game without any problems.

As for your question about deleting the blueprint, you can delete it if you want and the individual meshes will still have the correct pivot points but they won’t retain their offsets in relation from each other…the blueprint handles that.

Hope that helps!!