4.進化、強化された機能たち
Cascadeからの進化は数多くありますが、多彩なサンプリング機能によってメッシュの法線や頂点カラーなども簡単にパーティクルに渡すことができるようになったのが魅力のひとつと言えます。特にテクスチャサンプリングによってテクスチャの色に基づいたパーティクルを発生させる機能はNiagaraで簡単にできるようになりました。
ブループリントとの連携も強化されており、Cascadeと比べてレベル(シーン)やキャラクターの値の取得が容易になっただけでなく、エフェクトアセット内のパラメータを外に渡すフローも改善されています。特に便利なのが、新しく追加されたNPC(Niagara Parameter Collection)アセットです。NPCは、ブループリントを介してあらゆるNiagaraアセットに対してプレイヤーの位置情報や向きといった汎用的な値を容易に渡すことができるので、レベル上の何か変化に合わせてダイナミックにエフェクトをコントロールするといった、動的なエフェクトがつくりやすくなっています。
ほかにも大変ありがたいことに、4つのDynamicMatParam、つまり16個の値をマテリアルに渡せるようになっています。これまではひとつのDynamicMatParamだったため、Particle Colorをカラーとしてではなく4つのパラメータとして扱うといった工夫が必要でしたが、その必要性が減りました。また、Niagaraではパラメータ入力を[Expression]に切り替えることで、エクスプレッションによる制御が可能になりました。これはHoudiniを使っている方には馴染みやすいのではないでしょうか。ちょっとしたパラメータ同士のリンクや計算などのモジュールをつくるほどでもないものや、一度きりの計算を入れたい場合に非常に便利です。
ほかにも様々なパラメータが現在どのような値になっているかをキャプチャして見ることができるAttribute Spreadseetも搭載され、デバッグや最適化もしやすくなっています。現在はCPU制御の値のみ対応していますが、GPU側の値への対応が待たれます。
テクスチャサンプリング
テクスチャをサンプリングし、その一部の色からだけパーティクルを発生させることも可能です
エクスプレッション
簡単な処理はエクスプレッションで対応してしまえるのが便利です。[Vortex Origin](渦フォースの原点)にActorのポジションを入れ、そこから上方向(Z+)に50~100の幅をもたせる、というエクスプレッションになっています。[Vortex Force Amount]のように、ただ単に別のパラメータを指定するだけという使い方も可能です
Attribute Spreadsheet
Attribute Spreadsheetの画面。パーティクルのSpawnやUpdate、System Updateが個別にタブをもっており、さらにフィルタをかけて必要な分だけ情報を見ることも可能です。自分でつくったパラメータもきちんとここに表示されます
シーケンサー
イベントや動画制作に使うシーケンサーにも対応していますので、数千万からの粒子で構成されるような、フレームレートを気にしない高品質な映像制作でもNiagaraを活用できます
5.Houdiniとの連携
NiagaraはHoudiniとの親和性が高いと言えます。ゲームエンジンとの連携に関してはHoudini Engineがすでにありますが、Niagaraの場合はそれとは別の、UE4用の専用のプラグイン「Houdini Niagara Data Interface」を介して行います。Houdini側でもっている値や事前に計算したpoint cloudの値(color、impulse、time、life、position、velocity、normal、idやtypeなど様々)をNiagaraのパーティクルへ渡してあげることで、Houdini内で計算した複雑なアニメーションやふるまいをNiagara上で再現することができます。
例えば、破壊オブジェクトが壊される際に地面に衝突した破片の位置からパーティクルを発生させ、そのアニメーションには衝突する破片の力と方向を継承させる、といったデータを渡すことができます。これはリアルタイムでの描画が求められるイベントシーンなどで、今まで以上にきめ細かなエフェクトの挙動、ふるまいを表現するためにかなり強力に作用するはずです。また同時に、イベントエフェクトを手作業で付けていた部分の多くをHoudiniとNiagaraによって半自動化できるとも言えます。
Houdini上での破壊の事前計算には、Game Development Toolsetに含まれているRDB(リジッドボディ)のノード類を使用します(執筆した時点ではベータ版だったので、仕様の一部が変更される可能性があります)。そして、Houdiniから渡されるデータはhcsv(CSV形式のファイル)として出力され、UE4にインポートしてNiagaraの中で使用する、というながれになっています。
HoudiniとNiagaraの連携
【画像上】がHoudini上での破壊と衝突情報を表示したもので、【画像下】がそれを基にNiagara上で煙と破片メッシュを発生させたものです。リジッドボディ(RBD)本体の出力には、VAT(頂点アニメーションテクスチャ)を使用しています
連携の応用
応用的な使用例として、VATと「Houdini Niagara Data Interface」の合わせ技で、各パーティクルに別々の形状のメッシュをもたせることも可能です。通常のVAT(バーテックスアニメーションテクスチャ)は決まった動きを再生するだけですが、アニメーションをNiagaraのパーティクルに依存させる方法ならば、疑似的な破壊表現やNiagaraのCurl Nosie、渦、コリジョンといった複雑な挙動を壊れるモデルに適用することができます。今回のデータ作成には、Houdini FX 17.0.352を使用しました
リアルタイムはもちろん
映像制作者にも面白いエフェクトツール
まだアーリーアクセスの段階にあり、執筆の段階では全ての機能でGPU対応されているわけではないため、正式リリースが待ち遠しい限りです。とはいえ、すでにかなりの表現力を備えていますので、現段階から触っておく意味は十分にあると感じます。また、将来的にCascadeからの変換ツールの提供も予定されているので、大量のCascadeアセットを保有する方や企業には朗報なのではないでしょうか。
本稿でレビューできたのは、Niagaraの機能の一部でしかありません。海外でもユニークな作例やチュートリアルがアーティストからだけではなくプログラマーからも発信されていますので、検索してどういったことができるのかを見ていただきたいです。Niagaraのもつ可能性は非常に期待できるもので、アーティストだけでなくプログラマーにとっても、また映像制作に携わる方にとっても面白いエフェクトツールであると断言できます。