Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TRACKER] Animation general usability improvements #6681

Open
10 of 76 tasks
vyshliy opened this issue Apr 11, 2023 · 10 comments
Open
10 of 76 tasks

[TRACKER] Animation general usability improvements #6681

vyshliy opened this issue Apr 11, 2023 · 10 comments

Comments

@vyshliy
Copy link

vyshliy commented Apr 11, 2023

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:

  • Edit multiple frames in / out handle at once (like it works with position in v 4.0)
  • Add new keyframe to curve with balanced in/out handles by default to not distort existing track to much
  • Show curve / keyframe editor when selected node uses this type of track in animation
  • Scale curve handles value proportionally on scaling track
  • Edit value in inspector for all selected curve frames in curve editor same as keyframes editor
  • Return ability to scale curve editor in both dimensions. (Done. But shortcut not obvious and can't be found in 'shortcuts' menu)
  • Bezier auto zoom Animation panel: curve editor: add zoom to fit command and shortcut #7547 (comment)
  • Bug - Adding keyframes as curve rotates all added nodes
  • Add ability to animate PackedVector2Array with curves Add ability to animate PackedVector2Array using curves #8302

AnimationPlayer:

AnimationTree StateMachine:

  • Select several transitions in node editor
  • Edit all selected nodes in statemachine
  • Play / pause button in one
  • Return switch mode to StateMachine UI

Skeleton2D:

AnimatedSprite:

  • Don't switch from AnimationPlayer to AnimatedSprite when select AnimatedSprite
  • Add convenient way to add AnimatedSprite frames to AnimationPlayer
  • Creating AnimatedSprite with empty SpriteFrame resource by default
  • Select several sprite frames Allow multi-selection of frames in the SpriteFrames animation editor #1696
  • Paste copied frame right after selected frame
  • Set parameters to several nodes at once (autoplay for example)
  • Add ability to set default FPS to SpriteFrame resource

Changes indirectly related to animation workflow:

  • Connect signals to several objects at once
  • NodePath modal not select text area by default
  • Unchanged exported script props in open scenes saved even if in script it was changed
  • Remove top panel of engine like in browser tabs
  • Copy / paste values of complex properties as vectors
  • Light2D mask
  • Add skew handler
  • Godot asset lib not loaded sometimes
  • Add script to selected nodes at once
  • Paste copied nodes in several nodes at once
  • Play sound file by double click on it (instead advanced import settings)
  • Make sub resources unique on several nodes at once
  • Make local several nodes at once
  • Enable new installed plugin in dialog with successful installation
  • Filter nodes in tree by node type (fixed in 4.2)

Related Issues:

  • Camera2D preview Add picture-in-picture camera preview to the editor when a Camera2D node is selected #7627
  • 3.5 RC2 call method : methods doesn’t appears in method list immediately, only after project restart
  • Animation not signal when finished if animation is looped
  • Animation mix curves in one animation and simple in other give wrong behavior ??????
  • Animation. Add keyframe with curve change existing rotation value with zero when use top bar to add keys
  • Anim.current_animation doesn’t exist when anim.stop(false), while current_animation_length shows correct anim time
  • Pasted tracks not changes existing same tracks in animation
  • Adding rotation change current rotation of node
  • Add back ability to scale curves
  • Crashes when work with animation library
  • Crashes when delete last track of animation
  • Crashes when animationTree is active
  • Deleted sound still in AudioTrack on working machine, but not exist on exported version

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
Copy link

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
Copy link

Thanks for putting together this list. It should also include bezier auto zoom #7547

And any points I made here that did not get implemented

@vyshliy
Copy link
Author

vyshliy commented Sep 21, 2023

It should also include bezier auto zoom #7547

Also encounter this all the time. Added to list

@Stealcase
Copy link

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

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

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
Copy link
Author

vyshliy commented Jan 20, 2024

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
Copy link

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
Copy link

tavurth commented Jan 24, 2024

Stretch selected frames visually in timeline

Fixes #3937?

@vyshliy
Copy link
Author

vyshliy commented Mar 16, 2024

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
Copy link

mihe commented Jun 6, 2024

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
Copy link
Author

vyshliy commented Jun 7, 2024

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.

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

No branches or pull requests

8 participants