流体シミュレーションでお風呂に水を張る
1. はじめに
前回#7でバスルームをモデリングしました。そこで今回は#1で作ったオリジナルキャラクターを湯舟にいれて、流体シミュレーションでお湯を張ってみました。
2. 作業風景
流体はモデリングするのは難しいので流体シミュレーションで作りました。
流体シミュレーションをするには、
1. ドメイン
2. 流体
3. (必要であれば)障害物
を用意する必要があります。
2.1 ドメイン
ドメインとは計算領域のことで、ドメイン内の中でしか流体シミュレーションは計算されません。
そのため少なくとも今回シミュレーションの対象である湯舟はドメイン内に存在する必要があります。
ただよっぽど特別な理由がない限りは次のようにモデル全てが含まれるように大きく作ってしまえばよい気がします。
ドメインとなるソリッドは単純な四角柱で大丈夫です。
2.2 流体
今回は流体を蛇口から湧き出すような形で作りたかったので、以下のように円盤を用意し「流入口」を設定しました。
こうすると円盤から水があふれてくるようなシミュレーションができます。
2.3 障害物
障害物は任意ですがほぼ必要になると思います。
例えば今回はオリジナルキャラクターと湯舟の2つを障害物に設定しています。
もし障害物に設定しなければ、流体が水や湯舟を通り抜けてしまいます。
3. シミュレーション設定
まだやり始めたばかりで勉強中なのですが、最低限赤枠の2つを設定したら良い気がします。
解像度はあげると流体が細かくなるので見た目が綺麗になったり、障害物の小さい隙間にも入ってくれるようになります。
一方、解像度を上げすぎると使用メモリ量が増加し、計算が遅くなったり解析が行えなくなります。
なので始めは60~100程度で様子見て、本番は300以上という使い方が良さそうです。
また開始、終了はどのくらいの時間スケールでシミュレーションするかで、速度は流体の速度が変わります。例えば水しぶきであったり波のように水が大きく跳ねるような動きをさせる場合は大きい値に、今回のように静かな水の動きのときは小さい値に設定すると良さそうです。
実行すると以下のようにシミュレーションが開始します。
4. シミュレーション後により水っぽく見せるには
まずはスカルプトや編集を可能にするために、モデファイアで適用ボタンを押します。
まずは以下のようにスムースをかけます。
次に水のエッジ部分をスカルプトのスムースで綺麗にしていきます。
最後にマテリアルを設定します。
マテリアルは単純なグラスだと次のような感じになります。
個人的には、グラスと透過をミックスし、入力にフレネルを使うといい感じになる気がします。
5. おすすめ書籍
以下2つの本は非常にお勧めです。
6 最後に
何となく流体シミュレーションもできました。
次は玄関などのモデリングに挑戦したり、アニメーションに挑戦してみたいと思います。