POP Solverを使い、シミュレーションを高速化
中村友紀氏(CGディレクター)が「印象的」と評した、方舟登場シーンの制作手順を解説する。このシーンでは、レシアル国の上空に、巨大な魔法陣と水流が渦巻く門が出現。その水流をかき分け、白波をたてながらノアの方舟が登場する。
▲メインの水流表現にはFLIP Solverを使用。ノイズベースでランダムに発生させたポイントをエミッタとし、Gas Field Wrangleで渦巻く水のフォースをコントロール。回転・中心への力・ノイズ・奥へ落ちる力を組み合わせ、中心からの距離によって強さを変更している
▲FLIPキャッシュは、シミュレーション時にPythonスクリプトを通すことで、パーティクルのキャッシュを取得した後、ボリュームのキャッシュを別に取得する処理を毎フレーム実行している。キャッシュを別々に保存することで、後のメッシュ化や飛沫作成時の読み込み速度を上げ、作業を効率化することができる
▲飛沫は、水流の表面全体から出るものと、方舟に押されて前方に飛び出るものの2種類を作成。これらを統合し、Volume Rasterizeでボリューム化してレンダリングした。飛沫作成時には、WhitewaterのSourceやSolverは使わず、popnetで処理することで、シミュレーションの計算速度を上げ、トライ&エラーの回数を増やせるようにしている。このエフェクトの担当者は、常にシミュレーションを短い時間に収めることを意識しており、ここでは各シミュレーションのテストを0.5〜1時間でながした後、2〜4時間程度で詰めていたとのこと
▲レンダリングにはArnoldを使用。奥行きとvorticityの値を使い、水のTransmission Colorにグラデーションの変化を与えている。またNukeでのコンポジット時に使用するvorticityや中心からの距離(distance)などのカスタムAOVもArnold Shaderで設定している
▲NukeではAOVを使い、軽い色調整、水の発生・消失の処理を行なった。vorticityは水を明るくする処理、distanceは外側の水を薄くする処理などに用いている
▲beauty
▲volume
▲vorticity
▲distance
▲final
©XFLAG