godotengine / godot-proposals

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

[TRACKER] Animation general usability improvements #6681

Open vyshliy opened 1 year ago

vyshliy commented 1 year ago

Describe the project you are working on

I'm working a lot with animation system of Godot on several 2D projects.

Describe the problem or limitation you are having in your project

There are a lot of small usability issues in the animation creation process. Some of them are time consuming when repeating or getting around. To improve the experience of interacting with this side of the engine, some changes are needed.

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

The proposal main goal is to offer ideas to improve animation related usability in Godot 4.1 and later. Tracker will be updated with links to related existing or new proposals and issues to track all progress in this area. Since this list was started many of issues was already improved in 4.0, so huge thanks to developers.

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

Animation Editor:

Curves Editor:

AnimationPlayer:

AnimationTree StateMachine:

Skeleton2D:

AnimatedSprite:

Changes indirectly related to animation workflow:

Related Issues:

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

The API of the engine does not make it easy to edit the animation editor using scripts. As well this is a usability improvement proposal.

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

The essence of the tracker is to note core editor improvements. However, a consensus is possible on the implementation of some functionality as an asset.

ToxicCrack commented 1 year ago

I'm working on a VR D-Day Museum with many audio tracks and moving objects to them in sync. These AnimationPlayer improvements would speed up my workflow by a tremendous amount. Especially selecting multiple nodes and adding a keyframe for every single one of them (i.e. position).

TokisanGames commented 1 year ago

Thanks for putting together this list. It should also include bezier auto zoom https://github.com/godotengine/godot-proposals/issues/7547

And any points I made here that did not get implemented

vyshliy commented 1 year ago

It should also include bezier auto zoom #7547

Also encounter this all the time. Added to list

Stealcase commented 10 months ago

A Low-hanging fruit that would make my life a lot more pleasant:

image

Why? Because currently, if I want to just quickly add an animation player and play an animation on scene initialization, I have to add a script to the component! This does not spark joy for quick prototypes.

image

vyshliy commented 10 months ago

Make the property "Autoplay" in the AnimationPlayer available in the editor.

Why "autoplay on load" in the player doesn't work for you?

Screenshot_1

Stealcase commented 10 months ago

Make the property "Autoplay" in the AnimationPlayer available in the editor.

Why "autoplay on load" in the player doesn't work for you?

I didn't know that was a thing! I feel silly now, thanks for the screenshot. I was looking for the parameter in the Inspector and couldn't find it, and the Class Documentation didn't mention it being visible in the Godot Editor, so I assumed it just had never been made an exposed property.

tavurth commented 10 months ago

Stretch selected frames visually in timeline

Fixes https://github.com/godotengine/godot-proposals/issues/3937?

vyshliy commented 8 months ago

Stretch selected frames visually in timeline

Fixes #3937?

I think this is a proposal to freely scale frames for the current animation, as described in #3532. What you mentioned is different and now in the editor it is done by duplicating the animation and changing its scale to -1. The option you suggested seems to solve the problem of reflected animation for the animation tree more conveniently, although I think the solution should be in editor core as a function of the animation tree node, without modifying the animation itself.

mihe commented 5 months ago

Add several tracks/keyframes when several nodes are selected

I made an attempt at implementing this one, in #92842, in case anyone here wants to take a look at it and/or provide some feedback.

I'm new to the animation side of the codebase (and animation in general to be honest) so the PR might need some minor alterations, assuming it's a viable change to begin with.

vyshliy commented 5 months ago

I made an attempt at implementing this one, in #92842, in case anyone here wants to take a look at it and/or provide some feedback.

Looks really good. This will save a lot of time during the animation process.

yosimba2000 commented 3 months ago

I would like to request timeline zooming when cursor hovers over the timeline area #10399

vyshliy commented 3 months ago

I would like to request timeline zooming when cursor hovers over the timeline area #10399

Added this to the list