Create Smoke Trails in Ue4
How to create smoke trails in Ue4 using Niagara
This tutorial will show you how to create a ribbon-based smoke trail in Niagara. Typical use cases for this type of smoke range from candle smoke to cigarette smoke and more.
Let’s start!
Result
The final result will look like this:
Material
Overview:
To create the material, you need two textures: one Perlin noise and one gradient. Feel free to use these two in your material:
The material setup is pretty simple.
Input the panner node into the noise texture to create a slight movement.
With the RaiseBlackLevelsByPercentage node, the black/darker parts of the noise will be raised to a brighter value based on the intensity input. We do this to have control over the maximum opacity of the smoke.
Then, multiply the outcome of the RaiseBlackLevelsByPercentage node with the alpha channel from the Particle color node to give the particle system control over the smoke opacity.
The last step is to subtract the noise texture with the gradient map. To get a curvy border which is more smoke like rather than a straight border.
Niagara particle system
Create a new Niagara System called SmokeTrail_System. Inside the Niagara system editor, create a new Niagara emitter called SmokeTrail.
Overview
Try to recreate this emitter in your project. I will define and explain the settings of each module in the next step.
Settings
Depending on how you want your smoke to look, you have many parameters to change. I will list the parameter values of the smoke trail you see at the start, but I recommend to play with the parameters to get the result you exactly want.
— SpawnRate —
SpawnRate: 50
Higher spawn rates result in smoother looks and more curling.
— Initialize Ribbon —
Lifetime: 5
Ribbon Width: 3
— Add Velocity —
Velocity: Vector (X: 0| Y: 0| Z: 30)
Higher velocity decreases curling.
— Color —
— Vortex Force —
Vortex Force Amount: 1000
Vortex Axis: Vector(X: 0.0| Y: 1.0| Z: 0.0)
The vortex force helps to add more realistic-looking curls to the flame. Try to deactivate it, and see the difference!
— Vector Noise Force —
Force Amount: 100
Applies a random jitter to the position for each ribbon each frame.
Higher values(+1000) bring a bad result very fast.
— Curl Noise Force —
The curl noise is where most of the magic happens.
Noise Strength:
As the smoke should get curlier in its later life. Simply use a curve to increase the noise strength as time passes.
Scale Curve: 2650
A multiplier of the curve e.g. the strength
Noise Frequency: 0,09
Higher values result in more but smaller curls.
Noise Quality / Cost: Baked(High)
Depending on the platform you develop on, you may want to choose a lower setting.
Pan Noise Field: Vector(X: 0.2 | Y: 0.2 | Z: 0.0)
Movement of the noise — creates a more random look
— Scale Velocity —
Decrease the velocity of the smoke over time. As the velocity decreases, the curl noise has more effect.
— Ribbon Renderer —
Material: Select the previously created material
That’s all!
As I said, take some time and play with the various parameters to get the result you wish. Sometimes small changes will change the look completely.
Do you want to learn more about game development?
Check out https://gameinspired.substack.com/ and bring yourself to the next level!