Website powered by

2D Fire Effect in Unreal Engine 5

Based on a concept by Bone Dust: https://www.artstation.com/artwork/d8ZbeW

This piece was a bit of a journey! I wanted to recreate the 2D style of Bone Dust's original concept art, but in 3D. Modelled in Maya and detailed in Zbrush, before being brought to life in Unreal Engine. The end result combines multiple material and post-process effects to capture the idiosyncrasies of 2D.

The most fun part was figuring out how to do the fire effect. I knew I wanted it to be driven by a particle system, to allow it to react and flow as the character moves, but I couldn't use a normal sprite renderer because of how I wanted the fire effect to be additive against the background. The final system uses a Niagara system each for the head and shoulders with no sprite or mesh renderer. A blueprint associated with each system collects data on each particle in the system and passes it along to a manager blueprint that compiles data from all three systems and writes it to a RenderTarget. Each pixel in the RenderTarget image represents a particle, with X, Y and Z positions being stored in the RGB channels, and the particle's size being stored in the Alpha channel. Finally the RenderTarget is read by a post-process effect to turn the particle data into a screen-space metaball effect. One of the perks of this method was that I was able to feed velocity data from the blueprint actors back to the particle systems to allow them to react dynamically to changes in speed, behaving differently as the character runs or jumps.

Video demonstrating the effect in motion and some of the parameters available.

Node graph for the post-process effect that draws the fire.

Node graph for the post-process effect that draws the fire.