Design: Graph Editor Curve Display #104867

Open
opened 2023-02-17 12:16:21 +01:00 by Christoph Lendenfeld · 13 comments

There are a few issues with the display of curves in the Graph Editor mentioned in the Paper Cuts devtalk thread. However while technically simple to change the drawing, it needs to stay consistent and clear, which is why this Design task exists.

Issues

Current State

Normal
image

Disabled
image

Locked
image

Proposed Solution

  • Locked curves have crosses instead of keyframes to indicate that they can't be selected. #106052
  • Locked curves are always drawn as if they were unselected since you can do nothing with them even though they are selected.#106052
  • Increase the dash length and spacing to reduce visual noise #106052
  • Add preferences to modify the colors of FCurves based on their type. Will default to the current standard to not confuse existing users.
    image
There are a few issues with the display of curves in the Graph Editor mentioned in the Paper Cuts devtalk thread. However while technically simple to change the drawing, it needs to stay consistent and clear, which is why this Design task exists. **Issues** * Locked Curve keyframes look like they are active * Curves are drawn in the same thickness even outside the range they can be edited in https://blender.community/c/rightclickselect/rhdbbc/?sorting=hot# * Location/Rotation/Scale curves are not distuingishable at first glance https://devtalk.blender.org/t/animation-editors-paper-cuts/27263/27?u=christophlendenfeld ## Current State Normal ![image](/attachments/d60a7c4f-eb0b-4562-85d6-9460bf9aaeaa) Disabled ![image](/attachments/b65a7d9e-7fe0-4f76-a850-2f1b712613c2) Locked ![image](/attachments/105bc202-b1b8-490e-a35f-0cdc8e23e383) ## Proposed Solution * Locked curves have crosses instead of keyframes to indicate that they can't be selected. [#106052](https://projects.blender.org/blender/blender/pulls/106052) * Locked curves are always drawn as if they were unselected since you can do nothing with them even though they are selected.[#106052](https://projects.blender.org/blender/blender/pulls/106052) * Increase the dash length and spacing to reduce visual noise [#106052](https://projects.blender.org/blender/blender/pulls/106052) * Add preferences to modify the colors of FCurves based on their type. Will default to the current standard to not confuse existing users. ![image](https://projects.blender.org/attachments/547cd123-d122-4ca1-adcc-bbcd7be300f2)
Christoph Lendenfeld added the
Type
Design
Module
Animation & Rigging
labels 2023-02-17 12:16:21 +01:00
Christoph Lendenfeld changed title from Animation: Graph Editor Curve Display to Design: Graph Editor Curve Display 2023-02-17 12:18:26 +01:00
  • As previously said by others, locked curves should keep vertices visible, but not highlighted as selected, so black as unselected.
    2222.png
    I wouldn't change the curve locked visualization, let's keep the dashed line for it, instead of giving it another meaning (curve type).

  • For curve types (Loc, rot, scale) I would definetely go for user themable colors.

col-1.png
col-2.png

* As previously said by others, locked curves should keep vertices visible, but not highlighted as selected, so black as unselected. ![2222.png](/attachments/f86eddb6-5db1-4600-873f-514c5811e016) I wouldn't change the curve locked visualization, let's keep the dashed line for it, instead of giving it another meaning (curve type). * For curve types (Loc, rot, scale) I would definetely go for user themable colors. ![col-1.png](attachments/dcaea6cc-72c4-4783-83d8-31d62fef34c2) ![col-2.png](/attachments/908cd5cc-3710-4062-8cd4-47ae161acf2b)

Hey, Nice to see a design task for this:

What do you think about the following proposal. Perhaps the type of dashes can be used to create visual associations with what the curve is responsible for:

  • Location: Just a normal line you can move on. Like a road
  • Rotation: Dots on a line. The dots represent the pivot you rotate objects around
  • Scale: Long dashes. Represents an object scaaaaaaaled up on a single axis.
  • Custom: Dots plus Dashes. This curve can represent multiple different kinds of things therefore it is represented by multiple different types of lines:

The dots would have to be visually different enough from keyframes of course.

Blender_GraphEditor4.png

Hey, Nice to see a design task for this: What do you think about the following proposal. Perhaps the type of dashes can be used to create visual associations with what the curve is responsible for: - Location: Just a normal line you can move on. Like a road - Rotation: Dots on a line. The dots represent the pivot you rotate objects around - Scale: Long dashes. Represents an object scaaaaaaaled up on a single axis. - Custom: Dots plus Dashes. This curve can represent multiple different kinds of things therefore it is represented by multiple different types of lines: The dots would have to be visually different enough from keyframes of course. ![Blender_GraphEditor4.png](/attachments/ecd35ef5-4b72-4ded-aefa-3839b136534b)

Perhaps the type of dashes can be used to create visual associations with what the curve is responsible for

I'm afraid it would be too much of a visual clutter, and instead of helping the user identifying them, it would be too disorienting. Having such a strong visual difference between curves, to me doesn't convey the difference between location or rotation etc., but more that an effect (a modifier, a lock) was applied to them.
Also,in your image we only see 4 curves, but try to multiply them for a scenario with multiple characters/objects animated at the same time, with various parameters animated, and maybe also curve modifiers.

The dots would have to be visually different enough from keyframes

Another reason why I'd avoid this solution.

> Perhaps the type of dashes can be used to create visual associations with what the curve is responsible for I'm afraid it would be too much of a visual clutter, and instead of helping the user identifying them, it would be too disorienting. Having such a strong visual difference between curves, to me doesn't convey the difference between location or rotation etc., but more that an effect (a modifier, a lock) was applied to them. Also,in your image we only see 4 curves, but try to multiply them for a scenario with multiple characters/objects animated at the same time, with various parameters animated, and maybe also curve modifiers. > The dots would have to be visually different enough from keyframes Another reason why I'd avoid this solution.
Author
Member

@Slowwkidd I've updated my proposal

  • Locked curves have crosses instead of keyframes to indicate that they can't be selected.
  • Locked curves are always drawn as if they were unselected since you can do nothing with them even though they are selected.
  • Increase the dash length and spacing to reduce visual noise
  • Add preferences to modify the colors of FCurves based on their type. Will default to the current standard to not confuse existing users.

@Lumpengnom That looks a bit too noisy for me. I think allowing users to control the FCurve color based on channel type is better.

Random idea but maybe the solution to your problem is a hotkey operator that hides FCurves based on their type. E.g. you'd press a button to only see Translation curves

@Slowwkidd I've updated my proposal * Locked curves have crosses instead of keyframes to indicate that they can't be selected. * Locked curves are always drawn as if they were unselected since you can do nothing with them even though they are selected. * Increase the dash length and spacing to reduce visual noise * Add preferences to modify the colors of FCurves based on their type. Will default to the current standard to not confuse existing users. @Lumpengnom That looks a bit too noisy for me. I think allowing users to control the FCurve color based on channel type is better. Random idea but maybe the solution to your problem is a hotkey operator that hides FCurves based on their type. E.g. you'd press a button to only see Translation curves

A hotkey that hides or isolates default sets sounds pretty useful.

Regarding the dashed lines being noisy:
Yes, you are right. I tried to reduce the noise by scaling down the size of the dots and dashes. It is of course still more noisy than flat lines. But do you think that it is also more noisy than a multiple curves with different colors? I am not so sure.

Blender_GraphEditor6.png

A hotkey that hides or isolates default sets sounds pretty useful. Regarding the dashed lines being noisy: Yes, you are right. I tried to reduce the noise by scaling down the size of the dots and dashes. It is of course still more noisy than flat lines. But do you think that it is also more noisy than a multiple curves with different colors? I am not so sure. ![Blender_GraphEditor6.png](/attachments/d7c825bc-3589-41e3-8767-da300dbb4aac)

Here is a test with a typical Graph Editor for an object with animated Loc/Rot/Scale. Personally I think that the dashed and dotted lines are better than a multi color setup because you don't have to remember which color is responsible for which axis.
Nevertheless, I think a multi color setup is fine, too.
Here a comparison:

Here is a test with a typical Graph Editor for an object with animated Loc/Rot/Scale. Personally I think that the dashed and dotted lines are better than a multi color setup because you don't have to remember which color is responsible for which axis. Nevertheless, I think a multi color setup is fine, too. Here a comparison: ![](https://projects.blender.org/attachments/2462e1a0-d493-4116-93c1-a95a09f01041) ![](https://projects.blender.org/attachments/1beccf21-d0fa-41e9-b110-39466b467531)
Author
Member

@Lumpengnom I really like your updated design. In fact I think you are right, it's even clearer to read than too many colors.

For the scale lines, instead of dots I'd keep it dashed, but increase the spacing of the dashes. On first glance that's what the dots look like anyway.

@Lumpengnom I really like your updated design. In fact I think you are right, it's even clearer to read than too many colors. For the scale lines, instead of dots I'd keep it dashed, but increase the spacing of the dashes. On first glance that's what the dots look like anyway.

Ok, cool.
The dots are meant to be the rotation. The dots are supposed to give a visual cue because you rotate around a pivot.
The dashed lines are for scale. They are supposed to give a visual cue because if you non-uniformly scale something it gets stretched just like a dashed line.

Not sure if theses types of visual cues are necessary as I am not a UI-designer.

Here is an updated Design with dashed instead of dots and larger gaps:

Blender_GraphEditor9.png

Ok, cool. The dots are meant to be the rotation. The dots are supposed to give a visual cue because you rotate around a pivot. The dashed lines are for scale. They are supposed to give a visual cue because if you non-uniformly scale something it gets stretched just like a dashed line. Not sure if theses types of visual cues are necessary as I am not a UI-designer. Here is an updated Design with dashed instead of dots and larger gaps: ![Blender_GraphEditor9.png](/attachments/e797a20c-48d4-47cd-85e8-08a6737c4443)

Even with the updated design, I still think that with all these different kind of visualization, it would take more effort for the user to learn which one is what, being less immediate than color. Also because with color, it's the user who chooses it, teaching himself how to differentiate the types with the colors that finds more suitable.
Again, this to me looks more like a particular effect or modifier was applied to curves.

Plus, now how you could tell the difference from locked curves?
It creates even more confusion because they all look like dashed lines, and users would have to squint their eyes to tell they are not locked, but a type of curve. It gives another meaning to dashed curves regardless of how differentated they are, bringing way more conflict to what is trying to solve.

Even with the updated design, I still think that with all these different kind of visualization, it would take more effort for the user to learn which one is what, being less immediate than color. Also because with color, it's the user who chooses it, teaching himself how to differentiate the types with the colors that finds more suitable. Again, this to me looks more like a particular effect or modifier was applied to curves. Plus, now how you could tell the difference from locked curves? It creates even more confusion because they all look like dashed lines, and users would have to squint their eyes to tell they are not locked, but a type of curve. It gives another meaning to dashed curves regardless of how differentated they are, bringing way more conflict to what is trying to solve.

Locked curves: Locked curves have no solid line as background whereas the other ones do.

Locked curves: Locked curves have no solid line as background whereas the other ones do.

True, they have a solid background, but in my opinion is still similar enough to potentially disorientate because it's almost like locked.

Also, how would they look if they were also locked?

  • The 2 appearances would be mixed together, creating a third type of look?
  • The locked appearance would ovverride and disable the appearance of the curve type?

In case of the second option, we wouldn't be able to tell the curve type if it's locked, which kinda defies the purpose of telling the curve types at a glance.

P.S.
I hope I'm not sounding too pushy or like I'm ruining your proposal, we clearly both want to improve the curves design, I'm just trying to consider all the options and make a point with what I think it's best.

True, they have a solid background, but in my opinion is still similar enough to potentially disorientate because *it's almost like locked*. Also, how would they look if they were *also* locked? * The 2 appearances would be mixed together, creating a third type of look? * The locked appearance would ovverride and disable the appearance of the curve type? In case of the second option, we wouldn't be able to tell the curve type if it's locked, which kinda defies the purpose of telling the curve types at a glance. P.S. I hope I'm not sounding too pushy or like I'm ruining your proposal, we clearly both want to improve the curves design, I'm just trying to consider all the options and make a point with what I think it's best.

Hey, Nice to see a design task for this:

What do you think about the following proposal. Perhaps the type of dashes can be used to create visual associations with what the curve is responsible for:

  • Location: Just a normal line you can move on. Like a road
  • Rotation: Dots on a line. The dots represent the pivot you rotate objects around
  • Scale: Long dashes. Represents an object scaaaaaaaled up on a single axis.
  • Custom: Dots plus Dashes. This curve can represent multiple different kinds of things therefore it is represented by multiple different types of lines:

The dots would have to be visually different enough from keyframes of course.

Blender_GraphEditor4.png

I think this is a bit confusing, the colors are much clearer and the option in preferences is the best way for this.

> Hey, Nice to see a design task for this: > > What do you think about the following proposal. Perhaps the type of dashes can be used to create visual associations with what the curve is responsible for: > > - Location: Just a normal line you can move on. Like a road > - Rotation: Dots on a line. The dots represent the pivot you rotate objects around > - Scale: Long dashes. Represents an object scaaaaaaaled up on a single axis. > - Custom: Dots plus Dashes. This curve can represent multiple different kinds of things therefore it is represented by multiple different types of lines: > > The dots would have to be visually different enough from keyframes of course. > > ![Blender_GraphEditor4.png](/attachments/ecd35ef5-4b72-4ded-aefa-3839b136534b) I think this is a bit confusing, the colors are much clearer and the option in preferences is the best way for this.
Author
Member

changes to locked curves have been implemented in this PR #106052

Moving the color options to the preferences will be a second patch

changes to locked curves have been implemented in this PR [#106052](https://projects.blender.org/blender/blender/pulls/106052) Moving the color options to the preferences will be a second patch
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
4 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#104867
No description provided.