X Tutup
Skip to content

Add solo/hide/lock/delete buttons to node groups in bezier track editor#110866

Merged
Repiteo merged 1 commit intogodotengine:masterfrom
mihe:anim-node-icons
Dec 2, 2025
Merged

Add solo/hide/lock/delete buttons to node groups in bezier track editor#110866
Repiteo merged 1 commit intogodotengine:masterfrom
mihe:anim-node-icons

Conversation

@mihe
Copy link
Contributor

@mihe mihe commented Sep 24, 2025

Resolves godotengine/godot-proposals#11340.

Co-authored with @Arnklit.

This adds four new buttons to the node groups found in the bezier animation track editor: solo, hide/show, lock/unlock and delete. This is basically the same as what's already found on each of the individual bezier tracks.

Here's a short clip showing what it looks like and how they behave.

BezierNodeGroupButtons.webm

Note that no per-node state has been introduced to accommodate for things like visibility or locking, so you're only ever toggling the state of the individual tracks themselves.

Unlike the proposal linked above, which mentioned that a solo button might not make sense for node groups, we felt that it did in fact make sense and could be useful, so we added that as well.


Also note that there are a couple of pre-existing issues surrounding all of this that this PR does not do anything to resolve:

  1. When deleting all tracks, and there are regular value tracks in the animation, you will see an error about an out-of-bounds index.
  2. When deleting tracks prior to the selected track, the selected track will shift.
  3. When undoing deletions and there are hidden/locked tracks following the newly inserted tracks, those hidden/locked states will shift to other tracks.

We did however throw in a fix for an out-of-bounds error when deleting all bezier tracks, but the others we felt would complicate this already hefty PR too much.

We did also take the opportunity to change/fix the alignment/margins of the icons, which seemed a bit off.


Contributed by W4 Games 🍀

@AdriaandeJongh
Copy link
Contributor

fantasic! just popping in to say that looking at the vid, the buttons appears to miss a hover effect currently.

@mihe
Copy link
Contributor Author

mihe commented Sep 24, 2025

just popping in to say that looking at the vid, the buttons appears to miss a hover effect currently.

I would agree. That would technically also be a pre-existing issue though, since it already applies to the per-track buttons, but maybe we can throw that in there as well. I guess it shouldn't be that big of a deal.

@mihe
Copy link
Contributor Author

mihe commented Sep 26, 2025

I guess it shouldn't be that big of a deal.

The hover effect turned into more than just a line or two of code, due to how the drawing for these things is done, so we opted to leave it for now, so as to not make this PR any bigger than it needs to be.

@lyuma
Copy link
Contributor

lyuma commented Oct 17, 2025

We need to test it and review code, but from a design perspective we discussed in the animation meeting and agree with adding icons to the node groups.

Copy link
Member

@Calinou Calinou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally, it works as expected. Code looks good to me.

From an UX perspective, I suggest fading out the icons of individual nodes a little, like we do in the input map editor for input events for each action:

image

Notice how the trash icon is slightly less opaque for individual events compared to the action above it. This helps distinguish long lists of icons and making sure you click the icon you actually meant to click when the icon is far away from the text.

Something like this:

Before After (mockup)
image image

Co-authored-by: Kasper Arnklit Frandsen <kasper.arnklit@gmail.com>
@mihe
Copy link
Contributor Author

mihe commented Dec 1, 2025

The slightly lowered opacity for the per-track icons is now in, as suggested above. I also threw in a rebase for good measure.

Copy link
Member

@TokageItLab TokageItLab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested, and LGTM.

During monkey testing, an error occurred only once when deleting a track, but it did not cause a crash, and I cannot reproduce it.

The application behaves stably during normal use, and the code is clean. Therefore, I judge that any issues can be adequately addressed later if they arise.

@TokageItLab TokageItLab moved this from Ready for review to Approved, Waiting for Production in Animation Team Issue Triage Dec 2, 2025
@TokageItLab TokageItLab modified the milestones: 4.x, 4.6 Dec 2, 2025
@Repiteo Repiteo merged commit 295435d into godotengine:master Dec 2, 2025
20 checks passed
@github-project-automation github-project-automation bot moved this from Approved, Waiting for Production to Done in Animation Team Issue Triage Dec 2, 2025
@Repiteo
Copy link
Contributor

Repiteo commented Dec 2, 2025

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add Visibility, Lock and Delete icons to nodes in the Bezier Animation editor

6 participants

X Tutup