Feature Summary
In Project Jupiter, a player engages in combat by sending an army consisting of 3 dragons and a troop type to an enemy tile. The battle takes place entirely behind the scenes, outputting the final result and a detailed summary of losses, tactics, and crucial moments. To make the results more accessible, the Combat Visualization system would parse the battle outcome; taking pre-made sequences for certain moments, adding the correct troops and dragons, and assembling them in a chronological order.
System Development
From a Tech Art perspective, the challenge consisted of creating a modular system accessible to artists which could be handed off to Engineering for procedural assembly. Each modular piece was called a Sequence and could consist of a resolution (victory, defeat, draw), exposition (the armies assembling), or a highlight (a crucial moment in the battle we wanted players to see). This way the entire Visualization would tell a story, from the beginning of the conflict, through the highlights, to the final resolution.
Artist Workflow
Each modular piece would be authored by an artist using the unity Timeline package. All camera movements, actor animations, vfx, and lighting would exist on a linear multi-track playback. Each component would exist within a prefab that could be instantiated at runtime. Artists could then add our animation clips and other assets as if using Adobe Premiere, previewing their work in real time without having to run the game. The challenge, then, was converting this handmade scene, with specific dragons and troops, into an open ended procedural prefab.
Tooling
The solution was to convert all the animated troops and dragons into Signals, an asset which fires a specific Event, instead of hard coded troops and dragons. All troop types could be assembled with a Attack_01 Event with their specific animation (an archer attacks differently than a swordsman, etc). This Event is fired from the Signal, placed on the Timeline Asset. This conversion was automated using a custom tool where all the artists had to do was add their prefab and click "Convert to Signals". The result could be used by Engineering in the final system.