Help us understand the problem. What is going on with this article?

[UE4]今更?UE4のカスケードでパーティクル

どうも皆様こんにちわ。大型の台風が過ぎ去り季節も完全に変わったようで肌寒くなってきましたね。
今回はUE4の記事で、その中のパーティクルエンジンであるカスケードの使い方を記事にしてみました。
オイオイオイオイなんで今カスケードなんだよ時代はナイアガラだろがヤレヤレと思ったそこの貴方。 ヤレヤレ。
いやまぁ実際なんで今カスケードなんだよってことなんですが、なぜかは次章に書くとしてまして、「もぅカスケードでもいいから早くやれ」という方は次の章は飛ばして本題にお進みください

なんで今更カスケード?

000.jpg

2019年10月20日現在、UE4には既に時期VFXエンジンとして"ナイアガラ"と呼ばれるツールがアーリーリリース(初期テスト)されています。 今までカスケードと呼ばれるツールがUE4内の表現を支えてきたのですが、カスケードは拡張性に乏しく(というかしようと思うとスゴイ大変)、既に用意されたツール内でしか表現ができませんでした。
しかも、各パーティクル用に作成したパーティクル放出ルール、あえてメソッドと呼びますが、このメソッドを他のパーティクルシステムに使いまわすことができませんでした。
ナイアガラは、動作に関わるあらゆるパラメータにアクセスでき、なおかつ自分でモジュールをノードベースで作成し、他のナイアガラシステムと共有することができます。
まさにカスケードの上位互換、今後のエフェクト表現を支えるツールとなっています。

それなのに、なぜ今カスケードなのか?
答えは単純、なぜEpicGames社がナイアガラを作らなきゃならなくなったかを理解する為です。
あと、現時点ではまだカスケードがUEを支えるパーティクルシステムだという事です。
現在ナイアガラは絶賛アップデート中で、昨日使えたメソッドが今日使えなくなっているかもしれません。
完全に実装される前に、今までUE4を支えたパーティクルツールをしっかり理解したうえで、次のツールに望もうという魂胆です。
ナイアガラはプロパティがほぼ全公開されているので自由度は極端に高いですが、その分扱いずらいと感じる人が絶対いると思います。
スケールデカくて泳げる範囲広いけど、イコールそれが泳ぎやすいかはまた別の話ということ。

001.jpg

カスケードは素早く単純に作りたい演出向け、ナイアガラは細かくじっくり作りたい演出向け、と分かれる気がしています。
というかパーティクルの基本概念が分かっていればある程度どんなパーティクルエンジン使っても最低限はできると思うので、そもそもパーティクル始めてやるよという人向けに書ければなと思っています。
前置きがかなり長くなってしまいましたが、それではやっていきましょう!

本題

パーティクル用のマテリアルを作成

まずはパーティクル用のマテリアルを作りましょう。お好きな名前でMaterialを作成して中身を以下の画像を参考に変更してください。
また、Detailsの項目も画像を参考に変更をしちゃいましょう。

002.jpg

003.jpg

やっていることはいたって単純で、Sphereを作ってParticleColorのRGBとアルファを分けて乗算しているだけですね。
定数はConstantからParameterへ昇格させています。別にしなくても構いません。各値はSphereRadiusが0.25でEmmisiveが5です。

カスケードエディタでパーティクルを作成する

ContentBrowserを右クリックし、ParticleSystemをクリック、作成。お好きな名前をつけてエディタを開きましょう。
インターフェースの説明は公式に任せるとして、
中で何をやっているかを見ていきましょう。まず初期状態には何が入っているか確認してみましょう。

004.jpg

こういったパラメータを調整して、自分が作りたいもののイメージし、どういう動きが必要かを考えて値を追加、調整していきます。
今回は単純に、先ほど作ったスフィアが地面から良い感じに出てくるエフェクトにしてみたいと思います。
では、Emittersパネルの中で右クリックして、 InitialLocationとAcceleration、Lightを追加しましょう。

005.jpg

そしてRequiredをクリックしてDetailsパネルで先ほど作ったマテリアルを反映します。

006.jpg

ここから各モジュール内の値を細かく調整していきます。

Spawn : 放出量と奔出頻度の調整
Distribution Float Constractで定数で指定する
007.jpg

Lifetime : パーティクルの寿命
Distribution Float Uniformでmin ~ maxの値の間で生成する。
008.jpg

Initial Size : 初期サイズ
009.jpg

Initial Velocity : 初期放出ベクトル
010.jpg

Initial Location : 初期放出位置
011.jpg

Color Over Life : パーティクルが生きている間に変化する色情報
カーブツールを使って滑らかに色が変化するように設定します
012.jpg
013.jpg

Acceleration : パーティクルに加わる加速度
014.jpg

Light : 光の強さ、照射範囲
015.jpg

今回、雰囲気を持たせるためにあえてLightを持たせましたが、このパーティクル数でむやみにライトを持たせるのはリスキーすぎるので気を付けましょう。
負荷が高すぎてロクにFpsがでなくなってしまうかもしれません。

配置、お好み微修正

016.jpg

では、パーティクルシステムをViewportにドラッグアンドドロップして、実際に動作を確かめてみましょう。
Viewportに入れた時点で既にパーティクルが動いていますが、DetailsのAutoActivateを無効にすれば、動作しません。
その場合レベルブループリントなどから直接Activateを叩いて実行してあげましょう。

あとはお好みで調整です。Playを押して動作を確認してみましょう!僕はもう少しポスプロとかライトとか足してあげて...

やりました!グレイマンも喜んでいます!まぁ特にコリジョンとかつけてないんで身体をすり抜けちゃってますがまぁヨシとしましょう笑

お疲れさまでした

結構適当にやっても流石アンリアルなのか、綺麗ですね。次回というかそのうちナイアガラにも触れてみたいと思います。
ではでは。

iwax10
雑食系なんちゃってエンジニアです。 僕自身がつまづいたところをまとめていきます。 あとポートフォリオサイト開設しました https://iwaxlab.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした