ビデオの内容紹介
いよいよ新シリーズ『パーティクル入門』が始まりました。全部で 11 回のシリーズです。今回は、これからチュートリアルで使われる重要な用語について説明されています。
原題 Introduction Particles 1 – Particle Terminology
[1]パーティクル (Particle)
煙や爆発、霧などを表現するための空間上の点のことです。スタティック メッシュとして、スプライト (常にカメラに正対する平面状の描写物) として描くことができます。
[2]パーティクル システム (Particle System)
パーティクルのスポーン (発生) を制御するもので、スターター コンテンツには、アセットとして含まれています。カスケード (Cascade) というエディタで編集されます。
[3]エミッタ アクタ (Emitter Actor)
レベル内に配置できるオブジェクトで (アクタとはレベルに配置できるもののことです)、パーティクル システムへの参照 (そのパーティクル システムがどこにあるかという情報) をもっています。つまり、エミッタ アクタは、そのパーティクル システムにアクセス (使用) できます。エミッタ アクタをレベル内のさまざまな位置に置くことによって、そのパーティクルをシーン内のさまざまな場所で出現させることができます。
エミッタ アクタを選択状態にして、Details パネルの Template に異なるパーティクル システムをドラッグアンドドロップすると (そのパーティクル システムへの参照が得られて)、
[4]パーティクル システム コンポーネント (Particle System Component)
パーティクル システムはブループリントに部品 (component) として配置できます。下の例 では、Bush (低木) が音を立てながら燃えるブループリントを作りました。
今、述べた文の要素には「Bush」と「音」と「燃える(火)」という部品があります。これらは、すべて component としてブループリントの中に登録されています。
[5]カスケード (Cascade)
パーティクルのあり方を編集できるエディタです。パーティクル システムをダブルクリックすると開きます。
[6]エミッタ (Emitter)
これは、先ほど出てきた「エミッタ アクタ」とは異なります。エミッタアクタはシーン内に配置するものでしたが、このエミッタは、パーティクルを放出 (emit) する時の 1 つの側面 (aspect) を表現するものです。具体的に、爆発エフェクトの場合で考えてみます。爆発には、「火花」(Sparks) という側面、「煙」(Smoke) という側面、「火の玉」(Fireball) という側面などがあります。これらが、エミッタとして、カスケードの中に配置されます。1 つの柱が 1 つのエミッタです。
次のように「火花」(Spark) のパーティクルだけをエミットしてみることもできます。(S 字のアイコンをクリックします。S は single という意味です。)
キーワード
エミッタとエミッタ アクタの違いを説明すると、「パーティクル システムには複数のエミッタがあり、パーティクルの位置や様態等を調整できる。そのパーティクル システムを丸ごとどこに配置するかを決めるのがエミッタ アクタ」ということになります。
[7]モジュール (Module)
パーティクルの様相を調節するためのものです。各エミッタにつき、複数のモジュールが並んでいます。Lifetime (寿命)、Initial Size (初期サイズ) など多数あります。
Required (必須) モジュールと Spawn (スポーン) モジュールは常に自動的に含まれます。また、これらは削除できません。右クリックして Delete Module (モジュールを削除する) をクリックしても、
次のように削除できないという表示が出てきます。
(Required モジュールと Spawn モジュールは削除できません。)
それ以外のモジュールは、右クリックして Delete Module (モジュールを削除する) をクリックすると削除できます。
また、あるエミッタを選択状態にして右クリックすると、
そのエミッタで使えるモジュールを追加することができます。
また、Alt キーを押しながらドラッグアンドドロップすると、そのモジュールがコピーされます。
Shift キーを押しながらドラッグアンドドロップすると、そのモジュールが共有化されて、どちらかに加えた変更はもう一方にも反映されることになります。
注意すべきことは、モジュールは一番上から一番下に向かって実行されていくので、もしも、次のように同じモジュールがある場合は、下の方にあるモジュールによって上のモジュールが上書きされてしまうということです。
[8]TypeData モジュール
通常、何も指定しなければ、エミッタが出すパーティクルはスプライト タイプです。つまり小さな板状のものが常にカメラに正対する仕組みでパーティクルを表示しています。
これに加えて UE4 では、特殊なタイプのデータとしてパーティクルを出すことができます。それを指定できるのが、この TypeData モジュールです。
各エミッタで右クリックすると、
のように TypeData モジュールが表示されています。これをクリックすると、
のようにさまざまなタイプのデータが表示されます。
具体的なデータ タイプは、チュートリアル動画で紹介されています。ここでは、簡潔にまとめておきます。
① 一般的なスプライトによるパーティクル
CPU で計算される通常のスプライト タイプのパーティクルです。
② GPU Sprites
GPU で計算するため、一度に描画されるパーティクルの数が飛躍的に増えます。
③ Mesh Data
スタティック メッシュをパーティクルとして放出します。デブリ (debris 飛散物) を表現するのに適しています。
④ Beem Data
パーティクルをつなげてビームのようにします。
⑤ Ribbon Data
パーティクルをリボン形状にします。各パーティクルをリボン状のものが追いかけるようにして形作られています。
[9] Distribution (分布)
Distribution は各モジュールで数値を使って調整する時に使われます。Distribution にはいくつか種類があります。たとえば、爆発エフェクトの Fireball エミッタの Lifetime (寿命) モジュールを例に取ってみます。
Details パネルの Lifetime には、Distribution があります。そこの横には Distribution Float Uniform とあります。これは、下の Min (0.5) から Max (0.7) の間にある値をランダムに返すものです。(この 0.5 や 0.7 は、火の玉の寿命を表す秒数です。) つまり、この火の玉は、0.5 秒から 0.7 秒の間のいずれかの秒数だけ表示される (寿命がある) ということになります。
仮に、Max を 0.7 から 3.0 に変更すると、長く表示される場合があります。ランダムで最大 3.0 秒の寿命が返される場合があるためです。
Distribution のドロップダウンメニューをクリックすると、次のように表示されます。
これが Distribution の種類です。ざっと見て行きましょう。
① Distribution Float Constant
一定の float (浮動小数点型) 型の値が設定されます。たとえば Lifetime で次のように Constant を 2.0 とすると、必ず 2 秒間火の玉が表示され続けることになります。
② Distribution Float Constant Curve
時間 (横軸) によって値 (縦軸) が変化するグラフ (曲線) 上の点を返します。(Curve Editor を使って編集します。) たとえば、パーティクルの色を変化させる場合、時間の経過にしたがって、色の値を変えることになります。その場合、ある時間とある色の値を対応させることになりますが、それをグラフ (カーブ) にしているわけです。ここで Constant となっているのは、パーティクルが生きている間、ある時間に対応する色の値がランダムに変わることなくいつも同じになるということを言っています。
③ Distribution Float Particle Parameter
エミッタのパラメータをブループリントやコードから制御するためのものです。
④ Distribution Float Uniform
(先ほど例に挙げた Distribution です。)
⑤ Distribution Float Uniform Curve
Min の曲線と Max の曲線の間にある値をランダムに返します。
今回は、以上です。お疲れさまでした!