TomoGのごちゃまぜ倉庫

Blender 水面の波紋の作り方【雨天時】

f:id:TomoG:20190505174538p:plain

今回はBlenderで雨天時の水面の波紋の作り方をご紹介していきたいと思います。作っていく上で注意するところ・気を付けるところもご紹介していきたいと思います。

参考動画

youtu.be

水面の波紋の作り方

概要

漠然と水面の波紋を作り出すとよく分からなくなってくるので、本記事の水面の波紋の作り方の概要をまずご紹介します。

水面の波紋の作り方として

  1. 波紋を作成 ⇨ 次章【波紋の作り方】でご紹介
  2. 水面を作成 ⇨ 次々章【水面の作り方】でご紹介
  3. 合成    ⇨ 最終章【合成方法】でご紹介

となっています。

 

簡単に言えば、まず波紋を作成します。この波紋は非常にポリゴン数が大きくなります。そこで、波紋の元となる画像・動画を抽出します。

次に波紋を反映したい水面を作ります。この水面の作成は、水面がある画像を持っていれば比較的簡単に終わります。

最後に、この水面に先ほど作成した波紋の画像を反映させて、水面の波紋の完成となります。

 

今回の水面の波紋の作り方では2つのblendファイルを作成することになります。作成段階でご紹介するので、準備だけお願いします。

波紋の作り方

youtu.be

まずは最初の段階である波紋を作っていきたいと思います。

簡単にノード設定までのやり方を動画でまとめたので、そちらもよければご覧ください。

準備

Blender 波紋用ハイポリゴンの平面

まずは平面オブジェクトを作成してください。その平面オブジェクトを細分割を行いハイポリにしてください。

この平面が波紋の解像度を決めることになるので、できる限りハイポリにすることをおすすめします。これは自分のパソコンと相談して行ってください。

波の解像度確認

次に波を発生させたら、その平面がどうなるか確認していきたいと思います。

Blender モディファイヤーの波を追加した時

先ほど作った平面にモディファイヤーの波をつけてみてください。すると上図のように平面が波打つと思います。【Alt+Aキー】でアニメーションを見ることもできます。

平面のサイズが小さいと、波に見えにくい場合もあるため、その場合はサイズを大きくしてください。

Blender モディファイヤーの波を追加した時ローポリであった場合

ローポリだと上図のようになるため、必ずハイポリで行うようにしてください。

 

これで水面の波紋の解像度を確認してください。解像度を確認して満足をしたら、この波のモディファイヤーは削除してください。

雨を降らすパーティクルを作成

次に平面は一旦置いておいて、雨を降らすためのパーティクルを作成していきたいと思います。

今回パーティクルを作成するために、用いるオブジェクトは球体にしました。動画ではパーティクルを付ける前に、ダイナミックペイントをしてどう動くか試しましたが、本来はまだダイナミックペイントは付けなくても大丈夫です。

オブジェクトが作成したら、次はこのオブジェクトにパーティクルをつけます。このパーティクルを作った時点では、変更するところがないのでパーティクルを追加したら、そのままで大丈夫です。

Point!!

・雨を降らすオブジェクトは大きくしない

理由:別の波の波紋が入り込まないよう・素材として使える場所を増やすため

ダイナミックペイント設定

次にダイナミックペイントの設定を行っていきたいと思います。

Blender ダイナミックペイントでパーティクルでペイントする側の設定

まずは、先ほど作ったペイントする側つまり球体の方に上図のようにダイナミックペイントの設定を行ってください。

ブラシの作成を押すと、上図のように項目がでてきます。そしてペイントソースをパーティクルシステムにすると、パーティクルを選択できるようになるので、先ほど作成したパーティクルを指定してください。

Blender ダイナミックペイントでペイントされる側の設定

次に平面にもダイナミックペイントを設定していきます。平面のダイナミックペイントはキャンパスとしての設定になります。

キャンパスの作成を押すと、上図の項目がでてくるので、その中のサーフェスタイプをWavesにしてください。

調整

今の段階では上図のようになると思います。ここで多くの調整を行っていきます。

主に平面の調整になるので、上図のような調整を行えばいいと思います。

あとは球体のダイナミックペイントのソリッド半径を変更したり、パーティクルの量を調整したりしてください。

ノード設定

平面のノード設定は上図のように設定してください。波紋がクッキリするようなマテリルになればいいと思います。

上記のような白黒で構いません。波紋の頻度や形などは別として、上記のGif画像のようになったら、波紋作成自体はできています。

出力

波紋作りの最後に、この波紋の画像を出力していきたいと思います。

Blender 波紋の画像作成時のカメラ視点

カメラの視点は上図のように平面の真上に設置してください。ここで角度をつける必要はないため、真上かつ垂直になるよう設置してください。

 

※カメラの解像度ですが変更しても問題ありません。そのため、平面を正方形にした人が多いと思うので、カメラの解像度を1:1(正方形)にした方がいいかもしれません。

 

※雨のパーティクルがついているオブジェクトは見えないようにしてもダイナミックペイントに影響はありません。

Blender オブジェクトを非表示にするボタン

上図のように、目のマークとカメラのマークをオフにしていても大丈夫です。

 

この状態でレンダリングを開始します。

参考動画では連番画像を出力後、動画にして使用しています。しかし、最初から連番にすると修正したい時、再度レンダリングには時間がかかるため、使いたいフレームを見つけ、それをレンダリングした方がいいと思います。

 

ちなみに私は連番画像のレンダリングに1回11時間程かかっています。

Point!!

レンダリングは画像で

理由:平面がハイポリのため、連番のレンダリングには非常に時間がかかるため。

動画にするにしても、テスト用にまずは画像で行うのがいいかと思います。

水面の作り方

水面の作り方として、参考動画には本来無い内容となっています。

 

この水面動画の作り方として主に2つあります。どちらの方法であっても新しくblendファイルを作って、そのファイルで水面を作成するようにしてください。

 

1つ目は水面のある画像を見つけ、その画像の平面だけをくりぬいて使用する方法です。

この方法は参考動画のやり方となっているので、参考動画を参考にしてください。

 

2つ目は参考動画の動画概要欄にある記事の水面の作り方を参考する。その水面の作り方の記事は下記のリンクから。

www.blenderguru.com

こちらも英語の動画になっています。そして、この内容については本サイトでもご紹介しているため、そちらをご覧にください。

これで水面は作れたかと思います。

合成方法

f:id:TomoG:20190512214240p:plain

最後に、この波紋と水面を合成していきたいと思います。

この作業は、前章で作った水面のblendファイルをそのまま使っていきたいと思います。

ノードエディタの全体図は上図のようになっています。青部分が本記事で新たに作ったノードとなります。

基本的な状況

f:id:TomoG:20190511195245p:plain

本記事では上図のように水面を作っています。上図の赤枠内は事前の水面を作る記事と同じため割愛させて頂きます。

上図の赤線のカラーランプだけは、本記事で光沢を抑えるために追加したものです。

準備

f:id:TomoG:20190511225956p:plain

まずは水面を作ったシェーダーとマテリアル出力の間にミックスシェーダーを追加してください。

 

このミックスシェーダーにリンクさせるものの概要として

・係数:水面を抽出したもの

・シェーダー1:水面を含むシェーダー

・シェーダー2:波紋を追加するシェーダー

となっています。

f:id:TomoG:20190511225121p:plain

まずミックスシェーダーの係数ですが、本サイトの水面を作る方法を見た方は、このミックスシェーダーの係数には水面を作るときに作った係数のものをそのまま使ってください。

 

次にシェーダー1ですが、これはそのまま水面を作るときのシェーダーをそのままリンクさせてください。

最後にシェーダー2については、これから作っていきたいと思います。

f:id:TomoG:20190511230506p:plain

 シェーダー2には、上図の赤枠のようなノードを追加します。

シェーダー2にはミックスシェーダーをリンクし、そのミックスシェーダーには係数にフレネルノードを、シェーダー1にはカラーを黒、粗さを0.00にしたディフューズノードをリンクさせ、シェーダー2には光沢ノードをリンクさせています。

ノードの設定として、最後に光沢ノードのノーマルを設定するものがありますが、これは次章説明後行います。

新しくUVマップを作成

次に水面を作った平面に新しくUVマップを作成します。

f:id:TomoG:20190511231310p:plain

上図のようにUVマップ項目の+アイコンを選択することで、新しいUVマップを作る事ができます。このUVマップにUV展開を行ってください。

このUVマップを次項のノードで使っていきます。

ノード設定(合成)

f:id:TomoG:20190511231844p:plain

最後にこれらの最終設定をしていきます。

先ほどノード設定した光沢BSDFのノーマルにリンクさせるノードが上図のなります。

まず①ですが、これは入力>UVマップから追加してください。この時設定するのは、先ほど作成した新しいUVマップになります。

次に②ですが、これは波紋の作成でレンダリングした画像・動画を設定してください。

あとはマッピングを使って波紋の位置を調整してください。

 

※この時マッピングをするとき、アドオンの【Node Wrangler】の【Ctrl+Shift+右クリック】を使うと便利にできます。

www.cgradproject.com

調整

ここまでくると後は調整を行うだけです。主な調整項目として

波紋作成時では

・雨のパーティクルの数

・ダイナミックペイントのキャンパス(平面)の値

レンダリングするフレーム

 

合成時では

・波紋の位置

・波のノーマルマップの強さ

等が挙げられます。

 

また背景等については、出来るだけ明るい背景の方がいいと思います。

f:id:TomoG:20190505174538p:plain
f:id:TomoG:20190512115818p:plain

上図が明るい時と暗い時の比較になります。同じ構図で同じオブジェクトですが、HDRIを変更しただけで、水面の波紋が見えるかどうかが異なります。

なので、できるだけ明るい背景・HDRIを用いたほうがいいと思います。

参考記事

stonefield.cocolog-nifty.com


本記事の内容は以上となります。

3DCGを作っていると作りたくなる雨のシーン。そしてそのシーンで必要になる水面の波紋では本記事でご紹介しました。

本記事は以上となります。お疲れ様でした。