0
$\begingroup$

I found a script on the web that is supposed to set key frames for driver driven shape keys. however its giving me an error. I need this so i can remove the drivers for the render farm I use wont allow scripts. Here is the script.

Import bpy

context = bpy.context
scene = context.scene
object = context.object

frame = scene.frame_start

while frame <= scene.frame_end:
scene.frame_set(frame)
for fcurve in object.data.shape_keys.animation_data.drivers.valu es(): 
object.data.shape_keys.keyframe_insert(fcurve.data _path)
frame = frame + 1

The error I get when ran is below

enter image description here

$\endgroup$
1
$\begingroup$

Just some syntactic errors (missing indents, etc.). Should work like this:

import bpy

context = bpy.context
scene = context.scene
object = context.object

frame = scene.frame_start

while frame <= scene.frame_end:
    scene.frame_set(frame)
    for fcurve in object.data.shape_keys.animation_data.drivers.values(): 
        object.data.shape_keys.keyframe_insert(fcurve.data_path)
        frame = frame + 1
$\endgroup$
  • $\begingroup$ This worked perfectly, however I now need to use this script to set key frames for shape keys on all frames of this animation. Do i just remove" _data. driver.drivers.values" from line 11? $\endgroup$ – Justin Solis Apr 24 '18 at 18:21
  • $\begingroup$ Tried altering the script to get it to set keyframes for the shapekeys for all frames but the result did not get me what i wanted. here is what i tried. 'code' import bpy context = bpy.context scene = context.scene object = context.object frame = scene.frame_start while frame <= scene.frame_end: scene.frame_set(frame) object.data.shape_keys.keyframe_insert frame = frame + 1 $\endgroup$ – Justin Solis Apr 25 '18 at 16:03
  • $\begingroup$ Sorry, but can you please specify your problem? The script sets all keyframes for the current object for all applied drivers, between the scene's start frame and its endframe. So it works for all frames. Or do you want it to make it for all objects? $\endgroup$ – Ectras Apr 25 '18 at 19:00
  • $\begingroup$ All is well, figured a work around. You have been awesome. Thanks my man. $\endgroup$ – Justin Solis Apr 29 '18 at 16:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.