Nate wroteIt looks super cool! Tweeted! Also it's glad to hear it wasn't hard to implement.
When mixing 2 animations, Spine interpolates between 2 bone rotations using the shortest direction. The 2 animations are often rotating a lot, and sometimes during the mix the shortest direction pops to the other side. This popping during mixing can be jarring.
In Spine 3.5 we use much more sophisticated mixing, where the first frame of the mix the direction of the shortest rotation is recorded, then that direction is used for the entire mix. This makes for rotation mixing without popping. It isn't done when using the Timeline API, only when using the AnimationState API which I assume you don't use. It's a bit complex, but could probably be ported without having to worry about the exact details. If you are interested, here is the code which is used instead of
RotateTimeline#Apply
:
spine-runtimes/AnimationState.cs at master
Thanks for the tweet and for your positive feedback!
In the Slate-Spine integration I really only used Apply() (previously Mix()) and neither Timeline nor AnimationState APIs, since what I wanted to do was just to sample/playback a Spine animation on the skeleton.
Thanks for the extra info. I will take a look at that.
BinaryCats wroteI was going to make this
:mmm: maybe I still will :devil:
Do this work in real time?
i.e. you select a spine object and you can see the current state of the animationstate (tracks, animations ect)? Or does this just allow you to put together cutscenes? i.e. a visual editor for queueing animations?
I was going to do the latter
Hey,
I am a bit confused by your question.
As you can see from the gif, animations are sampled and previewed in real-time.
Can you please clarify what you mean?
Cheers.