Anim: Bake Channel operator

This is a replacement for the workflow that uses
"Bake Curve" and "Unbake Curve" to quickly generate
dense key data.

Compared to the existing workflow it has the advantage
of allowing the user more control over the key types,
and distance between keys, as well as the frame range affected.

Operator options

* Range: the range that will be baked.
Defaults to the scene range or preview range.

* Step: Distance between keyframes.
Can be used to bake on 2s or even bake to subframes.

* Remove Existing Keys: Boolean option that
if enabled also removes keys outside the specified baking range

* Interpolation Type: Choose a interpolation mode used
for new keys e.g. Constant or Bezier

* Bake Modifiers: If enabled bakes the effect of the
modifier stack to keys and deletes the modifier stack.
If false, the code disables the modifiers before baking,
so the resulting keys will behave as if the modifiers didn't exist

The operator can be found in the Graph Editor under `Channel->Bake Channels`

Part of: #111050

Pull Request: https://projects.blender.org/blender/blender/pulls/111263
This commit is contained in:
Christoph Lendenfeld
2023-12-14 11:35:25 +01:00
committed by Christoph Lendenfeld
parent 1a998c73eb
commit 1e931f5bd7
6 changed files with 392 additions and 2 deletions

View File

@@ -295,6 +295,7 @@ class GRAPH_MT_channel(Menu):
layout.operator("graph.keys_to_samples")
layout.operator("graph.samples_to_keys")
layout.operator("graph.sound_to_samples")
layout.operator("anim.channels_bake")
layout.separator()
layout.operator("graph.euler_filter", text="Discontinuity (Euler) Filter")