I’ve a complex scene with a load of traditional keyframed animations going on - much of it from a baked physics sim.
So I can do a nice smooth overcrank effect (ie smoothly slow time down, so we can see part of the action in super-slow-motion), I need to render out frames at sub-frame intervals.
Blender can certainly render out non-integer frames, as it does if you use the Time Remapping feature, but I need more fine-grained control. I need to be able to render the scene at, say, 3.2 frames in, 3.75 frames, 3.96 frames etc.
The only solution I can see, given that I can’t directly tell Blender to render the scene at 3.96 frames in, is to use Python to move all my keyframes back by 3.96 frames, then I can just render frame “0”. Repeat for each frame I need.
I can do it manually by going to the Dope Sheet, selecting all keyframes, switching off Frame Snapping, and dragging the whole lot in one go, but I need to do it with Python - I need about 200 frames rendering.
Question: What’s the simplest way to move every keyframe in a whole scene back/forward in time by a certain amount?
- Do I have to iterate through every object, every animation, every track, every key?
- Or would it be better to approach it more like a macro: have my script do the motions I’d perform in the Dope Sheet to do the same thing?
Any suggestions for the easiest approach?