Tactics Café Devlog #4 - Tonimation System
Added 2021-05-11 17:00:05 +0000 UTCHeya guys o/
It's been a month since the last devlog, and while I was actually able to get the new animation system up and running only about 10 days after the last devlog, I wasn't able to create a new devlog till now but hey, we're back!
So, what have I been up to? Pretty much all my time has been devoted to this new animation system that I smugly named the "Tonimation" system. So I will go into detail about it in this devlog!
Why did you drop the previous system?

Gif: using Timeline to play a character's animation
The previous system was using the "Unity Timeline" which is the built-in tool in Unity for creating game cut-scenes & cinematic sequences. While a powerful tool, it was built specifically to work only with pre-instanced objects within the world, meaning that for it to work correctly, you need to have the "actors" already in the scene.
This did not work with my game. Tactics Café is a roguelike with each map & character being procedurally made/instanced at run time, and not knowing who or what would be available at any moment, I was not able to adapt the Timeline system to work with varying amount of actors within a single animation. So the few weeks I spent on that system had to go the bin, but I, Giorno Giovanna, had a dream. I rolled up my sleeves, bunkered down and started to work on my own animation system from scratch.
What is the Tonimation System?
I needed an animation system that could at the minimum:
- Handle varying amount of actors within an animation
- Have the attacker face the enemies when using a skill
- Call different animations on actors at the desired time
- Instance Visual Effects at runtime on the correct actors
- Manipulate the camera relative to the actors' positions
- Work on a keyframes & frames per second structure
And while there are more features I planned to add later on, I felt that this was a good starting point. And I'm glad to tell you guys that within 10 days of starting on that, I was able to get it working!

Gif: Skill animation made using the Tonimation system
As you see above, there it is! Currently you can do all that was listed in what I wanted to make and it works at runtime with as many or as few actors needed!

Image: Tonimation stored as a Scriptable Object
Each Tonimation is stored as a list of keyframes which are called at runtime at the appropriate time. At keyframes, you can call actions called "Actoni" which allow you to manipulate various aspects, such as calling animations on the caster or on enemies hit by it, instantiating effects on actors or on tiles hit, and manipulate the camera. A state machine then runs through these at runtime and is able to play it back at any point without having to worry about objects already being in the world, unlike the timeline system.

Gif: Animation playing at different speeds
An additional thing that I was able to add in due to creating the system from scratch was playback speed. Each skill animation is able to be played at 1x, 2x and 4x speed! This'll be an option the player can set to change animation speed (or even skip them)!

Gif: Skill Animation working during combat. P.S. the slimes haven't been setup with animations yet
Overall I believe that the Tonimation system was a HUGE sucess!! I was able to set out and create an animation system from scratch in 10 days, when I had believed it'd have taken me over a month. You might be wondering so why did the devlog take so long to come out? Well, originally I had planned to release this devlog in late april but as you guys know from other posts, had a bunch of issues with my hand and that delayed the schedule on all my work. I felt that devlogs were lower priority over stuff like the NSFW comics and patreon art, and especially when compared to commissions.
What's Next?
Well, next is a tough one, I plan to rework the current skill system next. At the moment all calculations are done within a single function, which is pretty inefficient, and skills are quite restricted in the type of interactions they can make.
The rework will allow me to both create more varied skills and be more efficient as each type of skill will get it's own smaller function. It might be a while before the next devlog as I'm also currently working on a super secret project for patreon that should be hitting sometime within the next month but once that is over, we'll be back in business!

On a last note, thank you everyone for your patience and support throughout the last month and during my issues with my hand. I really appreciate you all helping me out on this journey as a game dev and an artist.