Shader-based Animations (WPO)

Animation demonstration (mesh swapped, but shader/material remains the same)

Animation demonstration (mesh swapped, but shader/material remains the same)

Technical breakdown of Vertex colour and math applied

Technical breakdown of Vertex colour and math applied

Scanline render from 3dsMax (initial reference for visual style in a realtime engine)

Scanline render from 3dsMax (initial reference for visual style in a realtime engine)

Idle state (same material on both units - static meshes)

Idle state (same material on both units - static meshes)

Possible deformations (same material on both units - static meshes)

Possible deformations (same material on both units - static meshes)

One of my final university submissions: creation of stylised characters. The idea was to create a series of cute looking animals with the simplest design in mind (model as little as possible). Initial topology was therefore kept very simple and then smoothed using subdivision. That way I could do quick iterations. Animation was supposed to be done via morph targets, but that require a new series of targets for each animal.

So I decided to attempt to animate them using shaders, more specifically World Position Offset (WPO). That allowed me to apply the same material on all of my meshes (which ended up being static instead of skeletal) and relying ONLY on Vertex colours to mask out body parts. And because I kept my initial geometry very primitive, application of vertex colours extremely quick. The material uses NO additional HSLS and Has multiple WPO triggers for different body parts. Those parts are being driven by vector parameters inside the character blueprint.