Specialization: Animation system

Why did I choose this specialization?

I have always been interested in animation systems and how they work. I saw this specialization as an opportunity to learn more about how animation systems work and to create my animation system. I also wanted to learn more about the math involved in animation systems and how to use it to create a system that can blend animations in ways I was never able to do in Unity.

What is the goal of this specialization?

The goal of this specialization is to create an animation system that is based on the features of Unity's animation system.


State machine

The state machine editor is built using ImGuiNodeEditor

Live Update

The editor displays the animation controller in real-time and allows the user to change the state machine while the game is running, and see the changes reflected in the game immediately

Multiple layers

Multiple layers can be used to blend and combine animations

Full control over weights for overriding animations

The weight of each layer can be controlled to blend the output animation of each layer

None state

The none state blends down the weight of a layer so a layer can be turned off and then blended back into an animation without the character jumping to the animation


The blackboard is used to store variables that can be accessed by the state machine


Transitions are used to move between states in the state machine


1D blend spaces for blending between animations based on variable


Sockets can be used to attach objects to the character

Features that I wanted to add

Additive layers and animations

Additive layers can be used to add animations on top of the base animation

Animation events

Animation events can be used to trigger events in the game

Animation sync

Sync animations when transitioning between animations to sync stuff like footsteps


In conclusion, this specialization has been a great learning experience for me. I have learned a lot about how animation systems work and the math involved, and I came to realize that there is still a lot of untapped potential in a lot of modern animation systems. I am excited to continue learning and to use this knowledge to add to my animation system to make it even better in the future.

Special thanks

I would like to thank my animators for their paciance and help with making a user friendly animation system, that had the features they wanted.

Alias Lundh, Alfred Nilsson

Click to go back