In the Animation Systems module, I implemented the following systems and animation techniques:
Entity Component System
An entity component system (ECS) was implemented to take advantage of Data-Orientated Programming techniques.
Components represent pieces of data ranging from 2D sprites, Bones, Skins and Animations to name a few.
Components are stored in their respective tightly packed arrays, in an effort to improve the performance during the game's update pass.
Blend Tree
A blend tree was implemented allowing the user to construct complex animation states with minimum code. The tree supports the following nodes:
Additionally, the blend tree supports multiple data attributes, controlling different aspects of the animations.
2D Armature Parser
An armature parser was implemented capable of reading and extrapolating armature data from a Json file format.
The parser reads from a file containing all the necessary data to perform 2D skeletal animation, such as bones, skin and frame data, then stores the data into components.
2D Sprite Animation
.