🦁

UE5 Cascadeの6種類のTypeDataをNiagaraに変換する

2022/02/18に公開

今回は、【CascadeのTypeData6種類をNiagaraに変換する】方法について触れていきます。

前回は【CascadeをNiagaraに変換する方法(Cascade To Niagara Converter プラグイン)】についてまとめました。
今回はCascadeには6つのTypeDataが存在するので、それぞれのTypeDataの特徴や、Cascade To Niagara Converterプラグイン(以後、Converterプラグイン)を使用して変換する時のポイントについてまとめていきます。

機能別サンプルのプロジェクトを使用します。機能別サンプルのプロジェクトは非常に優秀でUE4で使用できるほとんどの機能のサンプルが用意されています。
Cascadeのサンプルも用意されているので、Converteプラグインを使ってNiagaraに変換しながら変換が上手くいくのか検証していきます。

機能別サンプルプロジェクトを用意する

機能別サンプルのプロジェクトを作成したら、「Particles_Intro」マップを開く
まずは機能別サンプルのプロジェクトを準備します。
機能別サンプルはラーニングタブから見つけることが出来ます。
機能別サンプルのプロジェクトを作成したら、「Particles_Intro」マップを開きます。
6種類のCascade
「Particles_Introマップ」には6種類のCascadeが用意されています。1つずつConverterプラグインでNiagaraに変換していくことで、全種類のCascadeを確認することが出来ます。
6種類のTypeData(1つ無印)
Cascadeの種類を分けているのはTypeDataというモジュールを追加することでEmitterの種類を変更することが出来ます。
TypeDataを変更するには、Requiredの上の空白を右クリックし、TypeDataから変更したいTypeDataを選択します。
TypeDataを追加すると、Requiredの上に追加したTypeDataが表示されます。
まずは、6種類のTypeDataの特徴について触れていきましょう。

6種類のTypeDataの特徴

Standard Sprite Emitterの特徴

Standard Sprite Emitter
Standard Sprite EmitterはTypeDataが設定されていないEmitterを使ったエフェクトです。一番使用される基本的なエフェクトです。
1. SpawnモジュールでRateカテゴリでSpawn数を設定してパーティクルを発生させる方法
Standard Sprite EmitterはSpawn方法が2種類あります。
1つはSpawnモジュールでRateカテゴリでSpawn数を設定してパーティクルを発生させます。特徴としては発生してから前後左右に広がっていくようなエフェクトを作るときに使用します。
2. バーストカテゴリでSpawnの数を設定させる方法
もう1つはバーストカテゴリでSpawnの数を設定させる方法です。その名の通り爆発するようなエフェクトを作るときに使用します。
TypeDataとしては1種類ですが、内部で2種類のエフェクトを作成することが出来ます。

GPU Sprite Emitterの特徴

GPU Sprite Emitter
GPU Sprite Emitterはエフェクトの処理をGPUで処理することが出来るようになるTypeDataです。CPUよりGPUの方がパーティクルの処理する数は増やすことが出来ます。
EmitterからTypeDataを削除すると、無効になるモジュールがある
用意されている[CPU Sprites]TypeDataを設定しているEmitterからTypeDataを削除すると、無効になるモジュールがあります。
特定なTypeDataでしか使用できないモジュールがあります。Converterプラグインで変換する際に重要なポイントなので覚えておいてください。

Mesh Emitterの特徴

Mesh Emitter
Mesh EmitterはパーティクルにStaticMeshを使用することが出来るTypeDataです。魔法で氷の柱を生やしたりといったStaticMeshを使うことでしかできないエフェクトを作成することが出来ます。

Beam Emitterの特徴

Beam Emitter
Beam Emitterはその名の通りBeamのような光線を出力するTypeDataです。直線だったりサンプルのように曲線のBeamを作り出すことが出来ます。

Ribbon Emitterの特徴

Ribbon Emitter
Ribbon Emitterはパーティクルの軌跡を描くためのTypeDataです。軌跡を描くためのEmitterが必要になるので、単独のEmitterでは効果を発揮しません。花火のようなエフェクトを作るときに重宝します。

AnimTrail Emitterの特徴

AnimTrail Emitter
AnimTrail EmitterはRibbonDataと似ています。RibbonDataと違うのは軌跡をSkeltalMeshのアニメーションを使用する事です。AnimTrail DataだけのEmitterを作成し、Animationにアタッチすることで軌跡を確認することが出来ます。

6種類のTypeDataをConverterプラグインでNiagaraに変換する

Standard Sprite EmitterをNiagaraに変換する

Standard Sprite EmitterをNiagaraに変換する
6種類のTypeDataの特徴が分かったところで、1種類ずつConverterプラグインを使用して変換していきます。
Converterプラグインの使用方法は前回の記事を参考にしてください。
[問題を修正]ボタンをクリックしてエラーを修正
一部エラーになっているモジュールがあるので、[問題を修正]ボタンをクリックしてエラーを修正します。
変換時のエラーはあったものの概ね変換することが出来た
変換時のエラーはあったものの概ね変換することが出来ました。少しバウンドが大きいのでCollisionモジュールの調整が必要になります。
Niagaraでは[Spawn Rate]モジュールの[SpawnRate]プロパティでパーティクルの数が設定される
Standard Sprite EmitterにはSpawn方法が二種類ありました。サンプルで用意されていたCascadeでは、Rateカテゴリでパーティクルの数を設定していました。変換したNiagaraでは[Spawn Rate]モジュールの[SpawnRate]プロパティでパーティクルの数が設定されています。
バーストカテゴリーはNiagaraでは[Spawn Burst Instantaneous]モジュールの[Spawn Count]に変換される
もう一つのバーストカテゴリでパーティクルの数を設定する方法がありました。バーストカテゴリでパーティクルの数を設定しているCascadeをConverterプラグインで別途変換します。
バーストカテゴリーはNiagaraでは[Spawn Burst Instantaneous]モジュールの[Spawn Count]に変換されます。
2種類のSpawn方法はConverterプラグインで問題なく変換されます。
Cascadeは1つのモジュールで別々のSpawn方法をしていましたが、NiagaraではSpawn方法が別々のモジュールで行われるのでSpawn方法が分かりやすくなりました。

GPU Sprite EmitterをNiagaraに変換する

GPU SpriteのサンプルCascadeをConverterプラグインでNiagaraに変換する
GPU SpriteのサンプルCascadeをConverterプラグインでNiagaraに変換します。
[問題を修正]ボタンをクリックして修正する
一部エラーになっているモジュールを[問題を修正]ボタンをクリックして修正します。
Niagaraでは処理方法をCPUかGPUに選択するのは[エミッタのプロパティ]モジュールの[Sim Target]プロパティで設定する
Niagaraでは処理方法をCPUかGPUに選択するのは[エミッタのプロパティ]モジュールの[Sim Target]プロパティで設定します。
[Fix Bound]を有効にすると警告が消える
[Sim Target]を[GPUCompute Sim]に設定すると警告が表示されます。原因は[Fix Bound]が有効になっていないからです。[Fix Bound]を有効にすると警告が消えます。
一部のモジュールが変換されていないような動きをする
エラーと警告を消した後に、変換元のCascadeの横に並べて動作を比較してみます。
Niagara変換後のエフェクトとは動きが違います。一部のモジュールが変換されていないような動きをしています。
TypeData特有のModuleはConverterプラグインでは変換対象にはならない
Cascade側のモジュールを無効にすると、変換したNiagaraのエフェクトと同じになります。Cascade側で無効にしたモジュールはGPU SpritsTypeDataを削除した時に無効になってしまったモジュールです。
TypeData特有のModuleはConverterプラグインでは変換対象にはならないようです。

Mesh EmitterをNiagaraに変換する


Mesh EmitterをConverterプラグインでNiagaraに変換します。
[問題を修正]ボタンをクリックして修正する
プレビューに何も表示されていません。エラーのモジュールがあるので[問題を修正]ボタンをクリックして修正します。
レンダリングの[+]をクリックし、[Mesh Renderer]を追加する
エラーを修正してもプレビューに何も発生しません。StaticMeshをパーティクルとして発生させるモジュールが変換出来ていないようです。
レンダリングの[+]をクリックし、[Mesh Renderer]を追加します。
Cascade側で設定されていたStaticMeshとMaterialをチェック
CascadeではStaticMeshには[SM_Toy_Cow]、マテリアルには[Mat_CowMeshParticle]が設定されていました。
プレビューにStaticMeshがパーティクルとして生成されていることが確認出来る
Niagara側に追加した[Mesh Renderer]にCascadeで設定されていたStaticMeshとMaterialを設定します。
プレビューにStaticMeshがパーティクルとして生成されていることが確認出来るようになりました。
動作としては同じなのですが、変換後のNiagaraの方がメッシュが残る時間が長いのでまだ調整は必要
変換元のCascadeの横に変換したNiagaraを配置して動作を比較します。
動作としては同じなのですが、変換後のNiagaraの方がメッシュが残る時間が長いのでまだ調整は必要ですね。

Beam EmitterをNiagaraに変換する

Beam EmitterをConverterプラグインでNiagaraに変換する
Beam EmitterをConverterプラグインでNiagaraに変換します。
Beam TypeDataはConverterプラグインでは変換できない
Mesh TypeDataと同様にプレビューに何も表示されていません。レンダリングの[+]をクリックしても、Beam Rendererのような名称は用意されていません。
Beam TypeDataはConverterプラグインでは変換できないようです。
Niagaraシステムのアセットを作成する
Niagaraは作成する時にテンプレートを選ぶことが出来ます。Beamのテンプレートが用意されているので、テンプレートのBeamEmitterがどのように作成されているか確認します。

Niagaraシステムのアセットを作成します。
[Static Beam]のEmitterを追加する
[Static Beam]のEmitterを追加して作成します。
NiagaraではBeamエフェクトは[Ribbon Renderer]とBeam用のModuleを組み合わせて作成する
[Static Beam]EmitterではBeamを形成するために、Beam用のModuleが設定されています。レンダリングカテゴリには[Ribbon Renderer]が使用されています。NiagaraではBeamエフェクトは[Ribbon Renderer]とBeam用のModuleを組み合わせて作成することになるようです。
Niagara でビーム エフェクトを作成する方法 | Unreal Engine ドキュメント
公式がNiagaraでBeamエフェクトを作成するチュートリアルを用意しているので、興味がある人はこちらをお勧めします。

Ribbon EmitterをNiagaraに変換する

Ribbon EmitterをConverterプラグインでNiagaraに変換する
Ribbon EmitterをConverterプラグインでNiagaraに変換します。

エラーがあるモジュールを[問題を修正]ボタンで修正します。[Ribbon TypeData]は[Ribbon Rernderer]に変換されています。
Ribbon TypeDataはConverterプラグインで微調整が必要ですが変換することが出来る
変換元のCascadeの横に、変換後のNiagaraを配置して比較します。少し軌跡の幅が細くなっていますが、同じように動作します。
Ribbon TypeDataはConverterプラグインで微調整が必要ですが変換することが出来ます。

AnimTrail EmitterをNiagaraに変換する

AnimTrail EmitterをConverterプラグインでNiagaraに変換する
最後にAnimTrail EmitterをConverterプラグインでNiagaraに変換します。
AnimTrail TypeDataはConverterプラグインでは変換されない
レンダリングにRendererが何も設定されていないので、AnimTrail TypeDataはConverterプラグインでは変換されません。
Ribbon Rendererをレンダリングカテゴリに追加する
AnimTrail TypeDataはRibbon TypeDataと動きはほとんど同じなので、Ribbon Rendererをレンダリングカテゴリに追加します。
Ribbon RendererのマテリアルにAnim Trailで使用していたマテリルを設定する
Ribbon RendererのマテリアルにAnim Trailで使用していたマテリルを設定します。
アニメーションにNiagaraを設定する通知を追加
AnimTrailを設定していたアニメションを開き、Niagaraを設定する通知を追加します。
右手側をNiagaraでTrailするように置き換る
右手側をNiagaraでTrailするように置き換えます。
追加したNiagaraの通知にAnimTrailを変換したNiagaraを設定する
追加したNiagaraの通知にAnimTrailを変換したNiagaraを設定します。
右手側にTrailが見えるようになる
右手側にTrailが見えるようになりました。しかし、幅が左手側より狭いです。
Niagaraに[Inisialize Ribbon]モジュールを追加する
Niagaraに[Inisialize Ribbon]モジュールを追加する
Ribbon Widthの幅を広くするように設定を変更する
Ribbon Widthの幅を広くするように設定を変更します。
幅は同じくらいの広さにすることが出来た
幅は同じくらいの広さにすることが出来ましたが、軌跡が違うので調整する必要があります。

Converterプラグインの変換結果

ConverterプラグインでNiagaraに変換した際の結果一覧

Cascadeには6種類のTypeDataがありました。ConverterプラグインでNiagaraに変化した際の結果を一覧にしました。
TypeDataによってConverterプラグインで変換出来たり、出来なかったりします。「どのTypeDataは変換できない」、「変換できなかった時の対処方法」を把握しておくことでCascadeをNiagaraで再現することが可能です。
Converterプラグインで100%再現できるものではないので、40%くらい変換出来てラッキーぐらいに使うと良さそうです。

【Twitterで情報発信中】

TrainingCampでは、今後もUE4のTips記事を発信していきますのでTwitterのフォローをよろしくお願いします。
Twitterアカウントはこちら

ゲームコースの受講生募集中!

TrainingCampではゲームコースの受講生を募集しています。 極め本をバージョン4.26で学習出来るように対応しています! UnrealEngineを一緒に学習しましょう! ゲームコース Epic Games Japan公認! UE4のバイブル本「極め本」を極めよう! 本書はUE4の解説書として Epic Games Japanより「公認」されており、 解説書として一番の販売部数を誇ります。

Discussion