[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4099] contrib/py/scripts/addons/ io_scene_ms3d: add: exporter option for choose animation handling.

Alexander Nussbaumer alpha-beta-release at gmx.net
Sun Dec 23 10:25:11 CET 2012


Revision: 4099
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4099
Author:   beta-tester
Date:     2012-12-23 09:25:10 +0000 (Sun, 23 Dec 2012)
Log Message:
-----------
add: exporter option for choose animation handling.

fix: number of frames on export, if no animation is available.
mod: limit length of lines in code.

Modified Paths:
--------------
    contrib/py/scripts/addons/io_scene_ms3d/__init__.py
    contrib/py/scripts/addons/io_scene_ms3d/ms3d_export.py
    contrib/py/scripts/addons/io_scene_ms3d/ms3d_import.py
    contrib/py/scripts/addons/io_scene_ms3d/ms3d_strings.py
    contrib/py/scripts/addons/io_scene_ms3d/ms3d_ui.py
    contrib/py/scripts/addons/io_scene_ms3d/ms3d_utils.py

Modified: contrib/py/scripts/addons/io_scene_ms3d/__init__.py
===================================================================
--- contrib/py/scripts/addons/io_scene_ms3d/__init__.py	2012-12-23 05:31:42 UTC (rev 4098)
+++ contrib/py/scripts/addons/io_scene_ms3d/__init__.py	2012-12-23 09:25:10 UTC (rev 4099)
@@ -23,15 +23,16 @@
     'description': "Import / Export MilkShape3D MS3D files"\
             " (conform with v1.8.4)",
     'author': "Alexander Nussbaumer",
-    'version': (0, 7, 0, 2),
+    'version': (0, 90, 0),
     'blender': (2, 65, 0),
     'location': "File > Import & File > Export",
     'warning': "",
-    'wiki_url': "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
-                "Scripts/Import-Export/MilkShape3D_MS3D",
-    'tracker_url': "http://projects.blender.org/tracker/index.php"
-                   "?func=detail&aid=29404",
+    'wiki_url': "http://wiki.blender.org/index.php/Extensions:2.6/Py/"\
+            "Scripts/Import-Export/MilkShape3D_MS3D",
+    'tracker_url': "http://projects.blender.org/tracker/index.php"\
+            "?func=detail&aid=29404",
     'category': "Import-Export",
+    'support': 'OFFICIAL',
     }
 
 ###############################################################################

Modified: contrib/py/scripts/addons/io_scene_ms3d/ms3d_export.py
===================================================================
--- contrib/py/scripts/addons/io_scene_ms3d/ms3d_export.py	2012-12-23 05:31:42 UTC (rev 4098)
+++ contrib/py/scripts/addons/io_scene_ms3d/ms3d_export.py	2012-12-23 09:25:10 UTC (rev 4099)
@@ -130,7 +130,7 @@
                 pass
 
             # if option is set, this time will enlargs the io time
-            if (self.options.verbose):
+            if self.options.verbose:
                 ms3d_model.print_internal()
 
             post_setup_environment(self, blender_context)
@@ -186,7 +186,8 @@
         blender_to_ms3d_bones = {}
 
         self.create_animation(blender_context, ms3d_model, blender_mesh_objects, blender_to_ms3d_bones)
-        self.create_geometry(blender_context, ms3d_model, blender_mesh_objects, blender_to_ms3d_bones)
+        self.create_geometry(blender_context, ms3d_model, blender_mesh_objects,
+                blender_to_ms3d_bones)
 
 
     ###########################################################################
@@ -201,23 +202,27 @@
         for blender_mesh_object in blender_mesh_objects:
             blender_mesh = blender_mesh_object.data
 
-            ms3d_model._model_ex_object.joint_size = blender_mesh.ms3d.joint_size
+            ms3d_model._model_ex_object.joint_size = \
+                    blender_mesh.ms3d.joint_size
             ms3d_model._model_ex_object.alpha_ref = blender_mesh.ms3d.alpha_ref
-            ms3d_model._model_ex_object.transparency_mode = Ms3dUi.transparency_mode_to_ms3d(
-                                blender_mesh.ms3d.transparency_mode)
+            ms3d_model._model_ex_object.transparency_mode = \
+                    Ms3dUi.transparency_mode_to_ms3d(
+                    blender_mesh.ms3d.transparency_mode)
 
             ##########################
             # prepare ms3d groups if available
             # works only for exporting active object
             ##EXPORT_ACTIVE_ONLY:
-            for ms3d_local_group_index, blender_ms3d_group in enumerate(blender_mesh.ms3d.groups):
+            for ms3d_local_group_index, blender_ms3d_group in enumerate(
+                    blender_mesh.ms3d.groups):
                 ms3d_group = Ms3dGroup()
                 ms3d_group.__index = len(ms3d_model._groups)
                 ms3d_group.name = blender_ms3d_group.name
                 ms3d_group.flags = Ms3dUi.flags_to_ms3d(blender_ms3d_group.flags)
                 if blender_ms3d_group.comment:
                     ms3d_group._comment_object = Ms3dCommentEx()
-                    ms3d_group._comment_object.comment = blender_ms3d_group.comment
+                    ms3d_group._comment_object.comment = \
+                            blender_ms3d_group.comment
                     ms3d_group._comment_object.index = len(ms3d_model._groups)
                 ms3d_group.material_index = None # to mark as not setted
                 ms3d_model._groups.append(ms3d_group)
@@ -230,7 +235,8 @@
             # create a complete copy of mesh and bend object data
             # to be able to apply operations to it.
 
-            # temporary, create a full heavy copy of the model (object, mesh, modifiers)
+            # temporary, create a full heavy copy of the model
+            # (object, mesh, modifiers)
             blender_mesh_temp = blender_mesh_object.data.copy()
             blender_mesh_object_temp = blender_mesh_object.copy()
             blender_mesh_object_temp.data = blender_mesh_temp
@@ -246,8 +252,10 @@
             # apply modifiers
             for modifier in blender_mesh_object_temp.modifiers:
                 if self.options.apply_modifiers:
-                    # disable only armature modifiers
-                    if  modifier.type in {'ARMATURE', }:
+                    # disable only armature modifiers and only,
+                    # when use_animation is enabled
+                    if  self.options.use_animation \
+                            and modifier.type in {'ARMATURE', }:
                         modifier.show_viewport = False
                         modifier.show_render = False
                 else:
@@ -290,13 +298,15 @@
                 if bm.loops.layers.uv:
                     layer_uv = bm.loops.layers.uv[0]
                 else:
-                    layer_uv = bm.loops.layers.uv.new(ms3d_str['OBJECT_LAYER_UV'])
+                    layer_uv = bm.loops.layers.uv.new(
+                            ms3d_str['OBJECT_LAYER_UV'])
 
             layer_deform = bm.verts.layers.deform.active
 
             layer_extra = bm.verts.layers.int.get(ms3d_str['OBJECT_LAYER_EXTRA'])
             if layer_extra is None:
-                layer_extra = bm.verts.layers.int.new(ms3d_str['OBJECT_LAYER_EXTRA'])
+                layer_extra = bm.verts.layers.int.new(
+                        ms3d_str['OBJECT_LAYER_EXTRA'])
 
 
             ##########################
@@ -308,27 +318,33 @@
                     ms3d_vertex = Ms3dVertex()
                     ms3d_vertex.__index = index
 
-                    ms3d_vertex._vertex = self.geometry_correction(matrix_transform * bmv.co)
+                    ms3d_vertex._vertex = self.geometry_correction(
+                            matrix_transform * bmv.co)
 
-                    if layer_deform:
+                    if self.options.use_animation and layer_deform:
                         blender_vertex_group_ids = bmv[layer_deform]
                         if blender_vertex_group_ids:
                             count = 0
                             bone_ids = []
                             weights = []
-                            for blender_index, blender_weight in blender_vertex_group_ids.items():
+                            for blender_index, blender_weight \
+                                    in blender_vertex_group_ids.items():
                                 ms3d_joint = blender_to_ms3d_bones.get(
-                                        blender_mesh_object_temp.vertex_groups[blender_index].name)
+                                        blender_mesh_object_temp.vertex_groups[\
+                                                blender_index].name)
                                 if ms3d_joint:
                                     if count == 0:
                                         ms3d_vertex.bone_id = ms3d_joint.__index
-                                        weights.append(int(blender_weight * 100.0))
+                                        weights.append(
+                                                int(blender_weight * 100.0))
                                     elif count == 1:
                                         bone_ids.append(ms3d_joint.__index)
-                                        weights.append(int(blender_weight * 100.0))
+                                        weights.append(
+                                                int(blender_weight * 100.0))
                                     elif count == 2:
                                         bone_ids.append(ms3d_joint.__index)
-                                        weights.append(int(blender_weight * 100.0))
+                                        weights.append(
+                                                int(blender_weight * 100.0))
                                     elif count == 3:
                                         bone_ids.append(ms3d_joint.__index)
                                         self.options.report(
@@ -363,20 +379,25 @@
                                     if index >= count-1:
                                         weights[index] = weight_sum
                                         break
-                                    normalized_weight = int(weight * weight_normalize)
+                                    normalized_weight = int(
+                                            weight * weight_normalize)
                                     weight_sum -= normalized_weight
                                     weights[index] = normalized_weight
 
-                            ms3d_vertex._vertex_ex_object._bone_ids = tuple(bone_ids)
-                            ms3d_vertex._vertex_ex_object._weights = tuple(weights)
+                            ms3d_vertex._vertex_ex_object._bone_ids = \
+                                    tuple(bone_ids)
+                            ms3d_vertex._vertex_ex_object._weights = \
+                                    tuple(weights)
 
                     if layer_extra:
                         #ms3d_vertex._vertex_ex_object.extra = bmv[layer_extra]
                         # bm.verts.layers.int does only support signed int32
                         # convert signed int32 to unsigned int32 (little-endian)
                         signed_int32 = bmv[layer_extra]
-                        bytes_int32 = signed_int32.to_bytes(4, byteorder='little', signed=True)
-                        unsigned_int32 = int.from_bytes(bytes_int32, byteorder='little', signed=False)
+                        bytes_int32 = signed_int32.to_bytes(
+                                4, byteorder='little', signed=True)

@@ Diff output truncated at 10240 characters. @@


More information about the Bf-extensions-cvs mailing list