Graph Editor 'Selected Keyframes' Panel #94174

Open
opened 1 year ago by KevinCBurke · 8 comments

Big Picture
The Selected Keyframes Panel would provide animators with a much faster keyframe editing capability in the Graph Editor: being able to Box Select keyframes and edit their values simultaneously.

Selected Keyframes.gif

Use cases

  • Animator working in Graph Editor wanting to easily edit multiple keyframes

Design

  • The UI contains the same editable values as the Active Keyframe Panel: Interpolation, Key Frame, Key Value, Left Handle Type, Left Handle Frame, Left Handle Value, Right Handle Type, Right Handle Frame, Right Handle Value
  • It also includes the animator-friendly option Subframes to modify the Key Frame by whole or sub frames.
  • The panel would also feature the closely-related Equalize Handles operator, allowing users to make selected handle lengths uniform: either respecting their original angle from the key control point or by flattening the angle.

UX
When multiple keyframes are selected, the UI shows the values of the first keyframe from the Box Selection. This is the first keyframe of the first F-Curve in the Graph Editor. In the original prototype, when multiple keyframes were selected and the values did not match, the value's label included an asterisk (*) decoration to show the user that they would be editing multiple keyframe values. @dr.sybren requested that another method is explored as it should be implemented in a wider scope than the Graph Editor. User Interface feedback requested. In an animation module meeting @JonMatthis proposed a light blue field decoration. Here is a mockup of this as colorized text fields aren't currently possible in Python Add-Ons (except the strong red for alerts).
image.png

More Info
For more information, view the Multi-Keyframe Editing in Blender presentation .

related:

**Big Picture** The Selected Keyframes Panel would provide animators with a much faster keyframe editing capability in the Graph Editor: being able to Box Select keyframes and edit their values simultaneously. ![Selected Keyframes.gif](https://archive.blender.org/developer/F12755702/Selected_Keyframes.gif) **Use cases** * Animator working in Graph Editor wanting to easily edit multiple keyframes **Design** * The UI contains the same editable values as the Active Keyframe Panel: *Interpolation, Key Frame, Key Value, Left Handle Type, Left Handle Frame, Left Handle Value, Right Handle Type, Right Handle Frame, Right Handle Value* * It also includes the animator-friendly option *Subframes* to modify the Key Frame by whole or sub frames. * The panel would also feature the closely-related [Equalize Handles ](https://developer.blender.org/T94172) operator, allowing users to make selected handle lengths uniform: either respecting their original angle from the key control point or by flattening the angle. **UX** When multiple keyframes are selected, the UI shows the values of the first keyframe from the Box Selection. This is the first keyframe of the first F-Curve in the Graph Editor. In the original prototype, when multiple keyframes were selected and the values did not match, the value's label included an asterisk (*) decoration to show the user that they would be editing multiple keyframe values. @dr.sybren requested that another method is explored as it should be implemented in a wider scope than the Graph Editor. **User Interface feedback requested.** In an animation module meeting @JonMatthis proposed a light blue field decoration. Here is a mockup of this as colorized text fields aren't currently possible in Python Add-Ons (except the strong red for alerts). ![image.png](https://archive.blender.org/developer/F12755678/image.png) **More Info** For more information, view the [Multi-Keyframe Editing in Blender presentation ](https://docs.google.com/presentation/d/1hvbnSidNaO4kKCEV2CznhCNYNdGAJ7srQV3URlIFcaM/edit?usp=sharing). related: - #82359 (Stronger binding of Active and Selected) - #54862 (Multi-Object Properties Editing) - {key Alt} behavior described in https://docs.blender.org/manual/en/dev/interface/keymap/introduction.html#properties
Poster

Added subscribers: @JonMatthis, @dr.sybren, @KevinCBurke

Added subscribers: @JonMatthis, @dr.sybren, @KevinCBurke
Collaborator

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Collaborator

I get the problem of box selection not setting an active keyframe (that is a "problem" throughout blender and is also discussed in #82359 (Stronger binding of Active and Selected))

Thx for the presentation, a couple of notes:

When selecting multiple keyframes (one-by-one), the user still sees this Panel, however, the Panel only manipulates the last keyframe selected

From testing here the {key Alt} tweaking behavior still seems to work for all this (frame, value on keyframes as well as handles), is this not working for you?
(See Alt in https://docs.blender.org/manual/en/dev/interface/keymap/introduction.html#properties)
This is the current / usual method in blender for editing properties of multiple items selected, making this more obvious and improving upon this is also discussed in #54862 (Multi-Object Properties Editing) (including UI mockups)

Ctrl+S > Selection to Current Frame works with multiple active keyframe frames, but not with active handles.

Will check on this (maybe we should create a separate, isolated report for this)

I get the problem of box selection not setting an active keyframe (that is a "problem" throughout blender and is also discussed in #82359 (Stronger binding of Active and Selected)) Thx for the presentation, a couple of notes: > When selecting multiple keyframes (one-by-one), the user still sees this Panel, however, the Panel only manipulates the last keyframe selected From testing here the {key Alt} tweaking behavior still seems to work for all this (frame, value on keyframes as well as handles), is this not working for you? (See `Alt` in https://docs.blender.org/manual/en/dev/interface/keymap/introduction.html#properties) This is the current / usual method in blender for editing properties of multiple items selected, making this more obvious and improving upon this is also discussed in #54862 (Multi-Object Properties Editing) (including UI mockups) > Ctrl+S > Selection to Current Frame works with multiple active keyframe frames, but not with active handles. Will check on this (maybe we should create a separate, isolated report for this)
Collaborator

In #94174#1274315, @lichtwerk wrote:

Ctrl+S > Selection to Current Frame works with multiple active keyframe frames, but not with active handles.

Will check on this (maybe we should create a separate, isolated report for this)

Here is a patch allowing snapping of handles, too D13606: [WIP/eperimental] Graph Editor: support snapping handles

> In #94174#1274315, @lichtwerk wrote: >> Ctrl+S > Selection to Current Frame works with multiple active keyframe frames, but not with active handles. > Will check on this (maybe we should create a separate, isolated report for this) Here is a patch allowing snapping of handles, too [D13606: [WIP/eperimental] Graph Editor: support snapping handles](https://archive.blender.org/developer/D13606)
Collaborator

In #94174#1274315, @lichtwerk wrote:

When selecting multiple keyframes (one-by-one), the user still sees this Panel, however, the Panel only manipulates the last keyframe selected

From testing here the {key Alt} tweaking behavior still seems to work for all this (frame, value on keyframes as well as handles), is this not working for you?
(See Alt in https://docs.blender.org/manual/en/dev/interface/keymap/introduction.html#properties)
This is the current / usual method in blender for editing properties of multiple items selected, making this more obvious and improving upon this is also discussed in #54862 (Multi-Object Properties Editing) (including UI mockups)

What I want to say with this is that as long as you make sure you have an active keyframe (and yes, box-selecting exposes the "problem" of active vs. selected), the whole concept of adding a new panel seem redundant?

> In #94174#1274315, @lichtwerk wrote: >> When selecting multiple keyframes (one-by-one), the user still sees this Panel, however, the Panel only manipulates the last keyframe selected > > From testing here the {key Alt} tweaking behavior still seems to work for all this (frame, value on keyframes as well as handles), is this not working for you? > (See `Alt` in https://docs.blender.org/manual/en/dev/interface/keymap/introduction.html#properties) > This is the current / usual method in blender for editing properties of multiple items selected, making this more obvious and improving upon this is also discussed in #54862 (Multi-Object Properties Editing) (including UI mockups) What I want to say with this is that as long as you make sure you have an active keyframe (and yes, box-selecting exposes the "problem" of active vs. selected), the whole concept of adding a new panel seem redundant?
Poster

@lichtwerk , you've made some great points and found some excellent related tasks. Thank you for taking the time!

From testing here the {key Alt} tweaking behavior still seems to work for all this (frame, value on keyframes as well as handles), is this not working for you?
(See Alt in https://docs.blender.org/manual/en/dev/interface/keymap/introduction.html#properties)
This is the current / usual method in blender for editing properties of multiple items selected, making this more obvious and improving upon this is also discussed in #54862 (Multi-Object Properties Editing) (including UI mockups)

I am aware of the {key Alt} tweaking behavior. Thank you for directing me to #54862 (Multi-Object Properties Editing) as this is something, like the author/supporters of this task, I'd very much like to see change in Blender. As you mentioned, not being able to do this with a Box Select makes the selection process extremely tedious.

Here is a patch allowing snapping of handles, too D13606: [WIP/eperimental] Graph Editor: support snapping handles

Yes!! Thank you very much.

What I want to say with this is that as long as you make sure you have an active keyframe (and yes, box-selecting exposes the "problem" of active vs. selected), the whole concept of adding a new panel seem redundant?

You are so right about these panels being redundant and it is because of redundancy/loose-binding of "Active" and "Selected." Solving #82359 (Stronger binding of Active and Selected) and #54862 (Multi-Object Properties Editing) would eliminate the need for this panel. I'm a little discouraged by that though because both are design tasks from 1+ years ago (2020 and 2018, respectively) still in discourse that have not been moved into implementation. I'm not sure how these things are typically decided in Blender, but I feel more confident in animators getting a better UX sooner with this panel than waiting for the dependencies. I will add my thoughts to those tasks and try to understand the status before moving forward.

@lichtwerk , you've made some great points and found some excellent related tasks. Thank you for taking the time! > From testing here the {key Alt} tweaking behavior still seems to work for all this (frame, value on keyframes as well as handles), is this not working for you? > (See `Alt` in https://docs.blender.org/manual/en/dev/interface/keymap/introduction.html#properties) > This is the current / usual method in blender for editing properties of multiple items selected, making this more obvious and improving upon this is also discussed in #54862 (Multi-Object Properties Editing) (including UI mockups) I am aware of the {key Alt} tweaking behavior. Thank you for directing me to #54862 (Multi-Object Properties Editing) as this is something, like the author/supporters of this task, I'd very much like to see change in Blender. As you mentioned, not being able to do this with a Box Select makes the selection process extremely tedious. > Here is a patch allowing snapping of handles, too [D13606: [WIP/eperimental] Graph Editor: support snapping handles](https://archive.blender.org/developer/D13606) Yes!! Thank you very much. > What I want to say with this is that as long as you make sure you have an active keyframe (and yes, box-selecting exposes the "problem" of active vs. selected), the whole concept of adding a new panel seem redundant? You are so right about these panels being redundant and it is because of redundancy/loose-binding of "Active" and "Selected." Solving #82359 (Stronger binding of Active and Selected) and #54862 (Multi-Object Properties Editing) would eliminate the need for this panel. I'm a little discouraged by that though because both are design tasks from 1+ years ago (2020 and 2018, respectively) still in discourse that have not been moved into implementation. I'm not sure how these things are typically decided in Blender, but I feel more confident in animators getting a better UX sooner with this panel than waiting for the dependencies. I will add my thoughts to those tasks and try to understand the status before moving forward.
Poster

I just checked in on the design of https://developer.blender.org/T54862 and it isn't progressing.

I just checked in on the design of https://developer.blender.org/T54862 and it isn't progressing.
Collaborator

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
lichtwerk removed the
legacy module/Animation & Rigging
label 1 day ago
lichtwerk removed the
Interest/Animation & Rigging
label 1 day ago
lichtwerk removed the
legacy module/User Interface
label 5 hours ago
Sign in to join this conversation.
No Label
Interest/Alembic
Interest/Animation & Rigging
Interest/Asset Browser
Interest/Asset Browser Project Overview
Interest/Audio
Interest/Automated Testing
Interest/Blender Asset Bundle
Interest/Collada
Interest/Compositing
Interest/Core
Interest/Cycles
Interest/Dependency Graph
Interest/Development Management
Interest/Eevee & Viewport
Interest/Freestyle
Interest/Geometry Nodes
Interest/Grease Pencil
Interest/ID Management
Interest/Images & Movies
Interest/Import/Export
Interest/Line Art
Interest/Masking
Interest/Modeling
Interest/Modifiers
Interest/Motion Tracking
Interest/Nodes & Physics
Interest/Overrides
Interest/Performance
Interest/Performance
Interest/Physics
Interest/Pipeline, Assets & I/O
Interest/Platforms, Builds, Tests & Devices
Interest/Python API
Interest/Render & Cycles
Interest/Render Pipeline
Interest/Sculpt, Paint & Texture
Interest/Text Editor
Interest/Translations
Interest/Triaging
Interest/Undo
Interest/USD
Interest/User Interface
Interest/UV Editing
Interest/VFX & Video
Interest/Video Sequencer
Interest/Virtual Reality
legacy module/Animation & Rigging
legacy module/Core
legacy module/Development Management
legacy module/Eevee & Viewport
legacy module/Grease Pencil
legacy module/Modeling
legacy module/Nodes & Physics
legacy module/Pipeline, Assets & IO
legacy module/Platforms, Builds, Tests & Devices
legacy module/Python API
legacy module/Rendering & Cycles
legacy module/Sculpt, Paint & Texture
legacy module/Triaging
legacy module/User Interface
legacy module/VFX & Video
legacy project/1.0.0-beta.2
legacy project/Asset Browser (Archived)
legacy project/BF Blender: 2.8
legacy project/BF Blender: After Release
legacy project/BF Blender: Next
legacy project/BF Blender: Regressions
legacy project/BF Blender: Unconfirmed
legacy project/Blender 2.70
legacy project/Code Quest
legacy project/Datablocks and Libraries
legacy project/Eevee
legacy project/Game Animation
legacy project/Game Audio
legacy project/Game Data Conversion
legacy project/Game Engine
legacy project/Game Logic
legacy project/Game Physics
legacy project/Game Python
legacy project/Game Rendering
legacy project/Game UI
legacy project/GPU / Viewport
legacy project/GSoC
legacy project/Infrastructure: Websites
legacy project/LibOverrides - Usability and UX
legacy project/Milestone 1: Basic, Local Asset Browser
legacy project/Nodes
legacy project/OpenGL Error
legacy project/Papercut
legacy project/Pose Library Basics
legacy project/Retrospective
legacy project/Tracker Curfew
legacy project/Wintab High Frequency
Meta/Good First Issue
Meta/Papercut
migration/requires-manual-verification
Module › Animation & Rigging
Module › Core
Module › Development Management
Module › Eevee & Viewport
Module › Grease Pencil
Module › Modeling
Module › Nodes & Physics
Module › Pipeline, Assets & IO
Module › Platforms, Builds, Tests & Devices
Module › Python API
Module › Render & Cycles
Module › Sculpt, Paint & Texture
Module › Triaging
Module › User Interface
Module › VFX & Video
Platform/FreeBSD
Platform/Linux
Platform/macOS
Platform/Windows
Priority › High
Priority › Low
Priority › Normal
Priority › Unbreak Now!
Status › Archived
Status › Confirmed
Status › Duplicate
Status › Needs Information from Developers
Status › Needs Information from User
Status › Needs Triage
Status › Resolved
Type › Bug
Type › Design
Type › Known Issue
Type › Patch
Type › Report
Type › To Do
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#94174
Loading…
There is no content yet.