Blenderを使ってCGで雲を作ってみる その19

皆さんこんにちは武田です。
この間撮った、複雑な形のすじ雲(?)です。
こういった蜘蛛の巣状(とでもいえば良いのでしょうか)になったすじ雲は、いったいどういう空気の流れでこのような形になるのでしょうかね。

中心部から外側に広がっていくのか、周囲で生まれた雲粒が、対流の流れなどで中心部に
集まっているのか…
落下しながら流れていくようなすじ雲は、まだ形をみてなるほどなーと思えるのですが、こう複雑な形になってくると見た目では見当がつきません。

さて、しばらく間があいてしまいましたが、前回同様もう少し AI 描画の雲の利用を追求してみました。ボリュームレンダリングを駆使して、しかもリアルな光の感じを出す為に多重散乱の計算を真面目に行うとどうしても非常に重い計算になってしまいます。
データとレンダリングの解像度がどうも足りなくて、どうしても眠たい感じの雲になってしまっていました。
計算機パワーを際限なく使えるような場合なら解決できるのかもしれませんが、目の前のパソコン1台でどうにかしようとするのは、少々厳しそうです。

ボリュームレンダリングで作成した雲の絵を元にして AI が良い感じに細部のデティールを足してくれたら、それをさらに部品として使うことで充分に解像度感のある絵になりそうです。

ところが、部品を配置して広い空を表現しようとするとなかなか大変です。
というのも、写っている範囲が広いと、当然頭上の雲は下からきつく見上げた角度になりますし、地平線近くの雲はほぼ横から見た雲になります。
角度の違う雲の部品が何種類も必要になるはずです。

フルに3Dで雲を配置できれば、こうしたパースの変化は自動的にそのように反映されるのですが、絵のパーツを空に配置する以上、パースの違いの分だけ角度の違う雲の絵が必要です。

しかし、どうにも回避する方法は思い浮かばないので仕方がありません。
全部で5段階の角度違いの雲の塊を用意しました!

かなり見上げた角度から地平線側の水平に近い角度(Z,A,B,C,D)と名前をつけて数種類ずつ配置を変えてレンダリングしています。
D は、遠くの大きな雲を表現できるように、もくもくと雲を強く盛り上げています。
幸い今までに作った大小の雲の塊用のデータがありますから、それらを数個づつぺたぺたと配置して、それらしい絵になるようにしています。
A の前に Z が付いているのは、Aから作り始めたのですが、もう一段きつい見上げが欲しいな…と後から付け足したからですね…);

ここから AI を使って image2image 的に雲を描きなおします。
光の加減の陰影などはボリュームレンダリングで既に行われているわけですから、あまりAIに気ままに絵作りをさせないで、原型を残したままの絵になるように、抑え目のパラメーターでの作画にします。

今の AIお絵かきの仕組み(Stable Diffusion モデル)は、入力した文字情報のプロンプトを手掛かりに連想して絵を作るので、適切なプロンプトも必要です。
今回、作りたい雲は実写的な物を考えます。
イラスト調や絵画的な表現まで考えると、部品としてのタッチの統一性を取るのが困難だからです。
実写風であれば、目指すタッチは1つだけですから、判断がしやすいですからね…

何回か試行錯誤した結果、Cloud, Blue Sky, Cumulus (積雲) などの描きたい物、Look up (見上げる) など状況の制限を少し、Realistic, Phograph, Detailed, High Quality などの品質を上げてくれそうなキーワードを並べてみました。

また、絵画やイラスト風になりずらいように、そちらの方向を連想しないための Negative Prompt として Paint, Brush, Illustration などを加えました。
また、写真風の画像は、どうやら jpeg ノイズがガッツリ乗った画像からも学習しているようで、驚いたことに jpeg ノイズっぽい模様が周りに出現することも多かったので、Negative Prompt として Noise, block Noise, Jaggy などノイズを抑えそうなキーワードも加えました。

それなりに写真風の雲の画像になってくれました。中には電灯になってしまった絵もありますが…
Negative Prompt で絵画調の絵にならないようにする前は、もっと様々なタッチの出力がされていたので、打率はだいぶ上がっています。
8回シード値を変えながら出力するようにスクリプトを組んだのですが、その中から一番良さそうなものを選べば、使えそうな雲のパーツになりました。

今回難しかったのは、横から見た積乱雲の場合で、打率が随分下がりました。

四角い枠に収まるような雲の塔がちょうど1つぽつんとある…不自然な雲のレンダリング画像が元だからではないかと考えています。
それにピッタリ当てはまるような学習元になるような写真がそもそも少なそうです。
しかも、実際の積乱雲のような自然なモクモク感を下絵に作るのが難しかったわけですから。
(それができるなら苦労しないというか、わざわざAI を使う必要が無いわけです)

色合いも問題です。
遠くにある巨大な雲塊なので、「雲が空気遠近法で空の色に溶け込んでいる写真」がAIの学習元にあるのだと思いますが、
部品として欲しい絵は「空気のあるシーンで遠くに置くと空の色に溶け込む、空気遠近の効果の入る前の雲の絵」なので、色味も合っていないので、うまく写真の雲を連想してくれないのだと思います。

それでもプロンプトを Far Cumulonimbus (遠くの積乱雲)など多少変えたりしながら実験して、試行の数を32個で出力したら、そのうち1、2個はある程度写真風の画像になってくれました。

AIの作成した画像を部品として使うには、背景の青空と分離をして透明情報のあるテクスチャにしないといけません。
手で切り抜きは大変すぎるので、これも別の AI による切り抜きツールが有ったのでそれを使いました。
パラメータをうまく決めるのに多少手間取りましたが、最終的にはまぁまぁ良い感じに切り抜けるようになりました。

ただ、こうして作成した雲パーツをシーンに配置して見て分かったのですが、午後遅い夕方風味のやや赤み成分のある雲や、真昼の青い影色の雲などが混在しています。
もうひと手間、基準になる雲を決めて、そこから色味が外れている雲のパーツはカラーマッチングなどを使って色味などを手動で調整をした方がよさそうです。

これである程度の雲のパーツがそろいました。
シーンに配置して空を作成してみます!

雲の板ポリゴンのパーツを、空気遠近用のボリュームや背の高いすじ雲、簡単なオブジェクトのあるシーンとに配置しました。
カメラとの遠近に合わせて、雲のパースを切り替えています。

お、なかなか雰囲気が出ている感じにみえます。
折角なので、遠くに積乱雲用の大きな雲を置いて手前の雲を控えめにした、夏の雲!的な配置にしてみます。

バラバラ感のあったパーツをなじませるため、色味の調整に少し時間をかけています。
また、水彩風のフィルタを弱くかけて、オブジェクトのCGっぽさや、やや積乱雲の形に残るAIの雰囲気を弱めようとしています。
パーツの用意などの下準備は必要ですが、今まで直接ボリュームで雲をレンダリングしていて残っていた、雲の低解像度感はだいぶ解消された感じがします!

しかし、CGとして雲データが有れば、光源の向きを変えてもそれに反応するのですが…
絵のパーツを配置しているのでそういう訳にはいきません。
それなりの数のパーツを作成したのですが、光源の方向を決め打ちしたパーツです。
角度の緩い夕方や、逆光気味…など、場合分けの状況に応じたパーツが予め沢山ないと別の状況に対応できないような気がしますね。
これは絵を描いた板ポリをを利用する…という方向では避けられないよな…などと考えながら、次に続いてみます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です