Search code examples
python3dblenderbpythonbpy

how do I set a value for a ShapeKey in Blender Python?


I've managed to insert Shape Keys from Python using:

ob = Scene.GetCurrent().object.active;
if(ob.activeShape == 0):
   ob.insertShapeKey()
   ob.insertShapeKey()

Now how do I change a key value ?


Solution

  • Ok here's how I did it:

    #get the key
    k = ob.getData().getKey()
    #create a new Ipo
    ni = Ipo.New('Key','ni')
    #if there check if there already a key by that name, otherwise add key
    if(k.ipo['Key 1'] == None):   k.ipo.addCurve('Key 1')
    #add a point to the 'Key 1' ipo curve
    k.ipo['Key 1'].append(BezTriple.New(6.0,0.8,0.1))
    

    And that's about it. The first ShapeKey inserted creates 'Basis', then keys are added, 'Key 1' is the default name