>   >  LiNDAのHoudiniBros.チームが総力戦で挑んだ荒海ショット/No.2 海エフェクト篇
LiNDAのHoudiniBros.チームが総力戦で挑んだ荒海ショット/No.2 海エフェクト篇

LiNDAのHoudiniBros.チームが総力戦で挑んだ荒海ショット/No.2 海エフェクト篇

飛沫や泡のシミュレーションも、対策を講じて負荷を軽減

Spray、Foam、Bubbleのシミュレーションには、Whitewater Solverを使用している。この処理も計算負荷が高いため、分散シミュレーションを行なった(FLIPとは異なり、お互いに通信しあう必要はない)。素早くルックを確認するため、海面のシミュレーションエリアから出たポイントや、カメラの範囲外にあるポイントを消したり、想定量の70%程度でシミュレーションを行なってから後処理でポイントを増やしたりといった対策を講じている。全ての要素をひとつのキャッシュにするとデータ量が膨大になり、入出力に負荷がかかり、ハンドリングが悪くなってしまうため、Deadline(スケジューラ)でキャッシュを分散することで入出力にかかる負担を軽減したりもしている。

FLIPシミュレーション用の飛沫や泡のポスト処理と、微粒子の表現

飛沫や泡(Whitewater)のポスト処理では、パーティクルの量やPscaleの調整、不必要なポイントの削除、カメラの範囲外のクリッピング、カメラからの距離に応じたLODなどを行なっている。1億個程度ならアンチエイリアスあり、Pscale込みの状態でビューポートやプレイブラストから確認できるため、1億個を上限にルックを作成した。

▲例えば【左】のパーティクルは400万個だが、【右】では3,600万個までポスト処理で増やしている。そのまま増やすと拡散して粉っぽくなり不自然なので、拡散したパーティクル同士を元のパーティクルに寄せ、筋が出やすいように調整する処理をしている


  • ◀▲【左上】のパーティクルを、【右上】では10倍に増やしており、【左下】では筋を出す処理を加えている


▲飛沫(Spray)よりも細かい微粒子(Mist)は、SprayのSpeedとAgeからSourceを作成し、Smoke Solverでシミュレーションを行なっている

Open Oceanは、メッシュベースのデフォームで作成

FLIPシミュレーションの適用範囲外の広大な海面(Open Ocean)は、Ocean SpectrumとOcean Evaluateを用いたメッシュベースのデフォームで作成した。

▲【左】カメラに映る範囲を全てカバーできるグリッドを作成し、距離に応じてRGB(Near, Mid, Far)のエリアに分ける/【右】カメラの範囲外をクリッピングし、FLIPのコンテナエリアをBooleanでくり抜く(FLIPを適用した海面メッシュがくり抜いた部分に入る)


▲【左】カメラに近いエリアほどSubdivideをかける/【右】RGBエリアの各境界でメッシュを分離するため、Opacity用のアトリビュートを追加してメッシュの重なりを防ぐ


  • ◀Spectrumを基に、Evaluateで海面の形状にデフォームさせ、Cuspに補助的な白波用のアトリビュートを追加して完成

Open Ocean用の飛沫、泡、微粒子の表現

Open Oceanの白波はパーティクルで表現しており、飛沫(Spray)と海面の泡(Foam)の2種類を用意した。いずれもOcean Foamを使わずに挙動をコントロールできるようにしている。

▲【左】FLIPシミュレーションとOpen Oceanをマージしたメッシュに加え、コリジョン用のボリュームも用意する/【右】わかりやすく色分けしたもの。緑色のCusp部分がSourceとなる


  • ◀生成されたSourceポイント


▲【左】Sprayと【右】Foamのシミュレーションは、POP Solverで行なっている。波のメッシュ形状に吸着させつつ、Cuspdir(波の先端方向へのVelocity)と、何種類かのノイズやForceで白波らしい挙動を作成した。シミュレーションの範囲が広大だったため、いくつかのクラスターに分割して計算している。また、カメラからの距離に応じてパーティクルの量を調整することでシミュレーション時の計算量を抑えている


  • ◀Open Ocean用の微粒子(Mist)の設定は、FLIPシミュレーション用のものに似ている。こちらの方が範囲が広いため、クラスターに分割して計算している

最終的に、108ショットのエフェクトを納品

2018年の7月頃から本格始動した荒海ショットの制作は、年内に全データの納品を終えた後、翌年の2月頃までブラッシュアップが続けられた。「荒海ショットがそろそろ終わるというタイミングで、『別のショットも手伝ってほしい』とOLM Digitalからお声がけいただき、炎、爆発、電撃などのエフェクトも手がけることになりました。電源も、サーバの容量も、マンパワーも限界まで使いきり、終わってみれば、108ショットのエフェクトを納品していました。次につながる貴重な経験ができたことを、とても嬉しく感じています」(桑原氏)。

©Nintendo・Creatures・GAME FREAK・TV Tokyo・ShoPro・JR Kikaku ©Pokémon
©2019 ピカチュウプロジェクト



info.

  • 月刊CGWORLD + digital video vol.255(2019年11月号)
    第1特集:僕たちがBlenderを使う理由
    第2特集:アニメCG×ゲームエンジン
    定価:1,540 円(税込)
    判型:A4ワイド
    総ページ数:128
    発売日:2019年10月10日
    cgworld.jp/magazine/cgw255.html

特集