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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'io_shape_mdd/import_mdd.py')
-rw-r--r--io_shape_mdd/import_mdd.py72
1 files changed, 36 insertions, 36 deletions
diff --git a/io_shape_mdd/import_mdd.py b/io_shape_mdd/import_mdd.py
index f5136856..e671e285 100644
--- a/io_shape_mdd/import_mdd.py
+++ b/io_shape_mdd/import_mdd.py
@@ -34,6 +34,41 @@
import bpy
from struct import unpack
+def obj_update_frame(file, scene, obj, fr, step):
+
+ # Insert new shape key
+ new_shapekey = obj.shape_key_add()
+ new_shapekey.name = ("frame_%.4d" % fr)
+
+ obj.active_shape_key_index = len(obj.data.shape_keys.key_blocks) - 1
+ index = len(obj.data.shape_keys.key_blocks) - 1
+ obj.show_only_shape_key = True
+
+ verts = obj.data.shape_keys.key_blocks[len(obj.data.shape_keys.key_blocks) - 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 -= step
+ obj.data.shape_keys.key_blocks[index].value = 0.0
+ shape_keys.key_blocks[len(obj.data.shape_keys.key_blocks) - 1].keyframe_insert("value")
+
+ scene.frame_current += step
+ obj.data.shape_keys.key_blocks[index].value = 1.0
+ shape_keys.key_blocks[len(obj.data.shape_keys.key_blocks) - 1].keyframe_insert("value")
+
+ scene.frame_current += step
+ obj.data.shape_keys.key_blocks[index].value = 0.0
+ shape_keys.key_blocks[len(obj.data.shape_keys.key_blocks) - 1].keyframe_insert("value")
+
+ obj.data.update()
+
def load(operator, context, filepath, frame_start=0, frame_step=1):
@@ -60,42 +95,7 @@ def load(operator, context, filepath, frame_start=0, frame_step=1):
scene.frame_current = frame_start
- def UpdateMesh(ob, fr, step):
-
- # Insert new shape key
- new_shapekey = obj.shape_key_add()
- new_shapekey.name = ("frame_%.4d" % fr)
-
- obj.active_shape_key_index = len(obj.data.shape_keys.key_blocks) - 1
- index = len(obj.data.shape_keys.key_blocks) - 1
- obj.show_only_shape_key = True
-
- verts = obj.data.shape_keys.key_blocks[len(obj.data.shape_keys.key_blocks) - 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 -= step
- obj.data.shape_keys.key_blocks[index].value = 0.0
- shape_keys.key_blocks[len(obj.data.shape_keys.key_blocks) - 1].keyframe_insert("value")
-
- scene.frame_current += step
- obj.data.shape_keys.key_blocks[index].value = 1.0
- shape_keys.key_blocks[len(obj.data.shape_keys.key_blocks) - 1].keyframe_insert("value")
-
- scene.frame_current += step
- obj.data.shape_keys.key_blocks[index].value = 0.0
- shape_keys.key_blocks[len(obj.data.shape_keys.key_blocks) - 1].keyframe_insert("value")
-
- obj.data.update()
-
for i in range(frames):
- UpdateMesh(obj, i, frame_step)
+ obj_update_frame(file, scene, obj, i, frame_step)
return {'FINISHED'}