I’ve managed to get a script together that creates shape keys and the ‘values’ seem set right and the keys are created.
The problem I’m having is that the vertex doesn’t move Can someone see my stupid error - please! It works if I’m not working with shape keys, but not when I am.
import bpy
# Clean up any old crap
bpy.ops.mesh.primitive_cube_add(radius=2, view_align=False,
enter_editmode=False, location=(0, 0, 0),
layers=(True, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False))
bpy.ops.object.mode_set(mode = 'OBJECT')
for ob in bpy.context.scene.objects:
ob.select = ob.type == 'MESH' and ob.name.startswith("Cube")
bpy.ops.object.delete(use_global=False)
# Create cube working with
bpy.ops.mesh.primitive_cube_add(radius=2, view_align=False,
enter_editmode=False, location=(0, 0, 0),
layers=(True, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False))
obj = bpy.context.active_object
bpy.context.scene.frame_set(1)
# Create Basis and Key 1 Shape Keys
bpy.ops.object.shape_key_add(from_mix=False)
bpy.ops.object.shape_key_add(from_mix=False)
keyName="Key 1"
bpy.context.object.active_shape_key_index = 1
bpy.context.scene.frame_set(1)
obj.data.shape_keys.key_blocks[keyName].value = 0
obj.data.shape_keys.key_blocks[keyName].keyframe_insert("value",frame=1)
# This next bit enters edit mode - but doesn't change the position of the vertext!!!!!
bpy.ops.object.mode_set(mode = 'EDIT')
obj.data.vertices[1].co.z += 2
bpy.ops.object.mode_set(mode = 'OBJECT')
bpy.context.scene.frame_set(20)
obj.data.shape_keys.key_blocks[keyName].value = 1
obj.data.shape_keys.key_blocks[keyName].keyframe_insert("value",frame=20)