Day 1: Niagara って何?(まずは System と Emitter から)

こんにちは。部活で100日チャレンジが始まり、今日から Niagara のモジュールを 1 日 1 つずつ、100 日かけて紹介していく という連載をはじめてみます。

Niagara(ナイアガラ)は UE5.7(Unreal Engine 5.7)の エフェクトを作るしくみ です。炎、煙、魔法、爆発、キラキラ……ゲームの「画面で動いている粒(つぶ)」は、だいたいこの Niagara が出しています。
なお、この連載は UE5.7 を基準にしています(メニューの位置や項目名は、お使いの版で少し変わることがあります)。

ただ、いざ開いてみると、見慣れない箱とモジュールがずらっと並んでいて、「で、どこから触ればいいの?」と固まってしまいがちです。最初はけっこう、戸惑います。私も最初の頃、モジュールの海でだいぶ溺れました。

なので 1 日目の今日は、個別のモジュールに入る前に、Niagara 全体のしくみ をざっくりつかんでおきましょう!

Niagara は「Cascade の次の世代」

UE には昔から Cascade(カスケード) という古いエフェクトのしくみがありました。Niagara はその後継で、UE5 ではこちらが標準です。

いちばん大きな違いは、プログラマーに頼らなくても、アーティスト側でかなり深くカスタムできる ところだと思います。モジュールを積んだり、自分で式を書いたりできるので、できることの幅がぐっと広いです。そして使いやすい!

これから 100 日かけて触っていくのは、この「積めるモジュール」たちです。

System と Emitter は別もの

Niagara にはまずシステムとエミッターというものがあります。

Niagara System = エフェクト全体の入れ物。レベル(ステージ)に置くのはこっち。
Niagara Emitter = その中に入る「1 種類の粒のふるまい」。煙なら煙、火花なら火花。

イメージとしては、お弁当箱が System、中のおかず 1 品ずつが Emitter という感じです。

たとえば「焚き火」のエフェクトを作るとします。焚き火という 1 つの System の中に、

  • 炎の Emitter
  • 煙の Emitter
  • ぱちぱち舞う火の粉の Emitter

みたいに、性格の違う粒を 何種類も入れて、まとめて 1 つのエフェクト にします。レベルに置くときは、この焚き火 System をぽんと置くだけで全部いっしょに動いてくれます。

最初のうちは「結局どっちをいじってるんだっけ?」と混乱しがちなので、いま開いているのは入れ物(System)なのか、中身 1 品(Emitter)なのか を意識すると、ぐっと迷子になりにくくなります。

スタックは「いつ起きるか」で並んでいる

Emitter を開くと、上から下へモジュールが積まれた スタック が出てきます。これはただ並んでいるんじゃなくて、処理の順番(いつ起きるか) で区切られています。ざっくりこんな並びです。

セクションいつ・誰に対して効くか
System Spawn / Updateエフェクト全体に対して。生成時と毎フレーム
Emitter Spawn / Updateこの Emitter に対して。生成時と毎フレーム
Particle Spawn粒が「生まれた瞬間」に 1 回。初期位置・初期色など
Particle Update生きている粒に「毎フレーム」。動かす・色を変える
Render最後に「どう見せるか」。板ポリ・メッシュ・リボンなど

しかも色分けされていて、青がシステム、オレンジがエミッタ、緑がパーティクル(粒)、赤が描画(Render) です(UE5.7 の配色)。色を見れば「これは粒ごとの設定だな」「これは見た目の設定だな」と当たりがつきます。

この 「Spawn(生まれた瞬間)」と「Update(生きている間ずっと)」の2拍子 が、Niagara のリズムの基本です。これから紹介するモジュールも、ほとんどがこのどこかの段に入ります。「このモジュールはどの段に置くんだろう?」を毎回見るようにすると、自然と全体のしくみがつかめてきます。

今日の一歩 — 空っぽの System を作ってみる

しくみがわかったら、あとは実際に触ってみるだけです!

  1. コンテンツブラウザで右クリックして、FX のなかの Niagara System を選ぶ
  2. テンプレートを聞かれるので、まずは Fountain(噴水) あたりを選ぶ
  3. ダブルクリックで開いて、左の System に Emitter が 1 つぶら下がっている のを確認
  4. その Emitter をクリックして、さっきのスタック(Spawn と Update の段)をながめてみる

これだけで OK です。今日はまだ何も設定しなくて大丈夫。「入れ物の中に Emitter が入っていて、Emitter の中にスタックがある」という 入れ子の関係 を目で見られたら、1 日目は大成功だと思います。

この連載の進め方(正直なところ)

毎日 1 モジュールずつ、

  • それが 何をするのか
  • スタックの どこに置くのか
  • 主要な パラメータ と、最小の 作例
  • ありがちな つまずきどころ

を、できるだけ短く・真似しやすい形で書いていきます。

正直に言うと、100 日完走できるかは私もちょっとドキドキしています。私はわりと、お金も時間も考えずに好きなことを赤字でつづけてしまうクセがあるのですが(今回も完走できる保証はありません……)、それでも 1 つずつ積んでいけば、終わるころには Niagara のことがだいぶ見えているはずです。

わからないところは私も素直に「ここは自信がないです」と書きますので、詳しい方はぜひ教えてください。一緒に、楽しみながら積んでいけたら幸いです。

読み方メモ(この回に出てきた英語)

英語の名前が多くて読みづらいので、読み方と意味を添えておきます。

  • Niagara(ナイアガラ)… UE5.7 のエフェクトを作る仕組み
  • Cascade(カスケード)… ひとつ前の世代の、エフェクトを作る仕組み
  • System(システム)… エフェクト全体の入れ物
  • Emitter(エミッタ)… 1 種類の粒のふるまい
  • Particle(パーティクル)… 粒そのもの
  • Spawn(スポーン)… 生まれること
  • Update(アップデート)… 生きている間ずっとの更新
  • Render(レンダー)… どう見せるか(描画)
  • Stack(スタック)… モジュールが上から積まれた縦のリスト
  • Module(モジュール)… 機能のかたまり 1 つ
  • Fountain(ファウンテン)… 「噴水」という名前のテンプレート

まとめ

  • Niagara は System(入れ物)の中に Emitter(粒のふるまい)が入る 入れ子のしくみです。
  • Emitter を開くと、処理の順番で区切られたスタックが並びます。色は System=青・Emitter=オレンジ・Particle=緑・Render=赤。
  • リズムの基本は Spawn(生まれた瞬間)と Update(生きている間ずっと)の 2 拍子。これから出てくるモジュールも、ほとんどがこのどこかの段に入ります。
  • まずは空の System を作って、入れ子とスタックを目で見るところから始めましょう。

明日からは、この上にモジュールを 1 つずつ置いていきます。気軽にお付き合いいただけたら幸いです。