学生3Dエフェクトアーティストのブログ

エフェクト関連のメモを残したりするブログ

UE4 Niagara ソートがうまくいかない

お久しぶりです、以前書いたブログに使用した画像やGifが消えてしまいブログ辞めたんですが、ue4の不明点などをまとめて共有しようと思ったので不定期で再開します。

 

 

 

  • 今回の問題

複数のNiagaraシステムを描画した際、ソートの挙動がおかしい

 

 

 

  • 解決策

シーン上にあるエフェクトを選択し、詳細のレンダリングタブにあるTranslucency Sort Priorityの値を変更する

 

 

f:id:Chomolungma_beta:20201221195808p:plain

 


公式ドキュメント

docs.unrealengine.com

 

 

 

とりあえず時間がない人のために簡単に書きました
この問題に関して調べたことをまとめます

 

今回の問題点

前提として基本的に半透明のマテリアルは優先的に描画される。
複数のNiagaraエフェクトを同時に描画した際、そのシーン上で半透明のマテリアルが同じ描画優先度であったためエフェクトの描画
がチラついてしまった。

 

半透明優先問題といってリアルタイムエフェクトを製作する際に頻繁に起きる問題らしいですね(現場で働いてるとき僕もこの問題が発生しました泣)

 

そもそも前提としてゲームなどで描画される半透明のものは基本的にピクセル単位の深度情報を持っていないため、画面内で描画の優先を決めるのに苦労するらしいです。
ただエフェクトではパーティクル単位での描画の優先度を決定することができます。

f:id:Chomolungma_beta:20201221201403p:plain

particle単位でソートの設定する方法(Niagara

NiagaraのSort Order Hint はエミッタ単位、かつそのNiagara System内でのソートを変更するためのものです。(デフォルトではエミッタのスタック順)

ソート順番の数値が下がるほど後ろに描画されます。

 

f:id:Chomolungma_beta:20201221202139p:plain

今回使用したエフェクト

 

今回雲のエフェクト(Meteor_intro)のソートを-10くらいに設定し、meteor_Systemエフェクトを20くらいにしました。

ただこのソート値は一つのNiagaraシステムの中でのみ適応されるのであって、複数のNiagaraシステムを使用した際のソート順ではないようです。

 

Niagara上で描画優先度の決定をすることができないので、今回はシーン上で描画の優先度を決定する、Translucency Sort Priorityという設定を使います。

 

f:id:Chomolungma_beta:20201221204957p:plain

Translucency Sort Priorityの設定方法

今回sequencerから設定していますが、普通にシーン上に出して設定もできます。

 

 

まとめ

 

  • Sort Order Hint→Niagaraシステム上でのソート設定
  • Translucency Sort Priority→シーン上でソート設定(Niagaraシステムを複数使用した場合はこっちを使う)

 

 

今回Last of usなどのVFXの制作に携わっているWataru Ikedaさんのご協力があって問題が解決しました。本当にありがとうございました。

twitter.com

 

 

この記事が問題解決のお役に立てれば幸いです。