Animations

Since all projects after the first required animations I added the functionality to play animation systems in our engine.

Several helper functions were added to the system to allow someone to add or remove an animation, adding and stacking several additive animations and automatically blending from one animation to another by just setting a new animation on the system.

Animation blending

Seeing as the first game were to use a lot of different abilites and movement states I added simple animation blending to transition between various animations.

 

I chose an arbitrary value of 10 % of the new animations duration to be the time it took to linearly blend over into the new animations.

Interpolation

As we had an ability that would slow down enemies (and to future proof the system in case of eventual slow motion effects) the animations were changed to interpolate between frames based on deltatime. 

 

This allowed the animations to be smooth no matter how much we slowed down the animation speed. 

Additive animations

To add a bit of variation to the characters various states I added the ability to use another animation as an additive animation.

 

This meant characters could tap their foot, shake their head or shrug their shoulders without our artists having to make an entire animation from scratch.

Bone attachments

Functionality to attach other transforms to animations were added to allow attaching weapons, particle effects and so on to our characters.

 

This proved quite useful in our third game that attach a bow to our characters hands, with an arrow needing to swap between the bow and hand at the appropriate times.


To simplify the process of making more animations I added support to view them in our showroom. Here you could adjust speed, add additive animations and display bone position and rotation.