forked from bartvdbraak/blender
bugfix [#23935] Exporting to Unity3d .fbx Blender 2.5
This commit is contained in:
parent
b27d924aac
commit
12628b197d
@ -86,7 +86,25 @@ class ExportFBX(bpy.types.Operator, ExportHelper):
|
||||
GLOBAL_MATRIX = mtx4_z90n * GLOBAL_MATRIX
|
||||
|
||||
import io_scene_fbx.export_fbx
|
||||
return io_scene_fbx.export_fbx.save(self, context, GLOBAL_MATRIX=GLOBAL_MATRIX, **self.properties)
|
||||
return io_scene_fbx.export_fbx.save(self, context, self.filepath,
|
||||
GLOBAL_MATRIX=GLOBAL_MATRIX,
|
||||
EXP_OBS_SELECTED=self.EXP_OBS_SELECTED,
|
||||
EXP_MESH=self.EXP_MESH,
|
||||
EXP_MESH_APPLY_MOD=self.EXP_MESH_APPLY_MOD,
|
||||
EXP_ARMATURE=self.EXP_ARMATURE,
|
||||
EXP_LAMP=self.EXP_LAMP,
|
||||
EXP_CAMERA=self.EXP_CAMERA,
|
||||
EXP_EMPTY=self.EXP_EMPTY,
|
||||
EXP_IMAGE_COPY=self.EXP_IMAGE_COPY,
|
||||
ANIM_ENABLE=self.ANIM_ENABLE,
|
||||
ANIM_OPTIMIZE=self.ANIM_OPTIMIZE,
|
||||
ANIM_OPTIMIZE_PRECISSION=self.ANIM_OPTIMIZE_PRECISSION,
|
||||
ANIM_ACTION_ALL=self.ANIM_ACTION_ALL,
|
||||
BATCH_ENABLE=self.BATCH_ENABLE,
|
||||
BATCH_GROUP=self.BATCH_GROUP,
|
||||
BATCH_FILE_PREFIX=self.BATCH_FILE_PREFIX,
|
||||
BATCH_OWN_DIR=self.BATCH_OWN_DIR,
|
||||
)
|
||||
|
||||
|
||||
def menu_func(self, context):
|
||||
|
@ -181,14 +181,12 @@ def getVertsFromGroup(me, group_index):
|
||||
return ret
|
||||
|
||||
# ob must be OB_MESH
|
||||
def BPyMesh_meshWeight2List(ob):
|
||||
def BPyMesh_meshWeight2List(ob, me):
|
||||
''' Takes a mesh and return its group names and a list of lists, one list per vertex.
|
||||
aligning the each vert list with the group names, each list contains float value for the weight.
|
||||
These 2 lists can be modified and then used with list2MeshWeight to apply the changes.
|
||||
'''
|
||||
|
||||
me = ob.data
|
||||
|
||||
# Clear the vert group.
|
||||
groupNames= [g.name for g in ob.vertex_groups]
|
||||
len_groupNames= len(groupNames)
|
||||
@ -205,9 +203,9 @@ def BPyMesh_meshWeight2List(ob):
|
||||
|
||||
return groupNames, vWeightList
|
||||
|
||||
def meshNormalizedWeights(me):
|
||||
def meshNormalizedWeights(ob, me):
|
||||
try: # account for old bad BPyMesh
|
||||
groupNames, vWeightList = BPyMesh_meshWeight2List(me)
|
||||
groupNames, vWeightList = BPyMesh_meshWeight2List(ob, me)
|
||||
# groupNames, vWeightList = BPyMesh.meshWeight2List(me)
|
||||
except:
|
||||
return [],[]
|
||||
@ -235,7 +233,8 @@ header_comment = \
|
||||
'''
|
||||
|
||||
# This func can be called with just the filepath
|
||||
def save(operator, context, filepath="", \
|
||||
def save(operator, context, filepath="",
|
||||
GLOBAL_MATRIX = None,
|
||||
EXP_OBS_SELECTED = True,
|
||||
EXP_MESH = True,
|
||||
EXP_MESH_APPLY_MOD = True,
|
||||
@ -244,7 +243,6 @@ def save(operator, context, filepath="", \
|
||||
EXP_CAMERA = True,
|
||||
EXP_EMPTY = True,
|
||||
EXP_IMAGE_COPY = False,
|
||||
GLOBAL_MATRIX = None,
|
||||
ANIM_ENABLE = True,
|
||||
ANIM_OPTIMIZE = True,
|
||||
ANIM_OPTIMIZE_PRECISSION = 6,
|
||||
@ -2404,8 +2402,7 @@ Objects: {''')
|
||||
if my_mesh.fbxBoneParent:
|
||||
weights = None
|
||||
else:
|
||||
weights = meshNormalizedWeights(my_mesh.blenObject)
|
||||
# weights = meshNormalizedWeights(my_mesh.blenData)
|
||||
weights = meshNormalizedWeights(my_mesh.blenObject, my_mesh.blenData)
|
||||
|
||||
#for bonename, bone, obname, bone_mesh, armob in ob_bones:
|
||||
for my_bone in ob_bones:
|
||||
|
Loading…
Reference in New Issue
Block a user