[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