2018年9月7日

ナイアガラの機能とサンプルの概要

作成 Wyeth Johnson, Lead Technical Artist, Epic Games

アンリアル エンジン 4.20 のリリースとともに、待望の VFX エディタ ナイアガラ のベータ版を発表しました。これが最終的に カスケード を置き換えることになります。この次世代の VFX シミュレーション ツールは、将来を見通し、アーティストがプログラマーの助けを借りずにビジュアル エフェクトを作成、微調整できるようにすることを目指しています。モジュール方式でパーティクル エフェクトをデザインできる、柔軟性に優れたエディタとして開発された ナイアガラでは、パーティクルのシミュレーションやレンダリングをアーティストが全面的にコントロールできます。

ベータのダウンロード開始

ベータは、現時点では実制作でのご使用には向きませんが、豊富な機能をお試しいただけます。お使いいただく前に、プラグイン マネージャーで ナイアガラプラグインを有効にする必要があります。

この記事では、ナイアガラとその前身であるカスケードとの違いを探り、ナイアガラでできることを簡単に紹介していきます。

ナイアガラとは何か、そしてその開発意図

ナイアガラは、完全にプログラミング可能な軽量の VFX エディタです。ノードベースの編集や作成が可能であり、モジュール方式の VFX スタックにより再利用と継承が簡単です。HLSL (high-level shading language) の式、スタティック メッシュやスケルタル メッシュの情報など、アンリアル パイプラインの他の側面へのデータ インターフェースをサポートし、またシーケンサー タイムラインなどの新しいツールが加わっています。

WhatExactlyIsNiagara_01.png

ナイアガラがカスタマイズ性に優れているのは、パーティクル システムの構成要素であるパーティクル エミッタに独自の属性を指定し、それをパーティクル システム内で相互にリンクできるようになったからです。このため、パーティクルの属性を任意の特性に結びつけることで、VFX シミュレーションのさまざまな側面を操作できます。たとえば、動的な入力を使用して、加速度、色、サイズ、向きなどのパーティクル属性を、パーティクル速度、2 オブジェクト間の距離、スケルタル メッシュ上のボーンの動きなど、任意のデータにリンクできます。エディタに含まれるビルド済みモジュールにより、一般的なパーティクル属性への完全アクセスが可能です。新しいビヘイビアの追加も新しいモジュールを作成するだけで簡単に行えます。さらに、追加したモジュールは他のエフェクトに含めて再利用することができます。

カスケードからナイアガラへの移行において、パーティクルを個々の属性の集まりとして考えるとわかりやすいはずです。パーティクルの色、サイズ、速度、その他の任意の属性、たとえばパーティクルと作成元システムの距離などをそれぞれツールとして設定するだけでなく、シミュレーションやレンダリングの他の側面を操作するデータとして利用できます。ナイアガラエディタを初めて開くアーティストは、ベクター、トランスフォーム、測定単位、Boolean の原理、「これが起こったら、次に何が起こるのか」といった単純なロジックについて考える必要があります。ナイアガラには、わかりやすく、使いやすい UI でこうした変数を直接調整できるツールやモジュールが用意されています。

ナイアガラでは、エミッタが、コンテンツ ブラウザ内に保存される独立したアクタとして設計されています。このため、ワークフローがモジュール方式になり、作成する他の ナイアガラシステムとデータを共有できます。満足のいくスパーク シャワー エフェクトが一度完成したら、任意の数のエミッタで再利用できます。最適化が必要な場合は、そのソース エミッタを変更し、必要に応じてその変更内容をプロジェクト全体に反映するか、1 つのシステムに限定するかを選択できます。一般に、アーティストは、広範囲に及ぶ、関係のある編集を迅速に少ない労力で行うことができます。

また、ナイアガラには、映像編集を参考にシーケンサー タイムラインも取り入れています。これは時系列のプレビュー メカニズムとして機能し、エミッタの相対時間で前後にスクラブできます。エフェクトのペースを視覚的に制御したり、スポーンやバーストのキーフレームを設定したり、ドラッグによりエミッタのタイミングをずらしたりすることができます。また、希望の FPS を調整し、フレームを細かく進めることで、プレビュー ビューポートを通じた細部の観察が可能です。

具体的な例

Epic Launcher でアンリアル エンジンの [ラーニング] タブからアクセスできる機能別サンプル(Content Examples)の一部として、ナイアガラのシミュレーション例が多数含まれています。これらの例は、スプライトやメッシュのレンダリング、属性のブレンド、式、コリジョン、ビーム、メッシュの再現、イベントなど、それぞれツールの異なる側面を示しています。

SpecificExamples_01.png

シミュレーションから任意のデータを使用して属性をブレンド

前述のように、ナイアガラは基本的に属性を入れる大きなコンテナとして考えることができます。属性には、パーティクル単位のもの (色、サイズ) と、エミッタ単位のもの (パーティクル システムの場所、その向き)、そしてエンジン自体のもの (エンジン起動後の経過時間、ユーザー入力の有無) があります。

ナイアガラのコンテンツ例の 1 つは、パーティクルが所有するエミッターの中心から離れれば離れるほど、色とサイズが変わる、というわかりやすい内容です。それぞれの例で、このようなコントロールの表示を確認できます。パーティクルの向き、速度、スケール、色、そしてパーティクル自体に適用されるマテリアルのパラメータはすべて、シミュレーションから出力される興味深いデータによって動的に制御されるか、ブループリントかゲームプレイ コードから供給されます。

ArbitraryData_01.png

用意されているモジュールでは不十分な場合は、カスタム モジュールを作成し、共有することを推奨します。

ビーム

ビームは、カスケードでは独立したオブジェクトでしたが、ナイアガラでは単にパーティクル同士を視覚的にリンクさせる方法になっています。このため、プログラミング可能な領域が増え、力やシミュレーションのその他の側面の影響を受けやすくなっています。ビームの各セグメント自体が、他のパーティクルと同様にシミュレーション対象のポイントになります。固定エンドポイント用のスタティック ビームのプリセットに加え、フレームごとにエンドポイントと接線が再計算される動的ビームがあります。

DynamicBeams_01.png

ナイアガラのベータ版には、ビームを処理し、そのビヘイビアを微調整、カスタマイズする方法を示すセットアップ モジュールが用意されています。

パーティクルをレンダリングする新しい方法

ナイアガラでシミュレーションが 1 回実行されると、そのデータを使用して複数のレンダラを動かすことができます。たとえば、ビームの場合、ビームを構成する個々のパーティクルをレンダリングするか、ビームの全体的なリボンの形状だけをレンダリングするか、あるいはその両方をレンダリングするかを選択できます。シミュレーションを 1 回実行したら、複数回レンダリングできる機能は、ビジュアル面でも、パフォーマンス面でも、カスケードと比べて優れた点になっています。

基本コリジョン イベント

パーティクルを相互に、または他のメッシュと衝突させる場合のために、基本的なパーティクル コリジョン モジュールがいくつか用意されています。これらのモジュールはチャンクに分かれており、跳ね返りと静止のビヘイビアを微調整できます。また、事前に決められた方法でコリジョンに反応することをパーティクルに求めることなく、コリジョンの結果をユーザーに公開できます。このため、コリジョンが検出されたときに起こることを完全にコントロールできます。パーティクルが衝突するときに色を変更し、跳ね返らないようにすることも可能です。

CollisionEvents_01.png

まとめ

ナイアガラは強力で高度なカスタマイズとプログラミングが可能なツールであり、軽量で操作が比較的シンプルでありながら、複雑なビジュアル エフェクトを作成できます。現在、ベータ版をダウンロードし、お試しいただけるようになっています。今後も改善を続け、バグを修正し、パフォーマンスを高めていく予定です。あらゆる VFX アーティストの主なニーズに対応するシンプルなモジュールをもっと提供し、データ インターフェースを介してできる限り多くのエンジンの側面をシミュレーションに公開することで、パワー ユーザーのみなさまが異彩を放つ作品を生み出すために必要なコントロールを提供していきたいと考えています。

プラグインを有効にしてお試しいただいたら、どのような改善が望まれるかについて、フィードバックを是非お寄せください。また、このツールの威力や機能について深く掘り下げるライブストリームも公開していきますので、ご期待ください。