Replies: 2 comments 1 reply
-
Autokeying exists for this, but it also creates new keyframes when modifying a property if none exists at the current time. Also, it's not currently implemented in 2D.
The script editor uses these keys to go to the previous/next word, as well as any text field. That said, we can probably remove the context from the shortcut, so that it'll work whenever the user isn't focused on the script editor or a text field. |
Beta Was this translation helpful? Give feedback.
-
I've spent more time with animation/keyframing, and I've also used the animation timeline with a 2D scene. There are issues which I didn't spot previously and I also have more suggestions. I'll be a bit more freeform than my previous suggestions since it took awhile to write everything out last time and make the mockups. Unless I'm misunderstanding something, it seems that the Record (auto keyframe) mode in a 2D scene only applies to using Move Mode, Rotate Mode, and Scale Mode in the viewport. I've tried to update values in the Inspector and nothing is applied automatically. Not even those same three transform properties. If this is how it's intended to work, it seems limited since animation often requires precise adjustments. I'd suggest expanding auto keyframing to apply to all properties in the Inspector, not only Position, Rotation, and Scale in the viewport. The pos, rot, scl buttons are confusing since their use is not apparently obvious. A new user will not understand the context of 'mask' in regard to these buttons, and I don't see how they are useful to more experienced animators since all they do is set up a basic set of properties which takes seconds to do anyway. The way that they work by being toggled on/off is not intuitive. It is also not clear that the key icon is supposed to be clicked after toggling the options on/off. It makes sense if you read the docs, but it should make sense intuitively as well. The options in the 3 dot dropdown also seem rather redundant. I'd suggest removing this section of the UI to simplify things and move the Record button to the animation panel. As it is now, the same functionality is essentially being duplicated in two places, and clicking the key icons in the Inspector is much more intuitive. This seems like a bug since the Stop hotkey can be used while the animation panel isn't in focus in a 3D scene. In a 2D scene, the Play hotkeys (A, Shift + A, shift + D, D) all work while the animation panel isn't in focus. Only the Stop hotkey is prevented from working while the animation panel isn't in focus. Currently, Step Forward and Step Backwards are set to CTRL + Left Arrow and CTRL + Right Arrow. This seems logical, but in practice, it doesn't work well in relation to the rest of the animation hotkeys, as the user has to move their hand from one location to another on the keyboard. I'd suggest changing the hotkeys to SHIFT + Q (step back) and SHIFT + E (step forward). This way, all animation hotkeys are collected together in an egonomic layout. I know that users can customize hotkeys, but I think this would be a better default layout. I checked the official Editor keybind documentation and I didn't see a conflict. |
Beta Was this translation helpful? Give feedback.
-
I'm new to using Godot but I've done a lot of keyframing before in other programs, mainly video editing. I was making my way through the official doc's 'Your First 3D Game' tutorial, and when I got to the animation section, I noticed some issues with the implementation of keyframes which makes the process of using them feel more fatiguing than it should. Below are a list of changes which I feel would make keyframing more intuitive and simpler for the user. I don't have the skills to implement any of this myself, which is why I'm adding it here as a discussion.
Suggestions:
1 - Key icon feedback in Inspector
Issue:
No feedback when key icon is clicked in Inspector.
Fix:
Change key icon to blue when it's clicked and a keyframe is set.
Reason:
Currently, the only indication that the user has successfully made a keyframe is by glancing at the animation timeline. This is fatiguing if the user is adding multiple keyframes to different properties. It also allows for situations where the user thought they pressed the key icon in the Inspector, but the click wasn't registered due to a mouse issue or the user clicked outside of the icon hitbox.
How it should work:
When the user clicks a key icon in the Inspector, or 'Insert Key' on the animation timeline, a keyframe is set and the specific key icon in the Inspector changes to the blue (toggle) colour. If the user clicks the key icon again, the keyframe on the timeline is deleted, and the key icon returns to white which indicates that no keyframe is currently set. The key icon should only be highlighted blue when the timeline position is on a keyframe. If no keyframe exists at the current timeline postion, the key icon appears white. White represents 'no keyframe set', and blue represents 'keyframe set'.
Example:
Current
Suggested change
2 - Automatically update keyframe values
Issue:
The user has to manually click the key icon in the Inspector to update changes made to values.
Fix:
Adjusted values in the Inspector are automatically saved to existing keyframes.
Reason:
There is no feedback at all to indicate that a keyframe was updated with new values if it already exists and the user clicks the key icon in the Inspector. If the user wants to undo the automatically saved changes, they can always use CTRL + Z, but with the current implementation of the manual save, the user cannot get back changes which they forgot to save before changing position on the animation timeline.
How it should work:
Once a keyframe has been initially created by the user, and the key icon has changed to blue, further adjustments to the property values should be applied to the keyframe automatically.
3 - Delete keyframe from animation timeline via context menu when keyframe isn't left clicked first
Issue:
It's not possible to delete a keyframe in the animation timeline without first selecting the keyframe by left clicking it. This removes the current Node's properties from the Inspector, which is annoying if the user wants to add other keyframes.
Fix:
Add 'Delete Key' option to the context menu when right clicking a keyframe without first selecting it by left clicking.
Reason:
When the current Node that the user is animating is populating the Inspector, if the user right clicks on the keyframe in the animation timeline, the only option given is 'Insert Key'. This option is given even if a keyframe already exists. If the user wants to delete a keyframe, they first have to left click on the keyframe in the animation timeline and then right click and select 'Delete Key(s)'. After the keyframe is deleted, the Inspector is left empty and the user has to then reselect the Node in the Scene Tree to repopulate the Inspector. It currently requires four mouse clicks to delete a keyframe and get back to the Node's properties.
How it should work:
While the Inspector is populated by the properties of the current Node, the user can right click any keyframe on the animation timeline and select 'Delete Key' from the context menu.
Example:
Current
Suggested change
Version 2 - Insert Key replaced with Delete Key if keyframe exists
Additional suggestions
Although not UI related, I noticed that CTRL + Left Arrow and CTRL + Right Arrow, used for stepping back and forward along the timeline, only work when the animation panel is in focus. This means that to use the hotkeys to move through the timeline while also making keyframe adjustments to the currently selected Node via the Inspector, the user has to constantly click on the animation panel using the mouse before using the hotkeys. If possible, I think it would be a good idea to allow the 'Go to Next Step' and 'Go to Previous Step' hotkeys to work even when the animation panel is not in focus. These hotkeys don't seem to conflict with any other part of Godot. It would also be nice if the user could hold the hotkeys down and scrub along the timeline quickly. Currently the user has to hold CTRL and continuously press Left Arrow or Right Arrow.
Something else I'd like to draw attention to is this bug: godotengine/godot#78131 I noticed the bug while testing things out, and apparently it always occurs, so it's something all users will experience. It's annoying as it breaks the use of adjusting values when directly selecting a keyframe, as the user has to click somewhere on the timeline and then again on the correct position before seeing their changes in the viewport.
The last thing I'd like to suggest, and this might go against a larger design decision. Along with being able to directly click a keyframe on the animation timeline, which then displays the keyframe's data by itself in the Inspector, under AnimationTrackKeyEdit and AnimationMultiTrackKeyEdit. I think it would be very useful if when the user double clicks a time/frame position on the timeline, all keyframes at that position have their data displayed in the Inspector under AnimationMultiTrackKeyEdit, or another similar named class. This would make it very easy to make edits in relation to other properties and fine tune the values without having to individually click on different keyframes one by one.
Here's a mockup, although I do not know what restraints/limitations there are.
I didn't include it in the mockup, but different track groups would have their own dropdowns.
Beta Was this translation helpful? Give feedback.
All reactions