UE5 Cascadeの6種類のTypeDataをNiagaraに変換する
今回は、【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が用意されています。1つずつConverterプラグインでNiagaraに変換していくことで、全種類のCascadeを確認することが出来ます。
Cascadeの種類を分けているのはTypeDataというモジュールを追加することでEmitterの種類を変更することが出来ます。
TypeDataを変更するには、Requiredの上の空白を右クリックし、TypeDataから変更したいTypeDataを選択します。
TypeDataを追加すると、Requiredの上に追加したTypeDataが表示されます。
まずは、6種類のTypeDataの特徴について触れていきましょう。
6種類のTypeDataの特徴
Standard Sprite Emitterの特徴
Standard Sprite EmitterはTypeDataが設定されていないEmitterを使ったエフェクトです。一番使用される基本的なエフェクトです。
Standard Sprite EmitterはSpawn方法が2種類あります。
1つはSpawnモジュールでRateカテゴリでSpawn数を設定してパーティクルを発生させます。特徴としては発生してから前後左右に広がっていくようなエフェクトを作るときに使用します。
もう1つはバーストカテゴリでSpawnの数を設定させる方法です。その名の通り爆発するようなエフェクトを作るときに使用します。
TypeDataとしては1種類ですが、内部で2種類のエフェクトを作成することが出来ます。
GPU Sprite Emitterの特徴
GPU Sprite Emitterはエフェクトの処理をGPUで処理することが出来るようになるTypeDataです。CPUよりGPUの方がパーティクルの処理する数は増やすことが出来ます。
用意されている[CPU Sprites]TypeDataを設定しているEmitterからTypeDataを削除すると、無効になるモジュールがあります。
特定なTypeDataでしか使用できないモジュールがあります。Converterプラグインで変換する際に重要なポイントなので覚えておいてください。
Mesh Emitterの特徴
Mesh EmitterはパーティクルにStaticMeshを使用することが出来るTypeDataです。魔法で氷の柱を生やしたりといったStaticMeshを使うことでしかできないエフェクトを作成することが出来ます。
Beam Emitterの特徴
Beam Emitterはその名の通りBeamのような光線を出力するTypeDataです。直線だったりサンプルのように曲線のBeamを作り出すことが出来ます。
Ribbon Emitterの特徴
Ribbon Emitterはパーティクルの軌跡を描くためのTypeDataです。軌跡を描くためのEmitterが必要になるので、単独のEmitterでは効果を発揮しません。花火のようなエフェクトを作るときに重宝します。
AnimTrail Emitterの特徴
AnimTrail EmitterはRibbonDataと似ています。RibbonDataと違うのは軌跡をSkeltalMeshのアニメーションを使用する事です。AnimTrail DataだけのEmitterを作成し、Animationにアタッチすることで軌跡を確認することが出来ます。
6種類のTypeDataをConverterプラグインでNiagaraに変換する
Standard Sprite EmitterをNiagaraに変換する
6種類のTypeDataの特徴が分かったところで、1種類ずつConverterプラグインを使用して変換していきます。
Converterプラグインの使用方法は前回の記事を参考にしてください。
一部エラーになっているモジュールがあるので、[問題を修正]ボタンをクリックしてエラーを修正します。
変換時のエラーはあったものの概ね変換することが出来ました。少しバウンドが大きいのでCollisionモジュールの調整が必要になります。
Standard Sprite EmitterにはSpawn方法が二種類ありました。サンプルで用意されていたCascadeでは、Rateカテゴリでパーティクルの数を設定していました。変換したNiagaraでは[Spawn Rate]モジュールの[SpawnRate]プロパティでパーティクルの数が設定されています。
もう一つのバーストカテゴリでパーティクルの数を設定する方法がありました。バーストカテゴリでパーティクルの数を設定している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に変換します。
一部エラーになっているモジュールを[問題を修正]ボタンをクリックして修正します。
Niagaraでは処理方法をCPUかGPUに選択するのは[エミッタのプロパティ]モジュールの[Sim Target]プロパティで設定します。
[Sim Target]を[GPUCompute Sim]に設定すると警告が表示されます。原因は[Fix Bound]が有効になっていないからです。[Fix Bound]を有効にすると警告が消えます。
エラーと警告を消した後に、変換元のCascadeの横に並べて動作を比較してみます。
Niagara変換後のエフェクトとは動きが違います。一部のモジュールが変換されていないような動きをしています。
Cascade側のモジュールを無効にすると、変換したNiagaraのエフェクトと同じになります。Cascade側で無効にしたモジュールはGPU SpritsTypeDataを削除した時に無効になってしまったモジュールです。
TypeData特有のModuleはConverterプラグインでは変換対象にはならないようです。
Mesh EmitterをNiagaraに変換する
Mesh EmitterをConverterプラグインでNiagaraに変換します。
プレビューに何も表示されていません。エラーのモジュールがあるので[問題を修正]ボタンをクリックして修正します。
エラーを修正してもプレビューに何も発生しません。StaticMeshをパーティクルとして発生させるモジュールが変換出来ていないようです。
レンダリングの[+]をクリックし、[Mesh Renderer]を追加します。
CascadeではStaticMeshには[SM_Toy_Cow]、マテリアルには[Mat_CowMeshParticle]が設定されていました。
Niagara側に追加した[Mesh Renderer]にCascadeで設定されていたStaticMeshとMaterialを設定します。
プレビューにStaticMeshがパーティクルとして生成されていることが確認出来るようになりました。
変換元のCascadeの横に変換したNiagaraを配置して動作を比較します。
動作としては同じなのですが、変換後のNiagaraの方がメッシュが残る時間が長いのでまだ調整は必要ですね。
Beam EmitterをNiagaraに変換する
Beam EmitterをConverterプラグインでNiagaraに変換します。
Mesh TypeDataと同様にプレビューに何も表示されていません。レンダリングの[+]をクリックしても、Beam Rendererのような名称は用意されていません。
Beam TypeDataはConverterプラグインでは変換できないようです。
Niagaraは作成する時にテンプレートを選ぶことが出来ます。Beamのテンプレートが用意されているので、テンプレートのBeamEmitterがどのように作成されているか確認します。
Niagaraシステムのアセットを作成します。
[Static Beam]のEmitterを追加して作成します。
[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 TypeData]は[Ribbon Rernderer]に変換されています。
変換元のCascadeの横に、変換後のNiagaraを配置して比較します。少し軌跡の幅が細くなっていますが、同じように動作します。
Ribbon TypeDataはConverterプラグインで微調整が必要ですが変換することが出来ます。
AnimTrail EmitterをNiagaraに変換する
最後にAnimTrail EmitterをConverterプラグインでNiagaraに変換します。
レンダリングにRendererが何も設定されていないので、AnimTrail TypeDataはConverterプラグインでは変換されません。
AnimTrail TypeDataはRibbon TypeDataと動きはほとんど同じなので、Ribbon Rendererをレンダリングカテゴリに追加します。
Ribbon RendererのマテリアルにAnim Trailで使用していたマテリルを設定します。
AnimTrailを設定していたアニメションを開き、Niagaraを設定する通知を追加します。
右手側をNiagaraでTrailするように置き換えます。
追加したNiagaraの通知にAnimTrailを変換したNiagaraを設定します。
右手側にTrailが見えるようになりました。しかし、幅が左手側より狭いです。
Niagaraに[Inisialize Ribbon]モジュールを追加する
Ribbon Widthの幅を広くするように設定を変更します。
幅は同じくらいの広さにすることが出来ましたが、軌跡が違うので調整する必要があります。
Converterプラグインの変換結果
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