>   >  モジュール式のアプローチで幅広いエフェクトを作成 ~Niagaraレビュー~
モジュール式のアプローチで幅広いエフェクトを作成 ~Niagaraレビュー~

モジュール式のアプローチで幅広いエフェクトを作成 ~Niagaraレビュー~

UE4ユーザー待望のエフェクトツール「Niagara」。今回は特別にNaughty DogでVFXアーティストとして活躍している池田 亘氏によるレビューをお届けする。これまでのツールとはどうちがうのかみていこう。

※本記事は月刊「CGWORLD + digital video」vol. 247(2019年3月号)からの転載となります。

TEXT_池田 亘(Naughty Dog, LLC)
EDIT_海老原朱里 / Akari Ebihara(CGWORLD)、山田桃子 / Momoko Yamada
©2004-2018, Epic Games, Inc. All rights reserved. Unreal and its logo are Epic's trademarks or registered trademarks in the US and elsewhere.

※記事内容は著者の個人の制作活動によるものであり、Naughty Dogでの業務とは関連がありません。
※本稿ではUE4.21.1を使用しており、アーリーアクセスの段階で執筆しているため、正式リリース時の機能と若干の差異が出る可能性があります。

アーティストの手でモジュールを作成
ダイナミックなエフェクトをつくれるように

「Niagara(ナイアガラ)」は、Unreal Engine 4.20(以下、UE4)からアーリーアクセスとして使えるようになった新しいエフェクトツールです。これまでのエフェクトツール、「Cascade(カスケード)」では限られたモジュール(機能のパーツ)を使ってエフェクトを組み立てる方式で、新しい機能を必要とする場合はプログラマーの助けが必要でした。しかし、Niagaraは「プログラマブルVFX」と銘打っており、使い手が必要に応じてエフェクトの表現に必要な機能を追加したり変更したりできるしくみになっています。かなり広範囲のパラメータにアクセスすることができるので、それらを繋ぎ合わせてダイナミックにエフェクトを変化させることができるという優れた面を備えています。また、モジュールはノードベースのエディタによって作成する方式を採用しています。つまり、アーティストがこれまでノードベースのエディタで様々なマテリアルをつくるのと似たかたちで、ビジュアルスクリプティングによって、コーディングなしでエフェクトのモジュールを作成することができます。UE4のマテリアルエディタでは主にピクセルシェーダ側の制御をすることが多かったと思いますが(頂点オフセットを除いて)、Niagaraのモジュール作成は頂点シェーダ側でパーティクルの挙動をノードベースで操っているとイメージしてもらうとわかりやすいのではないでしょうか。

何だか今までよりも難しくなった印象をもたれる方もいるかもしれませんが、NiagaraはCascadeと同様に必要なモジュールを追加して、パラメータ調整をしてエフェクトを組み立てていくというフローは変わりません。ですので、これまでと同等のつくり方にプラスアルファで様々なことを自分でつくれるようになった、スタック型とノードグラフのハイブリッドと捉えるのが適切です。

1.Niagaraの特徴とCascadeとのちがい

Niagaraの最大の特徴のひとつはノードベースでモジュール(Niagara Module Script)の作成を行う点です。Niagaraは完全なノードベースでなく、これまでのモジュールスタックでのワークフローを残しつつ、ノードベースでモジュール作成をすることができる、言わばハイブリッドなエフェクトツールです。そのため、アーティストはこれまでと同等の制作のながれを踏襲しつつも、新しい機能を自分でつくって試せるという二段構えになっています。

これまではプログラマーしか触ることができなかった部分まで解放されており、かなり広い範囲でパラメータにアクセスすることが可能になっているため、簡単な効率化のためのモジュール、既存のモジュールをカスタマイズしたもの、さらにはまったく新しい機能すらつくれてしまいます。例えば、Cascadeではエフェクトの発生範囲を制御する場合、Locationと呼ばれるシェイプやメッシュ形状から発生させるのみでした。しかし、Niagaraではメッシュの表面の一部やテクスチャの特定の色からのみパーティクルを発生させるといった、発生範囲をコントロールするモジュールも、プログラマーを介さずにつくることができます。

CascadeとNiagaraではデータのもち方も変わりました。Cascadeではひとつのエフェクトアセットの中にエミッタが内包されており、ほかのアセットで同じエミッタを使いたい場合はコピーして使うしかありませんでした。一方、Niagaraではエミッタ単位からアセット化されており、様々なエフェクトアセット(Niagara System)がエミッタ(Niagara Emitter)を参照して使いまわせるようになっています。このおかげで、エフェクト制作の効率化が期待できます。何でもできてしまうとワークフローの複雑化に懸念をもたれるかもしれませんが、例えば外注に一部のエフェクト制作を依頼する場合に、触ってほしくないパラメータは見えないようにしてしまうことも可能です。

エミッタのアセット化

エミッタがアセット化されたメリットですが、例えば同じようなエフェクトでマテリアルだけ変えたい場合に、使われる先のNiagara Systemアセットの中でマテリアルとパーティクル数だけ変更した場合、参照元エミッタアセットのその他のパラメータ変更は参照先の全てのエミッタに反映されます。そのため、何か全体での変更が必要な際は大元のアセットだけを変更すれば済むので、修正時間を大幅に節約することができます

CPUとGPUの挙動

NiagaraはCascadeと同様にCPUとGPU制御のどちらも可能です

【上画像】はCPU、【下画像】がGPU制御ですが、ほぼ同等の結果を得られています。Cascadeでは一部の機能がGPU対応していませんでしたが、Niagaraでは全てが見直されました。全体でCPUとGPUに対応しつつ、それらを同一の作業フローで可能な限り同じ結果にすることを目標としており、少しずつその対応が進んでいる印象です。いつでも何でもGPUが良いというわけではないので、制御の切り替えのみで、大きな変更なしで使い分けができるのは魅力的です

次ページ:
2.ユーザーインターフェイス

特集