ビデオの内容紹介
メッシュがパーティクルとなってバラバラ落ちてくるエミッタを作ります。前回まででお馴染みになったモジュールと、メッシュ エミッタ独特のモジュールが紹介されています。
原題 Introduction Particles 6 – Creating a Mesh Emitter
[1] 素材の準備
まず、いつもの MyParticleSystems フォルダの中に、メッシュ エミッタを入れるフォルダを作ります。

名前は Mesh とします。

次に、パーティクルにするメッシュを探します。チュートリアルでは牛のメッシュですが、UE4-8 には見当たりませんでした。そこで、牛よりももっといいもの、ケーキをバラバラを降らすことにします。

ケーキを Mesh フォルダにコピーします。ドラッグアンドドロップすると、

コピー (Copy Here) するか移動 (Move Here) するのか選択をせまられるので、Copy Here をクリックします。

ケーキをダブルクリックすると、メッシュエディタが開かれます。

後ほどメッシュのマテリアルの色を変えるので、その土台となるマテリアルを取得します。そのためには、まず M_Pickup_Cupcake というマテリアルの横についている拡大鏡のアイコンをクリックして、メインエディタ内のコンテンツ ブラウザに表示させます。(その下にあるカップ部分のマテリアルについては割愛します。つまり紙の色もケーキの色でやります。)


これを Mesh フォルダにコピーします。

名前を Mat_CakeMeshParticle とします。ついでに、ケーキのメッシュにも SM_ParticlesPickup_Cupcake という名前を新たに付けます。(チュートリアルでは、メッシュを削除していますが、ここではそのまま使うことにします。そのほうが面倒がないので。) この Mat_CakeMeshParticle マテリアルをダブルクリックして、マテリアル エディタを開きます。

ノードを次のようにします。

Particle Color と Texture Sample を掛け合わせて (Multiply) から、Base Color につなげているだけです。Particle Color を使用することによって、直接色が変更になるわけではありませんが、カスケードで色を編集することが可能になります。色を変化させたりするのであれば、この Particle Color が欠かせません。
[2] エミッタを作成/調整する
素材の準備ができたので、いよいよメッシュを放出するエミッタを作成します。まず、Mesh フォルダに、Add New → Particle System からパーティクルを作ります。名前は、MeshParticles とします。

エミッタの下のスペースを右クリックして、TypeData → New Mesh Data を選択します。



Mesh Data モジュールを選択してから、Details パネルの Mesh の横についている下向きの小さな▽をクリックして SM_ParticlesPickup_Cupcake を選択します (または、Mesh フォルダの SM_ParticlesPickup_Cupcake を直接ドラッグアンドドロップします)。

サイズがかなり大きいので、Initial Size (初期サイズ) モジュールで小さくします。

次にパーティクルの初期の位置を決めます。ここでは球形 (Sphere) を選択します。つまり、球形からパーティクルが発生するようになります。

さらに、球体を表示するようにします。

さらに、Start Radius (始まりの半径) を 120 ほどにして大きくします。

メインエディタでメッシュ パーティクルが実際に放出されるか確認すると、大丈夫のようです。

[3] パーティクルの色を変える
パーティクルの色を変化させるためには、先ほど述べたように、Particle Color を使ったマテリアルを使う必要があります。ですから、現在 SM_ParticlesPickup_Cupcake に使われているマテリアル (もともと SM_ParticlesPickup_Cupcake に使われていたマテリアル) を上書きしなければなりません。Mesh Data の Mesh セクションで Override Material にチェックを入れます。

そして、Required (必須) モジュールを選択して、Emitter セクションの Material に、既に用意してある Mat_CakeMeshParticle をメインエディタのコンテンツ ブラウザからドラッグアンドドロップします (あるいは、Material 欄の横についている下向きの小さな▽をクリックして Mat_CakeMeshParticle を選択します)。


色をランダムに変更して、その色を最後まで保つことにします。そのためには、まず、Initial Color (最初の色) モジュールを利用します。

Color Over Life (パーティクル一生の色) は必要なくなるので、削除します。(Color Over Life は最初の色を、パーティクルが生きている間変更させるためのものなので、ここでは必要ありません。)

Initial Color モジュールを選択して、Start Color セクションで、Distribution (分布) を Distribution Vector Uniform (ベクターの値の分布を一様に (偏りなく) ランダムに選択) を指定して、値を次のようにします。

Max が RGB それぞれ 1.0 で、Min が 0.0 になっています。つまり黒から白までの色がランダムに選択されることになります。メインエディタのプレビューでは次のように表示されます。

実験 Particle Color を外してみる ————————————————–
Particle Color を外すと、どうなるか確認してみます。

このようにノードを配置すると、次のように表示されます。

ランダムに色を変化させることができなくなりました。やはり、Particle Color が必要であることが分かりました。
————————————————————————————————————
[4] メッシュ パーティクルの初期の角度を変える
メッシュ パーティクルに特有なモジュールを使います。スペースで Rotation → Init Mesh Rotation を選択します。

Init Mesh Rotation を選択してから、Start Rotation (初期の回転) セクションで Min をそれぞれ -1 にして逆向きもランダムに選択されるようにします。

表示してみます。

うまくいきました。
[5] メッシュ パーティクルを落下させる
スペースで Acceleration (加速度) → Const Acceleration (一定の加速度) を選択し、Acceleration の Z の値を -980 にします。(-980 は下向きに加速度が 980 cm であるということです。つまり、重力の加速度を表しているので、メッシュ パーティクルは現実の世界と同様の落ち方をすることになります。)

ちゃんと下に向かって落ちます。

[6] コリジョンを設定する
現在は、パーティクルがフロアを抜けて落下しています。フロアとコリジョン (衝突) させるには、Collision → Collision を選択します。

そして、この Collision モジュールを選択してから、Damping Factor (バウンドの大きさの減衰を表す係数) セクションの Max と Min、および、Max Collision (バウンド回数の最大値) セクションの Min と Max を次のように設定します。

ただし、このままではバウンドが終わるまでにパーティクルが消滅してしまって、せっかく設定しても効果が現れないので、Lifetime モジュールで寿命を延ばします。

これで上手く表現できるようになりました。なお、個人的には次のようにすると、よりリアルな感じになると思います。


今回はここまでです。お疲れさまでした!