On 2021-03-09 there was a meeting in the Blender Animation Studio about improvements to the Action Baking system and to discuss the new pose library.
Present: Hjalti Hjálmarsson, Pablo Fournier, and Rik Schutte (animators), Sebastian Parborg and Sybren Stüvel (developers)
Preview Baking for Animating on 2s
The goal of the animators is to easily convert splined animation into stepped animation on 2s (i.e. keyed with constant interpolation every other frame) for previewing purposes. This means that a character’s Action should be converted to 2s, while maintaining other animation; most importantly, camera motion should remain smooth. This means that the “Viewport Render (a.k.a. Playblast) on Keys Only” feature in Blender is not suitable for this.
Suggested improvements for the Action Baking workflow to allow such preview baking:
- When baking to a new Action, enable Fake User on the old Action. This ensures that the old action isn’t lost when saving the file.
- Use a “keyframe holder” object/bone that defines which frames will be baked, by keying some arbitrary property.
- Make sure that frames not baked have no keys. This is already covered by T82168: Improvements to “Bake Action…” Operator.
- Allow setting a frame range. This is also included in T82168: Improvements to “Bake Action…” Operator.
- On all baked keys, set the interpolation type to Constant.
Action Baking has also been discussed in 2021-02-18 Animation & Rigging Module Meeting.
Sybren gave a demonstration of the pose library prototype he’s been working on with Julian Eisel and Campbell Barton. It was received positively, with some ideas for improvements.
The current prototype simply copies animation data. This means a pose has to be keyed before it can be added to the pose library. This is not desired. Instead, the prototype will do this:
- Always include the current location/rotation/scale/bbone properties of the selected bones.
- If there are any other animated properties (not necessarily keyed on the current frame) on the selected bones, include their current value as well. This allows for inclusion of custom properties, for example for IK/FK switching, zipping a mouth, etc.
- Allow for scripts (add-ons, scripted rigs) to provide a callback function. That function will receive the current context, and return a list of animation channels that should also be part of the pose. This should allow the rigger to include certain settings of the rig in a pose, even when these settings are not defined on any selected bone.