-
-
Notifications
You must be signed in to change notification settings - Fork 99
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
Add "Summary"/timeline keyframes and node collapsing in animation editor #1908
Comments
This should extend to all the modes at the end of the UI. |
See also #174. |
I agree that adding these buttons could definitely come in handy! |
This would be a great addition for usability. Here's how it looks in Blender for comparison: It's an essential feature for an animation editor, to know at a glance where keyframes exist, and quickly move or edit entire frames (which is a common thing to do). Selecting a key on the summary track should also open a AnimationMultiTrackKeyEdit node in the Inspector, and should allow deleting and copying that entire column. If it triggers selection in the same way as drag-selecting does, we should get all of those features for free. I added track collapsing as a first step in godotengine/godot#44847, and am currently working on a Summary implementation. |
I can confirm that this missed function (select and move all keyframes of a particular time point) is used very often in animation process. I use it the most for slow down or speed up the entire or a part of the animation. A larger distance slows down the animation, a smaller distance makes it faster. Is there a workaround? Edit: I can only encourage developers to take a look at real keyframe editors. There is even a very popular open source editor: |
Describe the project you are working on
2D and 3D casual games.
Describe the problem or limitation you are having in your project
There is no simple way to select and adjust all of the keyframes for the entire animation or for a specific node in the animation editor. This is relevant for animations created in the editor or imported.
For example, in order to move all the keyframes in a particular point in time two frames forward, the user needs to box-select all of the keyframes. This becomes an issue with large animation with plenty of tracks - the user needs to box-select, then scroll and shift-drag-select again and again until all the relevant keyframes are selected.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Unity's animation window has a "summary" track that shows all the keyframes of every track in the animation. Additionally Unity has summary tracks for the different game objects which can be collapsed for easier viewing and editing of larger parts of an animation, instead of just individual tracks.
Adding this feature into Godot's animation editor will greatly improve the animation workflow.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
In terms of UI, an extra track can be added before the first track of the animation with keyframes representing every frame where any track has a keyframe inside. Moving one of these keyframes will move every keyframe in that point in the timeline. Just like in Unity.
Additionally, godot already has a separation line for each node, so I suggest adding an interactive "collapse" button before the track name and use that row to add the summary keyframes for that node.
Here is a mockup for this suggestion:
If this enhancement will not be used often, can it be worked around with a few lines of script?
I believe this enhancement will be used often. Since this is basic animation workflow in the editor, I'm not sure how this can be worked around with a few lines of script.
Is there a reason why this should be core and not an add-on in the asset library?
This is a basic and simple UI-UX enhancement for a core editor window. Trying to add this as an add-on will probably require creating an alternative animation window which does not make sense.
The text was updated successfully, but these errors were encountered: