CEDEC 2015 Houdini for Game VFX

  • View
    1.359

  • Download
    0

  • Category

    Software

Preview:

Citation preview

Houdini はノードベースのプロシージャル3Dソフトウェアであり、基本的なワークフローはノードを接続することによりシーンを構成する。しかし、シェルフにはこういった接続を自動的に行うためのツール群が装備されていて、すべてを一から接続する作業がから解放される。

例えば Pyroにより爆発のスプライトを作成したい場合、基本的な設定はVFX

用途にPyroのシーンを作るのと変わりない。例えば Pyro FXシェルフからFlamesツールを実行、ノードのパラメータを調整して求める見た目に近づけていく。

Render Viewを通じてレンダリングした結果。

一度連番フレームとしてレンダリングした画像ファイルを Houdiniの合成モジュール (COPs)に取り込み、 Mosaicノードを使ってテクスチャシートにして単一イメージファイルで出力。

テクスチャシートを Unrealに持ち込み描画するとこのようになる。

Houdiniからレンダリングによる最終画像出力だけではなく、それを構成するためのデータの出力も容易。今、ビューポートに矢印で表示されているのは炎(ボリューム)の速度ベクトル。こういったデータの視覚化および出力も容易。

Orboltには、前のページの速度ベクトルを FGAという Unrealが入力可能なファイルフォーマットで出力するためのアセットがあり、無償でダウンロード可能。Link: http://www.orbolt.com/asset/Benny::UE4_velocitygridexporter

出力したデータを Unrealで読み込んだ状態。

FGAを用いてパーティクルの動きを操作。

同様のことで爆発や、

煙などにも応用可能。

Fluid (流体)も同様にゲーム用素材に応用可能。上の画像は血しぶきを表現するためのデカールスプライト用の流体設定。

左側はビューポートの様子(ヘッドライトのみによるアンビエント)。右側は、diffuse をレンダリングした結果。

法線マップの出力も可能。

二つを組み合わせることで、ライトの方向に反応するデカールテクスチャをUnreal上に表現可能。

同様に Flow Mapも作成可能。元になったのは Valveによる Siggraph 2010

での講演。

http://www.valvesoftware.com/publications/2010/siggraph2010_vlachos_water

flow.pdf

水の流れを2次元で表現するため、 X方向への動きを赤(R)チャネルに。Z方向のチャネルを緑(G)チャネルに 0 < x,z < 128で-方向に、128< x,z < 255で+方向に動く。X=128, Z=128 で静止状態。

Houdiniでの流体シミュレーションの速度情報をポイント単位のカラー出力。左側が通常のサーフェス表示。右側が速度情報を追加した状態。

速度情報を Unrealに持っていた様子。

Houdiniからのデータは最終的なイメージ出力だけに限らず、アセットとして共有することも可能。

左側のノードのネットワークが右側の形状を構成している。

こうしたノードのネットワークは、一つのノードにまとめてしまうことが可能。その際に必要なパラメータだけを露出することで、中に入って一つ一つのノードをたどることなく、単一のビューで必要な操作を行えるようにしたノードをデジタルアセットと呼ぶ。

デジタルアセットには、ノードネットワークだけでなく、メッシュデータ、画像データ、スクリプト、マニピュレータ、ヘルプなども同梱可能。これにより、スタジオ全体、プロジェクト単位、ショット単位など、あらゆる規模でのアセットの共有が可能になる。

従来こうしたデジタルアセットはHoudiniユーザ間でのみ共有が可能であったが、Houdini Engineを使うことにより他のアプリケーションとの共有も可能になった。

基本的に Houdini Engine は Houdini Digital Asset (HDA)を操作するためのAPIだが、それを元にしたプラグインも公開されている。

こちらは Houdini Engine for Unrealの様子。現在 Public Beta。

そして Houdini Engine for Unity。こちらは既に出荷済み。

Unity内でHDAを操作している様子。カーブを描いたところに壁のアセットが自動生成されている。

こうしたアセットを組み合わせることで、レベルの構築を手早く行い、プレイの検証までの反復を高速化できる。

こうしたアセットの一つに Indie Proツールから提供されている Pro Trackというアセットがある。これはUnity専用で、Unity Assetストアから購入可能。

Houdini Engineのプラグインはゲームエンジンだけに限らず、DCCツールにも対応している。そのうちのひとつがMaya。

こちらは Houdiniのボリュームデータを Mayaに持ってきた様子。

Houdini が対応しているデータ形式で、プラグインのホスト(この場合Maya)

が描画できるものはそのまま渡すことが可能。

Houdini Engineは非常に簡単かつ堅牢な100強の関数によって構成される C

言語 API。Houdini Digital Assetファイルにアクセスし、アセット情報を取得したり設定したりしてホストに渡すことが可能。ドキュメントはsidefx.com (Support -> Documentation). にあり。

Houdini 15 より、Houdini Engine APIは 2.0に。ホスト単位で複数のセッションの実行(それぞれ1スレッド)が可能。

Houdini Engineのプロセスをホストプロセスから切り離して実行可能。これでライブラリの衝突が回避可能に。

Houdini Engine 2.0 Thin Client

実行部分をフロントエンドから切り離すことも可能。

これらの機能向上により3DS Maxプラグインがリリース可能に。

こちらは Houdini 15 と同タイミングでリリース予定。

ここから Allegorithmic Substanceと Simplygonのプラグインについて紹介。

この画像は GDC2013の時のHoudiniからのアセットと Substanceによるテク

スチャをUnityに読み込み、実演している状態。

この時点では、Houdiniでのビューポートで Substanceテクスチャを表示す

ることは不可能であった。

今回、Allegorithmicにより Houdini用のプラグインが開発されている。このプラグインを使うことで、Substanceシェーダを Houdiniのシェーダノード同様に扱い、ビューポートに表示、またベイクなどに用いることが可能になった。このプラグインは Allegorithmicより入手可能。

こちらの例では、形状全体に黒いプロシージャルシェーダがアサインされ、突き出されたそれぞれの先に別のシェーダがアサインされている。Houdiniのグループノードによりこれらが定義されている。

Houdini 15ではビューポートの描画が強化されたことによりバンプやディスプレイスメントマップもそのまま表示可能に。上の画像はディスプレイスメント付 Substanceのシェーダをそのまま持ってきた状態。

こちらはSubstanceのシェーダをアサインしたジオメトリからテクスチャをベイクする様子。Houdiniは Substanceシェーダも Houdiniのシェーダも区別せず同じように扱うことが可能。

Houdiniで作成した状態。Houdiniによるジオメトリのノードネットワークと複数のSubstanceのノードで構成されている。

Shatterノードで事前破砕した様子。

Unityでの再生の結果。

Unrealでの再生。こちらはスプライトによる煙を追加している。

次に Simplygonの様子。Simplygonは、ポリゴン削減やマテリアルの統合をするためのツール。Simplygonのプラグインにより、それぞれの機能が個々のノードとして実装される。これはSimplygonから提供予定。

Simplygonにより複数マテリアルを一つにまとめたり、

Houdiniのノードと組み合わせて必要なところにのみポリゴン削減を加えたりすることが可能。