A few months ago I posted a naive request to support keyframes for pre-group and post-group grades. This is another go at that after thinking about it more.
A keyframe is a function that translates a frame value into a set of control parameters. It obviously depends on a functional (one-to-one) relationship with time. The time concept can be with respect to the absolute value of the timeline or with respect to the start of the clip. If the latter, the keyframe mapping can be adjusted if the clip is extended left or right, or if a speed function changes the rate at which timeline values relate to clip-relative values. Resolve does this so intuitively that we rarely give it much thought.
Clip grades and the Timeline grade have the benefit of having an unambiguous relationship with the timeline, or any timeline in the project. When a clip is associated with a timeline, that instance of the clip has its own timeline mapping defined for that timeline. The timeline itself has its own self-mapping.
Pre-Clip and Post-Clip Groups are special. They apply not only to multiple clips on a single timeline, but to other clips on other timelines within a project (possibly instances of the same clips on different timelines, usually instances of different clips on different timelines). In an earlier beta of Resolve 16, I ran into serious trouble when I set keyframes on Pre-Group clips, and the engineers at Blackmagic solved the problem by making it impossible to set such keyframes. Presently, one can only set keyframes on Clip and Timeline nodes, not Pre-Group and Post-Group nodes. (I don't like the fact that the Edit view inspector shows frame-accurate values of keyframe values for displayed parameters, but the Color window merely shows the most recent input to the keyframe, bumping it only when the frame contains a new input value, but that's for another Feature Request.)
Here's a thought for how to rationally control Pre-Group and Post-Group keyframe values: with special keyframe menus that associate with the Clip node.
Normally, the Keyframes panel of the Clip viewer shows all of the keyframes in the node tree of the clip, which might be as little as Corrector1 and Sizing, or might be dozens of correctors, layer mixers, key mixers, etc. If the keyframes panel also had keyframe controller views for Pre-Clip and Post-Clip groups, the interpretation would be very simple: THE CLIP HAS THE ABILITY TO DRIVE PARAMETERS OF THE PRE-CLIP and POST-CLIP NODE TREES. The clip can then do meaningful things, like control the Global Blend parameter of a power window. It can provide the tracking data to an interesting power window.
With this interpretation, Resolve could return to the functionality of having Pre-Clip and Post-Clip nodes being keyframe-able. By default, clips do not override Pre-Clip and Post-Clip keyframe controllers, so a do-nothing clip can allow a Pre-Clip or Post-Clip animation to run unfettered. But if the clip wants to override some parameters in the node tree (such as doing its own decision about how large a vignette should be, or how opaque the outside of a vignette should be), it could control it based on its own special knowledge.
I propose that if the clip wants to control any such parameters, the node tree would be displayed showing whether the keyframes come from the Group keyframes (default) or are copied into the Clip's keyframe controllers for the group for further manipulation. There could be a shortcut to copy all keyframe controllers to the Clip (taking full control of the Group for the Clip), as well as a revert shortcut (and revert all) shortcut to return control to the Group.
What do others think?
A keyframe is a function that translates a frame value into a set of control parameters. It obviously depends on a functional (one-to-one) relationship with time. The time concept can be with respect to the absolute value of the timeline or with respect to the start of the clip. If the latter, the keyframe mapping can be adjusted if the clip is extended left or right, or if a speed function changes the rate at which timeline values relate to clip-relative values. Resolve does this so intuitively that we rarely give it much thought.
Clip grades and the Timeline grade have the benefit of having an unambiguous relationship with the timeline, or any timeline in the project. When a clip is associated with a timeline, that instance of the clip has its own timeline mapping defined for that timeline. The timeline itself has its own self-mapping.
Pre-Clip and Post-Clip Groups are special. They apply not only to multiple clips on a single timeline, but to other clips on other timelines within a project (possibly instances of the same clips on different timelines, usually instances of different clips on different timelines). In an earlier beta of Resolve 16, I ran into serious trouble when I set keyframes on Pre-Group clips, and the engineers at Blackmagic solved the problem by making it impossible to set such keyframes. Presently, one can only set keyframes on Clip and Timeline nodes, not Pre-Group and Post-Group nodes. (I don't like the fact that the Edit view inspector shows frame-accurate values of keyframe values for displayed parameters, but the Color window merely shows the most recent input to the keyframe, bumping it only when the frame contains a new input value, but that's for another Feature Request.)
Here's a thought for how to rationally control Pre-Group and Post-Group keyframe values: with special keyframe menus that associate with the Clip node.
Normally, the Keyframes panel of the Clip viewer shows all of the keyframes in the node tree of the clip, which might be as little as Corrector1 and Sizing, or might be dozens of correctors, layer mixers, key mixers, etc. If the keyframes panel also had keyframe controller views for Pre-Clip and Post-Clip groups, the interpretation would be very simple: THE CLIP HAS THE ABILITY TO DRIVE PARAMETERS OF THE PRE-CLIP and POST-CLIP NODE TREES. The clip can then do meaningful things, like control the Global Blend parameter of a power window. It can provide the tracking data to an interesting power window.
With this interpretation, Resolve could return to the functionality of having Pre-Clip and Post-Clip nodes being keyframe-able. By default, clips do not override Pre-Clip and Post-Clip keyframe controllers, so a do-nothing clip can allow a Pre-Clip or Post-Clip animation to run unfettered. But if the clip wants to override some parameters in the node tree (such as doing its own decision about how large a vignette should be, or how opaque the outside of a vignette should be), it could control it based on its own special knowledge.
I propose that if the clip wants to control any such parameters, the node tree would be displayed showing whether the keyframes come from the Group keyframes (default) or are copied into the Clip's keyframe controllers for the group for further manipulation. There could be a shortcut to copy all keyframe controllers to the Clip (taking full control of the Group for the Clip), as well as a revert shortcut (and revert all) shortcut to return control to the Group.
What do others think?
MacOS Catalina Version 10.15.7
iMac Pro (2017)
3 GHz Intel Xeon W
64GB 2666 MHz DDR4
Radeon Pro Vega 64 16 GB
RED Rocket-X
Decklink 8K Pro card feeding FSI XM310K Monitor
iMac Pro (2017)
3 GHz Intel Xeon W
64GB 2666 MHz DDR4
Radeon Pro Vega 64 16 GB
RED Rocket-X
Decklink 8K Pro card feeding FSI XM310K Monitor