# Scale keyframes for multiple objects with a script

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.

thanks

• 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? – Ray Mairlot Aug 8 '14 at 16:06
• Because i specifically want to script it. – 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.ops.graph.interpolation_type(type='CONSTANT')
bpy.context.scene.frame_current = 1
bpy.ops.transform.resize(value=(6, 1, 1))
bpy.context.area.type = old_type

• 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. – sambler Aug 9 '14 at 9:32