Hello, this has been around since Spine 4.0, I hope now we can do something to improve this.
Sort of a follow-up from here.
@warmanw @stikkanimate
Say I have an intro
animation that needs to end in an infinite loop
animation (or maybe that just needs to last a certain number of frames, staying still after the objects have finished appearing).
I animate the intro with stuff appearing, I'm happy with the result and want to start animating the subsequent loop. This loop will need the first keyframe to be the same as the last one of the intro, to have a smooth transition, so the first thing I want to do is keying everything at the end of my intro.
I use Key Shown
, but Spine automatically creates curved interpolations that result in breaking the animation. The further you go with the last keyframe, the more broken it becomes. Solution is to go finding each unwanted interpolation's first keyframe and convert it to linear.
Video of this behaviour:
In this example the rig is very basic with just 3 bones. Imagine having 20, 50, 100 bones to correct, and you cannot bulk select all the keyframes at once, because each bone and transform timeline has its own timing.
With 3 characters each having 20 bones each it's easy to add up.
This has been pretty impactful in the past for my projects in terms of time spent, but since it's technically correct behaviour I tried to get used to it. But the more I go on the more I think it's not good to lose time on these monkey tasks. 😄
Proposed solution:
I thought we could have a different command to be used, instead of replacing the behaviour of the existing one.
Something like Key Shown Hold
, or Key Shown Linear
that is the same exact thing, but checks if the previous keyframe is a curve. If it is, it converts it to linear.
If it's used on top of an existing keyframe, it doesn't do the check.