こんにちは!
ゲームを遊んでいると、敵を倒した時などにキャラクターがパーティクルとなって消え去る「ディゾルブ(消失)エフェクト」を見かけることがあります。あれ、作りたくなりますよね。
皆さんは、これをUE5のNiagaraで実装する際、どのようなアプローチをとっていますか?
おそらく、一番お手軽な「Skeletal Mesh Locationモジュール」を使っている方が多いのではないでしょうか。
もちろんこの方法は王道で便利なんですが……「あんまり綺麗にならない(泣)」と悩んだことはありませんか?
今回は、エフェクト制作の引き出しをもう一つ増やすための、「Screen Space(画面空間)」と「Stencil Mask(ステンシルマスク)」を使ったディゾルブ表現のアプローチについてシェアしたいと思います!
なぜ「Skeletal Mesh Location」以外の方法も知っておくべきなの?
Skeletal Mesh Locationは、キャラクターの3Dモデル(ポリゴン)の表面から直接パーティクルを発生させる機能です。
サクッと作れるのが魅力ですが、実は以下のような弱点(手間)もあります。

- メッシュの構造(ポリゴンの密度)に影響されてしまう
顔の周りなどポリゴンが細かいところはパーティクルが濃くなり、逆に胴体などポリゴンが少ないところはスッカスカになってしまうなど、見た目のコントロールが難しいことがあります。 - Niagara側でもディゾルブを実装する「二度手間」が発生する
キャラクターが消えていく表現を作る際、マテリアル側でディゾルブ(透過)させるだけでなく、「消えた部分からはパーティクルを出さないようにする」といった制御をNiagara側でも組む必要があり、実装の手間が増えてしまいます。
「もっと均一で綺麗なシルエットのエフェクトを作りたい」「アプローチを変えてみたい」
そんな時に役立つのが、今回紹介するもう一つの手法です。
新手法!「Screen Space」×「Stencil Mask」の考え方
このアプローチの最大のポイントは、「キャラクターのモデルから発生させるのではなく、カメラから見える画面に合わせてパーティクルを発生させて、キャラクターの形で切り抜く」という考え方です。
手順は大きく3つのステップです。
ステップ1:キャラクターの「画面上の枠(Screen Bounds)」を見つける


3D空間の情報を、私たちがモニターで見ている2Dの画面座標(Screen Space)に変換します。キャラクターが画面の「どの範囲」に映っているか、その四角い枠(Screen Bounds)を計算して割り出します。
ステップ2:枠の中にパーティクルを敷き詰める

先ほど見つけた四角い枠の中に、パーティクルを発生させます。この時点では、キャラクターの手前に「四角いパーティクルの壁」ができている状態ですね。
ステップ3:ステンシル(Custom Stencil)で「型抜き」する!


ここが一番のポイントです!
UEのレンダリング機能(Custom Depth-Stencil)を使って、キャラクターのモデルに「特別な番号(例えば1)」を割り当てます。
そしてNiagara側で、「画面上で番号が1の場所(=キャラクターが映っている場所)のパーティクルだけを残して、それ以外は消す!」という処理を行います。
クッキーの生地(ステップ2)を、キャラクターの型(ステップ3)でスポン!と抜くようなイメージですね。
これなら、ポリゴンの密度に影響されない、綺麗なシルエットのエフェクトを作ることができます。
とはいえ、実装には「ちょっとした壁」があります……
ここまで読んでいただいて、「そんなアプローチがあるのか!」と思っていただけたかもしれません。
ただ……正直にお伝えすると、これを実際にNiagaraで組もうとすると、既存のモジュールをポンと置くだけでは作れません。
「Scratch Pad(スクラッチパッド)」を開いて、自分だけの独自のモジュールを組む必要があります。

Particle Attribute Readerを使ってデータを渡す- カメラの「前方ベクトル」や「上方向ベクトル」を取得する
- UV座標と内積を使って、画面上にパーティクルを展開する計算式を組む
- G-Bufferから正確なDepth(深度)とステンシルの値を読み取る
などなど、少し「数学的な計算」と「Niagaraの深い知識」が必要になってきます。
【実践編】この仕組みをゼロからしっかり学びたい方へ!
「理屈は分かったけど、具体的にどうノードを繋げばいいの?」
「Scratch Padでのベクトル計算、ちゃんと理解して使いこなせるようになりたい!」
そんな方に向けて、この「画面空間とステンシルを使ったディゾルブ表現」の実装方法を、ゼロから一緒に手を動かしながら学べるオンライン講座をColosoから出しています!
🔽 Coloso講座:仕組みから学ぶNiagara×Materialの高度VFX表現
https://coloso.jp/products/vfxartist-heyyo-jp
この講座では、今回解説した理論をベースに、単なる「ノードの写経」ではなく「なぜこの計算が必要なのか?」を基礎から丁寧に解説しています。
もちろん、今回の解説に使用している完成プロジェクトデータも講座に付属していますので、実際にデータに触れながら学習を進めることができますよ!
「とりあえずデータだけ手っ取り早く欲しい!」という方へ
「講座をじっくり見る時間がない……」
「完成した仕組みを自分のプロジェクトですぐに使いたい!」
「データの中身を自分で解剖してみたい!」
という方向けに、Gumroadにてプロジェクトデータ単体での販売も行っています。
🔽 Gumroad:ディゾルブエフェクト プロジェクトデータ販売
https://heyyohanashima.gumroad.com/l/lvmte
この「シルエット型抜き」の仕組みをマスターすれば、ディゾルブ表現だけでなく、ホログラムエフェクトなどNiagaraでの表現の幅が爆発的に広がります!
「Skeletal Mesh Location以外の表現の引き出しをもっと増やしたい!」という方は、講座やデータを通じてぜひ実践してみてくださいね!
