Browse Source

Fixed Blender exporter crashing on models without animations and skeletons.

alteredq 13 years ago
parent
commit
038d4f4518

+ 17 - 16
utils/exporters/blender/2.63/scripts/addons/io_mesh_threejs/export_threejs.py

@@ -679,6 +679,9 @@ def generate_uvs(uvs, option_uv_coords):
 
 
 def generate_bones(option_bones, flipyz):
 def generate_bones(option_bones, flipyz):
 
 
+    if not option_bones:
+        return "", 0
+
     hierarchy = []
     hierarchy = []
 
 
     for bone in bpy.data.armatures[0].bones:
     for bone in bpy.data.armatures[0].bones:
@@ -707,10 +710,7 @@ def generate_bones(option_bones, flipyz):
 
 
     bones_string = ",".join(hierarchy)
     bones_string = ",".join(hierarchy)
 
 
-    if option_bones:
-        return bones_string, len(bpy.data.armatures[0].bones)
-    else:
-        return "", 0
+    return bones_string, len(bpy.data.armatures[0].bones)
 
 
 
 
 # ##############################################################################
 # ##############################################################################
@@ -719,6 +719,9 @@ def generate_bones(option_bones, flipyz):
 
 
 def generate_indices(meshes, option_skinning):
 def generate_indices(meshes, option_skinning):
 
 
+    if not option_skinning:
+        return ""
+
     indices = []
     indices = []
 
 
     for mesh, dummy in meshes:
     for mesh, dummy in meshes:
@@ -758,10 +761,7 @@ def generate_indices(meshes, option_skinning):
 
 
     indices_string = ",".join(indices)
     indices_string = ",".join(indices)
 
 
-    if option_skinning:
-        return indices_string
-    else:
-        return ""
+    return indices_string
 
 
 
 
 # ##############################################################################
 # ##############################################################################
@@ -770,6 +770,9 @@ def generate_indices(meshes, option_skinning):
 
 
 def generate_weights(vertices, option_skinning):
 def generate_weights(vertices, option_skinning):
 
 
+    if not option_skinning:
+        return ""
+
     weights = []
     weights = []
 
 
     for v in vertices:
     for v in vertices:
@@ -781,10 +784,8 @@ def generate_weights(vertices, option_skinning):
 
 
     weights_string = ",".join(weights)
     weights_string = ",".join(weights)
 
 
-    if option_skinning:
-        return weights_string
-    else:
-        return ""
+    return weights_string
+
 
 
 # ##############################################################################
 # ##############################################################################
 # Model exporter - skeletal animation
 # Model exporter - skeletal animation
@@ -793,6 +794,9 @@ def generate_weights(vertices, option_skinning):
 
 
 def generate_animation(option_animation_skeletal, option_frame_step, flipyz):
 def generate_animation(option_animation_skeletal, option_frame_step, flipyz):
 
 
+    if not option_animation_skeletal:
+        return ""
+
     # TODO: Add scaling influences
     # TODO: Add scaling influences
 
 
     action = bpy.data.actions[0]
     action = bpy.data.actions[0]
@@ -871,10 +875,7 @@ def generate_animation(option_animation_skeletal, option_frame_step, flipyz):
     hierarchy_string = ",".join(parents)
     hierarchy_string = ",".join(parents)
     animation_string = '"name":"%s","fps":%d,"length":%f,"hierarchy":[%s]' % (action.name, fps, (frame_length / fps), hierarchy_string)
     animation_string = '"name":"%s","fps":%d,"length":%f,"hierarchy":[%s]' % (action.name, fps, (frame_length / fps), hierarchy_string)
 
 
-    if option_animation_skeletal:
-        return animation_string
-    else:
-        return ""
+    return animation_string
 
 
 def position(bone, frame):
 def position(bone, frame):