godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.17k stars 98 forks source link

Implement duplicating animation tracks while changing the path to refer to another node #6205

Open CookieBadger opened 1 year ago

CookieBadger commented 1 year ago

Describe the project you are working on

A 2D rythm-platformer (it's complicated)

Describe the problem or limitation you are having in your project

I have an Animation Player that edits property X of Node A. Now I have a Node B of the same type, which I would also want to have that animation. The current way to do this, is to make a new AnimationTrack for Node B and manually set the same keyframes as I have in Node A. image

Describe the feature / enhancement and how it helps to overcome the problem or limitation

It would be nice to have the option to duplicate an entire animation track, just with a different path that it modifies. Same keyframes at the same time.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

When right clicking on the header or path of a Track, a context menu should show, with a duplicate action: image Upon clicking this action, or alternatively/additionally, when selecting a Track and Pressing CTRL+D, a "Select Node" menu should show, where the user can select a different Node. image Then, a new Animation Track gets added with the path to NodeA being replaced with the path to NodeB. image

If this enhancement will not be used often, can it be worked around with a few lines of script?

I think, this would benefit the AnimationPlayer usability a lot. It could maybe be achieved with a plugin, but I think it would be very clunky.

Is there a reason why this should be core and not an add-on in the asset library?

AnimationPlayer is core and its usability is important :)

KoBeWi commented 1 year ago

You can copy the tracks using the Edit menu. However there is no easy way to change the track path (#4847 covers that)

CookieBadger commented 1 year ago

@KoBeWi Indeed, I forgot you can do that. That already makes it a little easier, although I never found this Edit menu particularly intuitive. Your proposal would be very useful as well!

digilena commented 1 week ago

I went looking to see if this was already noted as a bug. I am also facing the same issue. I want to implement the same animation track to two different nodes and change the X coordinate for the second one. Every time I modify one node, it modifies the other due to the path (I even change which Root Node it points to, but this doesn't seem to matter).