Hi Goliard, first of all, thank you so much for these tests and your feedback; it's truly invaluable.
I've identified the bug. The `stop` ("Once action") method resets the animation using the trick `animation='none'` on every line of dialogue where the character speaks. Three lines of dialogue = three restarts = animation played three times. The fix: use an `animationend` event to mark the element as `ss-done` after the first playback, and then don't trigger it again.
In short, i fixed it in the upcoming version 2.0, but in the meantime, I recommend using only one line of dialogue when using an animation with the `stop` function.
Version 2.0 will almost triple the number of lines of code (which is already substantial at over 12,000 lines), so it will take at least one or two months to be released. This is where we're really getting into the most complex functions to code. Since it's a monolithic codebase and any change can create a snowball effect and new bugs, every addition now requires thorough testing.
I'll keep you updated on the progress!
Regarding RenJS's approach to sprite sheets, which was quite innovative when it was released, I must admit I find it uninteresting. It complicates an animation principle that has already proven itself, even within tools like RPG Maker.
I understand the principle, certainly, but either we stick with classic sprite sheet animation or we use Inochi2D or Live2D; we don't create a slightly improved sprite sheet that can ultimately be recreated with more frames.
But playing them backwards as well as forwards is a good idea, i take note about this one !