[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3982] contrib/py/scripts/addons/ io_scene_ms3d: fixed some issues, reported by "paul geraskin" ( 2012-11-19 09:06) on tracker [#29404]

Alexander Nussbaumer alpha-beta-release at gmx.net
Mon Nov 19 20:08:30 CET 2012


Revision: 3982
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3982
Author:   beta-tester
Date:     2012-11-19 19:08:26 +0000 (Mon, 19 Nov 2012)
Log Message:
-----------
fixed some issues, reported by "paul geraskin" (2012-11-19 09:06) on tracker [#29404]

- export forgotten model properties.
- out of memory in verbose mode.
- now importer respects joint size for joint representation.
- wrong modulo value cut.
- after importing, active object is imported mesh.

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_spec.py
    contrib/py/scripts/addons/io_scene_ms3d/ms3d_strings.py
    contrib/py/scripts/addons/io_scene_ms3d/ms3d_ui.py

Modified: contrib/py/scripts/addons/io_scene_ms3d/__init__.py
===================================================================
--- contrib/py/scripts/addons/io_scene_ms3d/__init__.py	2012-11-19 00:36:32 UTC (rev 3981)
+++ contrib/py/scripts/addons/io_scene_ms3d/__init__.py	2012-11-19 19:08:26 UTC (rev 3982)
@@ -23,7 +23,7 @@
         'description': "Import / Export MilkShape3D MS3D files"\
                 " (conform with v1.8.4)",
         'author': "Alexander Nussbaumer",
-        'version': (0, 5, 0, 1),
+        'version': (0, 5, 0, 2),
         'blender': (2, 6, 3, 0),
         'location': "File > Import & File > Export",
         #'warning': "",

Modified: contrib/py/scripts/addons/io_scene_ms3d/ms3d_export.py
===================================================================
--- contrib/py/scripts/addons/io_scene_ms3d/ms3d_export.py	2012-11-19 00:36:32 UTC (rev 3981)
+++ contrib/py/scripts/addons/io_scene_ms3d/ms3d_export.py	2012-11-19 19:08:26 UTC (rev 3982)
@@ -216,6 +216,8 @@
         self.create_geometry(blender_context, ms3d_model, blender_mesh_objects, blender_to_ms3d_bones)
 
 
+
+
     ###########################################################################
     def create_geometry(self, blender_context, ms3d_model, blender_mesh_objects, blender_to_ms3d_bones):
         blender_scene = blender_context.scene
@@ -228,6 +230,11 @@
         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.alpha_ref = blender_mesh.ms3d.alpha_ref
+            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

Modified: contrib/py/scripts/addons/io_scene_ms3d/ms3d_import.py
===================================================================
--- contrib/py/scripts/addons/io_scene_ms3d/ms3d_import.py	2012-11-19 00:36:32 UTC (rev 3981)
+++ contrib/py/scripts/addons/io_scene_ms3d/ms3d_import.py	2012-11-19 19:08:26 UTC (rev 3982)
@@ -187,7 +187,21 @@
 
             print()
             print("##########################################################")
-            print("MS3D -> Blender : [{0}]".format(self.filepath_splitted[1]))
+            #print("MS3D -> Blender : [{0}]".format(self.filepath_splitted[1]))
+            #
+            #read - exception in try block
+            #  type: '<class 'UnicodeEncodeError'>'
+            #  value: ''charmap' codec can't encode characters in position 19-24: character maps to <undefined>'
+            #Traceback (most recent call last):
+            #  File "..\io_scene_ms3d\ms3d_ui.py", line 404, in execute
+            #    return Ms3dImporter(self).read(blender_context)
+            #  File "..\io_scene_ms3d\ms3d_import.py", line 190, in read
+            #    print("MS3D -> Blender : [{0}]".format(self.filepath_splitted[1]))
+            #  File "..\python\lib\encodings\cp437.py", line 19, in encode
+            #    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+            #UnicodeEncodeError: 'charmap' codec can't encode characters in position 19-24: character maps to <undefined>
+            print("MS3D -> Blender")
+
             print(statistics)
             print("##########################################################")
 
@@ -290,6 +304,10 @@
         blender_scene.objects.active = blender_mesh_object
 
         ##########################
+        # take this as active object after import
+        self.active_object = blender_mesh_object
+
+        ##########################
         # blender stuff:
         # create all (ms3d) groups
         ms3d_to_blender_group_index = {}
@@ -631,23 +649,27 @@
                     ms3d_vertex_group_ids_weights = []
                     ms3d_vertex_group_ids_weights.append(
                             (ms3d_vertex.bone_id,
-                            float(ms3d_vertex.vertex_ex_object.weights[0] % 100) / 100.0))
+                            float(ms3d_vertex.vertex_ex_object.weights[0] % 101) / 100.0,
+                            ))
                     if ms3d_vertex.vertex_ex_object.bone_ids[0] != Ms3dSpec.NONE_VERTEX_BONE_ID:
                         ms3d_vertex_group_ids_weights.append(
                                 (ms3d_vertex.vertex_ex_object.bone_ids[0],
-                                float(ms3d_vertex.vertex_ex_object.weights[1] % 100) / 100.0))
+                                float(ms3d_vertex.vertex_ex_object.weights[1] % 101) / 100.0
+                                ))
                     if ms3d_vertex.vertex_ex_object.bone_ids[1] != Ms3dSpec.NONE_VERTEX_BONE_ID:
                         ms3d_vertex_group_ids_weights.append(
                                 (ms3d_vertex.vertex_ex_object.bone_ids[1],
-                                float(ms3d_vertex.vertex_ex_object.weights[2] % 100) / 100.0))
+                                float(ms3d_vertex.vertex_ex_object.weights[2] % 101) / 100.0
+                                ))
                     if ms3d_vertex.vertex_ex_object.bone_ids[2] != Ms3dSpec.NONE_VERTEX_BONE_ID:
                         ms3d_vertex_group_ids_weights.append(
                                 (ms3d_vertex.vertex_ex_object.bone_ids[2],
                                 1.0 -
-                                float((ms3d_vertex.vertex_ex_object.weights[0] % 100)
-                                + (ms3d_vertex.vertex_ex_object.weights[1] % 100)
-                                + (ms3d_vertex.vertex_ex_object.weights[2] % 100)) / 100.0
+                                float((ms3d_vertex.vertex_ex_object.weights[0] % 101)
+                                + (ms3d_vertex.vertex_ex_object.weights[1] % 101)
+                                + (ms3d_vertex.vertex_ex_object.weights[2] % 101)) / 100.0
                                 ))
+
                 else:
                     ms3d_vertex_group_ids_weights = [(ms3d_vertex.bone_id, 1.0), ]
 
@@ -714,6 +736,13 @@
 
         ##########################
         # ms3d_joint to blender_edit_bone
+        if self.options.override_joint_size:
+            joint_length = self.options.joint_length
+        else:
+            joint_length = ms3d_model.model_ex_object.joint_size
+        if joint_length < 0.01:
+            joint_length = 0.01
+
         blender_scene.objects.active = blender_armature_object
         enable_edit_mode(True)
         for ms3d_joint in ms3d_joints_ordered:
@@ -735,7 +764,7 @@
             vector_tail_end_up.normalize()
             vector_tail_end_dir.normalize()
             blender_edit_bone.tail = blender_edit_bone.head \
-                    + self.geometry_correction(vector_tail_end_dir)
+                    + self.geometry_correction(vector_tail_end_dir * joint_length)
             blender_edit_bone.align_roll(self.geometry_correction(vector_tail_end_up))
 
             if ms3d_joint.parent_name:

Modified: contrib/py/scripts/addons/io_scene_ms3d/ms3d_spec.py
===================================================================
--- contrib/py/scripts/addons/io_scene_ms3d/ms3d_spec.py	2012-11-19 00:36:32 UTC (rev 3981)
+++ contrib/py/scripts/addons/io_scene_ms3d/ms3d_spec.py	2012-11-19 19:08:26 UTC (rev 3982)
@@ -282,7 +282,7 @@
             else:
                 raw = 0
 
-            file.write(pack('<b', raw % 255))
+            file.write(pack('<b', raw % 256))
 
 
 ###############################################################################
@@ -1632,11 +1632,19 @@
 
         print("sub_version_vertex_extra={0}".format(
                 self.sub_version_vertex_extra))
-        print("vertex_ex={0}".format(self.vertex_ex))
+        print("vertex_ex=[", end="")
+        if self.vertex_ex:
+            for obj in self.vertex_ex:
+                print("{0}".format(obj), end="")
+        print("]")
 
         print("sub_version_joint_extra={0}".format(
                 self.sub_version_joint_extra))
-        print("joint_ex={0}".format(self.joint_ex))
+        print("joint_ex=[", end="")
+        if self.joint_ex:
+            for obj in self.joint_ex:
+                print("{0}".format(obj), end="")
+        print("]")
 
         print("sub_version_model_extra={0}".format(
                 self.sub_version_model_extra))

Modified: contrib/py/scripts/addons/io_scene_ms3d/ms3d_strings.py
===================================================================
--- contrib/py/scripts/addons/io_scene_ms3d/ms3d_strings.py	2012-11-19 00:36:32 UTC (rev 3981)
+++ contrib/py/scripts/addons/io_scene_ms3d/ms3d_strings.py	2012-11-19 19:08:26 UTC (rev 3982)
@@ -217,7 +217,7 @@
         'PROP_ITEM_APPLY_MODIFIER_MODE_RENDER_1': "Render",
         'PROP_ITEM_APPLY_MODIFIER_MODE_RENDER_2': "takes the 'render' settings"\
                 " of modifier, if applicable",
-        'PROP_NAME_ROTATION_MODE' : "Bone rotation mode",
+        'PROP_NAME_ROTATION_MODE' : "Bone Rotation Mode",
         'PROP_DESC_ROTATION_MODE' : "set the preferred rotation mode of bones",
         'PROP_ITEM_ROTATION_MODE_EULER_1' : "Euler",
         'PROP_ITEM_ROTATION_MODE_EULER_2' : "use euler bone rotation"\
@@ -226,6 +226,10 @@
         'PROP_ITEM_ROTATION_MODE_QUATERNION_1' : "Quaternion",
         'PROP_ITEM_ROTATION_MODE_QUATERNION_2' : "use quaternion bone rotation"\
                 " (no gimbal-lock filter available!)",
+        'PROP_NAME_OVERRIDE_JOINT_SIZE': "Override Joint Size",
+        'PROP_DESC_OVERRIDE_JOINT_SIZE': "use value of 'Joint Size', the value of the ms3d file is ignored for representation.",
+        'PROP_NAME_IMPORT_JOINT_SIZE': "Joint Size",
+        'PROP_DESC_IMPORT_JOINT_SIZE': "size of the joint representation in blender",
 
         'PROP_NAME_': "Name",
         'PROP_DESC_': "Description",

Modified: contrib/py/scripts/addons/io_scene_ms3d/ms3d_ui.py
===================================================================
--- contrib/py/scripts/addons/io_scene_ms3d/ms3d_ui.py	2012-11-19 00:36:32 UTC (rev 3981)
+++ contrib/py/scripts/addons/io_scene_ms3d/ms3d_ui.py	2012-11-19 19:08:26 UTC (rev 3982)
@@ -222,11 +222,7 @@
 
 
     ###########################################################################

@@ Diff output truncated at 10240 characters. @@


More information about the Bf-extensions-cvs mailing list