Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/io/import_shape_mdd.py')
-rw-r--r--release/scripts/io/import_shape_mdd.py58
1 files changed, 28 insertions, 30 deletions
diff --git a/release/scripts/io/import_shape_mdd.py b/release/scripts/io/import_shape_mdd.py
index c64fbd15a5c..ec0e7696630 100644
--- a/release/scripts/io/import_shape_mdd.py
+++ b/release/scripts/io/import_shape_mdd.py
@@ -25,7 +25,7 @@
# 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
+# 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
@@ -36,77 +36,75 @@ from struct import unpack
def mdd_import(filepath, ob, scene, PREF_START_FRAME=0, PREF_JUMP=1):
-
+
print('\n\nimporting mdd "%s"' % filepath)
-
+
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))
+
+ print('\tpoints:%d frames:%d' % (points, frames))
# If target object doesn't have Basis shape key, create it.
try:
- num_keys = len( ob.data.shape_keys.keys )
+ num_keys = len(ob.data.shape_keys.keys)
except:
basis = ob.add_shape_key()
basis.name = "Basis"
ob.data.update()
- scene.current_frame = PREF_START_FRAME
+ scene.frame_current = PREF_START_FRAME
def UpdateMesh(ob, fr):
-
+
# Insert new shape key
new_shapekey = ob.add_shape_key()
new_shapekey.name = ("frame_%.4d" % fr)
new_shapekey_name = new_shapekey.name
-
+
ob.active_shape_key_index = len(ob.data.shape_keys.keys)-1
index = len(ob.data.shape_keys.keys)-1
ob.shape_key_lock = True
-
- verts = ob.data.shape_keys.keys[ len(ob.data.shape_keys.keys)-1 ].data
-
-
- for v in verts:
- # 12 is the size of 3 floats
- x,y,z= unpack('>3f', file.read(12))
- v.co[:] = x,z,y
+
+ verts = ob.data.shape_keys.keys[len(ob.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()
ob.shape_key_lock = False
-
+
# insert keyframes
shape_keys = ob.data.shape_keys
- scene.current_frame -= 1
+ scene.frame_current -= 1
ob.data.shape_keys.keys[index].value = 0.0
shape_keys.keys[len(ob.data.shape_keys.keys)-1].keyframe_insert("value")
- scene.current_frame += 1
+ scene.frame_current += 1
ob.data.shape_keys.keys[index].value = 1.0
shape_keys.keys[len(ob.data.shape_keys.keys)-1].keyframe_insert("value")
- scene.current_frame += 1
+ scene.frame_current += 1
ob.data.shape_keys.keys[index].value = 0.0
shape_keys.keys[len(ob.data.shape_keys.keys)-1].keyframe_insert("value")
- ob.data.update()
+ ob.data.update()
for i in range(frames):
UpdateMesh(ob, i)
-
+
from bpy.props import *
class importMDD(bpy.types.Operator):
'''Import MDD vertex keyframe file to shape keys'''
- bl_idname = "import.mdd"
+ bl_idname = "import_shape.mdd"
bl_label = "Import MDD"
# get first scene to get min and max properties for frames, fps
@@ -118,20 +116,19 @@ class importMDD(bpy.types.Operator):
# List of operator properties, the attributes will be assigned
# to the class instance from the operator settings before calling.
- path = StringProperty(name="File Path", description="File path used for importing the MDD file", maxlen=1024)
+ filepath = StringProperty(name="File Path", description="Filepath used for importing the MDD file", maxlen=1024)
#fps = IntProperty(name="Frames Per Second", description="Number of frames/second", min=minfps, max=maxfps, default=25)
- start_frame = IntProperty(name="Start Frame", description="Start frame for inserting animation", min=minframe, max=maxframe, default=0)
-
+ frame_start = IntProperty(name="Start Frame", description="Start frame for inserting animation", min=minframe, max=maxframe, default=0)
def poll(self, context):
ob = context.active_object
return (ob and ob.type == 'MESH')
def execute(self, context):
- if not self.properties.path:
+ if not self.properties.filepath:
raise Exception("filename not set")
- mdd_import( self.properties.path, bpy.context.active_object, context.scene, self.properties.start_frame, 1)
+ mdd_import(self.properties.filepath, bpy.context.active_object, context.scene, self.properties.frame_start, 1)
return {'FINISHED'}
@@ -148,7 +145,8 @@ def menu_func(self, context):
def register():
bpy.types.register(importMDD)
bpy.types.INFO_MT_file_import.append(menu_func)
-
+
+
def unregister():
bpy.types.unregister(importMDD)
bpy.types.INFO_MT_file_import.remove(menu_func)