[Bf-python] vertex animation in blender 2.5 / shapekeys
sc3sc3 .
sc3sc3 at gmail.com
Mon May 23 12:21:47 CEST 2011
hi
sorry about crossposting
actually it concerns this question
http://blenderartists.org/forum/showthread.php?219358-vertex-animation-in-blender-2.5
but noone apparently has an answer
so i hope to find it here
does anybody have a simple example concerning animating vertices ( shapekeys
) ?
http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Cookbook/Code_snippets/Meshes#Vertex_groups_and_shapekeys
there is for example this script
but how does one introduce the next step
and actually animating those shapekeys through python ?
i tried all kinds of ways of adding keyframes on the timeline but of no
avail :-(
#----------------------------------------------------------
# File shapekey.py
#----------------------------------------------------------
import bpy, random
def run(origin):
# Add UV sphere
bpy.ops.mesh.primitive_uv_sphere_add(
segments=6, ring_count=5, size=1, location=origin)
ob = bpy.context.object
ob.name = 'ShapeKeyObject'
ob.show_name = True
# Create Left and Right vertex groups
left = ob.vertex_groups.new('Left')
right = ob.vertex_groups.new('Right')
for v in ob.data.vertices:
if v.co[0] > 0.001:
left.add([v.index], 1.0, 'REPLACE')
elif v.co[0] < -0.001:
right.add([v.index], 1.0, 'REPLACE')
else:
left.add([v.index], 0.5, 'REPLACE')
right.add([v.index], 0.5, 'REPLACE')
# Add Basis key
bpy.ops.object.shape_key_add(None)
basis = ob.active_shape_key
# Add FrontForward key: front verts move one unit forward
# Slider from -1.0 to +2.0
bpy.ops.object.shape_key_add(None)
frontFwd = ob.active_shape_key
frontFwd.name = 'FrontForward'
frontFwd.slider_min = -1.0
frontFwd.slider_max = 2.0
for v in [19, 20, 23, 24]:
pt = frontFwd.data[v].co
pt[1] = pt[1] - 1
# Add TopUp keys: top verts move one unit up. TopUp_L and
# TopUp_R only affect left and right halves, respectively
keylist = [(None, ''), ('Left', '_L'), ('Right', '_R')]
for (vgrp, suffix) in keylist:
bpy.ops.object.shape_key_add(None)
topUp = ob.active_shape_key
topUp.name = 'TopUp' + suffix
if vgrp:
topUp.vertex_group = vgrp
for v in [0, 1, 9, 10, 17, 18, 25]:
pt = topUp.data[v].co
pt[2] = pt[2] + 1
# Pose shape keys
for shape in ob.data.shape_keys.key_blocks:
shape.value = random.random()
return
if __name__ == "__main__":
# Create five object with random shapekeys
for j in range(5):
run((3*j,0,0))
thanks for any help
kind regards
sc3*2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.blender.org/pipermail/bf-python/attachments/20110523/20936ee0/attachment.html>
More information about the Bf-python
mailing list