File Formats Supported by FBX SDK Python

This article is a translated version of my original post on Qiita. Original (Japanese): https://qiita.com/segur/items/75428cb98b8a28c687e3

File Formats Supported by FBX SDK Python 2019

Upon examining the official site, it seems that the C++ version of the FBX SDK supports a wide range of file formats. However, the Python version does not support all of them. Therefore, I conducted a survey to identify the formats supported by the Python version.

List of Writable File Formats

Here is the list. Please note that the Index and Description represent the values from my environment (described later) and may vary in other setups.

Index Description
0 FBX binary (*.fbx)
1 FBX ascii (*.fbx)
2 FBX encrypted (*.fbx)
3 FBX 6.0 binary (*.fbx)
4 FBX 6.0 ascii (*.fbx)
5 FBX 6.0 encrypted (*.fbx)
6 AutoCAD DXF (*.dxf)
7 Alias OBJ (*.obj)
8 Collada DAE (*.dae)
9 Biovision BVH (*.bvh)
10 Motion Analysis HTR (*.htr)
11 Motion Analysis TRC (*.trc)
12 Acclaim ASF (*.asf)
13 Acclaim AMC (*.amc)
14 Vicon C3D (*.c3d)
15 Adaptive Optics AOA (*.aoa)
16 Superfluo MCD (*.mcd)

List of Readable File Formats

Here is the list. Again, please note that the Index and Description reflect my environmental values and might differ elsewhere.

Index Description
0 FBX (*.fbx)
1 AutoCAD DXF (*.dxf)
2 Alias OBJ (*.obj)
3 3D Studio 3DS (*.3ds)
4 Collada DAE (*.dae)
5 Alembic ABC (*.abc)
6 Biovision BVH (*.bvh)
7 Motion Analysis HTR (*.htr)
8 Motion Analysis TRC (*.trc)
9 Acclaim ASF (*.asf)
10 Acclaim AMC (*.amc)
11 Vicon C3D (*.c3d)
12 Adaptive Optics AOA (*.aoa)
13 Superfluo MCD (*.mcd)
14 (*.zip)

Methodology

The Index and Description were verified using the following code.

# Output a list of writable formats
for formatIndex in range(manager.GetIOPluginRegistry().GetWriterFormatCount()):
    description = manager.GetIOPluginRegistry().GetWriterFormatDescription(formatIndex)
    print(formatIndex, description)

# Output a list of readable formats
for formatIndex in range(manager.GetIOPluginRegistry().GetReaderFormatCount()):
    description = manager.GetIOPluginRegistry().GetReaderFormatDescription(formatIndex)
    print(formatIndex, description)

Please input an instance created by FbxManager.Create() into manager.

A sample project is available here: GitHub/segurvita/fbx_sdk_python_sample/convert_fbx/list_format.py

I tested on the following two environments and confirmed the same values were outputted.

Windows Environment

Linux Environment

Conclusion

It's a bit tricky that the index changes between reading and writing...

Special thanks to the following resource for reference and guidance: