diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2016-05-01 18:29:17 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2016-05-01 18:36:52 +0300 |
commit | 184e74fbe76d105919689b24e2dbd80aaac8f588 (patch) | |
tree | 8059f7861d672e456a8ec5b1fcecca39fe707a71 /io_scene_fbx | |
parent | 1b1aaf3e250e61768c8f7e8695392bbd3d86933e (diff) |
Fix T48322: Proxy Armature Animations are not exported to FBX.
This is the 'proxy case', only fixable one for now (linked object have un-editable animdata.action,
so we cannot export animations for them for now).
Issue was simply that armature modifier of linked mesh object still 'points' to linked armature
object, and not to its local proxy. Fix is luckily easy (for once)!
Diffstat (limited to 'io_scene_fbx')
-rw-r--r-- | io_scene_fbx/__init__.py | 2 | ||||
-rw-r--r-- | io_scene_fbx/export_fbx_bin.py | 4 | ||||
-rw-r--r-- | io_scene_fbx/fbx_utils.py | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/io_scene_fbx/__init__.py b/io_scene_fbx/__init__.py index c97478b6..decd9474 100644 --- a/io_scene_fbx/__init__.py +++ b/io_scene_fbx/__init__.py @@ -21,7 +21,7 @@ bl_info = { "name": "FBX format", "author": "Campbell Barton, Bastien Montagne, Jens Restemeier", - "version": (3, 7, 3), + "version": (3, 7, 4), "blender": (2, 77, 0), "location": "File > Import-Export", "description": "FBX IO meshes, UV's, vertex colors, materials, textures, cameras, lamps and actions", diff --git a/io_scene_fbx/export_fbx_bin.py b/io_scene_fbx/export_fbx_bin.py index add9d7fd..98cc265d 100644 --- a/io_scene_fbx/export_fbx_bin.py +++ b/io_scene_fbx/export_fbx_bin.py @@ -1794,10 +1794,10 @@ def fbx_skeleton_from_armature(scene, settings, arm_obj, objects, data_meshes, # Always handled by an Armature modifier... found = False for mod in ob_obj.bdata.modifiers: - if mod.type not in {'ARMATURE'}: + if mod.type not in {'ARMATURE'} or not mod.object: continue # We only support vertex groups binding method, not bone envelopes one! - if mod.object == arm_obj.bdata and mod.use_vertex_groups: + if mod.object in {arm_obj.bdata, arm_obj.bdata.proxy} and mod.use_vertex_groups: found = True break diff --git a/io_scene_fbx/fbx_utils.py b/io_scene_fbx/fbx_utils.py index 53a540ee..7467f4f2 100644 --- a/io_scene_fbx/fbx_utils.py +++ b/io_scene_fbx/fbx_utils.py @@ -1158,7 +1158,7 @@ class ObjectWrapper(metaclass=MetaObjectWrapper): if self.parent == arm_obj and self.bdata.parent_type == 'ARMATURE': return True for mod in self.bdata.modifiers: - if mod.type == 'ARMATURE' and mod.object == arm_obj.bdata: + if mod.type == 'ARMATURE' and mod.object in {arm_obj.bdata, arm_obj.bdata.proxy}: return True # #### Duplis... |