• Ian Harvey

The Mill SDGM • Real-Time FX • Switching Gears to Niagara

Updated: Mar 9, 2020

After arriving at the camera frustum issue, I've decided to switch my approach while I still have time. I'm going to be creating my burnout from a Niagara-centered approach, instead of my earlier goal of a Houdini-centered. I started by watching this episode of the Unreal Live Stream on Youtube to get acquainted with the Niagara workflow.

I used the M_Smoke_SubUV texture in the starter content to begin shaping the plume.

To make the smoke trail the car I set the emitter to world space instead of local space.

Local Space particle emission vs world space

The particles are switching their sub-UV texture incorrectly. They're holding on each sub-image for a few seconds and then suddenly switching. I was able to fix this by defining my sub-UV in the material editor instead of in Niagara.

Defining rows and columns using the material editor's FlipBook node.

Now the texture is running through the sequence properly. The popping is just a matter of the frame range of the smoke puff being too short. I'll need to generate a puff from Houdini that's as long as the shot. There's also an issue with smoke puffs floating away from the main body of the burnout plume—I'll fix this after I generate my own puff.

The setup that I have right now is only using a single emitter, but I plan on adding multiple emitters (and multiple plume sprites) for different aspects of the burnout. This will help with variation.


Smoke Puff

I created a simple Pyro sim for this smoke puff to replace the default Unreal smoke that I've been using. The movement is based on multiple layered turbulence and disturbance microsolvers. Gravity is disabled. I was mainly focused on creating realistic edge detail. This smoke puff may change. I'd like for there to be more definition in the center which could be achieved by increasing the shadow density on the volume shader.

Smoke Puff DOP Network

To attach the burnout particle system to the car I'm using notifies in the animation editor. This is a useful because it allows me to set the start and end frame of the simulation.

My notifies are circled in blue.

Here's the current shape of the simulation in Unreal for shot 6.

I am using layered emitters in the Niagara particle system, as Todd had suggested. This worked to great effect. The smaller the sprite the more dramatic the movement. I reduced the drag force for each reduction in size.

Each sequential Burn emitter has both a size and drag reduction.

Once the render is compressed into a video the burnout looks completely crushed into a indistinct blob. I think I need to compensate for this by making the volume density even more defined than I would intuitively choose.

Shot 5:


Last week the burnout was lacking low frequency billowing and swirling. TO accomplish this I added larger sprites with a low frequency curl noise force. The noise strength varies between 1 - 3.

I added a slightly smaller but still fairly larger sprite emitter that didn't have any curl to create the effects of some hang-time. This looked quite nice, so I decided to do it at each detail level. Small, medium, and large sprite now have have at least a single level of curl noise.

Here's what it looks like so far:


This weekend I added the appearance of velocities being transferred from the car movement to the burnout simulation. I say appearance because there isn't any real interaction happening between the two. Todd had mentioned that back in the day when the were using sprite based smoke for offline rendering they would often use a series of wind forces to shape their smoke simulations. I took this to heart, and used various levels of wind to get the burnout to appear to follow the motion of the car. This proved to be quite art-directable.

I generated a different version of the burnout simulation for each shot, as they would need to be subjected to different wind forces.

I then added the wind force to the particle update.

Velocity for shot 5:


I added the burnout to shot 4 of our project at the suggestion of our mentors. for this shot I had to make a single tweak to the particle system, making the pinball a collision object. This is so that when the pinball passes through the smoke trail, the smoke would react properly to the ball.

This has been an incredibly valuable learning experience for me. I can't believe how much I've learned about Unreal's Niagara particle system in the past 5 weeks. Thanks to all of our Mill NY mentors for guiding us.


Recent Posts

See All

The Mill SDGM • Real-Time FX R&D • Burnout

I've been working entirely in Houdini this week. It's been fun to analyze different types of burnouts. They can be wispy thin trails, thick billowy plumes, or anything in between. I'd like to edge on

The Mill SDGM • ACES R&D

A pinball machine is a very vibrant and dynamic lighting environment. There are areas with deep blacks and areas with saturated highlights. We'll need a lot of flexibility to push the realism of our l