When animating a character on twos (so every other frame has a key, and using constant interpolation) but the camera motion on ones, it can be hard to follow the character and properly inspect the motion.
This design task proposes a way to do a play-blast by only rendering those frames that have a keyframe, a feature requested by @Pablo Fournier (pablico) on behalf of the Blender Studio animators.
The behaviour should be:
- Animator selects one or more objects.
- Animator clicks on View → 'Viewport Render Animated Frames Only' button (of course label subject to change)
- Blender renders the appropriate range (same as View → Viewport Render Animation), but only those frames for which one or more of the selected objects have a keyframe.
- The duration of a frame in the final video file should be such that the timing is still correct. In other words, rendered frames should not be stuck together at a fixed frame rate, but rather be displayed until the next animated frame. Rendering frames 1, 5, and 10 should show frame 1 also on frames 2-4, and frame 5 on frames 6-9.
When outputting images, duplicate the rendered frames on non-rendered frames. This will produce more files than strictly necessary, but it will make it much easier to later convert the images to a video. It will also make it possible to incrementally update the keyframe density while maintaining the same set of output files.
When outputting a video, this duplication may not be necessary, but is trivial to implement. Each frame could receive its own timecode, but that's harder to implement, and left as a nice-to-have for the future.