こちらの記事では、Houdini 16から追加されているGuided Ocean Layerツールについて紹介致します。
Guided Ocean Layerツールとは
Guided Ocean Layerツールは、シェルフのOceansタブに格納されているツールで、Oceansの波と、その波にほぼ一致するFLIPシミュレーションを作成します。その境界はマスクでブレンドされます。
このツールを使用すると、海面に浮かんでいるジオメトリのFLIPシミュレーションを行うというような場合に、その周囲にデフォメーションによる海面を追加することができます。
以下の画像は、SphereオブジェクトにGuided Ocean Layerツールを適用した時のビューポート画面に色を付けた画像です。
ジオメトリの周囲はFLIPシミュレーションによるサーフェス、それ以外の部分はOceanで波を表現するためのサーフェスが追加されています。
Guided Ocean Layerの使用方法
こちらでは、まずGuided Ocean Layerツールをレンダリングするまでに必要な手順を紹介致します。
Guided Ocean Layerツールを適用するには、アニメーションするジオメトリをビューポート上で選択した状態で、Oceans タブにある Guided Ocean Layer ボタンを押します。
しばらく待つと、選択したジオメトリを中心として、FLIPシミュレーションとOceanを追加するためのいくつかのノードが追加されます。
名前がとても長いですが、概要は以下の通りです。
- guidedoceanlayer_initial
海面、FLIPシミュレーションの初期設定を行っています。
- guidedoceanlayer_sim
FLIPシミュレーションを制御します。
- guidedoceanlayer_fluid
FLIPシミュレーションの結果が返ってくるノードです。
- guidedoceanlayer_fluidinterior
レンダリング用の海面下のボリュームを追加しているノードです。
- guidedoceanlayer_fluid_extended
FLIPシミュレーションのサーフェスと、Oceanのサーフェスを作成し、ブレンドするノードです。最終的にこちらをレンダリングします。
guidedoceanlayer_fluid_extended をレンダリングするためには、3つのキャッシュを取る必要があります。キャッシュを保存するのは以下の3つのノードから行います。
- /guidedoceanlayer_fluid/compressed_cache
- /guidedoceanlayer_fluid_extended/bake_spectra
- /guidedoceanlayer_fluid_extended/bake_masks
いずれも 名前が変更されていますが、 File Cache SOPです。
.hipファイルを保存してから、[Save to Disk] ボタンを押すことで、それぞれのファイル名でキャッシュを保存します。保存が完了したら、 [Load from Disk] にチェックをつけておきます。
3つのキャッシュが保存できたら、guidedoceanlayer_fluid_extendedノードのみディスプレイフラグを有効化します。
デフォルトでは、赤と青のグラデーションのついたオブジェクトが表示されます。
赤い部分にはFLIPシミュレーションのサーフェス、青い部分にはOceanのサーフェスが反映されます。
レンダリング時はこちらではなく、シミュレーションをもとにサーフェス化し、周囲に平面を追加したものが使用されます。以下の画像は、レンダリングフラグのついているノードにディスプレイフラグを切り替えた際の画像です。
レンダリング前は平面ですが、oceansurfaceシェーダにより、波が追加された状態でレンダリングできます。
以下の画像は、Mapを指定した半球のEnvironment Lightを追加し、レンダリングした時の画像です。上の画像では平面だった範囲に、Oceanによる波が追加されています。
これにより、海面に浮かぶオブジェクトのシミュレーションと、その周りにOcean機能によるデフォメーションの海面を追加することができます。
以上が、Guided Ocean Layerをレンダリングするために必要な手順となります。
しかしながら、デフォルトの設定ではこのようなブロック状の見た目になってしまいます。この見た目を改善する方法について、次回の記事にて紹介致します。