FBX test suite #47400

Open
opened 2016-02-12 18:14:56 +01:00 by Bastien Montagne · 21 comments

Disclaimer: this is a very old task that would need a lot of updates. Main target nowadays should be to have a set of small files validating main 'delicate' areas of FBX I/O, and creating a set of regression tests based on them, ensuring at least a fully valid round trip from Blender. Additional semi-automated testing against a few common softwares (mainly game engines) would be a great plus too.


This task aims at keeping a list of known working features when using FBX to transfer data between Blender and third party applications.

IMPORTANT: We absolutely need help from users here, people having a good knowledge of both Blender and at least one of the other app, and that are willing to keep repeating the tests with the same reference files at least once before each release (and preferably also after each serious change to the addon).

NOTE: This is work in progress, will add more files (to cover more basic features) as needed. Also, the list of applications may evolve, for now only added the four most preeminent 'FBX users' I know of…

NOTE: Aside from two or three 'real life' ones, test cases should be as basic as possible (using cubes for geometry, not more than three or four bones in armatures, etc.). This will ease analyzing bugs and regressions, and will make it easier to reproduce same test cases across all tested applications.

TODOs

  • This page is mostly an empty template currently, will flesh out the 'export' side of it in coming days, but we also need people to generate 'import' test cases from various applications listed here.
  • The list of applications to test again is also to be refined.
  • Do we want to test against one (or more) precise versions of the applications, or do we always assume we are talking about latest versions (which will be the case for Blender anyway)?

Exporting from Blender

  • Important: Use latest version of Blender (from nightly builds ).
  • Open .blend file.
  • Export it as FBX (using default exporter options, otherwise please specify changed settings).
  • Import that FBX in target application, and check results are visually equivalent to those of the original .blend file.

Known issues:

  • Lamp/Camera orientations are… unreliable (sometimes they match, sometimes they are rotated 90 or 180 along various axes).

NOTE: #104561 also lists a set of nice testfiles for this issue.

File/Feature Blender Maya 2016 3DSMax 2014 Unity 3.5 UE4
shapekeys.blend Basic Animated ShapeKey ✔ - [x] ✔[1]
simple_level.blend Static Scene With Instances
simple_character.blend Complex Character (several animations from both armature and driven shapekeys) ✘ [2]
  • No shape key animation
  • Rigging fails to import.

Importing into Blender

  • Important: Use latest version of Blender (from nightly builds ).
  • Open Blender.
  • Import FBX file ((using default exporter options, otherwise please specify changed settings), and check results are visually equivalent to those of the original file.
File/Feature Blender Maya 3DSMax Unity UE4

NOTE: This section is empty currently, please propose in comments test cases, matching following requirements:

  • Matching testcases from the 'Export' section.
  • Featuring both files from original application and FBX exported one.
Disclaimer: this is a very old task that would need a lot of updates. Main target nowadays should be to have a set of small files validating main 'delicate' areas of FBX I/O, and creating a set of regression tests based on them, ensuring at least a fully valid round trip from Blender. Additional semi-automated testing against a few common softwares (mainly game engines) would be a great plus too. ---------------------------------------------- This task aims at keeping a list of known working features when using FBX to transfer data between Blender and third party applications. IMPORTANT: We absolutely need help from users here, people having a good knowledge of both Blender and at least one of the other app, and that are willing to keep repeating the tests with the same reference files at least once before each release (and preferably also after each serious change to the addon). NOTE: This is work in progress, will add more files (to cover more basic features) as needed. Also, the list of applications may evolve, for now only added the four most preeminent 'FBX users' I know of… NOTE: Aside from two or three 'real life' ones, test cases should be as basic as possible (using cubes for geometry, not more than three or four bones in armatures, etc.). This will ease analyzing bugs and regressions, and will make it easier to reproduce same test cases across all tested applications. ## TODOs * This page is mostly an empty template currently, will flesh out the 'export' side of it in coming days, but we also need people to generate 'import' test cases from various applications listed here. * The list of applications to test again is also to be refined. * Do we want to test against one (or more) precise versions of the applications, or do we always assume we are talking about latest versions (which will be the case for Blender anyway)? ## Exporting from Blender * **Important**: Use latest version of Blender (from [nightly builds ](https://builder.blender.org/download)). * Open .blend file. * Export it as FBX (using default exporter options, otherwise please specify changed settings). * Import that FBX in target application, and check results are visually equivalent to those of the original .blend file. **Known issues**: * Lamp/Camera orientations are… unreliable (sometimes they match, sometimes they are rotated 90 or 180 along various axes). NOTE: #104561 also lists a set of nice testfiles for this issue. | File/Feature | Blender | Maya 2016 | 3DSMax 2014 | Unity 3.5 | UE4 | | ---- | ---- | ---- | ---- | ---- | ---- | | [shapekeys.blend](https://archive.blender.org/developer/F282405/shapekeys.blend) Basic Animated ShapeKey | ✔ | ✔ - [x] | ✔[1] | ❓ | ❓ | | [simple_level.blend](https://archive.blender.org/developer/F282406/simple_level.blend) Static Scene With Instances | ✔ | ✔ | ✔ | ✔ | ❓ | | [simple_character.blend](https://archive.blender.org/developer/F282409/simple_character.blend) Complex Character (several animations from both armature and driven shapekeys) | ✔ | ✔ | ✘ [2] | ✔ | ❓ | - [x] No shape key animation - [x] Rigging fails to import. ## Importing into Blender * **Important**: Use latest version of Blender (from [nightly builds ](https://builder.blender.org/download)). * Open Blender. * Import FBX file ((using default exporter options, otherwise please specify changed settings), and check results are visually equivalent to those of the original <other app> file. | File/Feature | Blender | Maya | 3DSMax | Unity | UE4 | | ---- | ---- | ---- | ---- | ---- | ---- | NOTE: This section is empty currently, please propose in comments test cases, matching following requirements: * Matching testcases from the 'Export' section. * Featuring both files from original application and FBX exported one.
Author
Owner

Changed status to: 'Open'

Changed status to: 'Open'
Bastien Montagne self-assigned this 2016-02-12 18:14:56 +01:00
Author
Owner

Added subscriber: @mont29

Added subscriber: @mont29

Added subscriber: @TimurAriman

Added subscriber: @TimurAriman

Added subscriber: @lamoot

Added subscriber: @lamoot

Hello, I tested the provided files, exporting from Blender 2.76 to Unity 5.3.1f1. I used the default export settings.

simple_level.blend
In Unity I get the plane, the three small trees and the big tree. All of the tree objects use the same meshes (instanced). Material colours for the leaves and the bark are as they are in Blender. Camera and Hemi light get imported as empties with no other functionality.

simple_character.blend
The character mesh shows fine in Unity as well as the monkey head. The rig is there. The animations are all there and showing properly. The materials get imported with their colours but textures are missing. Adding textures by hand to their respective materials fixes this and they show properly on the model. Monkey's material has transparency.

Camera and light get imported as empties, you can add a light component to them, but they are off by 90 degrees from their orientation in Blender.

shapekeys.blend
I don't yet know how to inspect for shapekeys in Unity. The mesh imports fine.

Hello, I tested the provided files, exporting from Blender 2.76 to Unity 5.3.1f1. I used the default export settings. **simple_level.blend** In Unity I get the plane, the three small trees and the big tree. All of the tree objects use the same meshes (instanced). Material colours for the leaves and the bark are as they are in Blender. Camera and Hemi light get imported as empties with no other functionality. **simple_character.blend** The character mesh shows fine in Unity as well as the monkey head. The rig is there. The animations are all there and showing properly. The materials get imported with their colours but textures are missing. Adding textures by hand to their respective materials fixes this and they show properly on the model. Monkey's material has transparency. Camera and light get imported as empties, you can add a light component to them, but they are off by 90 degrees from their orientation in Blender. **shapekeys.blend** I don't yet know how to inspect for shapekeys in Unity. The mesh imports fine.

Added subscriber: @FrancoisRimasson

Added subscriber: @FrancoisRimasson

I tested the files from Blender to Maya 2016

shapekeys.blend : in blender i need to unckeck apply modifier to export shapes
In maya, the shapes are ok but the shape anim is not transferred

simple_character.blend : In maya , the camera, the character and the skinning are OK, but he only swing arms once from frames 1 to 12
Texture files are not extracted and exported from the blend file

simple_level.blend : instances are transferred from blender to maya.

I tested the files from Blender to Max 2014

shapekeys.blend in blender i need to unckeck apply modifier to export shapes
In maya, the shapes are ok but the shape anim is not transferred

simple_character.blend : at import, I've got the following error message :
Warning incomplete bind pose
The following Link node(s) is/are not part of the BindPose definition.
- Root
- Waist
- Stomach
- Chest
- Neck
- Head...

The skinning is poorly transferred, and messed up
The character only swing arms once from frames 1 to 15

simple_level.blend : instances are transferred from blender to max

I've got another issue with FBX :
When i import a fbx2014 file from maya with a camera animation in blender, the Z axis of the camera is flipped in blender

I tested the files from Blender to Maya 2016 **shapekeys.blend** : in blender i need to unckeck apply modifier to export shapes In maya, the shapes are ok but the shape anim is not transferred simple_character.blend : In maya , the camera, the character and the skinning are OK, but he only swing arms once from frames 1 to 12 Texture files are not extracted and exported from the blend file simple_level.blend : instances are transferred from blender to maya. I tested the files from Blender to Max 2014 **shapekeys.blend** in blender i need to unckeck apply modifier to export shapes In maya, the shapes are ok but the shape anim is not transferred simple_character.blend : at import, I've got the following error message : Warning incomplete bind pose The following Link node(s) is/are not part of the BindPose definition. - Root - Waist - Stomach - Chest - Neck - Head... The skinning is poorly transferred, and messed up The character only swing arms once from frames 1 to 15 simple_level.blend : instances are transferred from blender to max I've got another issue with FBX : When i import a fbx2014 file from maya with a camera animation in blender, the Z axis of the camera is flipped in blender

Added subscriber: @flaviengiroud

Added subscriber: @flaviengiroud

i tested the files from blender to Max 2014

shapekeys.blend: the shapekeys are transferred if "apply transform" is disable, but there is no animation.

simple_level.blend: the duplication group is well converted to instances in max.

                             the layers are gone
                             the hemi light is translate to directionnal light

shapekeys.blend: same errors messages as Francois Rimasson, the rig is broken

I have too a issu when i export a camera from max to blender, the Y axis of the cam is inverted.
From blender to max it's ok, great for export camera tracking!

i tested the files from blender to Max 2014 shapekeys.blend: the shapekeys are transferred if "apply transform" is disable, but there is no animation. simple_level.blend: the duplication group is well converted to instances in max. ``` the layers are gone the hemi light is translate to directionnal light ``` shapekeys.blend: same errors messages as Francois Rimasson, the rig is broken I have too a issu when i export a camera from max to blender, the Y axis of the cam is inverted. From blender to max it's ok, great for export camera tracking!
Author
Owner

Thanks for the tests. :)

Regarding textures: could you try exporting with 'Copy' Path Mode ? This will copy texture files next to FBX file…

Regarding lamps/camera orientation: yes, those are known issues, sometime they work sometime they don’t have no clue why currently…

Regarding rig issue with Max: ack… that’s not gonna give me better opinion on how FBX is managed - if neither Maya nor Max can even be used as reference implementation… come on!

Thanks for the tests. :) Regarding textures: could you try exporting with 'Copy' Path Mode ? This will copy texture files next to FBX file… Regarding lamps/camera orientation: yes, those are known issues, sometime they work sometime they don’t have no clue why currently… Regarding rig issue with Max: ack… that’s not gonna give me better opinion on how FBX is managed - if neither Maya nor Max can even be used as reference implementation… come on!

About the issue with the texture export :

With another scene, with texture, FBX export textures with path mode to "copy" and batch mode to 'scene'

However, my blender build blender is not able to export .dds image files, even using the UVs/image editor

About the issue with the texture export : With another scene, with texture, FBX export textures with path mode to "copy" and batch mode to 'scene' However, my blender build blender is not able to export .dds image files, even using the UVs/image editor

Here two files that may help you.
The avi show you the animation preview in max
The fbx is a reexport of the file from max, blender import it weel, it look like it is in max.

fbx_import_max2014.avi

simple_character_from_max.FBX

Here two files that may help you. The avi show you the animation preview in max The fbx is a reexport of the file from max, blender import it weel, it look like it is in max. [fbx_import_max2014.avi](https://archive.blender.org/developer/F282761/fbx_import_max2014.avi) [simple_character_from_max.FBX](https://archive.blender.org/developer/F282762/simple_character_from_max.FBX)

Added subscriber: @JonathanWilliamson

Added subscriber: @JonathanWilliamson
Member

Added subscriber: @brita

Added subscriber: @brita

Added subscriber: @michaelknubben

Added subscriber: @michaelknubben

Added subscriber: @cyaoeu

Added subscriber: @cyaoeu

Testing with latest nightly Blender build and UE4 4.11 Preview 5.

shapekeys.blend

Exported with Apply Modifiers unchecked and face smoothing.

Imported as skeletal mesh with import morph targets checked. Animation is not imported however the shape keys can be seen and manipulated inside of the engine. The mesh seems fine as well.

When adding a bone and parenting the mesh to it and adding a location keyframe at the first frame the animation is imported, however it looks different than in blender (mesh is rotating). Shapekey animation itself is fine though.

simple_level.blend

Exported with face smoothing.

Imported as static mesh. Degenerate tangent base warnings. Lamps and cameras are not imported. (probably by UE4 design)

Meshes are the correct size and look fine, materials are imported too (base color only). They are converted into regular meshes instead of instances, I guess the UE4 importer doesn't support instancing, however you can do that in the engine itself if required.

When importing, with Transform Vertex to Absolute checked they will be imported as above, you can just select them all and drag them out and they will look like in Blender, however it isn't very intuitive when you want to place additional ones since the pivot is a bit messed up (offset from the actual mesh).

You can disable Transform Vertex to Absolute and the pivots will be reset so you can place them where you want, however they are now much smaller, probably because of the 0.115 scaling in Blender.

simple_character.blend

Exported with Apply Modifiers unchecked, face smoothing, Add Leaf Bones unchecked.

Imported as skeletal mesh with import morph targets checked, Use T0As Ref Pose unchecked. Bone size error: "Warning The bone size is too small to create Physics Asset 'simple_character_PhysicsAsset' from Skeletal Mesh 'simple_character'. You will have to create physics asset manually." Which basically means that a ragdoll wasn't automatically created.

The mesh is facing the wrong way (just like in blender). Animations look good, tongue is going out as expected and the shape keys are working in the animations (dance animation) too. The textures are not exported, UE4 only supports certain .DDS textures, but when saving the textures as .PNGs in Blender they were exported and imported as expected.

Because of the default scene size export the armature is a bit buggy, when you rotate the bones in the UE4 editor the influence is 1/100 of the expected value, so if you rotate a bone 180 degrees you get 1.8 degrees of rotation. No ragdoll (physics asset) was created either because the bone sizes were too small.

When changing the scene units in Blender to Metric with 0.01 scale and resizing everything, the armature works as expected (you can rotate it fine even in the UE4 editor), however some animations are broken during the resizing process (location transforms are much smaller so they tongue doesn't go out and the leg animations are a bit messed up). Maybe this can be fixed manually, I didn't test that. However Metric with 0.01 scale is the general workaround for using Blender with UE4 at the moment.

Testing with latest nightly Blender build and UE4 4.11 Preview 5. **shapekeys.blend** Exported with Apply Modifiers unchecked and face smoothing. Imported as skeletal mesh with import morph targets checked. Animation is not imported however the shape keys can be seen and manipulated inside of the engine. The mesh seems fine as well. When adding a bone and parenting the mesh to it and adding a location keyframe at the first frame the animation is imported, however it looks different than in blender (mesh is rotating). Shapekey animation itself is fine though. **simple_level.blend** Exported with face smoothing. Imported as static mesh. Degenerate tangent base warnings. Lamps and cameras are not imported. (probably by UE4 design) Meshes are the correct size and look fine, materials are imported too (base color only). They are converted into regular meshes instead of instances, I guess the UE4 importer doesn't support instancing, however you can do that in the engine itself if required. When importing, with Transform Vertex to Absolute checked they will be imported as above, you can just select them all and drag them out and they will look like in Blender, however it isn't very intuitive when you want to place additional ones since the pivot is a bit messed up (offset from the actual mesh). You can disable Transform Vertex to Absolute and the pivots will be reset so you can place them where you want, however they are now much smaller, probably because of the 0.115 scaling in Blender. **simple_character.blend** Exported with Apply Modifiers unchecked, face smoothing, Add Leaf Bones unchecked. Imported as skeletal mesh with import morph targets checked, Use T0As Ref Pose unchecked. Bone size error: "Warning The bone size is too small to create Physics Asset 'simple_character_PhysicsAsset' from Skeletal Mesh 'simple_character'. You will have to create physics asset manually." Which basically means that a ragdoll wasn't automatically created. The mesh is facing the wrong way (just like in blender). Animations look good, tongue is going out as expected and the shape keys are working in the animations (dance animation) too. The textures are not exported, UE4 only supports certain .DDS textures, but when saving the textures as .PNGs in Blender they were exported and imported as expected. Because of the default scene size export the armature is a bit buggy, when you rotate the bones in the UE4 editor the influence is 1/100 of the expected value, so if you rotate a bone 180 degrees you get 1.8 degrees of rotation. No ragdoll (physics asset) was created either because the bone sizes were too small. When changing the scene units in Blender to Metric with 0.01 scale and resizing everything, the armature works as expected (you can rotate it fine even in the UE4 editor), however some animations are broken during the resizing process (location transforms are much smaller so they tongue doesn't go out and the leg animations are a bit messed up). Maybe this can be fixed manually, I didn't test that. However Metric with 0.01 scale is the general workaround for using Blender with UE4 at the moment.

Hello,

I tested the shapekeys.blend file again and with "apply modifier" disabled, the shapekeys show up in Unity 5.3.1f1. They were a bit weird though, it appeared as if three vertices moved with Key 2, rather than two vertices that move in Blender.

I did an additional test with my own simple cube and that one showed the shapekeys properly in Unity. I'm attaching the file below.
shapekeys_cube2.blend

Hello, I tested the shapekeys.blend file again and with "apply modifier" disabled, the shapekeys show up in Unity 5.3.1f1. They were a bit weird though, it appeared as if three vertices moved with Key 2, rather than two vertices that move in Blender. I did an additional test with my own simple cube and that one showed the shapekeys properly in Unity. I'm attaching the file below. [shapekeys_cube2.blend](https://archive.blender.org/developer/F283543/shapekeys_cube2.blend)

Added subscriber: @sembei-3

Added subscriber: @sembei-3

I made some tests between importing fbx made in nuke into blender and I'm facing the following problem that Blender imports all cameras and lights facing the wrong direction .

test_fbx.fbx

test_Fbx.jpg

I made some tests between importing fbx made in nuke into blender and I'm facing the following problem that Blender imports all cameras and lights facing the wrong direction . [test_fbx.fbx](https://archive.blender.org/developer/F308849/test_fbx.fbx) ![test_Fbx.jpg](https://archive.blender.org/developer/F308850/test_Fbx.jpg)
Author
Owner

Thanks for the test files (have to find some time to update this task…).

Regarding cameras and lamps: yes, that’s a known issue and Great Mysterious Mystery since years now - cameras and lamps from different apps have various front/top axes, and so far never found a way to handle all correctly, fixing one case always break another…

Thanks for the test files (have to find some time to update this task…). Regarding cameras and lamps: yes, that’s a known issue and Great Mysterious Mystery since years now - cameras and lamps from different apps have various front/top axes, and so far never found a way to handle all correctly, fixing one case always break another…
Bastien Montagne removed their assignment 2019-08-12 16:10:32 +02:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
10 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#47400
No description provided.