YoYoGames / GameMaker-Bugs

Public tracking for GameMaker bugs
22 stars 8 forks source link

Animation curves : Hold or Step keyframe #3071

Open Delfos1 opened 1 year ago

Delfos1 commented 1 year ago

Is your feature request related to a problem?

This is a common feature in animation software. Sometimes also called "stopmotion" keyframe, it keeps the value of the keyframe until the next keyframe. It generates no interpolation at all between values. An object would, for instance, jump to a different location from one step to the next.

It is very useful for both aesthetic and practical reasons.

Describe the solution you'd like

Would be useful to have several types of keyframe on the same graph (linear, hold, spline, bezier) but even adding it as an extra option would be good enough.

It is possible to get around this at the moment by creating 2 keyframes, one at the start and a copy of that one before the next value, but it becomes a cumbersome process once there are many elements to handle.

Describe alternatives you've considered

No response

Additional context

No response

AtlaStar commented 1 year ago

This isn't really necessary as the functionality currently exists. This is what occurs when you stretch a keyframe as such image

That window opens when you right click a keyframe, and selecting stretch parameter key stretches the value until the next key. When working via code you'd just set the stretch parameter of the keyframe struct to get the same result.

So the feature isn't quite what is needed, but rather a simpler UI/UX for sequences in general as it being a property you can only access via right clicking the keyframe isn't quite what end users would expect.

Delfos1 commented 1 year ago

Stretch parameter key not only is very hidden UI/UX wise, but also doesn't allow to make keyframes after its creation, you can only modify the stretched keyframe. This is feels counterintuitive as an animator, because it feels like its changing the behaviour from the option "Automatically record changes". I would expect a behaviour similar to "Split key in place", instead of modifying the previous key.

AtlaStar commented 1 year ago

There is also holding alt (on windows at least) which then changes the cursor when hovering over the 'tail' of the keyframe so you can adjust its length...why it requires you to press alt at all is weird to me though. image This at least gets around the issue that happens when using a stretch keyframe

That said, I do agree that any changes to a keyframe other than it's beginning should have at least some config property that allows you to choose whether it automatically splits the key or changes the base key.