Page MenuHome

FBX exporter bin fails to export linked armature
Closed, ResolvedPublic

Description

Blender Version
Blender version 2.75a
io_scene_fbx version 3.3.3 to 3.5.2

Short description of error
FBX exporter bin fails to export linked armature:

Traceback (most recent call last):

File "C:\Softs\Blender Foundation\Blender\2.75\scripts\addons\io_scene_fbx\__init__.py", line 577, in execute
  return export_fbx_bin.save(self, context, **keywords)
File "C:\Softs\Blender Foundation\Blender\2.75\scripts\addons\io_scene_fbx\export_fbx_bin.py", line 3001, in save
  ret = save_single(operator, context.scene, filepath, **kwargs_mod)
File "C:\Softs\Blender Foundation\Blender\2.75\scripts\addons\io_scene_fbx\export_fbx_bin.py", line 2896, in save_single
  scene_data = fbx_data_from_scene(scene, settings)
File "C:\Softs\Blender Foundation\Blender\2.75\scripts\addons\io_scene_fbx\export_fbx_bin.py", line 2419, in fbx_data_from_scene
  empty_key = data_empties[ob_obj]

Exact steps for others to reproduce the error
Create a new file, delete all, add an armature, group it. Save it.


Create a new file, link the previous group in it
Export to fbx bin 7.4 => crash

Event Timeline

Bastien Montagne (mont29) raised the priority of this task from Normal to Confirmed.Aug 5 2015, 2:33 PM

Problem is with libs data, need to ref data by (name, lib) tuple instead of only name… Have to change this all over in the exporter I guess. :/

Ah no, cancel that, issue here is even more exotic - no need to link, it does not supports instances of groups containing an armature… TBH, I’m not sure I want to support that, will have a closer look though.

Will commit a 'fix' that will prevent that case from crashing on export. However, supporting dupli instances of armatures (as it is the case when instancing a group containing armatures) is simply not possible currently, and honestly I do not intend to do so in any near future (will put it on FBX TODO list though). Reasons are:

  • FBX way of handling armatures (skeleton is not a data type in FBX, rather a chain of 'specialized' empty objects - this means we’d need to duplicate all bones for each instance, unlike with regular meshes where we really can instantiate the same geometry from all 'dupli' models).
  • Matrices/transform/names/connections hyper-nightmare in perspective. Armature handling is already a nightmare, but if you multiply it by dupli handling… Not fun - at all.

So in a nutshell: do not expect support of armature instances anytime soon.

Thanks for your concern.
FYI, the ASCII exporter support this, you could maybe try to copy it ?

No I cannot, 6.1 code and 7.4 one are totally different. Furthermore, I really doubt it’s working in 6.1 exporter either (at least not fully, might work in a few, simple cases), there’s even a comment in 6.1 ascii source code saying # TODO - armatures dont work in dupligroups!