Page MenuHome

Exporting .fbx with linked armature changes armature name, breaking external game engine compatibility
Closed, ArchivedPublic

Description

System Information
Win8, GTX1070

Blender Version
Broken: 2.79

Short description of error
Exporting .fbx with linked armature changes armature name, breaking external game engine compatibility. More precisely this breaks the UE4 workflow where armatures need to have the name "Armature" on export. A linked armature exported gets a new name (Armature_L_Lib.001 or something like that).

You would in general want the linked armature to export with the same name to ensure that you're using the most up to date armature (in a library for example, using the linked armature in armor/clothes files and so on).

Maybe there's some good reason for the name change, but if not it could just be removed. Replacing line 350 of fbx_utils.py with bid.name fixed the issue for me.

Exact steps for others to reproduce the error

  1. Create a library file with an armature ()
  2. Create a project file with a linked armature ()
  3. Export the linked armature from the project file.
  4. Make a new scene and import the .fbx. The name has changed.

Expected: The name stays the same.

Event Timeline

Bastien Montagne (mont29) changed the task status from Unknown Status to Archived.Sep 21 2018, 4:14 PM
Bastien Montagne (mont29) claimed this task.

No bug here, that is expected behavior (we need unique names, and nothing can ensure us there is not a local armature with same name too).

Couldn't you just check if there is a local armature with the same name? That would make more sense to me than just throwing a bunch of letters onto names even when no local armatures with the same name exist.

This _L_Lib.001 naming would be useful if you had two armatures (one local and one linked) and exported both to the same file which seems (in mild words) unrealistic. I would say this never happens in a game engine pipeline workflow (where one file = one character = one armature) and probably never in any other workflow really. But to keep this 0.0001% (probably less) possibility scenario possible, 100% of UE4 linked armature pipelines are broken instead.

Besides, even with the same name for a local armature and linked armature, when changing the code as above and exporting them to separate files (one armature per file) the correct armature is exported anyway!