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
- Windows 10 64bit
- Python 2.7
- FBX SDK Python 2019.5
Linux Environment
- Alpine Linux v3.9
- Python 2.7
- FBX SDK Python 2019.2
Conclusion
It's a bit tricky that the index changes between reading and writing...
Special thanks to the following resource for reference and guidance: