UE 5.7 で撮影しています。
Day 1 では、スタックが「いつ起きるか」の順に並んでいることを、表でざっくり見ました。Day 2 では、いちばん小さいエミッタ(Minimal)を開いて、4 つしかモジュールが入っていないことを確かめました。
今日はそのあいだを埋めます。噴水の Fountain(ファウンテン) を開いて、5 つの段を上から 1 段ずつ 見ていきましょう!実際に中身を 1 つずつ開くと、段ごとに入っている物の性質を見ていきましょう
1. まずは Fountain のエミッタを開いてみましょう
System(システム) のグラフで右クリックして、エミッタを追加… から Fountain を選びます。Day 2 で使ったのと同じ手順です。
足されたエミッタの箱(ノード)を見ると、上から 5 つの段が並んでいます。
| 番号 | 段の名前(画面の表示) | 英語名 |
|---|---|---|
| ① | エミッタのスポーン | Emitter Spawn |
| ② | エミッタの更新 | Emitter Update |
| ③ | パーティクルのスポーン | Particle Spawn |
| ④ | パーティクル更新 | Particle Update |
| ⑤ | レンダリング | Render |
モジュールの行の左端に細い色の帯が付いていて、①② がオレンジ(エミッタ)、③④ が緑(パーティクル)、⑤ が赤(描画)です。段の右にある + の丸も同じ色です。Day 1 で書いた色分けが、そのまま帯の色になっています(① は空っぽなので、帯はまだありません)。
2. ①エミッタのスポーンと ②エミッタの更新を見ていきます
上の 2 段は、粒ではなく エミッタそのもの の段です。
- ① エミッタのスポーン … エミッタが生まれたときに 1 回だけ
- ② エミッタの更新 … エミッタが生きているあいだ、ずっと
Fountain では、① は空っぽで、② に 2 つ入っています。
| 入っているモジュール | 何をしているか |
|---|---|
| Emitter State(エミッタステート) | エミッタの寿命。Day 2 で開いたモジュールです |
| Spawn Rate(スポーンレート) | 1 秒あたりに粒をいくつ出すか |
ここで 1 つ気づいてほしいのが、粒を出す係(Spawn Rate)が、粒の段(パーティクルのスポーン)ではなくエミッタの段にいる ことです。
粒を生むのはエミッタの仕事なので、エミッタ側の段に置かれています。粒の段(③④)には、生まれた後の粒のことしか入っていません。
ちなみに Day 2 の最小エミッタでは Emitter State に System のバッジが付いていましたが、Fountain の Emitter State には、最初から Self のバッジが付いています。
3. ③パーティクルのスポーンを開いて中身を確認
ここからが粒の段です。③ は 粒が 1 つ生まれたときに、その粒に 1 回だけ 走ります。
| 入っているモジュール | 何をしているか |
|---|---|
| Initialize Particle(イニシャライズパーティクル) | 寿命・色・大きさなど、粒の最初の値をまとめて決める |
| Shape Location(シェイプロケーション) | 粒が生まれる場所の形(Fountain では Sphere=球) |
| Add Velocity(アドベロシティ) | 生まれたときの速さと向き(Fountain では In Cone=円すいの範囲) |
生まれた瞬間に決めておけばよいこと、つまり「最初の値」がここに集まっています。
4. ④パーティクル更新は、毎フレーム動かす段です
④ は、生きている粒すべてに、毎フレーム 走ります。
| 入っているモジュール | 何をしているか |
|---|---|
| Particle State(パーティクルステート) | 粒の歳を進めて、寿命が来たら消す |
| Gravity Force(グラビティフォース) | 下に引っぱる力(重力) |
| Drag(ドラッグ) | 空気の抵抗のように、だんだん遅くする力 |
| Scale Color(スケールカラー) | 色の濃さを時間で変える |
| Solve Forces and Velocity(ソルブ フォーシズ アンド ベロシティ) | 上の力をまとめて、実際に粒を動かす |
最後の Solve Forces and Velocity が地味に大事で、Gravity Force や Drag は「力を足す」だけで、粒を実際に動かすのはこのモジュールです。なので、力のモジュールはこれより上に置きます。
といっても、自分で並べ替える必要はあまりありません。+ から Gravity Force を足し直してみたら、UE が自動で Solve Forces and Velocity のすぐ上に入れてくれました。
5. ⑤レンダリングで、粒の見せ方を決めます
最後の段は描画です。Fountain には Sprite Renderer(スプライトレンダラー) が 1 つ入っています。
ここまでの ①〜④ で決めたのは「粒の数字」だけで、それを画面に板として描いているのがこの段です。Sprite Renderer のチェックを外すと、プレビューの粒は消えますが、詳細の上の「パーティクル」の数は残ったままです。粒は計算されているのに、描く係がいないので何も見えない、という状態です。
5-1. 上から順に走る、を見ていきます
5 つの段は、上から下へ順番に処理されます。同じ段の中でも、モジュールは上から順です。
なので、同じ値に 2 つのモジュールが手を加えると、下にある方が後から手を加えます。 例えば、③ の Initialize Particle で色を赤にしても、④ の Scale Color で色を掛け算すると、見えるのは掛けた後の色です。
これは Day 8 の色の回で、もう一度出てきます。
5-2. 6 つ目の段もあります
公式の説明では、段は 6 つあると書かれています。足りない 1 つは Event Handler(イベントハンドラー) で、粒がぶつかったとき・消えたときなどに別の粒を出す仕組みです。
最初からは表示されていなくて、エミッタに足したときだけ現れます。今の連載の範囲ではまだ使わないので、名前だけ覚えておけば大丈夫です。
6. 今日の一歩 — 5 つの段を開いてみる
実際に開いてみましょう!
- System を新しく作り、グラフで 右クリック して エミッタを追加… から Fountain を選ぶ
- Fountain の箱で、モジュールの左端の色の帯(オレンジ・緑・赤)を見る
- ② エミッタの更新をクリックして、Spawn Rate がここにいることを確かめる
- ③ パーティクルのスポーンと ④ パーティクル更新を開いて、「最初に 1 回」と「毎フレーム」の違いを、入っているモジュールの名前から想像してみる
- 余力があれば、④ の Gravity Force のチェックを外して、プレビューで粒が落ちなくなるのを見る
2 と 3 だけで今日は十分です。「粒を出す係はエミッタの段にいる」が目で分かると、明日の Spawn の回がぐっと読みやすくなります。
7. ここでつまずいたら、だいたいこの 2 つです
- 段の名前が英語で出ている … エディタの言語が英語になっています。Emitter Spawn / Emitter Update / Particle Spawn / Particle Update / Render が、そのまま上の表の ①〜⑤ です。
- 箱(ノード)を見ても段が出てこない … 箱がたたまれています。箱の左上の小さな三角をクリックすると開きます。
8. 読み方メモ(この回に出てきた英語)
- Emitter Spawn(エミッタスポーン)… エミッタが生まれたときに 1 回
- Emitter Update(エミッタアップデート)… エミッタが生きているあいだずっと
- Particle Spawn(パーティクルスポーン)… 粒が生まれたときに 1 回
- Particle Update(パーティクルアップデート)… 生きている粒に毎フレーム
- Render(レンダー)… 描画
- Initialize Particle(イニシャライズパーティクル)… 粒の最初の値を決める
- Shape Location(シェイプロケーション)… 生まれる場所の形
- Add Velocity(アドベロシティ)… 生まれたときの速さ
- Gravity Force(グラビティフォース)… 重力
- Drag(ドラッグ)… 抵抗。だんだん遅くする
- Solve Forces and Velocity(ソルブ フォーシズ アンド ベロシティ)… 力をまとめて粒を動かす
- Sprite Renderer(スプライトレンダラー)… 粒を板として描く
- Event Handler(イベントハンドラー)… 出来事に合わせて別の粒を出す仕組み
9. まとめ
今日の確認したことは 3 つです。
- エミッタのスタックは、画面では 5 つの段に分かれています。上の 2 段がエミッタ、次の 2 段が粒(パーティクル一つ一つ)、最後が描画です。
- 粒を出す Spawn Rate は、粒の段ではなく、エミッタの更新の段にいます。
- 段もモジュールも上から順に走るので、同じ値に手を加えると、下にある方が後から効きます。
Day4では、その Spawn Rate のなかまの「粒の出し方」3 つを並べて見ていきます。同じところで迷った方の、ちょっとでも役に立てば幸いです。