はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】Obi FluidでHDRPで利用するためのセットアップ方法

はじめに

今回はObi Fluidという流体シミュレーションを簡単に作成できるアセットのHDRPでのセットアップ方法を紹介したいと思います。

実際に利用している様子

Obi は、変形可能なさまざまなマテリアルの動作をシミュレートできる、高度な粒子ベースの物理エンジンです。
...
Obi Fluidを使えば、AAA品質の完全マルチスレッド式流体シミュレーションを簡単に作成することが可能です。流体はお互いに反応し、硬い物質に影響を与えたり、与えられたり(物体を浮かしたり沈んだりさせることもできます!)、また表面にくっつけることも可能です。


環境

Unity 2022.3.61f1
HDRP v14.0.12
Obi Fluid v7.0.5

セットアップ方法

シーンを開く

サンプルのシーンを見ながらセットアップ作業をすすめていきたいと思います。まずはAssets/Obi/Samples/Fluid/Compute Fluids.unityを開いてください。

Compute Fluid

MaterialをHDRPのものに差し替える

サンプルで利用されているマテリアルがAssets/Obi/Sample/Common/SampleResources/Materialsの中に入っています。それがStandardシェーダーというBuild-inレンダリングパイプライン用のものなので差し替える必要があります。

例えばCoarseCheckerのシェーダーを変えるには、インスペクター上部にあるShaderという箇所を選択し、HDRP -> Litを選択してシェーダーを変更してください。

Shaderの変更

またBase MapCheckerのテクスチャが選択されていない場合はそれを適応しておいてください。(場合によっては自動で変更してくれています)

BaseMapのTexture変更

Shaderを作成する

液体シミュレーションで利用するためのHRRP用のShaderを作成する必要があります。プロジェクトビューからCreate -> ShaderGraph -> HDRP -> Lit Shader Graphを選択してShaderを作成します。

Shaderを作成

ShaderGraphを構築していくのですが、下記のドキュメントのCustom fluid shadersの欄にある画像を構築します。上にあるのがBurstを活用したもので、下はCompute Shaderを活用したものです。
obi.virtualmethodstudio.com

作成した例

Materialを作成して適応する

Shaderを作成した後にそれを適応したMaterialを作成した後、Obi Fluid Surface MesherでMaterialを設定していきます。Obi Fluid Surface Mesher -> Rendering -> Material TypeCustomに設定して、Custom Fluid Materialに設定してあげます。

Custom Fluid Materialに設定する

シーンを再生してみると以下のように正しく描画されています。

実際に動作させた様子

見た目を調整する

あとはお好みで見た目の調整を行ってください。

設定1
設定2
設定3