Today, we will be using the Niagara system in Unreal Engine 5 (UE5) to create a character with a fire effect. Using this system, we can create fire simulations of high quality, all in real-time.

This blog assumes you are somewhat familiar with using UE5. 

Anyways let's get started.

Setting up Niagara

Create a project with the Third Person template, as it will come with a character ready with animations. Set Quality Preset to Scalable, especially if you don't have a high-end PC. This will make the graphics quality scalable for mid or low-spec PC.

New Project Settings Window

Enable Niagara Fluids plugin, if you haven't already.

Enable Niagara Fluids Plugin Location

Create a new Niagara System and select a template as it will make our job easier. I have selected the Grid 3D Gas Fire as I don't want any smoke in my particle simulation, and I am going for a superhero look. But you can select any preset that you would like.

Create New Niagara System

Open the Niagara particle system. Select ParticleSourceEmitter. This is where you modify the particle emitter behaviour.

Modifying Fire Emitter

We want the particle to envelop our character. So, add an Initialize Mesh Reproduction Sprite. This will spawn the particle in the character's shape selected in the Preview Mesh option. Also, add an Update Mesh Reproduction Sprite to update the particle on any animation changes of the character.

If you can't see any changes, you may need to change the Whole Mesh LOD option value to 0. But if you are using the default character from the third person template like I am, it will work fine.

ADD Mesh Reproduction Sprite

You can reference the image above for any additional modules I have used. They are self-explanatory.

I have also tweaked the Scale Sprite Size value with a curve to modify the scale of the sprite. In Spawn Rate, I am using a value of 20000. Make sure you don't increase it by too much as it will slow down the simulation, and a low value won't look as good.

Spawn Rate And Scale Sprite Size Settings

Select Emitter Summary under Grid3D_Gas_CONTROLS_Emitter. Here you can modify the fire particle behaviour. I decided to turn Gravity off, so the particles don't all go upward.

Gravity and Emitter Summary

Here is the result you should end up with:

FireFX Preview

Adding the Effect and Tweaking

Now to add the effect on your character. Open the third-person character blueprint and add your Niagara fire effect there.

FireFx In Character Blueprint

Make sure your transform is at the origin. Turn off ShowOverlays if you don't wanna see the bounding box of the fire simulation.

Transform And Overlays Settings In Blueprint

Let's playtest it in the scene.

FireFx Issue With Movement

The effect works fine when idle, but the fire acts weird when you move the character. This can be solved quickly by changing the Velocity Mult value to a negative float. Change the value to how much fire trail you want. I am using a value of -0.1.

Fix FireFx Movement Issue


Finally, the effect is done. It may take a while to compile. Anyways, here is what the final effect looks like:

FireFx Demo

I changed the material to a transparent one to better showcase the effect. But in the next blog post, I will teach you how to create a fire material shader, so the effect is even more enhanced.

That's it for this post. As you have seen, high-level stimulation can be achieved in real-time using Niagara. The system is very versatile, allowing you to do all sorts of effects. Hope you enjoy creating different effects on your character.

If you want to learn other advanced fire effects, check out the next part of this blog series, Textured Fire Effects using Niagara.
Thank you for reading.