Animation Systems

Overview

In the Animation Systems module, I implemented the following systems and animation techniques:

    Animation Systems

  1. Entity Component System
  2. Blend Tree (3D Animation)
  3. 2D Armature Json Parser
  4. 2D Skeleton Animator
  5. Sprite Json Parser
  6. Sprite Animator

    Animation Techniques

  1. Procedural Physics Ragdoll
  2. Linear Blending
  3. Bi-Linear Locomotive Blending
  4. Additive Blending
  5. Supports Animation Switching (2D)

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.

Snippet of code registering components.

Blend Tree

A blend tree was implemented allowing the user to construct complex animation states with minimum code. The tree supports the following nodes:

  1. Animation Clip
  2. Linear Blend
  3. 2D Blend
  4. Additive Blend
  5. Ragdoll
  6. Output

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.

Graphics Programming in Direct X11

2D Sprite Animation

.

FOOTER

This is where all the legal stuff goes I reckon.

POPULAR TAGS

Engine Programming Graphics Programming Software Engineering C++ C# HLSL Direct X Game Programming GLSL

Rhys Duff Portfolio