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
  • 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
  • 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
      • 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
    • 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
  • 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

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.
    • 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.
      • 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
      • 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.
    • 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

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.