Sponsored By

Using Vertex Animation Texture for Complex Visual Effects

Oleksandr Horiuk

December 8, 2023

3 Min Read

Vertex Animation Texture (VAT) is a technology that involves storing animations within textures to be used later in shaders. Instead of using heavy animation files with skeletal rigs or frame-by-frame caches for animations, VAT employs static geometry and a set of textures containing information about the position and rotation changes of each vertex of this geometry. This animation, transmitted via textures and played by shaders, is highly optimized as it appears entirely static to the CPU, thus reducing processor load.In the domain of special effects, VAT shines as a valuable tool. Beyond its optimization capabilities, VAT allows for the transmission of intricate animations, such as cloth simulations or even fluid dynamics. The latter, in particular, is challenging to realize through skeletal rigs and almost insurmountable in the case of fluid animations. The reason being, fluid geometries change substantially in each frame, with varying polygon counts and vertex positions. In essence, when faced with tasks that involve crafting complex effects like realistic fluids or intricate geometric destruction, vertex animation emerges as an invaluable solution.One of the projects where this technology played a pivotal role was in the development of the game Gord. Throughout this project, our primary objective was to create an array of combat effects, along with non-combat ones, for six characters. Each of these characters represented a spirit associated with one of the elements: air, earth, water, and fire. This work brought forth various technical and creative challenges.

For instance, consider the character Foehn in the game, who commands icy winds. One of the effects that demanded the use of VAT was Foehn's death animation. Foehn ascends, his body starts to ice over, and then he plummets to the ground, shattering into countless pieces upon impact. Implementing the sacrifice effect posed yet another complex challenge. According to the artists' vision, Foehn uses his icy breath to freeze his target, causing them to crack and break into fragments, which Foehn subsequently absorbs. The primary challenge here was of a technical nature, as the victim of this attack could be any in-game character. Whether it was a warrior, a fisherman, a man, a woman, or even a child, the effect needed to be procedural, ensuring it functioned seamlessly with any geometry. This was achieved by combining several different techniques. We developed a shader function to create the freezing and cracking effect, which seamlessly integrated into the character's material and adapted to different body forms. To create the frozen body parts, we fragmented one of the character models into differently sized pieces. Additionally, we incorporated various particle effects, such as snow and gusts of wind. All these elements culminated in a cohesive final effect.Another character featured in the game, the Bog Mimic, presented a challenge that was nearly impossible to surmount without VAT. The Mimic specializes in setting up ambushes, imitating various in-game resources. Consequently, it can spring an unexpected attack on players who were merely gathering resources with their villagers. Our task was to devise and implement a morphing effect that could seamlessly transition from any resource (be it iron ore, coal, wheat, or others) into the combat form of the Mimic. This effect warranted a multi-stage transformation. First, a splash effect was created to make the resource vanish, leaving behind a gooey substance that flowed around. Subsequently, this goo coalesced to form the body of the Mimic, and it was the splash and goo effects that were brought to life through vertex animation.The game also featured other, less intricate effects that were crafted using VAT, including various blood splatters, slime effects, and more.

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like