Posted 9月 24, 2020
Share


Houdini Connect | Project Blue Book | Stormborn Studios



Houdini Connect でビデオインタビューに答えてくれた、Stormborn Studio の創設者であり、VFX スーパーバイザでもある Goran Pavles 氏と Manuel Tausch 氏が再び登場です。ある複雑なプロジェクトの概要について、語ってくれました。どうぞお楽しみください!



世界規模のコラボレーション

2019 年 4 月に、当社では初めてとなる、水のプロジェクトを終えることができました。映画「Bharat(バーラト)」の大しけの夜の海と、それを乗り切る貨物船でした。それがきっかけで、規模も難易度も最大級の FX シーケンスを受注できました! それは、「プロジェクト・ブルーブック」シーズン 2 の最終話の冒頭シーンでした。一言でいうと、主人公の海軍士官たちが戦艦ウィスコンシンの船尾で海を見ていると、異常事態が発生した場面です。直前まであったはずのトロリー船が突然消え、代わりに海から飛び出した黒い未確認物体が、異常な速度で追ってきます。パニックの中、射撃命令が出され、未確認飛行物体は船のすぐ後ろの海中に再び潜ります。その衝撃は巨大なしぶきと高波を生じ、軍艦は大きく揺れ、沈没寸前にまで至ります。この謎の物体は放送の後半でもう一度登場しますが、やはり暗いバレンツ海に潜って姿を消します。

このエピソードには、軍艦と UFO が登場する、昼と夜の外洋のシーケンスが複数含まれていました。プロジェクトには意気込んで臨みましたが、ショットの量が多く、難易度が高いことから、当社のチームだけで納期までに仕上げるのは不可能だと判断しました。そこで Megalis (日本を拠点とする、ハイエンドの VFX スタジオ) に協力を仰ぎ、この冒険に取り組むことにしました。

Stormborn Studios は、メインベンダーとしてクライアントと Megalis をつなぐ役割を担いました。また、戦力増強のため、業界最高の Houdini の水の FX TD、Igor Zanic、Nikola Ilic、Mirco Paolini にもプロジェクトに参加してもらいました。FX 要素のシェーディングとライティングには、Nathaniel Holroyd と Patrick Conaty の手も借りました。Patrick は、クライアントから提供されたプレートおよび船のレンダリングに CG 要素を合成する作業も担当しています。Goran Pavles と Manuel Tausch の指揮の下、チームは息をのむ迫力のショットを実現し、Stormborn の存在を業界に知らしめることができました! 私たちの挑戦を皆さんにお話しできることをとても嬉しく思います。また、次の新たな課題やプロジェクトへの挑戦を楽しみにしています。

どのシーンも、何かが起きる舞台は海の上または下です。海からお話ししましょう。



Houdini には他にはない素晴らしい Ocean ツールキットが付属しています! さらに、プロシージャルなボリュームフィールド生成および修正、ディスプレイスメント用の Height フィールド、タスクに最適な合成ツールをはじめとするツールも組み込まれています。海に合成ツールか必要ですかって? ええ、その通りです! 海は塩水と大量の不純物で満たされていて、海面は常に潮の流れ、対流、風の影響を受け、表面に泡が生じます。これはもちろんシミュレートでき、クローズアップの水は自然です。しかし、3D の海面は全体が平坦なサーフェスをディスプレイスメントしただけで、見方によってはテクスチャです。そこで泡のパターンもテクスチャとして処理することにしました。海のテクスチャの写真を数枚継ぎ合わせて、海の上にランダムに配置すれば、はるかに軽量かつ効率的で、よりリアルです。海のディスプレイスメントは UV も移動する 3D 変形なので、テクスチャが伸びたり縮んだりして、非常に説得力のある外観になります。





最初の作品「Bharat」で開発したシステムがそのまま使えるため、この番組に合わせていくつか調整するだけで済みました。数百のパッチを扱う予定だったので、何とかしてそれを 1 つのテクスチャにスタンプ(入れ込み)する必要がありましたが、これには Houdini の合成コンテキストでの For Loop がぴったりです。もちろん Photoshop や Gimp でも行えますが、その上を行くのが私たち Houdini ユーザです。Houdini を使用すれば、正確な UV を生成したり、LOD テクスチャシステムを利用できるので、非常に解像度の高いテクスチャから、中/低解像度のテクスチャまで、カメラとの距離に応じて適切にブレンドできました。また、すべて 3D で生成されるため、航跡のテクスチャやマスクなども作成できます。

GPU レンダリング主体のスタジオである Stormborn のパイプラインは、Redshift レンダリングエンジンをベースとしているので、Redshift 非対応の Mantra の海のプロシージャルは使用できませんでした。この時点までは、カメラからの距離に基づいたメッシュ密度を使い、SOP レベルで Ocean Spectrum のすべてのディテールをジオメトリにベイクしていました。これはうまく機能してレンダリングも問題なかったのですが、非常に時間がかかりました。

チームには、Redshift と Ocean ツールの使用に関して講義をするほどの Igor Zanic がいました。彼が、レンダリング時にディスプレイスメントを適用する手法を取ることよう我々を説得しました。これにはいくつかの制約があり、複数の Ocean Spectrum のセットアップをするにはいくらかの R&D が必要でしたが、ワークフローが大幅に高速になり、より詳細なレンダリングを短時間で行えるようになりました。最終的には、HDA を作成してジオメトリを指定し、ノードツリーをさかのぼって接続しているスペクトルのディスプレイスメントデータをすべて収集しました。また、Redshift のディスプレイスメントに接続できるシェーダを作成しました。Redshift におけるレンダリング時疑似プロシージャル処理に相当します。

クライアントには、主人公たちが船上で会話しているショットがいくつもありました。当初、私たちは、これらのショットの背景に使える汎用の海を数秒間だけ納品するつもりでした。しかし、カメラアングルの差異やさまざまな船の動きがあり、海の向きやルックには一貫性が必要だと気づきました。そこで、完全な 360 度のレンダリングを作成して、ショット合成に使用したり、シーンに合わせて正確に回転できるようにしました。具体的には、海を 8 つにスライスしてレンダリングし、Nuke でスティッチしました。

番組用の納品が終わると、このアイデアが気に入った私たちは、もう少し作業を進めてレベルアップすることにしました。できあがったのは、VR で楽しめる、完全な 360 度の雲、雨、嵐の環境です。

360 度ビューの海

リアルかつワクワクするような見た目の海ができあがったら、続いては、最も難しい課題に取り組みます。衝突と巨大な水しぶき、それが引き起こす大波のショットです。



UFO の衝撃

UFO が海面に衝突するショットでは、プリビジュアライゼーションの段階で、アセットのサイズが 300m からわずか 50m に変更され、このことが、私たちのプランニングとシミュレーションに大きく影響しました。UFO はサイズの割にはずっと高速で移動することになり、俳優が立っている船尾のすぐそばの海面に激突します。秒速 180m という途方もない速度で飛んでいるため、最初の FLIP シミュレーションは爆発してしまいました。衝突によるしぶきは UFO の速度をいくらか継承し、水は船に向かって飛んできます。500,000 立方メートルという大きな体積のコンテナが必要で、こんな大規模で詳細な流体シミュレーションを行うには、工夫が必要です。最初のシミュレーション段階では、強い Drag (抵抗) フォースを適用しながら低解像度の FLIP シミュレーションを実行して、自然な動きを実現しました。プロシージャルノイズフィールドを使用してしぶきを離散させ、尖った形に飛び散るようにしました。次に、低解像度のポイントキャッシュを使って、高解像度の流体および白波の一連のシミュレーションを駆動し、速度と寿命の条件に基づいて最初のシミュレーションと置き換えました。これらのシミュレーションは、複数のコンテナに分割して、ターンアラウンド時間を短縮し、忠実度の高いディテールを維持できるようにしました。同じアトリビュートを使用してマスクを作成し、低解像度のベースキャッシュと高解像度の FLIP キャッシュを組み合わせて、ライティング部門に渡す最終メッシュを作成します。Houdini 搭載の Whitewater Solver をそのまま使う代わりにカスタムの白波ソリューションを開発し、このシーンの飛び散る水しぶきに合った流体の動作と複雑な特徴を出せるようにしました。最後に大切な仕上げの一工夫として、すべての流体のポイントキャッシュを煙のソースとして使用して、細かい霧を生成し、それに合わせてポイントの追加レイヤーが移流するようにしました。





この時点までに、凪いだ海で船を走らせたり、船の航行によって発生する泡と白波を組み合わせ波のディスプレイスメントをポストシミュレーションに使うといった経験がありました。つまり、船が海水に影響することで泡が発生するという、原因と効果の関係は一方向です。この作業には、Houdini の Ocean ツールに少し手を加えて使用しました。





見せ場となるヒーローショットでは、難しい要素が 2 つ、3 つ、4 つと加わってきました。具体的には、巨大な高波が襲い掛かり、船全体を飲み込むようなショットで、原因と効果が双方向の関係でした。高波がバレル (巻き上がって筒状になること) となり、砕けると、巨大なしぶきが発生します。その泡と水滴がカメラを直撃した直後は、海中のシーンに移ります (このシーンはクライアント側が担当)。まとめると以下の通りです。

  • 350 フレームもある高解像度の海、カメラは水面のすぐ上
  • フルモーションで泡と航跡を生じる船 -> 高解像度の水のインタラクションのシミュレーション
  • 高波の影響を受ける巨大艦
  • 巻き上り、砕け、しぶきを上げる波
  • カメラが水面から水中に移動するシナリオ

これがどういうことか、少し考えてみてください。FX を愛してやまない人間にとって、これ以上のものはありません! 鳥肌が立つほど、最高の題材です!

受け取ったプリビジュアライゼーションはごくラフなもので、ショットやエフェクトの巨大さをイメージするのが困難でした。そのため意見や方向性がまとまらず、明快な見通しにつながりませんでした。この業界の厳しい締め切り文化においてラインの最後にいる私たちにとって、期日通りに高品質な納品への死刑宣告も同然でした。そこで私たちは自己問題解決に乗り出し、波の高さや速度、船のアニメーションを変え、複数のバージョンを作成しました。そしてクライアントに 1 つ選んでもらい、Houdini に付属している Guided Ocean プリセットの調査に取り掛かりました。すぐにわかったのは、これはもっと……ずっと大規模なセットアップの始まりにすぎないということでした。タンクは平坦なままにして、ガイドフォースは高波そのものだけに使用することに決めました。これが土台としてうまく機能し、FLIP とガイドジオメトリがぴったり一致しました。サーフィン好きでもある私たちは、砕ける波のビデオは長年見てきました。特にポルトガルのあるサーフポイントのビデオは、自然の力そのものを表しているようで、目を奪われました。ナザレです! 以前からシミュレートしてみたかった波で、このショットにぴったりだと思いました。リファレンスを山ほど集めて、要素を分解していきました。タイミング、スピード、動き、波頭、リップ(波が崩れ始める部分)、クレスト(波の頂点)、スピッツ(チューブ波が閉じるときに吹き出される水しぶき)、ボール状の泡、ショルダ(波が切り立ち始めるうねりの部分)、水しぶき、色、泡のパターンなど、波はいろいろな要素で構成されています。流体ダイナミクスの美しくも手ごわいエフェクトです!

船に襲い掛かる水のメインボディから始め、それから他の水の FX と同じように、ディスプレイスメントと白波の要素を追加しようと考えました。最後の仕上げは水しぶきと霧のシミュレーションです。問題は、大量の水の塊を猛スピードで前進させ、巻き上げさせる方法でした。過去のソリューションを調べたり、インターネットで情報を収集したりしました。見つけたのは、映画「サーフズ・アップ」に関する論文で説明されていた、アニメーションリグを使う方法です。素晴らしい方法ですし、その作品ではうまくいったようです。しかし、私たちは短期間の試行錯誤の結果、あきらめて別のソリューションを探すことにしました。私たちが求めるルックを実現できるまで、リグを調整する時間がなかったからです。その主な原因は2つあり、波の谷の部分と、私たちが作る波の中央には船があるという特別な条件でした。まず FLIP ポイントのポストシミュレーションを変位させてみましたが、うまくいきませんでした。最後はフラットな面またはパーティクルに、回転マトリックス変形によるねじれの変形も試しましたが、やはりうまくいかずに頭が痛くなりました。ジオメトリの変形では対応できないことをようやく悟った私たちは、船のインタラクションの FLIP シミュレーション内でシミュレートすることにしました。





波のガイドジオメトリによって生成されたボリュームマスクと Velocity フィールドをいくつか使用して、水の塊が前方にぐいっと進み、巻き上がるタイミングと速さをコントロールできました。また FLIP シミュレーションの特性より、素晴らしい波のショルダと衝突点の乱流を表現することができました。残りはすべて、マスクしたパーティクルの領域、グループ、Velocity フィールドから生成できました。難しいショットは他に 2 つあり、海から UFO が出現するショットと、それが勢いよくカメラに向かってくるショットでした。

ショットは双眼鏡を通して示されるので、レンズの幅は非常に狭く、水が見える範囲は 1 キロメートルを超えるくらいです。このため、元のスペクトル設定を変更しなくてはなりませんでした。Houdini のプロシージャルな性質と当社の泡テクスチャのワークフローが功を奏し、この課題は難なく乗り越えられました。波のパターンの反復さえ、問題にはなりませんでした。2D ノイズボリュームを使って複数のスペクトルをマスクして、インハウスのシェーダ HDA で波のディスプレイスメントを適切に合成できたからです。これは、パズルのすべてのピースがしかるべき場所に収まったように感じた瞬間の 1 つです。予想していたよりもスムーズに作業が進みました。4 ヵ月に満たない制作期間で、Stormborn Studios は水のシミュレーションを要する 6 つのショットを納品しました (インハウスでの合成が 4 ショット、クライアントによる合成が 2 ショット)。さらに、クライアントが合成に使用できるように、2 つのカメラアングルからの霧を含む LatLong の海のレンダリングも納品しました。このレンダリングは 35 以上のショットで使用され、一部は上の画像に含まれています。

Stormborn Studios Team:

  • VFX Supervisor: Goran Pavles
  • VFX Supervisor: Manuel Tausch
  • Senior Compositor: Patrick Conaty
  • Senior Lighting TD: Nathaniel Holroyd
  • Senior FX TD: Igor Zanic
  • Senior FX TD: Mirco Paolini
  • Senior FX TD: Nikola Ilic

コメント

  • bingzuoshuijing 3 年, 7 ヶ月 前  | 

    牛逼

Please log in to leave a comment.