Check out my artworks! (●△●)(●ω●)

SORA(ProceduralSky) Blender内でアニメらしい空を生成するシステムを模索中

SORA_01

お天気ジェネレーターが欲しい

今はBlenderの中でアニメらしい空や雲を生成するノードを作っています。これを作ろうと思ったキッカケは「ゼルダの伝説ブレスオブザワイルド」をプレイしたことです。ゲームで遊んでいて「あ~、こういうゲームエンジンにあるようなお天気ジェネレーターがBlenderにもあったらな~」と思ったんです。

んで「どうせBlenderMarketで誰かがアドオン売ってるやろ」と調べてみたら案の定いい感じの商品がありました。良かったのが「Pure-Sky」ってやつで機能的にはこれが1番充実しており、使いやすい設計になっているように感じました。Blender2.8にも対応してるし、積極的にアップデートしている。

参考 Pure-Sky(EEVEE & Cycles)BlenderMarket

でも金が無ぇ

まあ、これを買えば済む話なんですが1つ問題があって、それは何かと言うと「お金がない!」。ここ最近、設備投資(散財)し過ぎてしまって、マジでお金が無いんス。数十ドル出す金もヤバい。だったらしゃーない自分で作ったろ!って感じで、しばらく開発していたんですね。開発といってもノードを組み立てていくだけなんですけど。ある程度までは自分で作れる自信はあったのでノードやパラメーターを数日いじくり倒していました。

SORA_02

参考にしたのは先程にも書いたゲームの「ゼルダの伝説BOW」、そして最近買ったソフトで「WorldCreator」という地形ジェネレーターの空。このWorldCreatorのリアルタイムエンジンが素晴らしくて、BlenderのEEVEEと似た環境で色んな地形が作れるんです。地形だけじゃなく空もきれいに生成されて、すごいリアルなんですよ。WorldCreatorで作った画をEEVEEでもそっくりに反映させたいと思ったことももう一つのキッカケでした。

WorldCreator

(ただ肝心の WorldCreatorで作った地形をBlenderに完璧にエクスポートする作業がめっちゃ難しい・・・。WorldCreator内のテクスチャタイリングの構造をBlenderで再現するノードを作らなければならなかった・・・。調べまくって一応完成したけど完璧な再現ではない。)

SORA(ProceduralSky)完成

そして前述の通り、ある程度までは完成しました。名付けてSORA(ProceduralSky)です。これをバージョン1.0として運用していこうかと考えています。これはアニメらしい雲を作ることを最大の目的として作りました。ジェネレーターなので、色んな空を再現出来ます。といってもある程度ね。

SORAで作れる空
・朝、昼、夕方、夜(星空付き)
・快晴、夏雲、曇天、いわし雲・・・など

SORA_06

SORA_07

アニメらしい雲って言うのは、下の画像にあるような、昔ながらのくっきりした輪郭で、こんもりとした厚みのある雲のことですね。

SORA_10

ある程度は再現出来てる・・・かな?Blenderに元から入っている「Dynamic sky」っていうアドオンだと、薄っぺらいボンヤリとした雲を作るくらいしか出来ないんですけど、それをもう少し拡張させた感じです。機能的には「Pure-Sky」と「Dynamic sky」の中間くらいに位置するのが SORA(ProceduralSky)です。SORAで作った、こんもりとした雲を動かしたり、形を変えたり、量を増減させたり、空の色を青空や夕焼け空などにすることでSORA(そら)を変えます。さすがに雨を降らすとかは無理です。それはパーティクルでやること。

Blender内で画を作る時にいちいちHDRI画像を用意するのって面倒くさいじゃないですか。それに写真の空だとアニメらしい画を作るのとは馴染まない。そこでSORAを使えばいい。

ちなみにサムネに使った画像に円形のエフェクトやらレンズフレアがありますが、これはSORAの機能ではなくポストエフェクトで後から編集で加工したものです。ゲームみたいにリアルタイムで画を作りたいわけじゃないから、そこまでの機能はいらない。あくまでも空や雲を生成したかっただけなので。

SORAの不完全な所

やりたいことは大体盛り込みました。しかし不完全な所がいくつかあります。
太陽と月をプロシージャルで作りたかったんですが、技術力がなく無理でした。テクスチャを使って代替することも考えています。
あと雲の向こうに星があるのが望ましいのに、どうしても星と雲が混ざってしまう。同じ理由で太陽や月のテクスチャを用意したとしても、雲の向こうに太陽があるようには出来ない。どうしても混ざってしまうんです。これが解決出来ませんでした。

SORA_09

Worldのライティングがキャラクターのトゥーンシェーダーに反映されてしまう問題もありましたが、一応SORAというかWorld自体をオンオフするスイッチを盛り込んで対応しました。背景をレンダリングする時はオンにして、キャラクターだけをレンダリングする時はオフにするって感じです。

っていうかBlenderにLightLinking機能が欲しいですね。Worldや各ライトのライティングを切り分けられたら最強なんですけど。

ちなみにゼルダの伝説BOWみたいな3層構造な雲の群を作ることも考えたのですが、やはり厚みのある雲が1層だけある方がアニメらしいと判断しました。しかし今のSORAでも薄い雲であれば2層構造に見せかけることは可能です。

さいごに

SORA_04

ノードを組み立てただけなんで、名前なんてつける必要は無いんです(格好つけたかった)。

本当はもっと洗練した形にしてBlenderMarketで売り出したいところですが、ボクはプログラミングが全く出来ないので、これを他の人にも使いやすい設計のアドオンにするだとかは出来ません。Pythonが使えたらなぁとは思うんですが、思うだけで何も勉強してない。使い勝手も「Pure-Sky」に比べればめっちゃ悪いはず。ただ自分で使う分には十分なシステムだと思います。

コメントを残す

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