-
-
Notifications
You must be signed in to change notification settings - Fork 97
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
Improve the animation Bezier editor #3141
Comments
I wonder if this should be the opposite? As in locked tracks cannot be selected by accident. This is usually how things work on design tools but I'm unsure if it's different on animation tools. |
I too would advocate for "locking curves" to mean locking them out of edits (just like nodes in scenes). |
as an animator, my initial reaction was pretty much the same, however, i would like to give this approach a try, it seems to me like it could save quite a lot of clicks. |
Indeed, I don't see the use case of leaving out a single track. On the contrary when you have lots of tracks, focusing in just a few but keeping the rest as reference is a lot more useful. |
the only thing i would change, is the name from |
@SilencedPerson well its an icon so it does not show a text.. maybe a different icon? |
@Error7Studios In a DAW it makes complete sense to solo and mute tracks, here excluding a track does not make sense. |
|
I'd like some sort of auto scale, auto fit / find key frames, and separate scales per track features. Usually value ranges have wildly different scales. I click on rotation, then pan and zoom to find values 0-360. Then click on a translation which could be values at 0-1 or 0-2000. When Animating one object, I'm constantly going back and forth between translation and rotation, so there is constant adjustment of the display so I can find the key frames. Ideally I'd be able to get multiple curves on screen at once and be able to go back and forth to adjust them, meanwhile the scale is silently adjusting on the side. No manual adjustment of the display is needed, once I have it set up. No popping of the display as it automatically changes to view different scales. Instead just a stable display where only the numbers change and the curves stay there unless I change them, or change the window scaling or panning. So I'd recommend:
Also we desperately need channel mute in the bezier editor. It's very annoying to have to go back to the regular editor to mute, then come back into bezier to adjust. Solo mode is helpful, especially if you have an animation with 20-30 channels and need to figure out which one is causing the problem. Alternatively an enable /disable all tracks button would work fine. (main editor and bezier) Other requests
|
It totally does, animators use that. I think it'd be good to get professional game animators in there, or people who worked on the animation editor UX in Blender in the discussion if possible. They'd certainly have lots of insights on the features animators need. Hiding several tracks and isolating them (hiding unselected tracks) are both useful. It's quite common to work in isolation on a bunch of curves when doing animation cleanup: you might want to work on the transforms of just the legs' or a single arm on a character, etc. That's similar to solo tracks in DAWs in a sense although it doesn't need to work with a solo button. Then locking is useful too: you keep the tracks for reference of how the values change, of timing, but you don't want to select and modify them inadvertently. For example when animating a character's tail, to properly animate follow-through. on other segments of the tail. To me, Blender is an excellent example when it comes to the animation editors: you can select multiple tracks from the left column and either toggle their visibility (leftmost icon), isolate them (shortcuts: H hides selected tracks, Shift H hides unselected as in the rest of Blender, alt H unhides everything), or lock them. Below, the checkboxes are mute buttons, while you use visiblity to do the equivalent of solo in DAWs. Back when I did animation (I studied 3d character animation for games specifically), I'd get to use all that on pretty much every animation. So I second the idea of having some way to:
The rest of the proposed improvements and features is great, that's all much needed. Especially the ability to see and manipulate many anim tracks at once. If you'd like, I'd be happy to get pro game animators in the loop for feedback in general on the animation tools in Godot. I'd be happy to help find them, collect their needs, and report on that (similar to the docs proposal from last year). I'd also be happy to contribute some code and work on this editor's UX if you'd accept a new contributor there. |
Bezier curves feel too far disconnected from everything else. Might wanna look at this old proposal that's been sitting around forever too, where this issue was also discussed: |
I asked @reduz if we could take care of this proposal at GDQuest and he said ok. So we'll get to work on this in the coming weeks! |
This is an explanation of Auto-tangent and Extend handle in some animation applications, which I discussed with @NathanLovato on Contributors Chat before.
Both behave similarly. However, I personally feel that the one based on Balanced is smoother, because the handle length is equal between keyframes. In addition, I think that the Linear, Mirror, Balance, and Free attributes should be assigned on keyframes instead of on the control mode. These attributes of keyframes can be used to control the input of values in the inspector. For example, a keyframe with Linear attribute can prohibit the manipulation of handle values. On the other hand, keyframe with Mirror or Balance attributes make it possible to manipulate the value of one handle to update the opposite handle at the same time. Furthermore, it may need to implement the following shortcuts to constrain manipulation when we are grabbing the handle.
|
Very clear, thanks. I'll likely make a separate proposal before adding all the above. Making handle mode a property of keyframes is already in progress: #3236 |
Still need #53298 to be merged since I made my branch off of that before I go and make a PR so I don't double any commits/conflicts, then can go through a review process with code cleanup suggestions, but I'm close to done otherwise. Implementation list
Issue not sure how to proceed to fixThe default 150 pixels for the name limit is too small for the bezier editor and you end up with the icons overlapping the track names, but there's no way to change the name limit from outside, so the user has to extend it beforehand. Not sure if changing the default magic number of 150 would be appreciated, but it'd have the least knock-on effects or change of math. ConsiderationsAnimation software (like blender, maya, etc), when you have multiple keys selected and you move a bezier handle, all of the keys' handles move simultaneously by the relative amount. It wasn't implemented in 3.x, so I didn't put it here, but it could be a feature we'd think about. |
Can we close this since godotengine/godot#64647 has been merged? Are there any features still missing? |
Closing due the request for clarification being from last year. I encourage future readers to make a new issue or proposal. |
Describe the project you are working on
Godot
Describe the problem or limitation you are having in your project
Common user complains about editing animation beziers. More specifically:
Describe the feature / enhancement and how it helps to overcome the problem or limitation
The idea is to overcome both those issues.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
The plan is as follows:
Mock up (editor is kind of broken on Master, but you get the idea):
If this enhancement will not be used often, can it be worked around with a few lines of script?
no script can do this.
Is there a reason why this should be core and not an add-on in the asset library?
animation editor is core.
The text was updated successfully, but these errors were encountered: