diff options
Diffstat (limited to 'release/scripts/op/io_shape_mdd/import_mdd.py')
-rw-r--r-- | release/scripts/op/io_shape_mdd/import_mdd.py | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/release/scripts/op/io_shape_mdd/import_mdd.py b/release/scripts/op/io_shape_mdd/import_mdd.py deleted file mode 100644 index 02be14e97fa..00000000000 --- a/release/scripts/op/io_shape_mdd/import_mdd.py +++ /dev/null @@ -1,102 +0,0 @@ -# ##### BEGIN GPL LICENSE BLOCK ##### -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# ##### END GPL LICENSE BLOCK ##### - -# <pep8 compliant> - -# mdd importer by Bill L.Nieuwendorp -# conversion to blender 2.5: Ivo Grigull (loolarge) -# -# Warning if the vertex order or vertex count differs from the -# origonal model the mdd was Baked out from their will be Strange -# behavior -# -# vertex animation to ShapeKeys with ipo and gives the frame a value of 1.0 -# A modifier to read mdd files would be Ideal but thats for another day :) -# -# Please send any fixes,updates,bugs to Slow67_at_Gmail.com -# Bill Niewuendorp - -import bpy -from struct import unpack - - -def load(operator, context, filepath, frame_start=0, frame_step=1): - - scene = context.scene - obj = context.object - - print('\n\nimporting mdd %r' % filepath) - - if bpy.ops.object.mode_set.poll(): - bpy.ops.object.mode_set(mode='OBJECT') - - file = open(filepath, 'rb') - frames, points = unpack(">2i", file.read(8)) - time = unpack((">%df" % frames), file.read(frames * 4)) - - print('\tpoints:%d frames:%d' % (points, frames)) - - # If target object doesn't have Basis shape key, create it. - try: - num_keys = len(obj.data.shape_keys.keys) - except: - basis = obj.shape_key_add() - basis.name = "Basis" - obj.data.update() - - scene.frame_current = frame_start - - def UpdateMesh(ob, fr): - - # Insert new shape key - new_shapekey = obj.shape_key_add() - new_shapekey.name = ("frame_%.4d" % fr) - new_shapekey_name = new_shapekey.name - - obj.active_shape_key_index = len(obj.data.shape_keys.keys) - 1 - index = len(obj.data.shape_keys.keys) - 1 - obj.show_only_shape_key = True - - verts = obj.data.shape_keys.keys[len(obj.data.shape_keys.keys) - 1].data - - for v in verts: # 12 is the size of 3 floats - v.co[:] = unpack('>3f', file.read(12)) - #me.update() - obj.show_only_shape_key = False - - # insert keyframes - shape_keys = obj.data.shape_keys - - scene.frame_current -= 1 - obj.data.shape_keys.keys[index].value = 0.0 - shape_keys.keys[len(obj.data.shape_keys.keys) - 1].keyframe_insert("value") - - scene.frame_current += 1 - obj.data.shape_keys.keys[index].value = 1.0 - shape_keys.keys[len(obj.data.shape_keys.keys) - 1].keyframe_insert("value") - - scene.frame_current += 1 - obj.data.shape_keys.keys[index].value = 0.0 - shape_keys.keys[len(obj.data.shape_keys.keys) - 1].keyframe_insert("value") - - obj.data.update() - - for i in range(frames): - UpdateMesh(obj, i) - - return {'FINISHED'} |