From 8503bcde236be69bf4c3b156a847a4ac8c1f21e6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 2 Nov 2010 01:12:00 +0000 Subject: [PATCH] bugfix for exporting an FBX animation for an object that was the child of an armature deformed mesh. --- release/scripts/op/io_scene_fbx/export_fbx.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/release/scripts/op/io_scene_fbx/export_fbx.py b/release/scripts/op/io_scene_fbx/export_fbx.py index c9c9c81ac01..bf44416b49d 100644 --- a/release/scripts/op/io_scene_fbx/export_fbx.py +++ b/release/scripts/op/io_scene_fbx/export_fbx.py @@ -509,8 +509,12 @@ def save(operator, context, filepath="", else: return self.matrixWorld - def setPoseFrame(self, f): - self.__anim_poselist[f] = self.blenObject.matrix_world.copy() + def setPoseFrame(self, f, fake=False): + if fake: + # annoying, have to clear GLOBAL_MATRIX + self.__anim_poselist[f] = self.matrixWorld * GLOBAL_MATRIX.copy().invert() + else: + self.__anim_poselist[f] = self.blenObject.matrix_world.copy() def getAnimParRelMatrix(self, frame): if self.fbxParent: @@ -2665,7 +2669,7 @@ Takes: {''') #Blender.Window.RedrawAll() if ob_generic == ob_meshes and my_ob.fbxArm: # We cant animate armature meshes! - pass + my_ob.setPoseFrame(i, fake=True) else: my_ob.setPoseFrame(i)