Basic Setup
Empty Emitter
- Create empty emitter
- RMB > FX > Niagara Emitter
- Select New emitter > Next
- Templates > Empty
- This is a mostly blank emitter template, with some minimal initial setup
- Give a name NE_emitter
- Double click to open the editor
- RMB > FX > Niagara Emitter
- Spawn some particles
- Click the Emitter update + > Spawn Rate
- This will continously spaw particles
- Set the spawn rate to 10
- This will spawn 10 particles / second
- By default the will have a life of 5 second, as set by Particle Spawn > Initialize Particle > Point Attributes > Lifetime : 5
- they will not move, since they have no velocity
- Click the Emitter update + > Spawn Rate
- Add Velocity
- Click Particle Spawn + > Add Velocity
- Note that you will get a warning that we have som unmet dependencies
- We need to add:
- Solve Forces and Velocity in the Particle Update section
- Apply Initial Forces in the Particle Spawn section
- We need to add:
- Click on the Fix this on the right hand side of Solve Forces and Velocity.
- Altough the missing dependencies warning will go away when we click the first error, maybe it is a good idea to add the secong dependency aswell?
- On the Particle Spawn + click and add Apply Initial Forces
- Note that you will get a warning that we have som unmet dependencies
- Now (if the timeline is playing) we will se the particles rise straight up. So lets introduce som variation to the velocity.
- Add random velocity
- Click the Add velocity Module (Particle Spawn > AddVelocity)
- In the Details panel click the down arrow on the right side of Add Velocity > Velocity parameter.
- In the search field start typing “ran…” select Random Vector
- Click on the right hand side arrow of Vector Scale and start typing “ran…” select Random Range Float.
- Set the Maximum to 100
- Click Particle Spawn + > Add Velocity
- Set Particle Size
- Initial Size
- Select the Particle Spawn > Initialize Particle then in the details panel click Sprite Attributes > Sprite Size Mode select uniform.
- The we can click the arrow on the right hand side and start typinf “ran…” and select Random Range Float we can enter min 10 and max 20.
- I guess we can use the Random Uniorm choice of the Sprite Size Mode to get the same result?
- Note we need this to be set in order to set the size of the particle based on the age in a later stage.
- Particle Update size
- Then we can scale the particle based on the normalized age
- On the Particle Update click the + and start typing “scale…” select
- Initial Size
Sprite Smoke
A prechewed run-through of the sprite smoke tutorial.
- Sprite Smoke
- Note:
This example uses the M_smoke_subUV Material, which can be found with the Starter Content. - Create the System and Emitter
- Create a folder, name it “Niagara_fx” (or something else) and step into it.
- Create a Niagara System, RMB click > FX > Niagara System (or choose from create basic assets at the top of the popup menu)
- Select New system from selected emitters. Then click Next.
- Under Template, select Simple Sprite Burst. Click the Plus sign icon (+) to add the emitter to the list of emitters to add to the system. Then click Finish
- Name the new system “NS_smoke”. Double-click to open it in the Niagara Editor.
- We can rename the emitter instance by selecting it and pressing F2 (or slow LMB double click) name it “FX_Smoke”
- Change Renderer Settings
- Setup Material
- On the emitter node select *Render > Sprite Renderer to open it in the Selection panel
- Set Material : “M_smoke_subUV” material
- Set Sub Image Size : 8 (x) and 8 (y)
- Since we use a Spritesheet / SubUV material we nede to set the num row & colums (u & v)
- Set Sub UV Blending Enabled : Checked
- Drag the SmokeSystem into your Level.
- Note When you make a particle effect, it is always a good idea to drag your system into your Level. This gives you a chance to see every change and edit in context. Any changes you make to the system automatically propagate to the instance of the system in your Level.
- Setup Material
- Edit the Emitter Update Group Settings
- Note First you will edit the modules in the Emitter Update group. These are behaviors that apply to the emitter, and that update each frame
- Remove Instantaneous module
- In the System Overview, click the Emitter Update group to open it in the Selection panel.
- You want to create a constant column of smoke, not a burst of smoke. Click the Trashcan icon to delete the Spawn Burst Instantaneous module.
- Add Spawn Rate
- Add the Spawn Rate module to the Emitter Update group.
- Clicking the + icon (at the top-right of the Emitter update in the selection panel)
- Start typing “spa…” select Spawn Rate
- Set the Spawn Rate to 50.
- Add the Spawn Rate module to the Emitter Update group.
- Set Infinite loop
- Note We set the sim to run on an inifinite loop while building the effect. This gives us more time to evaluate how the settings are affecting the effect.
- In the Emitter State module click the dropdown for Life Cycle Mode and select Self.
- Click the dropdown for Loop Behavior and select Infinite.
- Particle Spawn Group Settings
- Note These modules contain behaviors that apply to particles when they first spawn.
- Life span
- On the emitter overview select Particle Spwan
- In the Selection panel expand Particle Spawn > Initialize Particle > Point Attributes
- If we wanrt some more random life we can set:
- Lifetime Mode : Random
- Lifetime Min : 2
- Lifetime Max : 3
- Sprite Size
- Whith the Particle spawn still in the selection panel expand the Sprite Attributes section.
- Sprite Size Mode : Random Uniform
- Uniform Sprite Size Min : 75
- Uniform Sprite Size Max : 200
- Sprite Rotation
- In the Sprite attributes section set:
- Sprite Rotation Mode : Direct Normalized Angle (0-1)
- This means the rotation angle is calculated as a number between 0 and 1 instead of degrees
- Sprite Rotation Angle click on the down arrow on the right side and start typing ‘rand…’ click on Random Range Float (General > Dynamic Inputs > Random Range Float)
- Minimum : 0.25
- Maximum : 0.5
- Sprite Rotation Mode : Direct Normalized Angle (0-1)
- In the Sprite attributes section set:
- Initial Velocity
- Click on the + icon on the right side of the Particle Spawn (in the selection panel, tip you can also click on the emitter node in the system overview)
- In the popup dialog start typing ‘vel…’ select “Add Velocity”
- Click the dropdown arrow on the right side of the Velocity attributes (the three xyz floats) and start typing ‘rand…’ select Random Range Vector
- Minimum : X: 0, Y: 0, Z: 50
- Maximum : X: 1, Y: 1, Z: 200
- Shape Location
- This controls the shape & origin where particles are spawned.
- Add a shape location.
- Click on the + icon on the right side of the Particle Spawn, start typing “sha…”” select Shape Location
- Set Properties
- Shape Primitive : Sphere
- Sphere Radius : 64
- Sphere Distribution : Random
- SubUV Animation
- Note
- According to the epic tutorial this was added in the section Particle Spawn. When doing this I did not get the sub uv sampling to work, I guess since the uv coord is sampled once during the spawn and does not update over time. To get this to work I added it to the Particle Update section instead.
- Since we use a spritesheet, we want to control which section of the spritesheets gets sampled in order to give the illusion of movement.
- Click on the + icon and start typing “sub…” select Sub UV Animation
- Set the Range
- Make sure that the Sub UV Animation Mode is set to linear.
- Set the Start Frame Range Override to 0
- Set the End Frame Range Override to 63
- We do this since 8 x 8 = 64 frames
- Set the Sprite Renderer
- This was not set in the tutorial, but in order to not get any warnings I needed to do the ollowing.
- In the tab Sub UV Animation > Spritre Renderer > source > Sprite Renderer I needed to set which sprite renderer to use. I set this to the same renderer we used under the tab Render. Note that it is possible to rename the renderer.
- Note
- Particle Update Group Settings
- Here we add modules that apply behaviors to particles, and update each frame.
- Note that I added the Sub UV Animation module here instead of the Particle Spawn
- We can add curl noise, drag, acceleration and so on
- Note
- If you want to be able to reuse the smoke emitter in your system, you can save it as a separate asset. Click the Gear icon to open the Emitter Settings menu, and select Create Assset From This. The result is an independent Niagara Emitter asset.
- Sprite Smoke epic tutorial
- Note:
Sequencer
Tips
- Add Niagare System (NS) to sequencer
- First drag and drop the NS to the outliner
- From the outliner, drag and drop the NS to the sequencer
- Click on the + and add Niagara Component
- Click on the + and add Niagara System Life Cycle Track
- Change the system life cyclke to Desired Age No Seek
Custom Parameter
Here is a way to add a user parameter that you can animate in sequencer
- Add user parameter
- Open up the niagara system
- Click the User Parameters tab on the left side of UI
- Lets add a float parameter
- Click the plus icon on the right side of the User Parameters UI
- Make New > Common > Float
- Give it a descriptive name, like Particle Amount
- Note that you can delete parmeters by RMB clicking them in the User Parameters panel > delete
- Connect the parameter to emitter
- Lets connect the user parm to the spawn rate of the emitter
- Select the Spawn Rate module of the Emitter Update section.
- If you do not have one add it
- In the selection Panel, click on the down arrow on the right side of the spwan rate parameter
- Start typing “Part…” select Particle Amount (Link Inputs > User > Particle Amount)
- Animate parm in sequencer
- Drag and drop NS (niagara system) to the viewport
- Create a level Sequence
- Add the niagara system to the sequencer
- Add Niagara Component track
- Click the + icon to the right on the NS track Components > NiagaraComponent0
- Add a Niagara System Life Cycle Track
- Click the + icon to the right on the Niagara Component track Tracks > Niagara System Life Cycle Track
- Add the User Parameter
- Click the + icon to the right on the Niagara Component track Tracks > Particle Amount Parameter Track
Cache
- Niagara Cache Track
- Add the niagara Cach plugin
- Add Niagara Cach Track
- Click the + icon to the right on the Niagara Component track Tracks > Niagara Cache
- Note that the life cycle track needs to start on the same frame (or earlier) than the cahce track
- Click on the red dot to cahce
- Note
- I needed to remove the Cache berfore rendering with the MRQ, if I did not do this I got really weird results.