Considering the importance of natural motions and animations in the current generation of games, and more specifically a game such as Futsal in mind, having an efficient tool for these seems like a must. In Futsal, players’ acts according to their situations and statuses can be so diverse and unpredictable. Hence, It is necessary to generate a suitable dynamic animation based on players and ball’s situations and statuses. Therefore, a basic pose and a general animation should be combined with subsidiary animations and modified based on situation parameters for a final result.
To make and visualize these modification rules and define different situations and statuses, an in-house animation tree editor inspired by Unreal Engine’s AnimTree Editor system was built. This editor is node-based and uses some predefined basic nodes for the ease of use, and improving the throughput of the artists.
My role was to develop a new animation layering and sequencing system, which takes the value of parameters defined by artists in the editor such as walking state, player health, stamina, etc from the gameplay sub-system as input, and calculate a [frame number, blending weight] vector for each animation sequence and send it to the rendering engine. The most important aspect of this sub-system is its performance, as it’s being used by all characters in the game.