みなさんこんにちは武田です。
年も押し迫ってまいりました。
冬、強い寒気が侵入してくると関東地方は基本晴れなのですが、天気が崩れて少し荒れた次の日の雲の写真です。
空の半分が曇り、半分が晴れたなかなか印象的な空になっていました。
さて、前回は煙シミュレーションを使って、シュッと流れたような雲を作りたかったのですが、
なかなか難しいぞ、というのが分かりました。
というのも、煙の動き = 空気の動きとなってしまうので、雲の粒がゆっくりと落下しながら吹き流されるようにしたくても、煙の塊を落下させると一緒に空気が動いてしまうからのようです。
(動かない周りの空気の中に、落ちていく空気塊がある状態になってしまうのですね)
それによって乱流が発生して、シュッと流されてくれないのです。
といってもこの理屈付けは、煙のシミュレーションを見るとそのような気がする、というだけなので、本当にそうなのかどうか、煙の粒のサイズを調べてみました。
たばこの煙の粒子は 10nm から 1000nm = 1μm ぐらい。
雲の煙の粒子は、2-100μm ぐらい、
ということですから、やはりサイズが100倍ぐらいは違うみたいです。
雲粒は、上昇気流が無い状態で放っておけば数cm/秒程度で落下していくそうですから、空気の流れとは違った運動をしても良いのでしょう。
ゆっくりと落下していきながら、風に流されて漂ってシュッと流れた雲の形を作ることもできそうです。
この落下速度(終端速度)は、大きさの2乗に比例するそうですから、100倍小さい煙の粒子は 1 万倍遅い…
これは完全に空気と一体化しているといってもよさそうですね。
となると、もはや煙のシミュレーションでは落下しながら風に流される雲をうまく再現はできないのか…
ということで、パーティクルシミュレーションに手を出してみます!
まず、パーティクルを発生させるためのオブジェクトを作りました。
前回の煙の経験から、発生源を空間に固定させて風で吹き流すよりも、発生源を動かしたほうが何かとやりやすかったので、左側に動かしていきます。
こういう自然物をシミュレーションしようという場合は、ちょっとやそっとの粒子数では、解像度が悪くてなかなかうまくいかないのは見えています…
ということで、とりあえず10万粒子ぐらいドーンと使ってみましょう。
重力の効き具合などを、扱いやすいように調整してやると…
(当然ながら)落ちていきました!
もう少し雲っぽくなるように調整をしてみます。
まず。筋雲のシュッとした形は、上空の風の速度差が効いているようなので、下のような風の配置をしてみました。
全体的に、右向きに風を吹かせておきますが、雲の発生源あたりに範囲を絞って、左向きに風を重ねて置きます。
雲の発生源周辺は、同じような速度で左向きに風が流れていて、そこを外れると右向きに風が流れているような状態です。
扱いが難しいのが Flow のパラメータです。
Flow を 0 にすると、(重力で下向きに力が働くときと同じように)粒子を押すだけで、際限なく粒子が加速するような力になります。
Flow を大きくすると、粒子の終端速度が風の速度になるように動きます。
(重力による下向きの移動速度もその分ゆっくりになっていきます。)
空気の抵抗を受けつつ、重力にひかれて空気と同じ移動から外れていく…というバランスになるように控えめの数を入れました。
落下するに従って、風に流されていきます。
粒子のサイズ(質量)にはばらつきを入れたので、風に大きく流される細かい粒子と、そんなに流されない粒子が混ざっていて分布が広がっていきます。
さて、このパーティクルからボリュームに変換したいのですが…
blender 3.0 のジオメトリノードに、点群からボリュームに変換するノードがあります。
それを利用する前準備に、パーティクルを頂点群に変換ができれば良いのですが、ちょうどそういうことをしてくれるモディファイア(Particle Instance)がありました。
頂点1つをパーティクルの分布に従って増殖をさせて、そこからジオメトリノードでボリュームを作ります。
青空をバックにボリュームとしての表示をしてみます。
乱流にならずに吹き流される雲になりました。
前回に乱流の発生に苦しめられたとはいえ、まったく乱れなく同じように落ちていくのはさすがに変ですから、乱流成分を加えてみます。
風と同様に 乱流(Turbulence)を発生させるオブジェクトを追加しました。
動きはなかなか悪くない感じになってきました。
もう少しいい感じにならないか、パラメータを調整したり、
落下しすぎないように下から上に範囲を限定した風を置いたりして形を整えてみます。
粒子数を20万個に増やしてみます。
シュッとのびた雲、としてまぁまぁの形状に近づいてきました。
問題は、点から作成するボリュームが粉っぽいことです。
点に近い場所では ON 点から遠い場所では OFF という感じにボリュームに変換する機能しかないので、
「粒子がまばらなところでは、なめらかに薄くなるように大きく薄い粒子にする」
「粒子が濃く集まったところでは、その分ボリュームとしての密度が濃くなる」
というような調整が効きません。
んー、形状はそれなりに整ってきたのですが、巻雲のように滑らかなボリュームにするところが上手くないですねぇ。
さて、どうしましょうかというところで、来年に続く!