見出し画像

巻雲を作る

「巻雲を作る」

1 はじめに

Houdiniで雲を作る場合、一般的には、Volumeを使って作ることが多いだろうと思う。夏の空に、力強く、高く立ち上る入道雲は、迫力ある画面に不可欠であろう。

これに対し、僕は、空を美しく彩る巻雲をどうやって作ればよいだろうか、と、いろいろと工夫を重ねてきた。

今回は、その悪戦苦闘の様子を紹介したい。

2 巻雲の生成

入道雲は、強い上昇気流に乗って、まるで爆発しているかのように、結露した水蒸気が、塊となって上昇するものだ。

これに対し、巻雲は、入道雲よりもずっと少ない水蒸気が、上空の様々な風に乗って、流されながら結露し、結露してからも流されることで生成される。

というのは、僕の想像でしかない。雲の生成過程について勉強したことはなく、研究することもできないので、まったく想像の世界で論じている。

とはいえ、ほかに方法が思いつかないので、現在のところは、この想像を採用している。

3 DOPで巻雲を作る

水蒸気が風に乗って流れるのであるから、DOPを使って、煙の対流をシミュレーションし、それをそのまま使えば良い。

ただ、残念ながら、僕は、DOPに関する知識も、Volumeに関する知識も、皆無といっていい。

なので、残念なことにDOPを使う方法は採用できなくて、ちまちまとSOPを使って作る方法を、いろいろと試みている。

4 SOPで巻雲を作る 理論

ここからは、SOPで巻雲を作る方法の一例を説明してゆく。

(1)水蒸気を作る

水蒸気の粒を作る。ポイントをばら撒く。

単に Scatter でもよいし、密度や、全体の分布の形状をいろいろ工夫することで、変化をつけることができる。

どれくらいの数が良いかは、シミュレーションしながら決めることになる。

実績としては、僕のマシンのリソースの制限もあって、最大で20万個といったところだ。

最近は、できるだけ少ない数で実現しようとして、あれこれと取り組んでいて、ものによっては、1000個くらいでも、それなりに見えるかもしれない、というところまで来ている。

Pic_04_01

(2)水蒸気を上昇させる

上昇気流を作って、水蒸気の粒を上昇させる。

ここは、単に、@P.y + @Time でもよいし、ベクトル・フィールドを作ってもよい。

上昇のさせかたも、全体に一様でもよいし、部分ごとに速さや方向を変えても良い。

Pic_04_02

(3)水蒸気を結露させる

水蒸気が上昇するにつれて、気温は低くなってゆくので、水蒸気は次第に冷えて、あるところまで上昇すると、結露しやすくなる。

結露すると、太陽光を反射するようになって、地上から見ると白く見えるようになる。

(4)水蒸気を流す

ある一定の高度まで上昇すると、そこから上は、横方向の風が吹いている。必ずしもそうではないが、ここでは一例として、そういうことにする。

結露しやすくなった水蒸気に、横風が当たると、水蒸気は結露して、水の粒になる。ということにする。

そして、水の粒は、横方向の風に乗って、横方向に流れることになる。

Pic_04_04

(5)水蒸気の流れを演出する

横方向にまっすぐ流すと、まっすぐな飛行機雲になる。

多少、ノイズをかけてあげると、少しほぐれたような飛行機雲になる。

もっと大きなノイズをかけたりすると、巻雲らしく見えるようになる。

(6)巻雲の糸を作る

4の(1)から(5)までができたら、移動したポイントを Trail する。

そうして、Trail したポイントから、Add で Line を作る。

(7)形状を調整する

Line の太さを、いい感じに調整する。

Line の端の部分を尖らせるなど、形状を調整する。

全体にノイズをかけるなど、形状を最終的に調整する。

(8)レンダリングする

レンダリングしながら、最終的に仕上げる。

5 SOPで巻雲を作る 実践

(1)水の粒の動きを確かめる

4の(1)から(5)までを実際に Houdini でやってみる。

ここでは、水蒸気の粒は1000個でやっている。

Pic_05_01


(2)巻雲の糸を作り形状を調整する

4の(6)から(7)までを実際に Houdini でやってみる。

こんな感じになる。

Pic_05_02

6 作成例

2021年に作ったフィルムでは、こんなことになっている。

Pic_07_03  YouTubeのスクリーンショット


Pic_07_02  YouTubeのスクリーンショット


Pic_07_01  YouTubeのスクリーンショット


7 課題

(1)形状の限界

この方法は、巻雲を、糸状の形状の束で表現する方法だ。

実際の巻雲の、糸の数は、無限といっていいところを、有限の、せいぜい1000本とか10000本とかの糸で表現しようというわけだから、当然、そこに限界がある。

糸を Volume にするとか、いろいろな工夫が必要となるかもしれない。

(2)シミュレーションの限界

水蒸気と水の粒の移動は、たとえば、ベクトル・フィールドを使って行うわけだが、そこに、ノイズを使ったり、乱数を使ったりする。そうすると、最終的にどんな形状に仕上がるかは、やってみないとわからないことになる。

つまり、いい感じに仕上げるまでに、いろんなパラメータや、ネットワークや、計算式を調整しながら、なんどもなんどもシミュレーションを繰り返すことになる。

当然のことながら、ここに限界がある。

(3)リソースの限界

当然、メモリや、プロセッサという、現実的な要因によって、限界がある。

(4)レンダリングの限界

高品質に仕上げようとすると、糸を細くしたり、レイの数を増やしたり、ということになる。

そうすると、当然、レンダリングの時間が長くなることになる。

(5)気合いの限界

高品質に仕上げるために、最も肝心なものは、気合いだ。

精神エネルギーとか、モチベーションと言い換えることもできる。

何がなんでも良いものを作る、という強い気持ちがなければ、良いものは作れない。

8 今後の展開

現状の手法は、まだまだ発展途上だ。ネットワークはまだ定型化できておらず、新しく作る度に、新しいネットワークを作っている。

マシンのパワーが限られるので、より効率的な手法も求められる。

これからも、機会があるごとに、研究開発を進めてゆきたい。

9 おわりに

空を見上げると、純白に輝く柔らかい巻雲が、青空に浮かんでいる。いつか、そんな巻雲を、僕のフィルムの中に浮かべたい。

そんな気持ちでいろいろ取り組んでいます。

ここまで読んでくださった皆様には、感謝を申し上げます。

ありがとうございました。

この記事は「Houdini Advent Calendar 2023」に参加しています。

この記事が気に入ったらサポートをしてみませんか?