• Editor
  • Curves presets and selected parameters bug+request (4.1.26b)

Related Discussions
...

Hi Esoteric crew, complaining guy here again, hope you're all doing well!

Currently, the curves presets are not applying to multiple parameters. In 3.8, it would apply to all keys selected but now it only picks one parameter to apply the preset to. Seemingly, it also doesn't apply presets to multiple selected keys either, but I can't determine when or why it excludes multiple keys.

As a different problem, but still in the realm of the curve window issue - pasting a column of keys in the timeline that comes after another column of keys, due to also pasting the bezier handles, this destroys any curve that comes before those pasted keys. This is another sizeable time sink to fix when it comes to altering animation or reusing keys that have the desired SRT values, but are not congruent with the animation that comes before it.

I'd like to ask if it's possible to have two things:

  1. A paste function that only pastes a key's values and excludes pasting a key's curve handles.
  2. A way to have all back-facing bezier handles hard-locked by default (set to square interpolation) until manually pulled from a key with an alt+click+drag. With this setting, changing a preceding key should not trigger a change in the back-facing handle of a proceeding key. The back-facing bezier should be considered locked.

Thanks for your time!

Hi, thank you for your suggestions. I think your ideas make a lot of sense. I strongly agree with that, particularly with #1.

However, I would like to confirm this problem you mentioned:

Currently, the curves presets are not applying to multiple parameters. In 3.8, it would apply to all keys selected but now it only picks one parameter to apply the preset to. Seemingly, it also doesn't apply presets to multiple selected keys either, but I can't determine when or why it excludes multiple keys.

The Curves view should allow you to change the curve shape of multiple keys at once even if they have different transform types, but what does it mean that it only picks one parameter to apply the preset to? Could you please tell us specifically what steps you have tried?

For example, if I have a single key selected and I apply a preset, it will only apply it to Scale, or Rotate, or Transform (SRT). It wont apply it to all SRT parameters within a key, only one of them. I select keys exclusively from the dopesheet usually preferring to click the top key that selects a column, or click-dragging to select keys. If I click on a preset in curves, it will only change Transf, or Scale, or Rot and often only on one key.

I'm also noting that you don't like suggestion #2 but it's just as important to me so I'd like to expand on it. The reason for it is that the presets become useless when the backwards facing curves of the next key alter the curve from the key that comes before it, given that the next key moves the backward-facing handles, destroying any preset previously in place.

Let's say you're doing a bouncing ball type of animation where you get the rapid acceleration towards the ground with a hard hit. A preset works great for the first column of keys where it accelerates from its highest point towards the ground. But now, you go to the 2nd column of keys where it has hit the ground and is travelling up, slowing as it fights gravity. As soon as you apply a preset to that 2nd key column, the backwards facing bezier on those keys then extends handles backwards into the previously perfect curve to automatically create an ease on the row behind and overshooting the ground - completely messing up the preset that came before. Now extend how much that screws up animation to 100+ bones, 15 animations and hundreds of frames.

The core problem for all of my major issues with Spine 4 is almost entirely due to the rear facing beziers of a key and the preference of Spine trying to make absolutely every curve some sort of perfect ease into and out of a key. I know there are buttons that separate the handles but you can't select those buttons until you give the key a curve first, which then explodes the curves previous to that key - which defeats the entire purpose of having those buttons unless you're able to apply them before starting the project - which leaves an entire animating method useless for revisions.

The closer that Spine 4 can come to at least have the option available to perfectly replicate 3.8 animation methods, the better.

Thank you for the additional explanation.

For example, if I have a single key selected and I apply a preset, it will only apply it to Scale, or Rotate, or Transform (SRT). It wont apply it to all SRT parameters within a key, only one of them. I select keys exclusively from the dopesheet usually preferring to click the top key that selects a column, or click-dragging to select keys. If I click on a preset in curves, it will only change Transf, or Scale, or Rot and often only on one key.

Perhaps you have disabled the Match button?:

The Match button also affects whether or not the preset is applied, not only manual editing for handles.

I'm also noting that you don't like suggestion #2 but it's just as important to me so I'd like to expand on it.

Sorry for the misunderstanding, but I liked the idea of #2 as well. I just wanted to say that #1 is a feature I particularly want.
However, from your reply, it seems to me that you should use the Separate button in the Curves view, not the one in the Graph view. The following video shows a comparison of the Separate button with it disabled and enabled. When disabled, the left handle that creates the previous curve changes its direction, but when enabled, only the direction of the right handle is changed.

I hope these can solve the issues, but if you have any other suggestions or concerns, please feel free to let us know.

6 giorni dopo
stikkanimate ha scritto

Hi Esoteric crew, complaining guy here again, hope you're all doing well!

Complaining INTENSIFIES! :grinteeth:

stikkanimate ha scritto

Currently, the curves presets are not applying to multiple parameters.

In the graph, Spine applies the curve preset to the selected keys. Eg, for a translate timeline, you'd need to select both the X and Y keys to have a curve applied to both properties.

In the dopesheet the individual properties are not visible, so the curve preset is always applied to all properties for a key. Eg, applying a preset to a key on a translate timeline will apply it to the curves for both the X and Y properties.

If you find this isn't the case, please let us know when and how you get the unwanted behavior. We'd be happy to fix it!

stikkanimate ha scritto

Seemingly, it also doesn't apply presets to multiple selected keys either, but I can't determine when or why it excludes multiple keys.

We'd need steps to reproduce this problem so we can see it ourselves, fix it, and verify it's been fixed.

stikkanimate ha scritto

As a different problem, but still in the realm of the curve window issue - pasting a column of keys in the timeline that comes after another column of keys, due to also pasting the bezier handles, this destroys any curve that comes before those pasted keys.

This is true, though even if the handle before the pasted key is kept, if the pasted key value is different then most likely you'll need to adjust the previous handle. For example, let's start with this curve:
 Loading Image

We paste on the current frame and the "before" handle gets changed to that of the pasted key:
 Loading Image

If we had kept the old "before" handle instead:
 Loading Image

Even with the old "before" handle, the curve is still very different since the pasted key value is very different. While my contrived example has a very different key value, I could see it useful to keep the old "before" handle when the pasted key value is closer to the old key value. For example, the original curve again:
 Loading Image

Pasting over the "before" handle (the curve no longer overshoots):
 Loading Image

Preserving the "before" handle:
 Loading Image

stikkanimate ha scritto

1. A paste function that only pastes a key's values and excludes pasting a key's curve handles.

This is interesting. I wonder where we'd place this option in the UI. A hotkey is fine but can't be the only way to access it. Maybe it could go in a "Pasting" submenu on the Curves view, though that doesn't provide quick access.

stikkanimate ha scritto

2. A way to have all back-facing bezier handles hard-locked by default (set to square interpolation) until manually pulled from a key with an alt+click+drag. With this setting, changing a preceding key should not trigger a change in the back-facing handle of a proceeding key. The back-facing bezier should be considered locked.

To preserve the curve before the pasted key, it should be left alone rather than changed to stepped. That is already the current behavior when the "before" curve is stepped or linear. If the "before" curve is Bezier and the pasted key is Bezier, then to preserve the "before" handle the Bezier handles must be separated (hollow handle ends), like in my screenshots above.

As Misaki mentioned, we have a "separate" button in the Curves view that does something very similar when applying a preset: when active and a preset is applied, any Bezier handle "before" the preset is preserved and set to separated. I think it makes sense to use the state of that same "separate" button when pasting keys. Activate the button, paste your keys, and any "before" handles are preserved. The button also applies when copying keys via cltr+shift+drag. We can do all that in the next release (4.1.28-beta).