ポリゴンを分解するような表現は、FF9などひと昔前のゲームでも使用されていて、おそらくプログラマがシェーダーを駆使して実装していたのではないかと思います。

ポリゴンの分解や変形をシェーダーで制御するには、Geometory Shaderのステージで実装することで、Unityなどの汎用ゲームエンジンでも達成することができますが、グラフィックパイプラインが対応していない場合もあり、気軽に使えるものではありません。
また、残念ながらUE5は、Geometory Shaderに対応していません。
↓筆者が昔Unityで実装したGeometory Shaderでのポリゴン変形
しかし、UE5にはNiagaraがあります!
Niagaraの機能をフル活用することで、気軽には使えないシェーダーでの実装の欠点を迂回して、色々な面白いポリゴン分解の表現を作成することができます。
具体的には、メッシュをパーティクルで再現することによって、ポリゴンの制御をパーティクルの制御に置き換える、ということをします。
今回は、その仕組みの基礎をステップ・バイ・ステップで解説します!
この基礎を理解できれば、あとはパーティクルの制御(動かし方)を変えるだけで、分解や変形など様々なエフェクトに応用できます。表現の幅を広げる土台として、ぜひ身につけていただきたいです!
基礎システムの構築:メッシュをパーティクルへ置き換える
まずは、キャラクターのメッシュを「パーティクルの集合体」に置き換える下準備を行っていきます。
Step 1:メッシュの総ポリゴン数を取得してパーティクルを発生させる


対象のメッシュが「1万ポリゴン」でできているなら、ぴったり「1万個」のパーティクルを発生させます。 なので、原則GPU Emitterを使います。
Niagaraのスクラッチパッドを使って対象メッシュの正確なポリゴン数(Triangle Count)を取得し、それをそのままパーティクルの発生数(Spawn Burst InstantaneousのCount)として設定します。
Step 2:1つのポリゴンに1つのパーティクルを正確に割り当てる

次に、「0番目のポリゴンには0番目のパーティクルを、1番目には1番目を…」というように、すべてのポリゴンに重複なくパーティクルを配置します。 Skeletal Mesh Locationのサンプリングモードを「Direct(直接指定)」に変更し、パーティクルの通し番号であるExecution Indexを、ポリゴン番号であるTriangle IDに直接代入します。

これでメッシュの表面にパーティクルが配置されました。
しかし、画像を見るとわかる通り、今の段階ではただの「四角いスプライト」が表面に張り付いているだけで、隙間だらけです。これを、元のメッシュと全く同じ「三角形」に変形させていきます。
形状の再現:WPOで四角形スプライトを「三角形」に変形させる
パーティクルの形を変えるために、マテリアルのWPO(World Position Offset)という機能を使います。これは、モデルの頂点位置をマテリアル側で自由に移動させることができる強力な機能です。
Step 3:Niagaraで「ポリゴンの3つの頂点」へのベクトルを計算する

Niagaraのスクラッチパッド内で、パーティクルが張り付いている対象のポリゴン(三角形)の「3つの頂点の絶対座標」を取得します。
そして、「現在のパーティクルの中心位置」から「3つの頂点」へ向かうベクトル(どちらの方向に、どれくらい移動すれば頂点に届くか)を引き算で計算します。

Step 4:Dynamic Parameterでマテリアルに数値を送信する


計算した3つのベクトル情報を、Dynamic Material Parameters(ダイナミックパラメータ)を使ってマテリアル側に送信します。これでマテリアル側は「どの方向に頂点を動かせば三角形になるか」を知ることができます。
Step 5:マテリアル側でUVを使って頂点を移動(WPO)させる


マテリアル側で、受け取ったベクトル情報を使って四角形の頂点を動かします。
四角形スプライトの「どの角」を「どのベクトル」へ動かすのかを、UV座標(TexCoord)を使って振り分けます。
- U(横方向)が0なら左側の頂点、1なら右側の頂点。
- V(縦方向)が1なら下側の頂点。
このようにLerp(線形補間)を使って数式を組むことで、「四角形の上の2つの頂点を三角形の底辺に合わせ、下の2つの頂点をギュッと1点にまとめて三角形の頂点に合わせる」という変形が可能になります。

この計算結果をWPOに繋ぐと…… 四角形だったスプライトが強制的に三角形に変形し、元のキャラクターのメッシュの形とピッタリ重なります!
基礎は分かった!…でも、ここからどうやって仕上げるの?
これで「形状の再現」はできました!すべてのポリゴンがパーティクルに置き換わっています。この状態さえ作れれば、あとはパーティクルをどう動かすかで様々な表現が可能です。
……ただ、Step 5の画像を見ていただくとわかる通り、今の状態は「真っ赤な三角形の集合体」です。
ここから本当のエフェクトとして仕上げるためには、以下の2つの大きな壁を越える必要があります。
- 「見た目」の再現
ただ形を合わせただけでは、元のキャラクターのテクスチャや、滑らかな陰影(法線)が失われてしまい、元の見た目とは違って見えてしまいます。元のキャラクターにさらに見た目を近づけるのに、どうやってテクスチャや法線情報をパーティクルにコピーするのか?

- かっこいい「アニメーション」への応用
見た目の再現ができたら、次はそれを動かす番です。ランダムに砕け散っていく表現や、四角形のデジタルなノイズに変形しながら消えていく表現など、実際のエフェクトとしてどう制御するのか?
実践的な「見た目の再現」と「2つの作例制作」を学びたい方へ!
もし今回の記事を読んで、「この基礎システム、自分のプロジェクトでも使いたい!」「これを応用して、実際にゲームで使えるレベルの分解エフェクトを最後まで作り上げてみたい!」と思っていただけたなら。
私がColosoで出しているオンライン講座にて、基礎部分のより詳細な解説から、この続きの「見た目の再現」から「2種類の作例制作」までを、ハンズオンで徹底解説しています!
🔽 Coloso講座:仕組みから学ぶNiagara×Materialの高度VFX表現
https://coloso.jp/products/vfxartist-heyyo-jp
(※本記事の内容は、講座の【第21講〜第24講】 のセクションで詳しく取り扱っています。)
講座の中では、今回少し触れた「Scratch Padでの複雑なベクトル計算」の具体的なノードの組み方はもちろん、法線やテクスチャをレンダーターゲット経由でマテリアルに渡し、「元のメッシュと同じ見た目を作る」という超実践的なワークフローを学ぶことができます。
さらに、その仕組みをベースにして、
- 作例1:シンプルにポリゴンが分解されて飛び散る表現
- 作例2:四角形に変形・回転しながらデジタルっぽく消えていく表現
という、現場ですぐに使える2つのエフェクトを一緒に作り上げていきます!


「とりあえず完成データの中身を見てみたい!」という方へ
「講座をじっくり見る時間がない!」 「どうノードが組まれているのか、完成データを見れば自分で解読できる!」
という方向けに、Gumroadにてプロジェクトデータ単体での販売も行っています。
🔽 Gumroad:プロジェクトデータ販売
https://heyyohanashima.gumroad.com/l/qmmmk
「普通のパーティクル表現から一歩抜け出したい!」という方は、ぜひ講座やデータを通じて、この応用性のある高度な仕組みを体験してみてください!
