[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