Unreal Engine 5 用アセット Anime Aura VFX(NiagaraSystem)についての仕組みを説明します。
目次:
Anime Aura VFX について:
ストア:
Anime Aura VFX in Visual Effects - UE Marketplace
サポート:
mail : nkdtr2011@gmail.com
概略:
アニメーションに見られるような、平面的なオーラエフェクトを表示できるNiagaraSystemです。
フリップブック式ではなくパーティクルで制御されているため、
・キャラクターのポーズを反映できます
・エフェクトの挙動や見た目を柔軟に変えることができます
使い方:
プリセットを用いる
30を超える NiagaraSystem がアセットに含まれています。
殆どのものは基本となる NS_AuraEffect のパラメータを調整していくことで再現できますが、この作業をショートカットできます。
手動セットアップ
方法①:
NS_AuraEffect または他のプリセットを複製しパラメータを調整します。
作成した新しい NS_AuraEffect を使い回すことができるため、こちらがおすすめです。
方法②:
NS_AuraEffect を SkeletalMeshComponent の下にアタッチした後でパラメータを調整することもできます。
実際に表示されるシーン上でプレビューできる優位性があります。
こちらは NiagaraSystem アセットに影響を与えませんので、テスト用の意味合いが強いかもしれません。
パラメータ詳細(英語)
Please see this page:
仕組みについて:
以下はややテクニカルな内容で、カスタマイズを行いたい人向けです。
これを把握することによって、目標とする表現のためのカスタマイズをより論理的に考えることができるかもしれません。
全体像
Anime Aura VFX の NiagaraSystem にはパーティクルの挙動を制御するエミッターとそれをテクスチャ化し表示するエミッターが配置されています。
パーティクル制御エミッター
こちらはほぼ通常のエミッターです。テンプレートの Fountain 等とさほど違いません。
ただし Renderer がオフになっているため、パーティクル自体が表示されることはありません。
表示用エミッターからはこのエミッターにあるパーティクルの座標・サイズ等の情報が読み取られます。
このエミッターを編集することで、エフェクトの挙動をカスタマイズすることが可能です(作業中はRendererをオンにすると確認しやすいと思います)。
こちらに関しては普通の(?)エフェクトと同様の感覚で調整すればよく、Force や Burst の追加等も問題ありません。
パーティクル数が多すぎると負荷が問題になるかもしれません。また、このエフェクトの性質上パーティクル数を増やすことによる恩恵は小さめです。
表示用エミッター
表示エミッターはパーティクル制御エミッターからパーティクルの情報を読み取り、これをテクスチャに書き込んだ上でマテリアルに渡します。そのマテリアルを適用したスプライトを一枚表示します。
SkeletalMeshにアタッチされている場合は、ボーンやソケットの位置をも仮想的なパーティクルとして用います。
こちらは SimulationStage がメインのエミッターで、パーティクルを発生させることはありません。
かなり特殊な内容になっていますので、Niagara に不慣れなうちはカスタマイズは難しいかもしれません。
ただし量や大きさに関する様々な数値が NiagaraSystem のユーザーパラメータとして触れるようになっているため、そちらの調整で事足りることが多いと思います。
パーティクルをテクスチャに書き込む
パーティクルの中心で濃く、離れるほど薄くなるグラデーションを重ねて書き込んでいきます。
NiagaraSystemを中心として配置したスプライトをスクリーンに見立て、カメラの姿勢を参照しながらしかるべき位置に描画していきます。
直前のフレームの状態とブレンドしてできあがるのがこのようなテクスチャです。
NiagaraSystem のプレビュー画面に表示されます。
プレビュー用にTポーズ状態の SkeletalMesh を参照しているためTポーズ型になっています。
色をもたない濃淡データのみのため、R成分だけで表示されるようです。
スプライトのマテリアルで色をマッピングする
マテリアルでは、テクスチャに書き込まれた濃度をキーとして表示色を決定します。
典型的な実装としては CurveAtlas から色を取るようになっています。
この際、テクスチャからサンプリングするための UV やサンプリングした濃度そのものをマテリアル内で加工するすることで外見にバリエーションを与えることができます。
このマテリアルの指定も NiagaraSystem のユーザーパラメータで変更可能ですので、マテリアルの扱いに慣れた人であれば自分なりのものを作成して様々な表現を実現できると思います。
パターンを入れたりノイズをかけたり(マテリアルのみの置き換え)
こちらはパーティクル制御エミッターもいじっています。
制限事項
パーティクルをテクスチャへ描画する段階で視点の情報を参照する関係で、同時に正しく描画できる視点が一つだけになってしまう制限があります(画面分割を行った場合やSceneCaptureを用いる場合に問題になります)。
これに関しては技術的に解決が困難と思われますが、せめてもの処置として上記計算に用いる視点をユーザーパラメータで指定できるようにしてあります(CustomViewport )。