From: <au...@us...> - 2011-06-24 02:07:40
|
Revision: 9026 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=9026&view=rev Author: auria Date: 2011-06-24 02:07:34 +0000 (Fri, 24 Jun 2011) Log Message: ----------- Crazy tweaks to local-coords export to make it closer to the output of blender 2.4. More work will be needed Modified Paths: -------------- media/trunk/blender_25/B3DExport.py Modified: media/trunk/blender_25/B3DExport.py =================================================================== --- media/trunk/blender_25/B3DExport.py 2011-06-24 01:38:03 UTC (rev 9025) +++ media/trunk/blender_25/B3DExport.py 2011-06-24 02:07:34 UTC (rev 9026) @@ -728,17 +728,53 @@ else: bone_matrix = arm_matrix*bone_matrix - # FIXME: silly tweaks to resemble the Blender 2.4 exporter matrix - #bone_matrix[1][2] = -bone_matrix[1][2] - #bone_matrix[2][1] = -bone_matrix[2][1] - #bone_matrix[3][0] = -bone_matrix[3][0] - #print("bone_matrix =", bone_matrix) bone_loc = bone_matrix.to_translation() - bone_rot = bone_matrix.to_quaternion() - bone_rot.normalize() + bone_sca = bone_matrix.to_scale() + + # FIXME: silly tweaks to resemble the Blender 2.4 exporter matrix + if b3d_parameters.get("local-space"): + + bone_matrix2 = bone_matrix.copy() + + if not bone_stack[ibone][1]: + tmp = mathutils.Vector(bone_matrix2[1]) + bone_matrix2[1] = mathutils.Vector(bone_matrix2[2]) + bone_matrix2[2] = tmp + + bone_matrix2[0][0] = -bone_matrix2[0][0] + bone_matrix2[0][1] = -bone_matrix2[0][1] + bone_matrix2[0][2] = -bone_matrix2[0][2] + + bone_rot = bone_matrix2.to_quaternion() + bone_rot.normalize() + tmp = bone_rot.z + bone_rot.z = bone_rot.y + bone_rot.y = tmp + bone_rot.x = -bone_rot.x + else: + tmp = mathutils.Vector(bone_matrix2[1]) + bone_matrix2[1] = mathutils.Vector(bone_matrix2[0]) + bone_matrix2[0] = tmp + + bone_matrix2[0][0] = -bone_matrix2[0][0] + bone_matrix2[0][1] = -bone_matrix2[0][1] + bone_matrix2[0][2] = -bone_matrix2[0][2] + + bone_rot = bone_matrix2.to_quaternion() + bone_rot.normalize() + tmp = bone_rot.w + bone_rot.w = bone_rot.z + bone_rot.z = -tmp + bone_rot.y = -bone_rot.y + bone_rot.x = -bone_rot.x + + else: + bone_rot = bone_matrix.to_quaternion() + bone_rot.normalize() + keys_stack.append([frame_count - first_frame+1, bone_name, bone_loc, bone_sca, bone_rot]) if DEBUG: print(" <loc>", bone_loc, "</loc>") if DEBUG: print(" <rot>", bone_rot, "</rot>") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |