Blenderアセットの「RealWater」を使ってみる。

お久しぶりです。
ヤクモレオです。最近はずっとBlenderをさわる日々です。
今回はBlenderアセット「RealWater」について書きたいと思います。

この記事では、Blenderを始めたばかりの人が
「RealWater」の導入時に混乱するかもしれない事やその対処法、
このアセット(アドオン)作者であるCasey Sheepさんに私が教えて頂いたことなどをまとめております。

RealWaterの作例

RealWaterって何?

Blenderのアセット(アドオン)で、その名の通り「リアルな水」が作れます。
価格は2023年5月時点で5ドル
なので680円ぐらいでしょうか。

購入先は→こちら

「水」「無限の海」「水中」といったアセットがレンダラー別に
Eevee用Cycles用、それぞれ用意されています。

アセットには英語版以外にも中国語版が含まれており、
その違いはシェーダーワークスペースなどで確認できます。

インストール方法

購入すると、アドオン版とアセット版どちらも入手出来ます。

Blenderアドオンの一般的なインストール方法で
プリファレンス→アドオン→インストールからzipを読み込んでもOK。

アセットの方をダウンロード&展開して
プリファレンス→ファイルパス→アセットライブラリ→「+」から
アセットライブラリに設定してもOK。

私はアセットライブラリに追加したので、後者の方法で進めます。

RealWaterの使い方

使い方

アセットブラウザからドラッグアンドドロップで配置して使います。
簡単ですね。

しかし人によっては、ここで混乱する事態になるかもしれません。
私がそうでした。
ここから先は、私自身が戸惑った点について書きたいと思います。

Cycles版アセットを読み込んでもレンダービューで表示されない!

レンダラーをCyclesにして、GPUを選択した状態で
Cycles用のアセットをドラッグアンドドロップ。
ソリッドビューでは灰色の厚い板が表示されますが、
レンダービューに切り替える事でリアルな水が現れます。

が、灰色の板が水に変わらない!…となる人がいるかもしれません。

実はこれはBlenderのCyclesでは古くからある現象なのだそうです。

Cyclesで初めて複雑なマテリアルノードを使用してレンダリングする場合、
ロードプロセスが発生します。
UI画面の左上に “Loading render kernels (may take a few minutes the first time)” と上方が表示されます。

対処法は、「何も操作せずに完了するまで待つこと」です。

1~2分待ってみましょう。
一度読み込めば、以降は一瞬で表示されるようになります。

※この状態で下手にBlenderを動かすとフリーズしてしまうことがあるので注意しましょう。

なんかオブジェクトが真っ黒になる!

これもBlender Cyclesの長年の問題だそうです。
複雑なノードセットアップでレンダリングする時に発生します。

ファイルを保存し、ビューポートの表示モードを「ソリッド」に切り替えてから、
「レンダリング」に戻すことで解決する場合があります。
解決しない場合はBlenderを再起動してください。

Mac M1Max GPUではこの現象は現れていないというお話で、
Nvidia GPUで一般的に発生するのではないか?と作者さんは語ってくれました。

Eeveeの動作が非常に遅い!

レンダラーでEeveeを選択して、
Eevee用のアセットをドラッグアンドドロップで読み込みます。

少し待つと水が表示されます…が、重い。
Blender全体が重くなりすぎる!これは異常なのでは…?と思うかもしれません。

が、これは
Eeveeレンダリングエンジン自体の性能制限に起因して発生しているので、仕様ととらえて良いようです。

EeveeでCyclesに近い結果を得るためには、
多くのノードを使用してシェーダーを作成する必要があるのですが、
そうなるとEeveeのパフォーマンス問題で動作が重くなってしまう。

RealWaterのEevee版アセットは「良い見た目を実現する為、性能面で犠牲を払う仕様」になっている
と作者さんもおっしゃっておりました。

ちなみに私の環境でEevee版のRealWater「ee1」アセットを使った際には

メインPC…GPU RTX3090、CPU Ryzen5950x、メモリ 64GB
重いけど我慢できるレベル
サブPC…GPU GTX1080Ti、CPU corei7 8700k、メモリ 64GB
現実的に利用は厳しい重さ

という感じでした。ただし、海の「ocean_s_e」アセットは比較的軽めに動きました。

Cycles版アセットで泡を表示させたい!

RealWaterは水と触れているオブジェクトの淵に泡(Foam)を描写することが出来ます。

Cycles版のアセットではシェーダーワークスペースで調整することで泡の見方を調整出来ます。

Eevee版アセットで泡を表示させたい!

Eevee版アセットでも、
水と触れているオブジェクトの淵に泡(Foam)を描写することが出来ます。
(Cycles版とは違う見た目となります。「Eevee用Oceanアセット」では現時点では表示出来ません)

泡の淵が描画されない…!という場合、
Eeveeのレンダー設定でアンビエントオクルージョンがデフォルトで無効になっていることが原因です。
レンダリング設定で有効にすることで、表示されます。
※Eevee版はFoamノードがありません。

Cyclesアセットで泡の描画を活用してみる

水面に船を配置した場合など、RealWaterは泡のおかげでリアリティを増した表現が出来ます。

そこで、船が移動した際に現れる「泡の流れ」みたいなものも描画できないかな?
と試してみました。その結果がこちら(冒頭の動画と同じ)。

ゴンドラでこんな軌跡が出来るの?と言われるとアレですが、
手間や負荷を考慮すると「案外悪くないな」と思っています。

何をやってるかというと、
船の後ろに「V」のようなモデルを作ってペアレントして、
レンダリングで表示されないようにアルファをの値を0にしてあるのです。
(見えないオブジェクトを配置して泡だけ表示させてあるという事)

こうすると、「V」モデルの角度やスケールを調整することで泡の表示具合を自由に調整出来ます。

それだけだと動きが一定すぎるので、「Wiggle」という無償アドオンで
船と共に「V」も動かしています。

「Wiggle」アドオンって何?という方はこちら。

※ちなみに上記の「wiggle紹介動画」では泡(Foam)は船自体についているだけで、船の軌跡は付けておりません。

「Wiggle」のダウンロード→こちら

特定のオブジェクトに泡を表示させたくない!

さて、逆にCycles版アセットで
「全体的に泡は欲しいが、特定のオブジェクトからは泡を描画させたくない!」
という場合もあるかもしれません。そういう場合は

泡を描画したくないオブジェクトを選択し
オブジェクトプロパティ「可視性」「レイの可視性」設定で「影」オプション無効にします。

作者さん曰く、
泡のエフェクトはAOノードを使用して作成されているそうで、
現時点ではこの方法しかないというお話でした。

実際試してみますと、綺麗に消すことが出来ました!

Cycles用シェーダーの使い方

作者さんの作った資料の翻訳です。

Cyclesを速度重視で使ってみる

さて、ここからはRealWaterについてではなく
Cyclesについて私の所感を書きたいと思います。

私の中でBlenderの2つのレンダラーは

Eevee…めちゃくちゃレンダリングが速いけど、表現力が制限される
Cycles…レンダリングに時間はかかるけど、表現力が上がる

というイメージでした。

なので私はフォトリアル系の映像でない場合は
膨大なレンダリング時間を待つぐらいなら、Eevee一択でいいか…というスタンスだったのですが、
Cycles低いサンプル数でレンダリングすればけっこう速いのだなあと、今回知りました。

Cyclesを速度重視で使う場合、一番簡単なのは
「ノイズしきい値」を上げて「最大サンプル数」を下げる事です。

極端な話、
「ノイズしきい値」を1.000(デフォルトは0.01)
「最大サンプル数」を64(デフォルトは4096)
あたりにするとレンダリング時間はかなり短縮されます。

サンプル数を変えてテストしてみた結果、下記の画像の通りでした。
(ノイズしきい値は「1」。レンダリングはGPUのみを使用でCPUは使わず)

※上記比較画像は圧縮されています。

状況や環境は人それぞれなので一概には言えませんが、
このシーンの場合、サンプル数「32」でレンダリングするぐらいなら
レンダリング時間はほぼ変わらないのでサンプル数「64」でやってしまった方が良さそうです。

フォトリアル系ではない上、AfterEffectsでデノイズや色調補正を行って仕上げる予定なので
シーンによってはサンプル数「16」でも良いかもしれません。
(冒頭の動画もサンプル数16でレンダリングしてAeで仕上げたものです)

「ノイズしきい値」を1.000
「最大サンプル数」を16か64
「デノイズ」をOptiX

これからはCyclesをもっと使っていこうかな、と思いました。
どなたかの参考に慣れば幸いです。

映像、イラスト、漫画、コンテなどの制作、画像加工を承っております!→こちら

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)