【Unreal Engine】UE5のNiagara入門:テンプレートを改造して爆発エフェクトを出す

作成: 2026-07-20

UE5のNiagaraを図解。System / Emitter / Moduleの3階層、スタックの実行順、テンプレートからの作り方、よく触るモジュール、マテリアルとの関係、そしてBlueprintのSpawn System at Locationで鳴らすところまで。

攻撃が当たっても、相手のHPが減るだけで何も起きない。敵を倒しても、その場から静かに消えるだけ。処理としては正しく動いているのに、遊んでいて手応えがありません。

足りないのは エフェクト です。UE5でこれを担当するのが Niagara です。ただ、Niagaraを開くと見慣れない項目が縦に並び、どこを触ればいいのか分からないまま閉じてしまいがちです。この記事では、Niagaraの3階層の構造を整理したうえで、 テンプレートを改造して、Blueprintから出す ところまでを解説します。ゼロから組む方法には踏み込みません。

System・Emitter・Moduleの入れ子構造と、そこから飛び散るパーティクルの図

この記事でわかること

  • System / Emitter / Module の3階層が何を分担しているか
  • スタックの 実行順 (Spawnは1回、Updateは毎フレーム)
  • テンプレートから作って改造する のが現実的な理由
  • よく触るモジュール( Spawn Rate / Initialize Particle / Add Velocity / Gravity Force
  • 粒の見た目を決めているのは マテリアル
  • Spawn System at LocationSpawn System Attached の使い分け
  • 実践: 敵を倒した瞬間に爆発エフェクトを出す

Sponsored

Niagaraの3階層:System / Emitter / Module

Niagaraで最初につまずくのは、機能の多さではなく 入れ子の構造 です。ここを最初に整理しておくと、あとの画面が読めるようになります。

Niagara Systemの箱の中にEmitterが2つ入り、それぞれのEmitterの中にModuleが縦に並んでいる入れ子の図
階層単位例(爆発の場合)
System1つの演出そのものNS_Explosion
Emitter粒の種類ごとの発生源火花のEmitter、煙のEmitter、閃光のEmitter
Module1つのふるまい「30個出す」「上向きに飛ばす」「重力で落とす」

Systemが、Blueprintから呼び出す単位です。 爆発を出したいなら、火花も煙も閃光もまとめて1つのSystemにしておき、Blueprintからはそれを1回呼ぶだけにします。

Emitterは、見た目の種類ごとに分けます。 火花は速く飛んで短く消え、煙はゆっくり広がって長く残ります。動きも寿命もマテリアルも違うので、同じEmitterには入りません。1つのSystemに複数のEmitterを並べるのが普通の作り方です。

Moduleは、1つの機能を持った部品です。 「一定間隔で粒を出す」「初期の色とサイズを決める」「重力をかける」といった単位で用意されていて、これを縦に積むことでEmitterのふるまいが決まります。

つまりNiagaraの編集作業は、ほとんどが 「どのEmitterの、どのModuleの、どの数値を変えるか」 に集約されます。この3階層さえ頭に入っていれば、画面のどこを見ているのか迷わなくなります。

スタックの実行順を知る

Emitterを開くと、Moduleがいくつかのグループに分かれて縦に並んでいます。この並びは飾りではなく、 上から下へ実行される順番そのもの です。

Emitter Spawn・Emitter Update・Particle Spawn・Particle Update・Renderの5グループを縦に並べ、1回だけ実行される段と毎フレーム実行される段を色分けした図
グループ実行タイミング主な役割
Emitter SpawnEmitterの開始時に1回初期設定
Emitter Update毎フレーム粒を何個出すか
Particle Spawn粒が生まれた瞬間に1回その粒の初期値(寿命・色・サイズ・初速)
Particle Update毎フレーム(粒ごと)生きている間の変化(重力・減速・色の変化)
Render毎フレームどう描くか(スプライト、メッシュ、リボン)

ここで最も重要なのは Particle Spawn と Particle Update の違い です。

  • Particle Spawn は、その粒が生まれた瞬間に 1回だけ 動きます。「生まれたとき赤色にする」を書く場所です
  • Particle Update は、粒が生きている間 毎フレーム 動きます。「時間とともに赤から透明へ変える」を書く場所です

「一度だけ設定したいのに、ずっと上書きされてしまう」「変化させたいのに最初の値のまま動かない」という詰まり方は、置いた場所を1段間違えているだけのことがほとんどです。

同じ理屈が Emitter Update にもあてはまります。ここに置く Spawn Rate は毎フレーム評価されるので、粒が出続けます。逆に「1回だけまとめて出す」ものは、別のモジュールで作ります(次節)。

テンプレートから作る

新しいNiagara Systemは、コンテンツブラウザで右クリックし FX > Niagara System を選んで作ります。すると、作り方を選ぶダイアログが出ます。

選択肢内容
テンプレートから作る既に動く状態のEmitterが入ったものが作られる
既存のEmitterから作る自分で作ったEmitterを再利用する
既存のSystemを複製する作ったSystemをコピーする
空のSystemを作る何も入っていない状態から組む

最初は必ずテンプレートを選んでください。 空から作ると、粒を出すモジュールも、描画するモジュールも自分で追加することになり、1個の点を出すまでに手が止まります。

テンプレートの一覧はバージョンによって入れ替わりますが、 Fountain (噴水のように粒が上がって落ちる)はどのバージョンにも入っています。これを開いて数値を触るところから始めるのが、最も短い学習経路です。

作ったSystemをダブルクリックするとエディタが開きます。中央にプレビュー、左にEmitterのスタック、右に選択中のモジュールの詳細が出ます。 プレビューはその場で再生されるので、数値を変えた結果がすぐ見えます。 ここで手を動かすのが一番早く覚えられます。

Sponsored

よく触るモジュール

Fountainテンプレートを開くと、既に何本ものモジュールが並んでいます。全部を理解する必要はありません。 最初に触るのは5つだけ です。

Spawn Rate・Initialize Particle・Add Velocity・Gravity Force・Sprite Rendererの5つが、それぞれ粒の何を変えるかを示した対応図
モジュール置かれているグループ変えられること
Spawn RateEmitter Update1秒あたりに出す粒の数
Spawn Burst InstantaneousEmitter Update指定した時刻に、指定した個数をまとめて出す
Initialize ParticleParticle Spawn寿命(Lifetime)、色(Color)、大きさ(Sprite Size)
Add VelocityParticle Spawn生まれた瞬間の速度と向き
Gravity ForceParticle Update重力。既定は下向きに -980

Spawn Rate と Spawn Burst Instantaneous の違い が、演出の性格を決めます。

  • Spawn Rate : 出し続ける。たき火、煙突の煙、水しぶき、雨
  • Spawn Burst Instantaneous : 一度にまとめて出す。 爆発、撃破、着弾、ジャンプの土煙

一発物のエフェクトを作りたいのにSpawn Rateのままだと、粒が延々と出続けます。 Spawn Rateを外して、Spawn Burst Instantaneousを追加する。 これが「テンプレートを一発物に作り替える」ときの最初の一手です。モジュールの追加は、グループ名の右にある ボタンから検索して行います。

Initialize Particle は、粒の初期値をまとめて設定する中心的なモジュールです。ほとんどの項目は固定値のほか 範囲指定のランダム も選べます。寿命を 0.40.8 のように幅を持たせると、粒が一斉に消えなくなり、それだけで自然に見えます。 同時に消える不自然さは、初心者のエフェクトで最も目立つ癖 です。

Add Velocity には向きの決め方がいくつかあり、一方向へ揃える形と、 一点から放射状に散らす形 を選べます。爆発なら後者です。

Gravity Force の値を弱めると、粒がゆっくり漂います。煙や魔法の光は、重力を -100 程度まで落とすか、そもそも外してしまうほうがそれらしくなります。

補足: モジュールの名前や分類はUEのバージョンで変わることがあります。見当たらないときは、グループの から検索欄にキーワードを入れて探すのが確実です。「速度」なら Velocity 、「大きさ」なら Size で候補が絞れます。

見た目を決めているのはマテリアル

ここが見落とされやすい点です。Niagaraのモジュールが決めているのは、 粒がいくつ、どこに、どのくらいの大きさで存在するか までです。 その粒がどう見えるかは、マテリアルが決めています。

左にNiagaraのモジュールが決める「数・位置・大きさ」、右にマテリアルが決める「色・明るさ・透け方」を分けて示した図

粒を描く設定は、 Render グループの Sprite Renderer にあります。その中の Material 欄に指定されているものが、実際の見た目です。

エフェクト用マテリアルで押さえておきたいのは、 Blend Mode の選び方です。

Blend Mode見え方向いているもの
Additive重なるほど明るくなる。背景の黒が透ける火花、閃光、魔法、レーザー
Translucent半透明。重なっても明るくならない煙、霧、水しぶき、雲

「爆発なのに光って見えない」ときは、Blend ModeがTranslucentになっています。 逆に「煙が白飛びして眩しい」ならAdditiveです。

もう1つ、 Niagaraのモジュールで設定した色をマテリアルが読んでいるか も確認しておく必要があります。マテリアル側に Particle Color ノードが入っていて初めて、Initialize Particleの色が反映されます。 Initialize Particleで色を変えても何も起きないなら、原因はマテリアル側です。 マテリアルの基本はマテリアルの記事にまとめています。

なお、エフェクト用のマテリアルは、詳細パネルの Usage で パーティクル(Niagara Sprites など)に使う チェックが入っている必要があります。既存のマテリアルを流用して真っ黒や市松模様になるときは、ここを疑ってください。

Sponsored

Blueprintから鳴らす

Systemができたら、ゲーム中に呼び出します。使うノードは2つです。

左はSpawn System at Locationで座標に置き去りにする図、右はSpawn System Attachedでキャラクターに追従する図の対比
ノード出し方向いているもの
Spawn System at Location指定した 座標 に、ワールドへ独立して置く爆発、着弾、撃破エフェクト
Spawn System Attached指定した コンポーネントにくっつける松明の炎、バフのオーラ、走ったときの土煙

Spawn System at Location の主なピンは次のとおりです。

ピン内容
System Template再生するNiagara System
Location出す座標
Rotation / Scale向きと大きさ
Auto Destroy再生が終わったら自動で消す( 既定でオン
Auto Activate生成と同時に再生を始める( 既定でオン

戻り値には Niagara Component の参照が返ります。後から色を変えたり止めたりしたいときに使います。使わないなら繋がなくて構いません。

2つの決定的な違いは、 発生源が消えたときの挙動 です。

  • Spawn System at Location : ワールドに独立して置かれるので、 元のアクターをDestroyしてもエフェクトは残り、最後まで再生されます
  • Spawn System Attached : 親のコンポーネントにぶら下がるので、 親が消えるとエフェクトも一緒に消えます

撃破エフェクトを Spawn System Attached で作ると、敵を消した瞬間にエフェクトも消えて何も見えません。 「その場に置き去りにする」演出は必ず at Location 側です。

逆に、キャラクターが持ち歩く炎やオーラを at Location で出すと、その場に取り残されます。 一緒に動いてほしいものだけ Attached と覚えてください。

補足: ずっと出しっぱなしにする炎などは、そのアクターに Niagaraのコンポーネントを最初から追加しておく 方法もあります。Blueprintの「Add」からNiagaraのコンポーネントを足し、System Assetを指定するだけです。 ActivateDeactivate で切り替えられるので、松明のオン・オフのような用途に向いています。

User Parameterで外から変える

同じ爆発を、炎は赤、氷は青で出したい。同じ土煙を、敵の大きさに合わせて拡大したい。こうしたとき、Systemを色違いで複製していくと管理できなくなります。

Niagara Systemには User Parameter という仕組みがあり、 外から値を渡せる入口 を作れます。

  1. Niagara Systemのエディタで、User Parameters のセクションに で変数を追加する(型は Float / Vector / Linear Color など)
  2. モジュールの数値欄で、固定値の代わりにそのUser Parameterを参照するよう切り替える
  3. Blueprint側で、 Spawn System at Location の戻り値(Niagara Component)に対して、値を設定するノードを呼ぶ

Blueprint側のノードは 型ごとに分かれています 。Niagara Componentの参照からドラッグして Set Niagara Variable と入力すると、Float用・Vector用・Linear Color用などの候補が並びます。渡す名前は、User Parametersパネルで付けた名前をそのまま入力します。

注意: 値を設定するのは、 Auto Activate で再生が始まった後になります。 「粒が生まれた瞬間の色」に反映させたい場合、最初の1フレーム分だけ既定の色で出てしまうことがあります。確実に反映させたいなら、Spawn時に Auto Activate をオフにして、値を設定してから Activate を呼ぶ順にしてください。

Sponsored

実践:敵を倒した瞬間に爆発を出す

2Dシューティングの敵撃破、ARPGのスライムが弾ける演出、パズルのブロック消滅。 消える瞬間の一発物 は、ジャンルを問わず最も使い回しが効くエフェクトです。ここでは、テンプレートを改造して爆発を作り、Blueprintから呼ぶところまでを組みます。

完成形

Cubeを5回撃つとHPが0になり、Cubeが消えます。 その消えた場所で、オレンジの粒が30個ほど四方に飛び散り、少し落ちながら0.8秒で消えます。 Cubeが既に無くなっているのに粒だけが残っているのがポイントです。

Cubeが消えた位置でオレンジの粒が放射状に飛び散り、少し落下しながら消えていく様子を時間順に3コマで示した図

再現条件

Third Person テンプレート (Blueprint)で新規プロジェクトを作ります。

1. 的(BP_Damageable

Actorを親クラスにBlueprintを作り、StaticMeshCube を割り当て、Collision Presets を BlockAll にします。

変数名初期値
CurrentHealthFloat100.0

Event AnyDamageCurrentHealth から Damage を引き、0以下になったら消える処理を書きます。詳しくは体力とダメージの記事を参照してください。撃つ側は弾を撃つ記事BP_Projectile (1発20ダメージ)をそのまま使います。

2. 爆発(NS_Explosion

コンテンツブラウザで右クリック → FX > Niagara SystemFountain テンプレート を選び、NS_Explosion と名付けます。開いて、次のように書き換えます。

グループ操作
Emitter UpdateEmitter State の Loop BehaviorOnce / Loop Duration 1.0
Emitter UpdateSpawn Rate を削除する(右クリック → Delete)
Emitter UpdateSpawn Burst Instantaneous を追加するSpawn Count 30 / Spawn Time 0.0
Particle SpawnInitialize Particle の Lifetimeランダム範囲 0.4 〜 0.8
Particle Spawn同 Colorオレンジ(R 1.0 / G 0.5 / B 0.1 / A 1.0)
Particle Spawn同 Sprite Size(Uniform)15.0
Particle SpawnAdd Velocity の向き一点から放射状 / 速さ 300 〜 600
Particle UpdateGravity Force(0, 0, -400)

Loop Behavior を Once にするのを忘れないでください。 ここが Infinite のままだと、爆発が延々と繰り返されます。

Blueprintのグラフ

BP_Damageable のイベントグラフで、HPが0になったときの処理を組みます。

Event AnyDamageからHP減算・Branch・Spawn System at Location・Destroy Actorへ順につながるノードグラフ全体図
Event AnyDamage (Damage / ...)
  → Set CurrentHealth = CurrentHealth - Damage
  → Print String (CurrentHealth)
  → Branch (Condition: CurrentHealth <= 0.0)
      True ↓
  → Spawn System at Location
        System Template : NS_Explosion
        Location        : Get Actor Location
        Auto Destroy    : true(既定)
  → Destroy Actor (Target: Self)

Spawn System at LocationDestroy Actor より前に置いてください。 順番が逆だと、エフェクトが出ないことがあります。

確認する

Playして、Cubeへ5発当ててください。

5発目でCubeが消え、その位置からオレンジの粒が四方へ広がります。粒はゆるやかに落ちながら薄れ、およそ0.8秒で完全に消えます。 Cubeが先に消えているのに粒だけが空中に残っているなら、狙いどおりです。 Spawn System at Location がワールドに独立したコンポーネントを作っている証拠です。

  • 粒が1つも出ないSystem TemplateNone のまま。または Spawn Burst Instantaneous の Spawn Time が Loop Duration より後になっている
  • 粒が出続けて止まらないEmitter State の Loop Behavior が Infinite のまま
  • エフェクトが一瞬で消えるDestroy ActorSpawn System at Location より前にある
  • 色がオレンジにならない → Sprite Rendererのマテリアルが Particle Color を読んでいない。マテリアルを差し替えるか、マテリアルの記事の内容で Particle Color を足す
  • 粒が上へ飛ぶだけAdd Velocity の向きが一方向のまま。放射状に切り替える
  • 粒がすぐ地面へ落ちるGravity Force が既定の -980 のまま

ここで Spawn Count を 30 から 200 に変えて みてください。同じ0.8秒でも、まったく違う規模の爆発になります。次に Lifetime の範囲を 0.4 〜 0.8 から 0.8 〜 0.8 に固定 してみると、粒が一斉に消えて機械的な印象に変わります。 ばらつきが自然さを作っている ことが、この2つの比較で分かります。

ポイントは2つです。

  • 一発物は Spawn Burst Instantaneous と Loop Behavior: Once の組み合わせ: テンプレートは「出し続ける」設定で入っているので、撃破や着弾に使うにはこの2か所を必ず変えます。逆に、たき火や煙を作るときは Spawn Rate のまま触りません
  • その場に残すなら at Location、ついて回るなら Attached: 発生源のアクターを消す演出では、この選び方が結果を決めます。迷ったら「発生源が消えた後もエフェクトを見せたいか」で判断してください

被弾時の点滅や画面全体のフラッシュを足すなら、Post Process Volumeの記事と組み合わせると効果が上がります。

Sponsored

おまけ:先に知っておくと良いこと

  • Local Spaceは「動く発生源」で効く: Emitterのプロパティにある Local Space をオンにすると、粒が発生源の座標系に乗ります。走るキャラクターのオーラのように 本体と一緒に動いてほしい粒 はオン、車の排気のように その場に置き去りにしたい粒 はオフです
  • 粒の数は見た目ほど効かない: 「もっと派手に」で粒数を10倍にしがちですが、多くの場合は サイズのばらつきと、色が薄れていく速さ のほうが印象を変えます。数を増やす前に、Lifetimeとサイズの範囲を広げてみてください
  • エフェクトが遠くで消えるならBoundsを疑う: カメラから外れた判定でエフェクトが描かれなくなることがあります。大きく広がる演出では、Emitterの Fixed Bounds を明示的に設定すると安定します
  • GPU実行に切り替えると数を稼げる: Emitterプロパティの Sim Target を GPU 側にすると、大量の粒を扱えるようになります。ただし GPUでは使えないモジュールがあり、Fixed Boundsの設定も必要 になります。まずCPUのままで作り、数が足りないと感じてから検討してください
  • 重さは計測してから判断する: エフェクトは見た目の派手さと負荷が比例しません。半透明が画面いっぱいに重なる状態は特に重くなります。判断は感覚ではなく計測で行ってください(→ 計測の記事
  • 音とセットで完成する: 爆発の粒だけを見ていると物足りなく感じますが、その原因が音であることは多いです。 Spawn System at Location と同じ場所で効果音も鳴らしてください(→ 音の記事
  • アニメーションに合わせるならNotify: 剣を振った瞬間の斬撃、着地の土煙のように アニメーションの特定のフレームで出したい ものは、Blueprintのイベントではなく Anim Notify から呼ぶほうが正確です(→ Montageとnotifyの記事

まとめ

  • Niagaraは System(演出)> Emitter(粒の種類)> Module(ふるまい) の3階層
  • スタックの並びは実行順。 Particle Spawn は生まれた瞬間に1回、Particle Update は毎フレーム
  • ゼロから組まずテンプレートから作るFountain を開いて数値を触るのが最短
  • 最初に触るのは Spawn Rate / Spawn Burst Instantaneous / Initialize Particle / Add Velocity / Gravity Force の5つ
  • 粒の 見た目はマテリアルが決める 。光らせたいならBlend ModeはAdditive
  • Blueprintからは Spawn System at Location (その場に残す)と Spawn System Attached (ついて回る)を使い分ける
  • 一発物は Spawn Burst Instantaneous + Loop Behavior: Once

いま作っているゲームで、「当たった」「倒した」と分かるのは何によってでしょうか。数字が減るだけになっているなら、そこにエフェクトを1つ置く価値があります。