Skip to content

Instantly share code, notes, and snippets.

@zeffii
Created September 2, 2015 18:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zeffii/967e62fc3c6bddb0bcbe to your computer and use it in GitHub Desktop.
Save zeffii/967e62fc3c6bddb0bcbe to your computer and use it in GitHub Desktop.
for i_frame in range(n_frames):
block = obj.shape_key_add(name=str(i_frame), from_mix=False) # returns a key_blocks member
block.value = 1
block.mute = True
for (vert, co) in zip(block.data, data[i_frame]):
vert.co = co
def make_frame_string(A):
DATA_PATH = "key_blocks[\"{0}\"].mute".format(str(A))
return '''obj.keyframe_insert(data_path='{1}', frame={0}, index=-1)'''.format(A+1,DATA_PATH)
block.mute = False
F = make_frame_string(i_frame)
print(F)
exec(F)
block.mute = True
F = make_frame_string(i_frame + 1)
print(F)
exec(F)
@zeffii
Copy link
Author

zeffii commented Sep 2, 2015

or even this... this .. feels so close...

for i_frame in range(n_frames):
    block = obj.shape_key_add(name=str(i_frame), from_mix=False)  # returns a key_blocks member
    block.value = 1
    block.mute = True
    for (vert, co) in zip(block.data, data[i_frame]):
        vert.co = co

for i_frame in range(n_frames):
    DATA_PATH = obj.data.shape_keys.key_blocks[str(i_frame)].path_from_id('mute')

    block.mute = False
    obj.keyframe_insert(data_path=DATA_PATH, frame = i_frame + 1, index=-1)

    block.mute = True
    obj.keyframe_insert(data_path=DATA_PATH, frame = i_frame + 2, index=-1)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment