Animation Systems

One of the modules at university was oreintated around animation programming and systems for 2D and 3D.

For the animation programming module we learned a variety of techniques that were then combined and implemented in a final application to demonstrate our understanding and evaluate our implementation. The application can be split into two parts, 2D and 3D, for easier discussion.

2D

The 2D part of the application involves animated sprite sheets and 2D bone animations. The application reads in all relevant bone / sprite sheet data and processes them according to their type to be loaded and viewed. The user can then use the drop down menu to select from the 2D animations loaded in.

3D

The 3D part of the application involves a mixamo model with some mixamo animations that are loaded in and rigged. From this you can build an animation tree through the use of nodes. These nodes can be linked up through their input and outputs to create a complex animation system dependant on conditions and variables. There are a variety of nodes demonstrating different animation techniques as detailed below:

Clip Node

The most basic node, it just reads in a given animation clip and plays it accordingly.

Linear Blend Node

Given two input nodes will linearly blend (lerp) between them based on a given value between 0 and 1.

2D Linear Blend Node

Similar to the Linear blend node but blends between 4 clips, think of it as a blend of 2 linear blend nodes.

Transition Node

Transitions from one input to the second input over a specified time if specified conditions are met.

Partial Blend Node

Same as a linear blend node, however a bone mask can be specified and the blend between two inputs will only be applied to the bones specified within the mask.

RagDoll Node

As with the Partial Blend Node a bone mask can be specified and once toggled on those bones will "RagDoll" and experience gravity.

IK Node

Just as above a bone mask can be specified, once specified you can move and pose the specified bones through the use of Inverse Kinematics.