Animation Editors Paper Cuts #103855

Closed
opened 2023-01-13 10:32:16 +01:00 by Christoph Lendenfeld · 30 comments

The goal of this design task is to identify small tweaks that can improve the user experience for the following editors: Graph Editor, Dope Sheet, Timeline.
The important word is small. We are not trying to solve underlying issues here, just polish what we have.

Drivers and the NLA editor are excluded from this since they are a whole separate beast.

Previous Design Tasks for inspiration

Graph Editor

Channels

  • Pin individual channels. At the moment only the object itself can be pinned. It is often useful to pin a single channel, e.g. Translate X. (Not easy to change, the pinning flag is store on the FCurve. Would need a bigger refactor of the channel box)
  • Add filter for "Only Pinned Channels" (The filtering code is complicated and will be overhauled, not in scope for papercuts)
  • Add filter for "Only Armatures in Pose Mode".
  • Add right click option "Frame Channel". Similar to "Frame Selected" for keyframes #104523
  • Add ALT+MMB hotkey when clicking on a channel to frame the keyframes in that channel. Similar to ALT+MMB in the viewport focuses to whatever is under the cursor. #104523
  • Allow editing of selected keyframes in the N panel instead of only the active (Taken off the list because it is working with the ALT key. A proper selection-edit is discussed here #54862 . While the current state is not ideal, it is too much for a papercut)
  • Shift click to expand selection like in the Outliner. Atm it is the equivalent of Ctrl-Click [D17079](https://archive.blender.org/developer/D17079) / #104565
  • Enable Box Select just like in the Outliner #104505
  • When selecting an object, the channels should be uncollapsed
  • Shift click the arrows to expand/collapse all children deceptively simple, but the arrow is a button directly linked to a flag. There is no easy way to change that atm.

Modifiers

  • Allow multi editing for FCurve modifiers
  • Ability to name them D17142 / #104949
  • Right click menu in Channels to add FCurve modifiers to selection D17066

Menu Options

  • Move "Only selected curve keyframes" option to user preferences #104532
  • Move "Use High Quality Display" option to user preferences #104532

Key Manipulation

  • copy/paste key values relative to current value of the channel #104512
  • option to lock key movement to only 1 axis. Like pressing G and it is already locked to the Y axis (needs design task)
  • Remove drawing of keyframes on locked curves #104561
  • Option to change curve display for certain channel types, e.g. make rotation channels dashed (needs a design task first #104867 )
  • Keyframe handles stay selected when key is deselected (needs design task)
  • Indicate locked axis when manipulating keys, Like in the 3D viewport where you can see a blue line when you do G+Z (needs design task)
  • Insert keyframe only on the active curve #106307

Misc

  • Add GUI to quickly access slider operators like "Blend to Neighbor" and "Breakdown" #104530
  • Playhead snapping options. E.g. snap to closest keyframe while scrubbing to make sure you are on a key (Will get its own design task)
  • Only Graph Editor and Driver editor have a right margin: D17102 (Not actually an issue since the scrollbar is in different places)
  • when hitting "normalize" set the y extents of the view to 1/-1 #105857
  • Draw area outside of normalization range darker #106302

Dope Sheet

  • Add pinning options to the Dope Sheet. Pinning is respected in the Dope Sheet, but there is no way to change it since the button is missing. D17061
  • Make sure scrolling vertically doesn't go off the top end of the view, also happens on the timeline #104516

Time Line

  • key shape isn't represented in the timeline Devtalk (taken off the list because after a discussion in the A&R meeting we came to the conclusion that the timeline shouldn't be a dope sheet)

Drivers

  • add random(seed, time) function Example (Out f scope for this task, but can be picked up later)
The goal of this design task is to identify small tweaks that can improve the user experience for the following editors: **Graph Editor, Dope Sheet, Timeline**. The important word is **small**. We are not trying to solve underlying issues here, just polish what we have. Drivers and the NLA editor are excluded from this since they are a whole separate beast. **Previous Design Tasks for inspiration** * Improvements to Curve Modifiers (Animation Curves) - #86179 * Improve usability of Group Colors in animation editors - #81744 * More frame snapping options - #91973 * RCS about snapping https://blender.community/c/rightclickselect/P0bbbc/?sorting=hot # Graph Editor **Channels** - ~~Pin individual channels. At the moment only the object itself can be pinned. It is often useful to pin a single channel, e.g. Translate X.~~ (Not easy to change, the pinning flag is store on the FCurve. Would need a bigger refactor of the channel box) - ~~Add filter for "Only Pinned Channels"~~ (The filtering code is complicated and will be overhauled, not in scope for papercuts) - ~~Add filter for "Only Armatures in Pose Mode".~~ - [x] ~~Add right click option "Frame Channel". Similar to "Frame Selected" for keyframes #104523~~ - [x] ~~Add ALT+MMB hotkey when clicking on a channel to frame the keyframes in that channel. Similar to ALT+MMB in the viewport focuses to whatever is under the cursor. #104523~~ - ~~Allow editing of selected keyframes in the N panel instead of only the active~~ (Taken off the list because it is working with the ALT key. A proper selection-edit is discussed here #54862 . While the current state is not ideal, it is too much for a papercut) - [x] ~~Shift click to expand selection like in the Outliner. Atm it is the equivalent of Ctrl-Click [D17079]~~(https://archive.blender.org/developer/D17079) / #104565 - [x] ~~Enable Box Select just like in the Outliner~~ #104505 - [ ] When selecting an object, the channels should be uncollapsed - ~~Shift click the arrows to expand/collapse all children~~ deceptively simple, but the arrow is a button directly linked to a flag. There is no easy way to change that atm. **Modifiers** - [x] Allow multi editing for FCurve modifiers - [x] ~~Ability to name them [D17142](https://archive.blender.org/developer/D17142) / #104949~~ - [x] ~~Right click menu in Channels to add FCurve modifiers to selection [D17066](https://archive.blender.org/developer/D17066)~~ **Menu Options** - [x] ~~Move "Only selected curve keyframes" option to user preferences #104532~~ - [x] ~~Move "Use High Quality Display" option to user preferences #104532~~ **Key Manipulation** - [x] ~~copy/paste key values relative to current value of the channel #104512~~ - ~~option to lock key movement to only 1 axis. Like pressing G and it is already locked to the Y axis~~ (needs design task) - ~~Remove drawing of keyframes on locked curves~~ #104561 - ~~Option to change curve display for certain channel types, e.g. make rotation channels dashed~~ (needs a design task first [#104867](https://projects.blender.org/blender/blender/issues/104867) ) - ~~Keyframe handles stay selected when key is deselected~~ (needs design task) - ~~Indicate locked axis when manipulating keys, Like in the 3D viewport where you can see a blue line when you do G+Z~~ (needs design task) - [x] ~~Insert keyframe only on the active curve~~ [#106307](https://projects.blender.org/blender/blender/pulls/106307) **Misc** - [x] ~~Add GUI to quickly access slider operators like "Blend to Neighbor" and "Breakdown" #104530~~ - ~~Playhead snapping options. E.g. snap to closest keyframe while scrubbing to make sure you are on a key~~ (Will get its own design task) - ~~Only Graph Editor and Driver editor have a right margin: [D17102](https://archive.blender.org/developer/D17102)~~ (Not actually an issue since the scrollbar is in different places) - [x] ~~when hitting "normalize" set the y extents of the view to 1/-1~~ [#105857](https://projects.blender.org/blender/blender/pulls/105857) - [x] ~~Draw area outside of normalization range darker~~ [#106302](https://projects.blender.org/blender/blender/pulls/106302) # Dope Sheet - [x] ~~Add pinning options to the Dope Sheet. Pinning is respected in the Dope Sheet, but there is no way to change it since the button is missing. [D17061](https://archive.blender.org/developer/D17061)~~ - [x] ~~Make sure scrolling vertically doesn't go off the top end of the view, also happens on the timeline #104516~~ # Time Line - ~~key shape isn't represented in the timeline~~ [Devtalk ](https://devtalk.blender.org/t/animation-editors-paper-cuts/27263/28?u=christophlendenfeld) (taken off the list because after a discussion in the A&R meeting we came to the conclusion that the timeline shouldn't be a dope sheet) ~~Drivers~~ - ~~add random(seed, time) function [Example](https://developer.blender.org/rBf8cc01595d1181b9a8adcb6aa930d4cbfebdc8bf) (Out f scope for this task, but can be picked up later)~~
Author
Member

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

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

Added subscribers: @ChrisLend, @LucianoMunoz

Added subscribers: @ChrisLend, @LucianoMunoz

Added subscriber: @AndyCuccaro

Added subscriber: @AndyCuccaro

" Add filter for "Only Armature in Pose Mode". "
I hope this is "Only Armatures... " because I think it should filter to however many armatures are set to pose mode at the time allowing you to filter down to multiple rigs or characters

" Add filter for "Only Armature in Pose Mode". " I hope this is "Only Armatures... " because I think it should filter to however many armatures are set to pose mode at the time allowing you to filter down to multiple rigs or characters

I think we should add:

"frame the range"

Currently we can only frame either the entire area where you have keys or just the selection, but not the "range" set for the shot nor the "preview range"
and framing the range you've set for working is more often than not what you want since you normally would work on shots that are a couple to a few hundred frames.
And if you want to work on a part of a shot you'd normally set the preview range.

So having a way to quickly zoom to the range is a timesaver, and this applies to all animation editors including the Timeline, DopeSheet, Graph Editor, NLA, VSE.

I think we should add: "frame the range" Currently we can only frame either the entire area where you have keys or just the selection, but not the "range" set for the shot nor the "preview range" and framing the range you've set for working is more often than not what you want since you normally would work on shots that are a couple to a few hundred frames. And if you want to work on a part of a shot you'd normally set the preview range. So having a way to quickly zoom to the range is a timesaver, and this applies to all animation editors including the Timeline, DopeSheet, Graph Editor, NLA, VSE.
Author
Member

In #103855#1473758, @LucianoMunoz wrote:
" Add filter for "Only Armature in Pose Mode". "
I hope this is "Only Armatures... " because I think it should filter to however many armatures are set to pose mode at the time allowing you to filter down to multiple rigs or characters

Yes, of course it can be more than 1 armature.

Regarding "frame the range"
it is kind of possible using the Numpad . key or View->Frame Selected, all while having nothing selected.
but I assume you are talking about that option without losing your selection

> In #103855#1473758, @LucianoMunoz wrote: > " Add filter for "Only Armature in Pose Mode". " > I hope this is "Only Armatures... " because I think it should filter to however many armatures are set to pose mode at the time allowing you to filter down to multiple rigs or characters Yes, of course it can be more than 1 armature. Regarding "frame the range" it is kind of possible using the Numpad . key or View->Frame Selected, all while having nothing selected. but I assume you are talking about that option without losing your selection

Yeah without losing the selection,

That function works like that because when you have nothing selected the only place to refer back to is the frame range, but thats pretty useless because when you have no keys there aren't many reasons to move the timeline zoom around.

Also that doesnt apply to the preview range, only to the scene range.

Yeah without losing the selection, That function works like that because when you have nothing selected the only place to refer back to is the frame range, but thats pretty useless because when you have no keys there aren't many reasons to move the timeline zoom around. Also that doesnt apply to the preview range, only to the scene range.

Added subscriber: @lesballs_2.0

Added subscriber: @lesballs_2.0
Member

Added subscriber: @PratikPB2123

Added subscriber: @PratikPB2123

Added subscriber: @zNight

Added subscriber: @zNight
Member

Added subscriber: @BClark

Added subscriber: @BClark

Added subscriber: @Slowwkidd

Added subscriber: @Slowwkidd
Member

Menu Options

Hi, do you have any keys in mind for both properties.

> Menu Options Hi, do you have any keys in mind for both properties.
Member

Shift click to expand selection like in the Outliner. Atm it is the equivalent of Ctrl-Click

Hi, implemented range selection here: D17079: Allow select range in animation editor
Patch is still in WIP (works only with fcurves so far)
Will include other channel types too. Which other channel types are expected to do range selection?

> Shift click to expand selection like in the Outliner. Atm it is the equivalent of Ctrl-Click Hi, implemented range selection here: [D17079: Allow select range in animation editor](https://archive.blender.org/developer/D17079) Patch is still in WIP (works only with fcurves so far) Will include other channel types too. Which other channel types are expected to do range selection?
Author
Member

In #103855#1477787, @PratikPB2123 wrote:

Menu Options

Hi, do you have any keys in mind for both properties.

@PratikPB2123 what do you mean by that?

But really cool that you started work on the range selection. Ideally it will work with anything, but I know that's a bit more difficult. I had a look at that as well, and the selection state is stored on the data which is annoying.

> In #103855#1477787, @PratikPB2123 wrote: >> Menu Options > Hi, do you have any keys in mind for both properties. @PratikPB2123 what do you mean by that? But really cool that you started work on the range selection. Ideally it will work with anything, but I know that's a bit more difficult. I had a look at that as well, and the selection state is stored on the data which is annoying.
Member

@ChrisLend hi, I was asking about default shortcut keys for "Only selected curve keyframes" and "Use High Quality Display" options

@ChrisLend hi, I was asking about default shortcut keys for "Only selected curve keyframes" and "Use High Quality Display" options

I dont think those would need hotkeys, those properties should be moved to blender preferences.

I dont think those would need hotkeys, those properties should be moved to blender preferences.
Member

Only Graph Editor and Driver editor have a right margin: D17102

@ChrisLend , maybe we can edit this and change it to "add scroll bar" or create a separate point for scrollbar?

> Only Graph Editor and Driver editor have a right margin: [D17102](https://archive.blender.org/developer/D17102) @ChrisLend , maybe we can edit this and change it to "add scroll bar" or create a separate point for scrollbar?
Author
Member

In #103855#1479645, @PratikPB2123 wrote:

Only Graph Editor and Driver editor have a right margin: D17102

@ChrisLend , maybe we can edit this and change it to "add scroll bar" or create a separate point for scrollbar?

@PratikPB2123 first of all thanks for looking into this. And yes adding the scrollbars in the same patch would make a lot of sense. I noticed that as well when I was looking into it, but unfortunately I couldn't find where the scrollbars are added

> In #103855#1479645, @PratikPB2123 wrote: >> Only Graph Editor and Driver editor have a right margin: [D17102](https://archive.blender.org/developer/D17102) > @ChrisLend , maybe we can edit this and change it to "add scroll bar" or create a separate point for scrollbar? @PratikPB2123 first of all thanks for looking into this. And yes adding the scrollbars in the same patch would make a lot of sense. I noticed that as well when I was looking into it, but unfortunately I couldn't find where the scrollbars are added

Added subscriber: @JerBot

Added subscriber: @JerBot
Christoph Lendenfeld was assigned by Sybren A. Stüvel 2023-01-27 10:37:03 +01:00
Member

Modifiers: Ability to name them

D17142: Allow renaming F-curve modifier

> Modifiers: Ability to name them [D17142: Allow renaming F-curve modifier](https://archive.blender.org/developer/D17142)

Added subscriber: @AdamEarle

Added subscriber: @AdamEarle

Keyframe-type colors are not reflected in the menu when updated. I know that this is only minor, but it would be super great if the menu did reflect the changes in the menu. We use red as selected keys because it just makes the day better when you are animating with a clear read on the keys the user has selected.

blender_jzeHwnTSDP.mp4

Keyframe-type colors are not reflected in the menu when updated. I know that this is only minor, but it would be super great if the menu did reflect the changes in the menu. We use red as selected keys because it just makes the day better when you are animating with a clear read on the keys the user has selected. [blender_jzeHwnTSDP.mp4](https://archive.blender.org/developer/F14231872/blender_jzeHwnTSDP.mp4)

Added subscriber: @ndh

Added subscriber: @ndh
Philipp Oeser removed the
Interest
Animation & Rigging
label 2023-02-09 14:34:41 +01:00
Sybren A. Stüvel added this to the Compositing project 2023-02-09 16:55:27 +01:00
Sybren A. Stüvel modified the project from Compositing to Animation & Rigging 2023-02-09 16:55:30 +01:00

@ChrisLend hi,a question please is there a way to move a channel to an existing groupe ? or it will be added ? and can be by selecting and dragging it to a groupe if possible ? thanks

@ChrisLend hi,a question please is there a way to move a channel to an existing groupe ? or it will be added ? and can be by selecting and dragging it to a groupe if possible ? thanks
Author
Member

@hamza-el-barmaki not possible right now but it's something that's being looked into. It won't be soon though

@hamza-el-barmaki not possible right now but it's something that's being looked into. It won't be soon though

I wonder since the timeline doesnt have an option to Only show the selected object's keys like the dopesheet does, if it maybe should always show all keys in the scene (or at least default to that), it's always weird to me to have to switch from timeline to dope sheet just to change that option when I need to do global timing changes in a scene.

I wonder since the timeline doesnt have an option to Only show the selected object's keys like the dopesheet does, if it maybe should always show all keys in the scene (or at least default to that), it's always weird to me to have to switch from timeline to dope sheet just to change that option when I need to do global timing changes in a scene.
Blender Bot added
Status
Archived
and removed
Status
Confirmed
labels 2023-03-30 19:31:06 +02:00
Blender Bot added
Status
Confirmed
and removed
Status
Archived
labels 2023-03-30 19:31:35 +02:00

Sorry, that comment and close button is dangerous ! xD

Sorry, that comment and close button is dangerous ! xD
Author
Member

haha yeah that button is dangerous
maybe we should think about a complete redesign of the timeline then, how to make it useful and unique but not the dope sheet

haha yeah that button is dangerous maybe we should think about a complete redesign of the timeline then, how to make it useful and unique but not the dope sheet
Author
Member

thanks for all the ideas, I consider this task finished now.
Not all things I looked at could be implemented easily, that doesn't mean they are off the table, just that they are more work than could be considered a papercut.

e.g. multi editing fcurve modifiers will come at some point

thanks for all the ideas, I consider this task finished now. Not all things I looked at could be implemented easily, that doesn't mean they are off the table, just that they are more work than could be considered a papercut. e.g. multi editing fcurve modifiers will come at some point
Blender Bot added
Status
Archived
and removed
Status
Confirmed
labels 2023-04-13 15:35:00 +02:00
Sybren A. Stüvel removed this from the Animation & Rigging project 2023-05-04 09:18:02 +02:00
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
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
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
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
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
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
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
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 Info 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
12 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#103855
No description provided.