- Fallback/Return keys
Based on the example you provided, it seems like the issue could potentially be resolved by separating the animations and consolidating the ones that manage the same attachments onto a single track. For instance, it’s common practice to dedicate specific tracks to different parts of a character — such as using track 2 for eye animations and track 3 for mouth animations. That’s why I had trouble understanding why this approach wouldn’t work in your case.
Additionally, methods like setEmptyAnimation
or setToSetupPose
can reset the pose to the setup pose from the previous animations when needed at runtime.
To better understand your specific use case and why this functionality might be necessary, it would be helpful if you could create a small sample project demonstrating the issue and send it to us via email: contact@esotericsoftware.com
- Animation pointing sliders
This proposal is certainly creative, but I have some concerns from a practical standpoint. Specifically, I’m worried that introducing a feature where a slider indirectly selects an animation by index would add a layer of indirection that could be difficult to manage in larger projects.
Currently, Spine doesn’t provide an easy way to see what value is keyed on a slider without selecting the keyframe and manually inspecting its value. That means if a slider is used to determine which animation is active, it could become difficult to understand why something is happening just by looking at the timeline.
In contrast, managing animations via AnimationState at runtime keeps the animation flow more transparent: you can clearly see which animations are playing on which tracks, and the control logic remains centralized within the engine, where dependencies are easier to manage.
You mentioned that it might be better handled on the engine side, and I agree. If anything, I think it would be helpful if the Spine Editor's preview tools allowed for more advanced testing — such as playing back individual tracks at specific times. But embedding this kind of logic directly into animations could lead to confusion, especially when trying to maintain or debug complex setups.
I don’t mean to dismiss your idea at all, but from our perspective, we try to prioritize features that will be broadly useful across as many use cases as possible. We're still not entirely sure whether the feature you're suggesting would benefit a large number of users, so if you have any additional context or supporting information, we’d be happy to hear it.