Skip to main content

🔥 Creating Particle Effects

Now that you understand Niagara's architecture, it's time to build real effects. This lesson teaches you to create fire, smoke, and spark effects from scratch—the building blocks for countless game visuals. You'll learn essential techniques for spawning, movement, appearance, and the materials that make particles look great.

🎯 Learning Objectives

By the end of this lesson, you will be able to:

  • Create particle effects from an empty system
  • Configure spawn behavior (rate, burst, location)
  • Set up particle movement (velocity, gravity, drag)
  • Create and apply particle materials
  • Build fire, smoke, and spark effects

Estimated Time: 45-55 minutes

Prerequisites: Lesson 9.1 (Niagara Overview)

📑 In This Lesson

Effect Building Blocks

Every particle effect is built from the same fundamental elements: spawning (how particles are created), movement (how they travel), and appearance (how they look). Mastering these building blocks lets you create any effect.

Spawning: Creating Particles

Particles need to be born before they can do anything. Niagara offers several spawn modes:

Spawn Type Module Use Case
Continuous Spawn Rate Fire, smoke, fountain, rain
Burst Spawn Burst Instantaneous Explosion, impact, muzzle flash
Per Distance Spawn Per Unit Footsteps, tire tracks, trails
Event-Based Spawn from Event Secondary effects, chain reactions

Spawn Location

Where particles appear matters as much as how many. Common location modules:

  • Point: All particles spawn at emitter origin (default)
  • Sphere: Random positions on/within a sphere
  • Box: Random positions within a box volume
  • Cylinder: Random positions on/within a cylinder
  • Mesh Surface: Spawn on the surface of a mesh
  • Skeletal Mesh: Spawn on bones of an animated character

Movement: Velocity and Forces

Movement makes particles feel alive. Key movement modules:

Initial Velocity (Particle Spawn):

  • Sets starting direction and speed
  • Can be uniform, random range, or cone-shaped
  • Common: upward for fire, outward for explosions

Forces (Particle Update):

  • Gravity Force: Pulls down (or any direction)
  • Drag: Slows particles over time (air resistance)
  • Curl Noise Force: Adds organic, swirling motion
  • Point Attraction: Pulls toward a location
  • Vortex: Spins particles around an axis
Common Particle Forces Gravity Pulls down Drag Slows over time Curl Noise Organic swirl Vortex Spin around axis

Figure: Common forces that affect particle movement.

Appearance: Visual Properties

How particles look depends on several factors:

Size:

  • Initial size in Particle Spawn
  • Scale over lifetime (grow or shrink)
  • Random variation for natural look

Color:

  • Initial color in Particle Spawn
  • Color over lifetime curves (fade, color shift)
  • Alpha (transparency) for fading out

Rotation:

  • Initial rotation (random for variation)
  • Rotation rate (spinning particles)
  • Face camera or align to velocity

Material:

  • Texture and shader that renders the particle
  • Crucial for final appearance
  • Covered in detail next section

Lifetime

Every particle has a lifetime—how long it exists before dying. This affects:

  • How far particles travel
  • How "over lifetime" curves are evaluated
  • Overall density of the effect

💡 Lifetime + Spawn Rate = Particle Count

The number of particles visible at once equals (roughly) Spawn Rate × Lifetime. Spawning 50/sec with 2-second lifetime means ~100 particles. Balance these for performance and visual density.

Particle Materials

Materials are what make particles look like fire instead of colored squares. A good particle material handles transparency, texture animation, and responds to particle data like color and alpha.

Material Requirements

Particle materials need specific settings:

  1. Blend Mode: Usually Translucent or Additive
  2. Shading Model: Unlit (particles don't receive lighting)
  3. Two Sided: Often enabled for billboards
  4. Used with Niagara Sprites: Check in Usage

Blend Modes

Blend Mode Effect Use For
Translucent Standard transparency Smoke, dust, clouds
Additive Adds color (brightens) Fire, sparks, magic, glow
Modulate Multiplies (darkens) Shadows, dark smoke
Alpha Composite Pre-multiplied alpha Complex transparency
Blend Mode Visual Comparison Translucent Darkens overlap Additive Brightens overlap Fire (Additive) Glowing core Smoke (Translucent) Blocks background

Figure: Additive brightens (fire), Translucent darkens/blocks (smoke).

Simple Particle Material Setup

Here's how to create a basic particle material:

  1. Right-click in Content Browser → Material
  2. Name it M_Particle_Fire
  3. Open and set these properties in Details:
    • Blend Mode: Additive
    • Shading Model: Unlit
  4. In Usage, check Used with Niagara Sprites

Material Graph for Particles

A typical particle material connects:

Texture Sample → Multiply → Emissive Color
                     ↓
Particle Color → Multiply ↗

Texture Alpha → Opacity (if translucent)

Key Nodes:

  • Texture Sample: Your particle texture (smoke puff, spark, etc.)
  • Particle Color: Receives color from Niagara (essential!)
  • Multiply: Combines texture with particle color
Basic Particle Material Graph Texture Sample T_Smoke_Puff RGB Alpha Particle Color Multiply A × B Material Output Emissive Color Opacity (Additive ignores Opacity)

Figure: Particle material multiplies texture by Particle Color from Niagara.

Particle Textures

Good particle textures have these qualities:

  • Soft edges: Fade to transparent at edges
  • Centered: Main shape in the middle
  • Alpha channel: Defines shape transparency
  • Power of 2: Dimensions like 64, 128, 256, 512

Common textures:

  • Radial gradient: Bright center, fades outward (fire core, glow)
  • Soft circle: Fuzzy dot (smoke puff, dust)
  • Star/spark: Sharp points (sparks, magic)
  • Noise: Organic variation (smoke detail)

✅ Starter Content Has Particles

If you enabled Starter Content when creating your project, check StarterContent/Particles for ready-to-use textures and materials. These include smoke puffs, sparks, and radial gradients.

Creating a Fire Effect

Fire is one of the most common particle effects. It combines upward movement, color shifting from yellow/white to orange/red, and additive blending for that glowing look. Let's build one step by step.

Fire Effect Characteristics

  • Movement: Upward velocity, slight randomness, maybe curl noise
  • Color: Hot core (white/yellow), cooler edges (orange/red), fades out
  • Size: Starts small, grows slightly, shrinks at end
  • Material: Additive blend, radial gradient texture
  • Spawn: Continuous rate from a point or small area

Step-by-Step Fire Creation

1. Create the System

  1. Right-click → FX → Niagara System
  2. Select New system from selected emitter(s)
  3. Choose Empty emitter template
  4. Name it NS_Fire

2. Add Spawn Rate

  1. In the emitter stack, find Emitter Update
  2. Click + → search for Spawn Rate
  3. Set Spawn Rate: 30

3. Initialize Particles

  1. In Particle Spawn, click +
  2. Add Initialize Particle
  3. Configure:
    • Lifetime: Random Range (0.8 - 1.2)
    • Sprite Size: Random Range (20 - 40)
    • Color: Will set via Scale Color

4. Add Velocity

  1. In Particle Spawn, add Add Velocity
  2. Set velocity mode to Add Velocity in Cone (or manual)
  3. Configure:
    • Speed: Random Range (50 - 100)
    • Cone Axis: (0, 0, 1) — upward
    • Cone Angle: 15-20 degrees

5. Add Update Behaviors

  1. In Particle Update, add these modules:
    • Gravity Force: Set to (0, 0, -50) — light upward fight
    • Drag: 0.5-1.0 to slow particles
    • Scale Sprite Size: Curve that grows then shrinks
    • Scale Color: Color gradient over lifetime

6. Configure Color Over Lifetime

In Scale Color module:

  1. Click the color bar to open curve editor
  2. Set gradient:
    • 0%: White/light yellow (255, 255, 200), Alpha 1.0
    • 30%: Bright orange (255, 150, 0), Alpha 1.0
    • 70%: Red/dark orange (255, 50, 0), Alpha 0.7
    • 100%: Dark red (100, 0, 0), Alpha 0.0
Fire Color Over Lifetime 0% (Birth) 30% 70% 100% (Death) Hot core Flame body Fading

Figure: Fire particles shift from hot white/yellow to cool red as they age.

7. Add Renderer

  1. In Render, ensure Sprite Renderer exists
  2. Set Material: Your additive fire material
  3. Or use a default radial gradient material temporarily

8. Test and Refine

  1. Preview in the Niagara editor
  2. Adjust spawn rate for density
  3. Tweak velocity for height
  4. Modify size curve for shape
  5. Fine-tune colors for desired look

⚠️ Fire Needs Additive Material

Fire looks wrong with translucent blending—it darkens instead of glows. Always use an additive material for fire, sparks, and magical glow effects. If your fire looks like dark circles, check the material blend mode.

Smoke and Sparks

Fire rarely exists alone. Smoke rises from flames, and sparks fly off. These supporting elements complete the effect and add visual interest.

Smoke Effect

Smoke differs from fire in several ways:

Property Fire Smoke
Blend Mode Additive (glows) Translucent (blocks)
Color Bright: yellow → red Dark: gray → transparent
Size Small → medium Medium → large (expands)
Speed Moderate upward Slow upward, drifting
Lifetime Short (0.5-1.5s) Longer (2-4s)
Spawn Rate Higher Lower

Smoke Settings

  • Spawn Rate: 5-15 particles/sec
  • Lifetime: 2.0 - 4.0 seconds
  • Initial Size: 30-50
  • Size Over Life: Grow to 2-3× initial size
  • Velocity: (0, 0, 30-60) slow upward
  • Color: Dark gray (60, 60, 60) → transparent
  • Add Curl Noise: For organic movement
  • Material: Translucent, soft circle/puff texture

Spark Effect

Sparks are small, fast, short-lived particles that add energy:

  • Spawn Mode: Burst (20-50 at once) or low continuous rate
  • Lifetime: Very short (0.3 - 0.8 seconds)
  • Initial Size: Small (2-8)
  • Velocity: High speed, random directions, upward bias
  • Gravity: Normal gravity (-980) so they arc and fall
  • Color: Bright orange/yellow, fades quickly
  • Material: Additive, star or bright dot texture
Complete Fire Effect: Three Emitters Emitters Fire (Additive) Rate: 30, Life: 1s Smoke (Translucent) Rate: 8, Life: 3s Sparks (Additive) Rate: 5, Life: 0.5s Combined = realistic fire! ← Fire Smoke ↑

Figure: A complete fire effect combines fire, smoke, and spark emitters.

Combining Emitters

To create a complete fire effect:

  1. Create or open your fire Niagara System
  2. In System Overview, click + Add Emitter
  3. Add an empty emitter, rename to "Smoke"
  4. Configure smoke settings (translucent, slow, expanding)
  5. Add another emitter, rename to "Sparks"
  6. Configure spark settings (additive, fast, short-lived)
  7. All three emitters play together as one system

💡 Render Order Matters

Emitters render in the order they appear in System Overview (top to bottom). For fire, render order should be: Smoke (back) → Fire (middle) → Sparks (front). Drag emitters to reorder them.

Hands-On: Building a Complete Fire Effect

Let's build a professional-quality fire effect with three emitters: flames, smoke, and sparks. This exercise reinforces everything covered in this lesson and gives you a reusable fire system.

🎯 Exercise Goal

Create a complete campfire effect with realistic fire particles, rising smoke, and flying sparks. You'll set up materials, configure three emitters, and combine them into a polished system.

Part 1: Create Materials

Step 1: Create Fire Material

  1. Right-click in Content Browser → Material
  2. Name it M_Particle_Fire
  3. Open and configure Details panel:
    • Blend Mode: Additive
    • Shading Model: Unlit
  4. In Material Graph:
    • Add Texture Sample node (use a radial gradient or soft circle)
    • Add Particle Color node
    • Add Multiply node
    • Connect: Texture RGB → Multiply A, Particle Color → Multiply B
    • Connect: Multiply → Emissive Color
  5. In Usage section, check Used with Niagara Sprites
  6. Apply and Save

Step 2: Create Smoke Material

  1. Right-click → Material, name it M_Particle_Smoke
  2. Configure:
    • Blend Mode: Translucent
    • Shading Model: Unlit
  3. In Material Graph:
    • Add Texture Sample (soft circle/puff texture)
    • Add Particle Color
    • Add Multiply for RGB
    • Connect: Texture RGB × Particle Color RGB → Emissive Color
    • Add another Multiply for alpha
    • Connect: Texture Alpha × Particle Color Alpha → Opacity
  4. Check Used with Niagara Sprites, Apply and Save

Step 3: Create Spark Material

  1. Duplicate M_Particle_Fire
  2. Rename to M_Particle_Spark
  3. Optionally change texture to a star or bright dot
  4. Keep Additive blend mode

✅ Texture Tip

If you don't have particle textures, you can use the default white texture and rely on color alone for testing. Or check Starter Content → Particles for ready-made textures.

Part 2: Create the Fire Emitter

Step 4: Create Niagara System

  1. Right-click → FX → Niagara System
  2. Select New system from selected emitter(s)
  3. Choose Empty template
  4. Name it NS_Campfire
  5. Open the editor

Step 5: Configure Fire Emitter Spawn

  1. Rename the emitter to Fire
  2. In Emitter Update, add Spawn Rate
  3. Set Spawn Rate: 35

Step 6: Configure Fire Particle Spawn

  1. In Particle Spawn, add Initialize Particle
  2. Configure:
    • Lifetime: Uniform Random (0.6 - 1.0)
    • Sprite Size Mode: Random Uniform
    • Sprite Size Min: 15
    • Sprite Size Max: 30
    • Color: Leave default (will use Scale Color)
  3. Add Add Velocity module
  4. Configure velocity:
    • Velocity: (0, 0, 80) — or use Add Velocity in Cone
    • If using cone: Speed 60-100, Cone Angle 15°, Axis (0,0,1)
  5. Add Sphere Location module (optional, for spawn area)
  6. Set Sphere Radius: 20

Step 7: Configure Fire Particle Update

  1. In Particle Update, add Gravity Force
  2. Set Gravity: (0, 0, -100) — light downward pull, fire still rises
  3. Add Drag module, set Drag: 1.0
  4. Add Scale Color module
  5. Configure color gradient:
    • Click the color bar to open curve editor
    • Add keys at 0%, 25%, 60%, 100%
    • 0%: RGB (255, 255, 200), Alpha 1.0 — hot white/yellow
    • 25%: RGB (255, 180, 50), Alpha 1.0 — orange
    • 60%: RGB (255, 80, 0), Alpha 0.8 — red-orange
    • 100%: RGB (100, 20, 0), Alpha 0.0 — dark red, faded
  6. Add Scale Sprite Size module
  7. Configure size curve: Start at 0.5, peak at 1.2 around 30%, end at 0.3

Step 8: Configure Fire Renderer

  1. In Render, select Sprite Renderer
  2. Set Material: M_Particle_Fire
  3. Enable Sort Particles if available
Fire Emitter Module Stack Emitter Update Spawn Rate: 35 Particle Spawn Initialize Particle Add Velocity Sphere Location Particle Update Gravity Force Drag Scale Color Scale Sprite Size Render Sprite Renderer

Figure: Complete module stack for the Fire emitter.

Part 3: Create the Smoke Emitter

Step 9: Add Smoke Emitter

  1. In System Overview, click + Add Emitter
  2. Select Empty template
  3. Rename to Smoke
  4. Drag it above the Fire emitter (renders behind)

Step 10: Configure Smoke

  1. Emitter Update:
    • Add Spawn Rate: 8
  2. Particle Spawn:
    • Initialize Particle: Lifetime 2.5-3.5s, Size 30-50
    • Add Velocity: (0, 0, 40) slow upward
    • Initial Color: RGB (80, 80, 80), Alpha 0.6
  3. Particle Update:
    • Gravity Force: (0, 0, 20) — slight upward buoyancy
    • Drag: 0.5
    • Curl Noise Force: Strength 30-50 (for organic motion)
    • Scale Sprite Size: Grow from 1.0 to 2.5 over lifetime
    • Scale Color: Gray → Transparent (Alpha 0.6 → 0.0)
  4. Render:
    • Sprite Renderer with M_Particle_Smoke material

Part 4: Create the Sparks Emitter

Step 11: Add Sparks Emitter

  1. Add another Empty emitter
  2. Rename to Sparks
  3. Position at the bottom (renders on top)

Step 12: Configure Sparks

  1. Emitter Update:
    • Add Spawn Rate: 5 (continuous trickle)
    • Or use Spawn Burst with timer for periodic bursts
  2. Particle Spawn:
    • Initialize Particle: Lifetime 0.4-0.8s, Size 2-5
    • Add Velocity in Cone: Speed 150-250, Cone Angle 45°, Axis (0,0,1)
    • Initial Color: RGB (255, 200, 50), Alpha 1.0
  3. Particle Update:
    • Gravity Force: (0, 0, -980) — normal gravity, sparks fall
    • Drag: 2.0 — air resistance
    • Scale Color: Bright yellow → orange → transparent
  4. Render:
    • Sprite Renderer with M_Particle_Spark material

Part 5: Test and Refine

Step 13: Preview in Editor

  1. Watch all three emitters working together
  2. Use timeline to scrub and see full lifecycle
  3. Rotate view to check from all angles

Step 14: Balance the Effect

Adjust these if needed:

  • If fire looks too thin: Increase spawn rate or size
  • If smoke is too dense: Reduce spawn rate or alpha
  • If sparks don't fly high enough: Increase initial velocity
  • If effect is too tall: Reduce velocity or lifetime

Step 15: Place in Level

  1. Save the Niagara System
  2. Drag NS_Campfire into your level
  3. Position it where you want fire
  4. Play to test in-game

✅ Exercise Complete!

You've built a complete fire effect with:

  • Fire emitter: Additive, color-shifting flames
  • Smoke emitter: Translucent, rising, expanding smoke
  • Sparks emitter: Fast, falling, short-lived particles
  • Custom materials: Proper blend modes for each type

This system can be duplicated and modified for torches, explosions, and more!

Troubleshooting

⚠️ Common Issues

Fire looks like dark circles:

  • Material blend mode is Translucent instead of Additive
  • Change to Additive in material settings

Particles are invisible:

  • Check that material is assigned in Sprite Renderer
  • Verify "Used with Niagara Sprites" is checked in material
  • Check particle size isn't 0

Colors don't change over lifetime:

  • Ensure Scale Color module exists in Particle Update
  • Check that the color curve has multiple keys
  • Verify Particle Color node exists in material

Smoke renders in front of fire:

  • Reorder emitters in System Overview
  • Smoke should be above Fire (renders first/behind)

Sparks go straight up instead of arcing:

  • Add or increase Gravity Force
  • Use normal gravity (-980) for realistic arcs

Bonus Challenges

  1. Embers: Add a fourth emitter with slowly rising, fading orange dots
  2. Light: Add a Light Renderer to fire for dynamic illumination
  3. Wind: Add a lateral force to make fire lean in one direction
  4. Size Variation: Create small, medium, and large fire variants
  5. Looping Sound: Add an Audio Component with fire crackling
  6. Blueprint Control: Expose parameters to control fire intensity

Summary

In this lesson, you've learned to create particle effects from scratch. Understanding the building blocks—spawning, movement, appearance, and materials—empowers you to build any effect you can imagine.

Key Concepts

Effect Building Blocks: Every particle effect combines spawning (how particles are created), movement (velocity and forces), and appearance (size, color, material). Master these fundamentals to create any effect.

Spawning: Use Spawn Rate for continuous effects (fire, rain), Spawn Burst for instant effects (explosion), or Spawn Per Unit for movement-based spawning (footsteps). Location modules control where particles appear.

Movement: Initial velocity sets direction and speed. Forces like Gravity, Drag, and Curl Noise modify movement over time. Balance these for realistic or stylized motion.

Materials: Blend mode is crucial—Additive for glowing effects (fire, sparks, magic), Translucent for blocking effects (smoke, dust). Always connect Particle Color node to receive color from Niagara.

Fire Effect: Upward velocity, color gradient from white/yellow to red/transparent, additive material. Combined with smoke (translucent, slow, expanding) and sparks (fast, gravity-affected, short-lived) for complete effect.

Module Quick Reference

Module Stage Purpose
Spawn Rate Emitter Update Continuous particle creation
Spawn Burst Emitter Update Instant particle burst
Initialize Particle Particle Spawn Lifetime, size, initial values
Add Velocity Particle Spawn Initial movement direction
Sphere/Box Location Particle Spawn Spawn area shape
Gravity Force Particle Update Downward (or any) pull
Drag Particle Update Slow particles over time
Curl Noise Force Particle Update Organic swirling motion
Scale Color Particle Update Color/alpha over lifetime
Scale Sprite Size Particle Update Grow/shrink over lifetime

Effect Recipes

Effect Key Settings
Fire Additive, upward velocity, yellow→red gradient, short lifetime
Smoke Translucent, slow upward, gray→transparent, grows over time
Sparks Additive, high velocity + gravity, very short lifetime, small size
Explosion Burst spawn, outward velocity, fire + smoke + debris
Magic Glow Additive, curl noise, vibrant colors, soft edges
Dust Translucent, slow movement, brown/tan, low alpha

Best Practices

  • Match blend mode to effect: Additive for glowing, Translucent for obscuring
  • Use Particle Color node: Required for Niagara to control material color
  • Balance spawn rate and lifetime: Together they determine particle count
  • Layer multiple emitters: Combine simple emitters for complex effects
  • Order emitters correctly: Background renders first (top of list)
  • Test with and without materials: Debug behavior before appearance
  • Use curves for organic feel: Avoid linear changes for natural motion
  • Start with templates: Modify existing effects to learn faster
Particle Effect Building Process 1. Plan What effect? Additive or Translucent? 2. Spawn Rate or Burst? Location shape? 3. Move Velocity + Forces Gravity, Drag, Noise 4. Look Color, Size Material Additive Material Fire, Sparks, Magic, Glow Brightens • Hot colors • Transparent black Translucent Material Smoke, Dust, Clouds, Fog Blocks • Cool colors • Uses alpha

Figure: Four-step process for creating any particle effect.

What's Next?

Now that you can create particle effects, the next lesson covers Triggering VFX. You'll learn to spawn effects from Blueprints, respond to gameplay events, and control effects at runtime—essential skills for integrating VFX into actual gameplay.

Knowledge Check

Question 1

What blend mode should you use for fire particles?

Correct answer: C — Additive blend mode adds color to the scene, creating a glowing effect. Fire, sparks, magic, and other luminous effects need Additive to look right. Translucent would make fire look like dark circles.

Question 2

Why is the "Particle Color" node essential in particle materials?

Correct answer: B — The Particle Color node receives color and alpha values from Niagara's Scale Color module. Without it, your particles won't respond to color changes set in the emitter, and color-over-lifetime effects won't work.

Question 3

What's the formula for approximate particle count at any moment?

Correct answer: B — Particle count ≈ Spawn Rate × Lifetime. If you spawn 50 particles per second and each lives 2 seconds, you'll have roughly 100 particles visible at once. This helps balance visual density and performance.

Question 4

Which module adds organic, swirling motion to particles?

Correct answer: C — Curl Noise Force adds organic, turbulent motion that makes effects like smoke look natural rather than mechanical. It uses noise functions to create pseudo-random swirling patterns.

Question 5

In a fire effect with multiple emitters, what should the render order be (top to bottom in System Overview)?

Correct answer: C — Emitters render in order from top to bottom, meaning top renders first (behind). Smoke should be behind fire, and sparks should be in front. So: Smoke (top) → Fire (middle) → Sparks (bottom).

Question 6

What makes smoke particles different from fire particles?

Correct answer: B — Smoke uses Translucent blend mode (blocks/darkens rather than glows), moves slower than fire, has longer lifetime, and typically grows larger over its lifetime. These differences create the characteristic look of rising smoke.

Question 7

What should you check in the material's Usage settings for Niagara particles?

Correct answer: C — "Used with Niagara Sprites" must be checked in the material's Usage settings for the material to work with Niagara particle systems. Without this, the material won't render on sprite particles.