Godot version:
3.1 stable
Issue description:
Unlike the 3D workflow, the 2D workflow has no build in support to import animations from from external sources to the AnimationPlayer. https://github.com/godotengine/godot/issues/18269
While adding 2D animations to the AnimationPlayer has always been very time consuming and tedious for this reason, it has become even more tedious with the new AnimationPlayer UI which hides "New", "Duplicate" and "Rename" ect functionality in a drop down menu.
In 3.0.6, these were one-click-buttons.
This is especially a problem for games with more than one directional movement.
I request to have these UI buttons back on the panel for easy one-click direct access, since this are operations that are repeated hundreds of times hiding them in a drop down does nothing but add useless complexity, wasted time and less user friendly experience.
(Imagine you are an Animator and you have to do this full time, all day every day. I'd rather die.)
I kind of disagree. The previous solution was very bloated and I think the buttons were quite unclear about what they were doing. Also, you don't use these buttons as often as the remaining of the interface, so it's ok if they are not directly accessible. So getting them back as is is not a good solution I think.
However, I agree the current design is not really optimal when you have a lot of animations. The interface should likely be reworked with a better solution.
Also, you don't use these buttons how often as the remaining of the interface
"New", "Duplicate" and "Rename" where the buttons I use almost exclusively. I don't know what kind of animation you do with the Animationplayer, but I bet my drawing hand is is not a multidirectional 2D animation. Because if you are, please tell me your secret on how to avoid these multiple new/duplicate/rename steps. The only other option I found was to directly text-edit the tscn file. But needless to say this sucks even more in usability.
Even if we would be able to properly copy and paste animations (https://github.com/godotengine/godot/issues/27280, https://github.com/godotengine/godot/issues/24950) or individual tracks (https://github.com/godotengine/godot/issues/15029) and keyframes (https://github.com/godotengine/godot/issues/27279), renaming would still be a massive step backwards in usability. This was one of the few UI features that were actually smooth and worked well.
Most users use the AnimatedSprite2D node for characters 2D animations, including myself.
The most common use case stays the 3D workflow, where you usually spend more time tweeking your properties than creating new animations or duplicating the one you have. We have to think the interface for all use cases, and 8 or more directions 2D characters animations is far from being the most common.
Also, if you have a lot of similar animation, I would advise your to create your own editor plugin to import automatically your animations, that should be a lot more efficient that doing it by hand.
AnimatedSprite2D is fine for small projects. If you don't have hundreds of frames per character. But it's API, funtionality and workflow is way behind the AnimationPlayer and unsuitable for even slightly more ambitious projects.
When I animate a character move direction, I'm not just animating a sprite property, but many other properties and values as well with it. Think Area 2Ds, variable values, Function Calls, Offset and whatnot ...
I'm not talking about 8 or more directions, I'm talking about more than a platformer has (which has one direction you can flip.) Even at 4 directions this is extra step to use the drop down really massively eats into your production time as it piles up with each new animation, and each character. If all the benefit is that you think it looks less cluttered, then I wonder how to weight actual production time wasted against some personal aesthetically preferences of having 3 small graphics less on your panel boarder.
AnimatedSprite2D is fine for small projects. But it's API, funtionality and workflow is way behind the AnimationPlayer and unsuitable for even slightly more ambitious projects.
I kind of agree, IMHO the two editors should be "merged" one day, that would help.
If all the benefit is that you think it looks less cluttered, then I wonder how to weight actual production time wasted against some personal aesthetically preferences.
This is not a question of aesthetically preferences. If you think usability is only a matter of having everything accessible from a single click, sorry it is not the case. This toolbar was completely cluttered, which confused most people with too many buttons, making this part of the software unfriendly and confused a lot of users, as most of them do not spend a lot of time creating or duplicating animations.
Once again you have to think globally, not only your use case. And the problem is that your situation is corner-case. So yeah, in a way, it's better to have an "aesthetically better" and less cluttered interface for 99% of people than a "more efficient" solution for the other 1%. That's why, in your situation, I advised you to create your own tools (manual text edit was a good one, but as I mentioned your could create an editor plugin too).
Ah btw, reduz mentioned on IRC the possibility to add keyboard shortcuts to those entries, that might solve the problem.
Sorry Groud, I'm so done hearing usecases I'm describing as being marginal or corner case.
They are not. They are the usecase of every top town 2D game. Most of which are pixelgames. This is by no means a small genre. Have you never noticed how many RPG maker games are constantly relased on steam and elsewhere? How many top down pixel games are showcased on r/IndieGaming and r/indygames are made with Unity?
If you ever spend any time in literally any animation software you know that the 3.0.6 Animationplayer was lightyears away from having a "cluttered" User Interface. In fact, for anything animation related, it was utterly simplistic, to a point that is problematic. (try jumping from animation to animation if you have 80 of them and they are in a drop down menu) If all you do is import from Blender and make small amendments, this might not be a problem for you. But if you want to make a top down game, an RPG, a Pokemon or Zelda-like anything more ambitions decent 2D animation, it's anything but fun. Because you have to rebuild a lot of the animation in Godot. Now Godot makes this process even harder.
Shortcuts are a good alternative route in UI design, but they are not user or beginner friendly if they are the only practial way to do something.
AnimatedSprite2D is fine for small projects. If you don't have hundreds of frames per character. But it's API, funtionality and workflow is way behind the AnimationPlayer and unsuitable for even slightly more ambitious projects.
I can certainly attest to last bit there. I have only on rare occasions used AnimatedSprite2D.
Maybe some sort of solution would come with the editor generally being more configurable, so you may reconfigure toolbars to your liking in a very friction-less way.
Maybe some sort of solution would come with the editor generally being more configurable, so you may reconfigure toolbars to your liking in a very friction-less way.
It's unlikely to happen soon, this requires a huge rework of the editor. But I guess it could make sense.
Sorry Goud, I'm so done hearing usecases I'm describing as being marginal or corner case.
They are not. They are the usecase of every top town 2D game.
Well, I agree there are a lot, but it is still a small portion of the use cases the animation editor has to cover. "Corner-case" might be exaggerated, but still, your situation is not the common use case.
And IMHO, it's not worth cluttering the toolbar again for this use case.
I can certainly attest to last bit there. I have only on rare occasions used AnimatedSprite2D.
I completely agree too that the AnimatedSprite2D is very limited. Still I think people underrate it a lot.
It's, in my opinion and for 2D games, a lot easier to use both an AnimatedSprite2D and and an AnimationPlayer synchronized than keeping everything in the AnimationPlayer.
I have an idea to be able to edit sprite animations in the AnimationPlayer with the interface of the AnimatedSprite2D editor, that would make things a lot easier I think. :)
@golddotasksquestions Keep in mind that in Godot, you can hold the mouse button and release it on the desired option in dropdowns (similar to macOS and most Linux desktop environments). This may help you be more productive, in addition to using keyboard shortcuts :slightly_smiling_face:
@Calinou This is what I am doing anyway. Renaming by clicking on a drop down while holding the LMB, moving to the desired option and then releasing (all the while hoping not to release too early or on the wrong option because misread) is still stoneage in terms of usability compared to simply directly double click directly on the name you want to change. (like it is in most applications I don't hate)
Godots 3.0.6 version of clicking the symbol and having a pop up has still less usability than clicking directly on the thing you want to change and being able to do it immediately, but it's lightyears better than what we have now.
I understand directly double clicking on the name to highlight and rename is not possible without completely restructuring the AnimationPlayer panel, that's why I was not asking for it even thought I think it would be the best solution. I was assuming having those buttons back would be considerably less work. Less work the the additional perpetual work I and enyone else who is stuck without the ability to import Animations will have to do from now on.
I understand directly double clicking on the name to highlight and rename is not possible without completely restructuring the AnimationPlayer panel.
Honestly, I think this is perfectly feasible and surely make sense.
What I meant by that is currently the animations are themselves stuck in a drop down menu, accessible through LMB click. A double click opens the drop down panel and selects whatever you hit with the second stroke as the current animation. This would have to change.
Jumping from one animation to another one is already cumbersome. Especially so if you don't have a mouse with scroll wheel and more animations than what can fit on your screen. In my case that's about 40 animations, but this will depend on screen resolution and UI scaling ect.
I am sure there is a better way to switch between animations and also have them select able with LMB (so we can have easy copy&paste one day) and rename-able with double click, but I could not think of a good solution yet, one that more efficient than what we have now.
Double click on the animation name but keeping the animation switch behavior with the large scroll-able drop down would mean the the dropdown would pop up for a split second, then disappear only for the name to be highlighted showing it is ready to be renamed.
Or the animation list scroll down would stay after the first click, and the animation name only he highlighted and ready to be renamed when clicked at again. In this case I'm worried that it will happen unintended very often and confuse users more than help, especially because the list of animations is autosorting itself by name. So if a user accidentally highlights and deletes the name of his animation, it could be gone somewhere in the list. When you have 100+ animations, it means that it will be hard to find and probably piss off quite a lot of people as well.
That's why I thought just bringing back the button would be the easiest straight forward solution. without rethinking how the panel is structured in a bigger sense. But maybe you have better ideas than me?
I think that only New and Save icons should appear on the dock.
Could there be a setting that exposes extra buttons/UI for the corner cases? Like an "Advanced Animations UI" setting? If the main concern is it being too confusing for beginners then it could default to the simple animation UI.
yes, a simple ui as default, and an option for an advanced ui. I like it.
Additional settings aren't a good solution here, as they'll further bloat the Editor Settings and place additional burden on engine developers who will have to make sure both UI variants look good after every change to the animation editor. It will also make it more difficult for people to follow tutorials, as there will be two possible layouts for the animation editor instead of just one.
Instead of always trying to find a compromise that leaves nobody happy, let's try to find a better solution :slightly_smiling_face:
As I understand it, for the use case discussed here, the previous UI was tedious, and the new UI is more tedious.
Reverting back to the previous UI doesn't sound like a good solution then. Let's find how to make the UI good, not just less bad.
Additional settings aren't a good solution here, as they'll further bloat the Editor Settings and place additional burden on engine developers who will have to make sure both UI variants look good after every change to the animation editor.
If we keep this direction you are describing, Godot will never make it to a professional tool used by professionals in the industry.
I love Godot's approachable interface, but I also knew from day one of looking at it, if it ever want's to be used not just by hobbyists and tinkerers, but become more widely accepted by professionals in the industry, it will also have to provide the tools artists, animators and audio designers need in their daily work. And yes, those tools need to be exposed to be accessible and efficient.
And yes, there will always be redundancy in good UI as well. All brains are weird differently, are at different stages of learning. Having only one possible route to archive a goal is bad UI UX.
If we keep this direction you are describing, Godot will never make it to a professional tool used by professionals in the industry.
It already is.
It already is.
That aside, that doesn't mean things couldn't be better. If the community wants to see
even wider adoption of Godot Engine then usability/UI could use some improvements. Especially if it is to be less confusing for beginners.
As a beginner, when I saw the animation editor I thought it was used for debugging because it's grouped with the Output and Debugger tabs at the bottom instead of the editor tabs at the top... In fact, I thought all of the tabs at the bottom were for debugging/output info because they are grouped together. I was really confused why it wasn't letting me step through my animated sprites as well. When I realized it wasn't for animated sprites I still had no clue what was going on and thought it was an unfinished part of the software because it looked so bare and there was no way to interact with it (without having a specific node in my scene, something I had to learn). Once I realized it was a thing I still had to learn how to use it, the UI didn't make it any more approachable. I still had to go through the trouble of looking at docs and watching videos once I learned what it was. In fact, the lack of buttons stopped me from looking into what the Animation tab was purely due to the UI design choices meant to make it _more_ approachable. Had I seen some more buttons with some tool tips that were more indicative that it was an editor I would have learned about it a lot sooner.
People designing the UI know what is going on so it's easy to think that a blank UI without clutter makes it look more approachable, but you know there is functionality hidden behind all the disabled buttons. A new user will see it and think it doesn't do anything because by all indication, it shows you your animated sprite, or something debugging related.
I'm not advocating for more clutter, just giving you my perspective on the issue since I started using Godot less than a month ago. Godot is honestly one of the simplest pieces of software I have ever used when I taking the results into account. I think most of the UI choices and how everything works together is amazing, but this one thing I think people should spend more time on. I bet someone will come up with a good compromise.
The logic for these things is very easy
Sorry, but I find it extremely hard to believe that every single day you create animations and rename them several dozens of times. Even if for some reason you do, it's not the normal workflow for most users.
At much, I think a shortcut world work great for this, because you are still anyway going to move your hand from the mouse to the keyboard to input the name of the new/renamed animation. This way, you just push something like ctrl-shift-n to create a new animation, or ctrl-shift-r to rename it. Should be the same amount of effort.
But for toplevel button, unfortunately not gonna happen. It was too crowded in there and the dock would not resize properly (and would be very confusing as well).
Would this be ok? I can't see how a shortcut would be more work than a button since you have to use the keyboard afterwards anyway. If so, I promise to add it asap.
@reduz A shortcut would be desirable in my experience. It is not so much a workflow issue. The problem case is when an unforeseen design change is needed, and say lots of animations must be renamed to conform to new naming convention.
Depending on the size of this, a decision has to be made if its faster or if one is available to write a tool script, or does someone have to manually click away at it.
@reduz
Sorry, but I find it extremely hard to believe that every single day you create animations and rename them several dozens of times. Even if for some reason you do, it's not the normal workflow for most users.
Would you mind sharing what you think a "normal" workflow would be in your opinion?
I'm really not into doing the same stupid work a million times, so I duplicate and rename animations and make only the changes to the animation that are necessary, instead of starting from scratch.
I think that's not only normal, but also the only reasonable way to work.
I'm sorry that those icons were an eyesore to you, but to me they are indispensable to get anything done. Especially since Copy/Paste is still not a wide spread thing in Godot. Shortcuts should be a nobrainer addition, not a replacement for UI.
Most helpful comment
The logic for these things is very easy
Sorry, but I find it extremely hard to believe that every single day you create animations and rename them several dozens of times. Even if for some reason you do, it's not the normal workflow for most users.
At much, I think a shortcut world work great for this, because you are still anyway going to move your hand from the mouse to the keyboard to input the name of the new/renamed animation. This way, you just push something like ctrl-shift-n to create a new animation, or ctrl-shift-r to rename it. Should be the same amount of effort.
But for toplevel button, unfortunately not gonna happen. It was too crowded in there and the dock would not resize properly (and would be very confusing as well).
Would this be ok? I can't see how a shortcut would be more work than a button since you have to use the keyboard afterwards anyway. If so, I promise to add it asap.