Niagara VFX Basics · Easy · 14 min

Control Particles: Velocity, Color and Size Over Life in Niagara

Make particles do what you want — set their lifetime, color and size, fling them with velocity, pull them with gravity and drag, then fade and shrink them over their lifetime by drawing simple curves.

LevelEasy Time~14 min EngineUE 5.4+ Hands-on13 checkpoints

Before this: The Niagara Editor Tour: Emitters, Modules and the Particle Stack, Build Your First Spark or Fire Effect from a Niagara Template

By the end, you'll be able to
  • Set a particle's lifetime, starting color and starting size with Initialize Particle
  • Push particles in a direction with Add Velocity and pull them with gravity and drag
  • Fade and shrink particles over their lifetime using Scale Color and Scale Size curves
  • Read and edit a Niagara curve confidently

From 'particles exist' to 'particles behave'

In the earlier lessons you spawned particles and toured the Niagara editor — the tool where you build particle effects in Unreal. Right now your particles probably just sit there, or drift in one boring lump. This lesson is where you take the wheel.

Every particle has a short life. The trick to good effects is deciding what happens during that life: how long it lasts, what color and size it starts at, which way it flies, what forces tug on it, and how it changes as it ages. Sparks shoot out fast and fade. Smoke rises slowly and swells. Embers fall under gravity and dim. You get all of that from a handful of modules and two little graphs called curves.

We'll work inside a single emitter. A 'module' is just one stackable behaviour you drop onto a particle (like 'add velocity'); an 'emitter' is the recipe that holds those modules. Don't worry if that's fuzzy — you'll see it click as we go.

Five words you'll keep meeting

Tap a card to flip it

Before you start

You'll move faster if these are true. Tick them off:

  • A Niagara System open in the Niagara editor with at least one emitter (a system made from the Fountain or a Sprite template is perfect)
  • You can find the System Overview (the node map of emitters) and the Selection / stack panel that lists an emitter's modules
  • The Preview viewport is visible so you can watch changes live as you make them
  • You know that the particle stack runs top to bottom: Emitter Spawn/Update at the top, then Particle Spawn, then Particle Update

Spawn vs Update — the one idea that explains everything

Niagara splits a particle's life into two groups of modules, and knowing which is which saves you hours of confusion.

Particle Spawn runs ONCE, at the instant a particle is born. This is where 'starting' values live — Initialize Particle (lifetime, color, size) and Add Velocity (the initial push) belong here.

Particle Update runs EVERY FRAME for the particle's whole life. This is where ongoing behaviour lives — gravity, drag, and the 'over life' curve modules that fade and shrink particles as they age.

Rule of thumb: if it's a one-time starting value, it's a Spawn module. If it changes the particle continuously, it's an Update module.

Shape one particle's life, start to finish

Do these in order inside your emitter's stack. After each '+' you'll search a little menu — type the words in quotes to find the module fast. Watch the Preview update as you go.

  1. 1Set lifetime, color and size in Initialize Particle

    In the emitter stack, find the 'Initialize Particle' module under Particle Spawn and click it to show its settings on the right.

    Set 'Lifetime' to a fixed value like 2 (seconds) so particles live long enough to watch. Set 'Color' to something bright. Set 'Sprite Size' (or 'Uniform Sprite Size') to a clearly visible value.

    These are the values each particle is BORN with — change them and the Preview updates immediately.

    TipMany fields have a small dropdown to pick 'Random Range' instead of a single number. Giving Lifetime a range like 1 to 2 instantly makes the effect look less robotic.

  2. 2Give particles a push with Add Velocity

    Still under Particle Spawn, click the '+' on the Particle Spawn group and add 'Add Velocity' (sometimes shown as 'Add Velocity in Cone' or 'Add Velocity from Point').

    Set a velocity so particles actually move. A cone mode sprays them outward in a fan; a simple linear velocity sends them all one way. Increase the speed and watch them shoot.

    Velocity is measured in Unreal units per second — bigger numbers, faster particles.

    TipAdd Velocity in Cone is the friendliest starting point: one slider for spread angle, one for speed. Widen the angle for a spray, narrow it for a jet.

  3. 3Pull them down with a Gravity Force

    Now move to the Particle Update group (it runs every frame). Click its '+' and add 'Gravity Force'.

    Leave it at the default and watch: particles now arc and fall instead of flying in straight lines. That arc is velocity (the push) being bent by gravity (the force) over time.

    You can change the gravity strength or direction in the module if you want a moon-like float or a sideways pull.

    TipSeeing a graceful arc is the proof that Spawn and Update are working together: the Spawn push sets the launch, the Update force shapes the flight.

  4. 4Slow them down with a Drag force

    Add a 'Drag' module to the Particle Update group as well.

    Raise the Drag amount and the particles decelerate — fast at first, then easing to a near-stop, like throwing confetti into still air.

    Drag is what turns a hard, gamey spray into something that feels like it's moving through air.

    TipTiny drag values go a long way. Nudge it up gently — too much drag freezes everything in place almost instantly.

  5. 5Fade them out with Scale Color over life

    In Particle Update, add 'Scale Color' (sometimes called 'Color' with a curve, or 'Scale Sprite Color'). This multiplies the particle's color over its lifetime using a curve.

    Find the Alpha (opacity) curve and drag its right-hand point down to 0. Now particles start fully visible and fade to nothing as they die — no hard pop-out.

    The curve's horizontal axis is the particle's age from 0 (born) to 1 (dead); the vertical axis is the multiplier.

    TipFading alpha from 1 to 0 over life is the single most common 'this looks pro now' change. Almost every soft effect does it.

  6. 6Shrink (or grow) them with Scale Size over life

    Also in Particle Update, add 'Scale Sprite Size' (a size-over-life module driven by a curve).

    To make sparks shrink as they fade, draw the curve from 1 at the left down to 0 at the right. To make smoke billow, do the opposite — start small and grow.

    Combine shrinking size with fading alpha and a single boring dot becomes a believable, dying ember.

    TipSize and color curves read the SAME 0-to-1 age axis, so a particle that's half-faded is also half-shrunk. They stay in sync for free.

Handy moves inside the curve editor

  • Left-click Select a key (point) on the curve
  • Left-drag Move the selected key — change its time (left/right) or value (up/down)
  • Double-click Add a new key on the curve where you click
  • Right-click Open key options: delete, or set the interpolation (linear / cubic / constant)
  • F Frame the whole curve in the editor so you can see all of it
  • Ctrl Z Undo a curve edit you didn't mean to make

Two ways to make a value change over life

Use a curve when you want a shape: ease in, hold, then fall off; or pulse; or any non-straight change. Curves let you place multiple points and control the easing between them.

This is what Scale Color and Scale Size use, and it's the approach to reach for most of the time.

You added Gravity Force but your particles fly off in a perfectly straight line and never arc. What's the most likely cause?

ChallengeTry it yourself

Build a 'dying ember' look from your current emitter: each particle should shoot upward and outward, arc back down under gravity, slow slightly from drag, and fade AND shrink to nothing by the end of its life. Aim for short, snappy lifetimes so it reads as sparks, not smoke.

Hint 1

Initialize Particle: give Lifetime a small Random Range (try 0.7 to 1.5) and a warm starting color.

Hint 2

Add Velocity in Cone under Particle Spawn, pointing up, with a decent speed and a medium spread.

Hint 3

Particle Update: add Gravity Force for the arc, then a small Drag for the slowdown.

Hint 4

Particle Update: Scale Color — drag the Alpha curve's end point to 0. Scale Sprite Size — draw the curve from 1 down to 0.

QuizCheck yourself

1Which module sets a particle's starting lifetime, color and size?

2On a Niagara 'over life' curve, what does the far-left edge of the horizontal axis represent?

3You want particles to fade out smoothly instead of popping away when they die. What do you do?

The four behaviour modules, side by side

Tap a card to flip it

Finished the steps?

Mark this lesson complete

We'll remember it on your Academy page and unlock the next lesson below.

Next lesson →Trigger Niagara VFX from a Blueprint: Spawn Effects on Demand

Questions beginners ask

My particles never fade even though I added a Scale Color curve. Why?

Two usual culprits. First, make sure you edited the Alpha (opacity) channel of the curve, not just RGB — fading RGB darkens the color but the sprite can stay opaque. Second, confirm Scale Color is in the Particle Update group; in Particle Spawn it only applies once at birth and never animates.

What units is velocity measured in?

Unreal units per second (1 unit is 1 centimeter by default). So a velocity of 200 moves a particle two meters every second. There are no hidden multipliers — bigger numbers simply mean faster particles.

Should I use a fixed lifetime or a random range?

A random range almost always looks better. Real sparks, smoke and dust don't all die at the same instant. Even a small range (say 0.8 to 1.4 seconds) breaks up the uniform 'everything vanishes at once' look that screams 'computer'.

What's the difference between velocity and a force?

Velocity is the particle's current speed and direction. A force (gravity, drag) is something that changes that velocity every frame. Add Velocity sets the launch; forces in Particle Update continuously bend it, which is what produces arcs and slowdowns.

Get the next lessons as they land

New Academy lessons, UE5 tips and tool releases — straight to your inbox. No spam, unsubscribe anytime.

Report a bug