Maya: Query FBX version

Because there are some pretty big things that can sometimes break in Maya’s FBX exporter, knowing what versions they’re broken in, is there a way to query the FBX version that is being used to export or what’s available and how to set a specific version?

This can be used to get the version of the current plugin:

import pymel.core as pm

for plugin in pm.pluginInfo(q=True, listPlugins=True):
    if "fbxmaya" in plugin:
        print("FBX Plugin Version : %s" % pm.pluginInfo(plugin, q=True, version=True))

To get the exporter version that is currently active you can use:

import pymel.core as pm

# -- This just prints all the paths you can use in FBXProperty
pm.FBXProperties() 

# -- Query the current export version
pm.FBXProperty("Export|AdvOptGrp|Fbx|ExportFileVersion", q=True)

That functionality is documented here:
https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-76CF67F4-BBBB-48C6-AE48-6EF6975CB870-htm.html

Thanks! I had been trying with cmds and having no luck, the same thing in pymel works, but cmds doesn’t seem to. Says I need the query flag, which I am passing.

Hey Chris,

I’m curious what broken things you are still seeing in FBX and trying to work around. I have dealt with this for quite sometime and I have a few workarounds myself. It’s also good to know what may still be outstanding that I haven’t hit yet.

The main one was the not baking joints properly. Fixed in 2016.1.2:

I see you’re at Boss Key, those float attrs are super important because they drive materials, blendshapes, poses, cloth blending, etc in UE4. So look out for that.

[QUOTE=Chris.Evans;30623]The main one was the not baking joints properly. Fixed in 2016.1.2:

I see you’re at Boss Key, those float attrs are super important because they drive materials, blendshapes, poses, cloth blending, etc in UE4. So look out for that.[/QUOTE]

Ahh, right I recall seeing that post a while back. I have Mr. Andrew Grant on auto-dial, which I’m sure he loves.

Are you using FBX Bake, not copying the skeleton hierarchy and manual baking anymore? While not having to dupe the hierarchy and constraining to the original would be great, the alternatives were not reliable.

Unreal Tangent
I didn’t realize the animated custom attributes only came in on the root joint for UE. Doesn’t the temp “custom_export” object house all the animated attributes or did you guys change where you are assigning animated curves? I’m still using “custom_export” for all animated curves, granted that’s a temp copy not a live connection like you noted in your example. Also, are you actively using 2016 for production purposes? Any gotchas there? Feel free to add me on skype or google hangouts if you wanna follow up.

Yea, I’m over the interstate here at Boss Key. We did stop in to say hey one day with our escort Jay H. :slight_smile:

Speaking of broken things with FBX exports, I don’t suppose that anyone else has encountered animation export issues with 3DS max (2011 - 2015+(?)) in which certain animations with apparently magical animation ranges seem to get truncated when imported into UE3? The exported FBX files always import back into Max fully intact. These FBX files likewise seem to import into UE4 correctly.

That sounds like something specific to UE3, which I’m not familiar with. If your FBX file has the proper data then the issue is with the importing of UE3 and whether there is a flag or the way the data is written out in FBX from 3dsmax. It’s strange that it’s inconsistent but there may be some variable there that’s making it an issue. You may want to diff the FBX files in ASCII format, one that works and one that doesn’t work.

Yeah, I’ve poked around some by diffing various ASCII FBX animation export files, and honestly, I need to invest some additional time into that route. The diffs tend to be really messy, with lots of differences showing up that almost certainly aren’t germane to the errors that I’m seeing. I do think that an error in the UE3 FBX importer code might be the culprit (given that UE4 and 3DS Max imports appear to go smoothly enough), but I’ve yet to perform the leg work needed to thoroughly convict. : )