Hi, think of the Spine Runtime as loading animation from a 3D model manually with the "Play Animation" node, not with the built in state machine.
You can load a Spine animation and set the loop to true with the "Loop" variable in the "Set Animation" node.
About the state machine, that's true, my solution was to get a State machine lib (this is the one I got for this purpose: https://www.unrealengine.com/marketplace/gc-fsm) and coded in blueprints so it automatically changes states (and animation) automatically. For example, if velocity Z is below 0, then it executes the falling animation.
This is the state machine I created with GS FSM for the character:
And this is inside the run state, every tick I update the variables from the character:
It looks complex but it's actually simple:
- Update a set of variables on the tick function on the character
- Check the variables in each state so you know when you need to change state (not all states need to check all the variables)
- Change the animation every time the character change its state, loop it if you need it (in my case, I need run and idle looped but not falling)
I recommend GC FSM (the library I used) because it has visual feedback in case you need to debug, and because it's really easy to use, but you can use any state machine library.
Hope it helps.