Graph Editor: Link Visible and Selected states #68962

Open
opened 2019-08-21 11:37:11 +02:00 by Sybren A. Stüvel · 21 comments

Working with many curves in the GE currently requires animators to often toggle the visibility of curves and then select the newly visible curves.
Linking 'visible' and 'selected' would make it faster to use the GE. However, having those two always linked would remove the feature of having certain curves visible "in the background", i.e. visible but unselected. We do not want to lose this feature.

Proposal: Add a user preference to link 'visible' and 'selected'. When this mode is enabled:

  • The visibility icon can be removed from the graph editor UI.
  • Selection state determines visibility.

We think a user preference is best for this, as we suspect it's a personal preference and not so much something you want to manage per GE editor.

Working with many curves in the GE currently requires animators to often toggle the visibility of curves and then select the newly visible curves. Linking 'visible' and 'selected' would make it faster to use the GE. However, having those two always linked would remove the feature of having certain curves visible "in the background", i.e. visible but unselected. We do not want to lose this feature. **Proposal**: Add a user preference to link 'visible' and 'selected'. When this mode is enabled: - The visibility icon can be removed from the graph editor UI. - Selection state determines visibility. We think a user preference is best for this, as we suspect it's a personal preference and not so much something you want to manage per GE editor.
Author
Member

Added subscribers: @dr.sybren, @Hjalti, @PabloFournier

Added subscribers: @dr.sybren, @Hjalti, @PabloFournier
Author
Member

Added subscriber: @NachoConesa

Added subscriber: @NachoConesa
Pablo Vazquez was assigned by Sybren A. Stüvel 2019-08-21 16:42:16 +02:00
Author
Member

Added subscriber: @WilliamReynish

Added subscriber: @WilliamReynish
Sybren A. Stüvel changed title from Graph editor: link Visible and Selected states to Graph Editor: Link Visible and Selected states 2019-08-22 11:19:47 +02:00

Added subscriber: @LucianoMunoz

Added subscriber: @LucianoMunoz

we have something remotely similar :
Capture-Blender-2019-08-22 21_24_00.png

the biggest problem with this, is that, even if you only have one channel selected, it still considers the rest of the "disabled" channels for the zoom so it becomes really awkard when you press "home" and because it doesnt select the keys so you need 4 extra steps every time you want to focus on a specific curve.
Capture-Blender-2019-08-22 21_23_55.png

we have something remotely similar : ![Capture-Blender-2019-08-22 21_24_00.png](https://archive.blender.org/developer/F7686159/Capture-Blender-2019-08-22_21_24_00.png) the biggest problem with this, is that, even if you only have one channel selected, it still considers the rest of the "disabled" channels for the zoom so it becomes really awkard when you press "home" and because it doesnt select the keys so you need 4 extra steps every time you want to focus on a specific curve. ![Capture-Blender-2019-08-22 21_23_55.png](https://archive.blender.org/developer/F7686168/Capture-Blender-2019-08-22_21_23_55.png)
Member

+1 !

What @LucianoMunoz mentions (Home taking into account disabled channels) seems like a bug and should be discussed as a separate task.

+1 ! What @LucianoMunoz mentions (Home taking into account disabled channels) seems like a bug and should be discussed as a separate task.

Added subscriber: @Oskar3d

Added subscriber: @Oskar3d
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

In #68962#760169, @LucianoMunoz wrote:
we have something remotely similar :
Capture-Blender-2019-08-22 21_24_00.png

the biggest problem with this, is that, even if you only have one channel selected, it still considers the rest of the "disabled" channels for the zoom so it becomes really awkard when you press "home" and because it doesnt select the keys so you need 4 extra steps every time you want to focus on a specific curve.
Capture-Blender-2019-08-22 21_23_55.png

That is actually reported as a bug in #67873 (View Selected in Graph Editor (Only Selected Curve Keyframes) takes hidden keys into account when calculating zoom), I was planning to have a look today (after it has been sitting around for very long... shame on me...) Would this investigation be obsoleted then?

> In #68962#760169, @LucianoMunoz wrote: > we have something remotely similar : > ![Capture-Blender-2019-08-22 21_24_00.png](https://archive.blender.org/developer/F7686159/Capture-Blender-2019-08-22_21_24_00.png) > > the biggest problem with this, is that, even if you only have one channel selected, it still considers the rest of the "disabled" channels for the zoom so it becomes really awkard when you press "home" and because it doesnt select the keys so you need 4 extra steps every time you want to focus on a specific curve. > ![Capture-Blender-2019-08-22 21_23_55.png](https://archive.blender.org/developer/F7686168/Capture-Blender-2019-08-22_21_23_55.png) That is actually reported as a bug in #67873 (View Selected in Graph Editor (Only Selected Curve Keyframes) takes hidden keys into account when calculating zoom), I was planning to have a look today (after it has been sitting around for very long... shame on me...) Would this investigation be obsoleted then?
Member
Posted patch for above annoyance bug: [D6237: Graph Editor: Fix selection and View > Selected with 'View Only Selected Curve Keyframes' option enabled](https://archive.blender.org/developer/D6237), maybe it is helpful already?
Author
Member

The 'Only Selected Curve Keyframes' feature covers most of this task, indeed. The major visible difference is that it still keeps the curve itself visible, and only hides the keyframes. I have no opinion on that, I'll leave that to @LucianoMunoz, @Hjalti, @NachoConesa
and other interested animators to discuss.

What's left is this:

We think a user preference is best for this, as we suspect it's a personal preference and not so much something you want to manage per GE editor.

Currently the 'Only Selected Curve Keyframes' setting is per graph editor. How important is it to have this setting as a user preference?

The 'Only Selected Curve Keyframes' feature covers most of this task, indeed. The major visible difference is that it still keeps the curve itself visible, and only hides the keyframes. I have no opinion on that, I'll leave that to @LucianoMunoz, @Hjalti, @NachoConesa and other interested animators to discuss. What's left is this: > We think a user preference is best for this, as we suspect it's a personal preference and not so much something you want to manage per GE editor. Currently the 'Only Selected Curve Keyframes' setting is per graph editor. How important is it to have this setting as a user preference?
Member

Diving into this more, I also have the following question regarding selection:

  • I have made a first tweak to selecting when Only Selected Curve Keyframes is ON: [box/circle/lasso] select will not select non-visible keyframes anymore, see D6237: Graph Editor: Fix selection and View > Selected with 'View Only Selected Curve Keyframes' option enabled
  • Is above really desired? (I would think so -- this avoids confusion, no?)
  • If we go that route, then we should probably do this for all selection operators when Only Selected Curve Keyframes is ON?: [basically all under the Select menu]
  • At this point, I assume it would be wiser to decouple the actual "fix" for View Selected from the selection behavior in {D6237}?
Diving into this more, I also have the following question regarding selection: - I have made a first tweak to **selecting** when `Only Selected Curve Keyframes` is ON: [box/circle/lasso] select will not select non-visible keyframes anymore, see [D6237: Graph Editor: Fix selection and View > Selected with 'View Only Selected Curve Keyframes' option enabled](https://archive.blender.org/developer/D6237) - Is above really desired? (I would think so -- this avoids confusion, no?) - If we go that route, then we should probably do this for **all** selection operators when `Only Selected Curve Keyframes` is ON?: [basically all under the `Select` menu] - At this point, I assume it would be wiser to decouple the actual "fix" for `View Selected` from the selection behavior in {[D6237](https://archive.blender.org/developer/D6237)}?
Member

Added subscriber: @JulianEisel

Added subscriber: @JulianEisel
Member

Subscibing @JulianEisel here as well (since he is working on D6235: UI: Changes to graph editor selection and transform -- to avoid possible overlap/conflicts...)

Subscibing @JulianEisel here as well (since he is working on [D6235: UI: Changes to graph editor selection and transform](https://archive.blender.org/developer/D6235) -- to avoid possible overlap/conflicts...)
Author
Member

This comment was removed by @dr.sybren

*This comment was removed by @dr.sybren*
Pablo Vazquez was unassigned by Sybren A. Stüvel 2020-05-11 13:39:17 +02:00
Author
Member

Added subscriber: @pablovazquez

Added subscriber: @pablovazquez

Added subscriber: @Fynn-Ribbeck

Added subscriber: @Fynn-Ribbeck
Philipp Oeser removed the
Interest
Animation & Rigging
label 2023-02-09 14:36:39 +01:00

Nowadays, we kind of have this feature using these two settings:

image

But, I guess that having the curves' opacity at 0.001 means they are still drawn and using resources. If so, could this be fixed?

Also, to make this truly powerful, it would help a lot of click if we could select a parent channel (like the object or the action channel) to be able to see all the children channels' curves. As requested here: Display of the curve in the graph editor ⁠— Right-Click Select
And, when we select a controller in the viewport/outliner, have its graph channels (or object channel) automatically selected so to not start with an empty graph.

Nowadays, we kind of have this feature using these two settings: ![image](/attachments/0f0d5431-ec8a-4564-bc78-f5e5100e6979) But, I guess that having the curves' opacity at 0.001 means they are still drawn and using resources. If so, could this be fixed? Also, to make this truly powerful, it would help a lot of click if we could select a parent channel (like the object or the action channel) to be able to see all the children channels' curves. As requested here: [Display of the curve in the graph editor ⁠— Right-Click Select](https://blender.community/c/rightclickselect/rhdbbc/?sorting=hot&page=1&text=curve+graph) And, when we select a controller in the viewport/outliner, have its graph channels (or object channel) automatically selected so to not start with an empty graph.

yep I explained that in this video 2 years ago: https://www.youtube.com/watch?v=6IwhigPZuqk

other things that would be necessary would be the channels to be uncollapsed when you select an object/bone

yep I explained that in this video 2 years ago: https://www.youtube.com/watch?v=6IwhigPZuqk other things that would be necessary would be the channels to be uncollapsed when you select an object/bone
Author
Member

But, I guess that having the curves' opacity at 0.001 means they are still drawn and using resources. If so, could this be fixed?

Well yes, because 0.001 opacity is still "technically visible". It's not zero, I mean. It doesn't go down to zero to make clear that if you want to completely hide unselected curves, this is not the option to do so.

Having said that, I think we can indeed simplify some things here. For example by visually grouping the options together. Also having 0.001 as minimum value is a bit weird, as it's less than 1/256th, so with Blender's internal 8-bit color system it's effectively hiding everything anyway. A better minimum would be 0.01.

We just unify the two settings, and have 0.00 as minimum and anything below 0.01 will act as "Only Show Selected" is set. I'm sure someone will curse at that though, as it's taking away the option to toggle between "shown with a specific opacity" & "hidden" with just a single click.

Also, to make this truly powerful, it would help a lot of click if we could select a parent channel (like the object or the action channel) to be able to see all the children channels' curves.

That's a nice idea. It would require quite some lookups of the FCurves' data paths to understand these relationships, so there is a performance implication that should be investigated. For this a RCS post would also be useful, so that the people who want this feature can collaborate on working out the details (like what happens when you hide a parent bone, which will deselect it; what happens to the children then?)

As requested here: Display of the curve in the graph editor ⁠— Right-Click Select

That RCS needs to be re-titled, as "Display of the curve in the graph editor" doesn't mean much. I mean, Blender already shows the curve in the graph editor. The images in the post are also broken. This is not something to give to a small team of developers who already have enough work to keep them busy for the next decade.

And, when we select a controller in the viewport/outliner, have its graph channels (or object channel) automatically selected so to not start with an empty graph.

This is already a thing, but there are issues. Check https://wiki.blender.org/wiki/Modules/Animation-Rigging/Weak_Areas#Selection_synchronisation_between_pose_bones_and_animation_channels

> But, I guess that having the curves' opacity at 0.001 means they are still drawn and using resources. If so, could this be fixed? Well yes, because 0.001 opacity is still "technically visible". It's not zero, I mean. It doesn't go down to zero to make clear that if you want to completely hide unselected curves, this is not the option to do so. Having said that, I think we can indeed simplify some things here. For example by visually grouping the options together. Also having 0.001 as minimum value is a bit weird, as it's less than 1/256th, so with Blender's internal 8-bit color system it's effectively hiding everything anyway. A better minimum would be 0.01. We just unify the two settings, and have 0.00 as minimum and anything below 0.01 will act as "Only Show Selected" is set. I'm sure someone will curse at that though, as it's taking away the option to toggle between "shown with a specific opacity" & "hidden" with just a single click. > Also, to make this truly powerful, it would help a lot of click if we could select a parent channel (like the object or the action channel) to be able to see all the children channels' curves. That's a nice idea. It would require quite some lookups of the FCurves' data paths to understand these relationships, so there is a performance implication that should be investigated. For this a RCS post would also be useful, so that the people who want this feature can collaborate on working out the details (like what happens when you hide a parent bone, which will deselect it; what happens to the children then?) > As requested here: [Display of the curve in the graph editor ⁠— Right-Click Select](https://blender.community/c/rightclickselect/rhdbbc/?sorting=hot&page=1&text=curve+graph) That RCS needs to be re-titled, as "Display of the curve in the graph editor" doesn't mean much. I mean, Blender already shows the curve in the graph editor. The images in the post are also broken. This is not something to give to a small team of developers who already have enough work to keep them busy for the next decade. > And, when we select a controller in the viewport/outliner, have its graph channels (or object channel) automatically selected so to not start with an empty graph. This is already a thing, but there are issues. Check https://wiki.blender.org/wiki/Modules/Animation-Rigging/Weak_Areas#Selection_synchronisation_between_pose_bones_and_animation_channels

We just unify the two settings, and have 0.00 as minimum and anything below 0.01 will act as "Only Show Selected" is set. I'm sure someone will curse at that though, as it's taking away the option to toggle between "shown with a specific opacity" & "hidden" with just a single click.

Sounds neat to me!

That RCS needs to be re-titled (...)

Sorry, I linked the wrong proposal. It should have been this one:
Show & isolate only the curves of the selected Bone in the graph editor by it's top node. ⁠— Right-Click Select

I think it illustrates what people mean by selecting a channel makes <it and its children>'s curve display, basically syncing channels' selection to their curves' visibility, with parent affecting children.

image

Though, for this to work optimally, that would also mean an option to disable selecting an object from selecting its channel in the graph. Right now, If I select Cube in the above example, it selects the Cube object and deselects the Camera, meaning I lose the Camera's channels from the channels list with the Graph's "Only Show Selected" filter. Which works, but could be used differently:

image

If we think of the graph's filters as "what channels to show in the channels list" and the channels' selection as "what curves to show in the graph", isolating channels from the object selection gives flexibility.

If it helps, I can make a new proposal on RCS to compile the whole thing ?
Edit: made one: Graph Editor - Synchronize Channels Selection to Curves Display ⁠— Right-Click Select

> We just unify the two settings, and have 0.00 as minimum and anything below 0.01 will act as "Only Show Selected" is set. I'm sure someone will curse at that though, as it's taking away the option to toggle between "shown with a specific opacity" & "hidden" with just a single click. Sounds neat to me! > That RCS needs to be re-titled (...) Sorry, I linked the wrong proposal. It should have been this one: [Show & isolate only the curves of the selected Bone in the graph editor by it's top node. ⁠— Right-Click Select](https://blender.community/c/rightclickselect/Y3gbbc/?sorting=hot#) I think it illustrates what people mean by selecting a channel makes <_it and its children_>'s curve display, basically syncing channels' selection to their curves' visibility, with parent affecting children. ![image](/attachments/285f166e-2e91-4593-803d-39ff11c9a6c4) Though, for this to work optimally, that would also mean an option to disable selecting an object from selecting its channel in the graph. Right now, If I select Cube in the above example, it selects the Cube object and deselects the Camera, meaning I lose the Camera's channels from the channels list with the Graph's "Only Show Selected" filter. Which works, but could be used differently: ![image](/attachments/d043aa0a-02bb-40b8-a0c4-85337ea10e95) If we think of the graph's filters as "what channels to show in the channels list" and the channels' selection as "what curves to show in the graph", isolating channels from the object selection gives flexibility. If it helps, I can make a new proposal on RCS to compile the whole thing ? Edit: made one: [Graph Editor - Synchronize Channels Selection to Curves Display ⁠— Right-Click Select](https://blender.community/c/rightclickselect/wk0m/?sorting=hot)
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
No Assignees
7 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#68962
No description provided.