Parcourir la source

Merge pull request #8412 from phfatmonkey/Blender-Exporter-Skinned-Mesh-Fix

Blender exporter skinned mesh fix
Mr.doob il y a 9 ans
Parent
commit
5c7290ab87

+ 2 - 3
utils/exporters/blender/addons/io_three/__init__.py

@@ -525,8 +525,7 @@ def animation_options():
     """
     anim = [
         (constants.OFF, constants.OFF.title(), constants.OFF),
-        (constants.POSE, constants.POSE.title(), constants.POSE),
-        (constants.REST, constants.REST.title(), constants.REST)
+        (constants.POSE, constants.POSE.title(), constants.POSE)
     ]
 
     return anim
@@ -727,7 +726,7 @@ class ExportThree(bpy.types.Operator, ExportHelper):
 
     option_animation_skeletal = EnumProperty(
         name="",
-        description="Export animation (skeletal)",
+        description="Export animation (skeletal) NOTE: Mesh must be in bind pose",
         items=animation_options(),
         default=constants.OFF)
 

+ 2 - 2
utils/exporters/blender/addons/io_three/exporter/api/mesh.py

@@ -756,8 +756,8 @@ def vertices(mesh):
     vertices_ = []
 
     for vertex in mesh.vertices:
-        vertices_.extend((vertex.co.x, vertex.co.y, vertex.co.z))
-
+        vertices_.extend((vertex.co.x, vertex.co.z, -vertex.co.y))
+        
     return vertices_
 
 

+ 5 - 1
utils/exporters/blender/addons/io_three/exporter/api/object.py

@@ -218,6 +218,10 @@ def animated_xform(obj, options):
     track_loc = track_loc[0]
     use_inverted = options.get(constants.HIERARCHY, False) and obj.parent
 
+    if times == None:
+        logger.info("In animated xform: Unable to extract trackable fields from %s", objName)
+        return tracks
+
     # for each frame
     inverted_fallback = mathutils.Matrix() if use_inverted else None
     convert_matrix = AXIS_CONVERSION    # matrix to convert the exported matrix
@@ -374,7 +378,7 @@ def matrix(obj, options):
         parent_inverted = obj.parent.matrix_world.inverted(mathutils.Matrix())
         return parent_inverted * obj.matrix_world
     else:
-        return AXIS_CONVERSION * obj.matrix_world
+        return obj.matrix_world
 
 
 @_object