I have N objects in a scene and each has baked keyframes on some frame_start, frame_end interval.

Can anyone help me to write a script to scale keyframes for all of the objects along x axis and set interpolation type to constant. I cannot find an appropriate function to scale that programmatically.


  • $\begingroup$ Can I just ask, are you asking for a scripted solution because you specifically want to script it or because you don't know of a way to do it via the interface? $\endgroup$ – Ray Mairlot Aug 8 '14 at 16:06
  • $\begingroup$ Because i specifically want to script it. $\endgroup$ – Blaz Bratanic Aug 8 '14 at 17:01

I found a solution, however it resizes keypoints around arbitrary point.

old_type = bpy.context.area.type
bpy.context.area.type = 'GRAPH_EDITOR'
bpy.context.scene.frame_current = 1
bpy.ops.transform.resize(value=(6, 1, 1))
bpy.context.area.type = old_type
  • $\begingroup$ The arbitrary point will be the centre of the selected keyframes. This answer might interest you to get the first of the selected frames to the frame you want. $\endgroup$ – sambler Aug 9 '14 at 9:32

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.