Dynamic Paint をレンダリングする
Dynamic Paint がレンダリングできない?
Dynamic Paint を試してみる。ブラシとキャンバスを設定すればいいことは知っているので、まずはセッティング。
キャンバスには、板をしいて、Subdivide
で超分割。分割するときは、Subdivide
のオプションで数値設定するより、分割後に Shift + R
(繰り返し)で思う存分やる方が楽。Dynamic Paint は頂点ペイントになるようなので、だいぶ細かめに分割した。
その上に、Curve
に Follow Path
を設定してぐるぐるまわるサルを乗せた。
このサルを板に少し触れるようにして Brush
にする。サルに、[物理演算タブ]の Dynamic Paint
を押して、Brush
を追加。パラメタはこんな感じ。Source
に Mesh Volume + Proximity
を選んだ以外は、デフォルトのまま。Proximiy
は周りを少しぼかしてくれるぽい。
そして、板の方には、同じく[物理演算タブ]の Dynamic Paint
で、Canvas
を追加した。パラメタはデフォルトのままだが、一番重要なのは Output
。ここが赤くなっているはずなので、右側の+ボタンを押して追加する。これが、ダイナミックにペイントされた際の出力になるらしい。これに気づくまでかなり時間がかかってしまった。
あと、表示で頂点ペイントが有効になるようにビューポート右上のアイコンで、Color
からVertex
を選ぶ。
これで、アニメーションさせてみると、おぉ、色がついた。
よし、じゃあ早速レンダリング!
あ・・・れ?色がついてない。 どうもビューポートに反映されたところで、レンダリングに反映されるわけではないみたい。 そう、マテリアルの設定をしなければいけない。
マテリアルにVertex Paint結果を反映する
マテリアルに反映させるにしても、Vertex Paint用のノードが用意されているわけではなく、Attribute
ノードにVertex Paint
につけた名前を設定して、シェーダーにつなぐものらしい。
まずは、板の[オブジェクトデータタブ]にあるVertex Colors
を開く。ここに、さっきOutput
で+ボタンを押した時に新しく頂点ペイントが設定されている。この名前をコピーする。
コピーはテキストを選んでもよいのだけど、マウスオーバーした状態で Ctrl + C
するだけでちゃんとできる。D&Dでまとめてパラメタの数値変更とかもだけど、こういう細かい UI の便利なところが、Blender は素晴らしいと思う。
そして、ノードエディタでシェーダーにつなぐ Attribute
ノードを追加し、そこの Name
に貼り付ける。
これでいける!レンダリングしてみる。
あ・・・れ?いや、色はついた、けども。なんでサルの周りだけ?そして暗いし。正しい方法があるのかもしれないけど、いろいろ試した結果、どうもこれ、キャッシュを効かせないとうまく塗れないみたい。
で、キャッシュを効かせるには、キャンバスの[物理演算タブ]のCache
が関係するのだけど、ここのBake
は一旦ファイルとして保存しないと使えない。なので、一旦 .blend ファイルとして保存する。そしてBake
。ついでに、Inicial Color
が暗いので、少し色をつけてみた。
今度こそ!レンダリングしてみる。
やっと成功しました。あとで気づいたのだけど、Bakeしなくても、ファイルを一旦保存した時点でキャッシュが効いて(?)、このようにレンダリングできてた模様。いまいちよくわからない...
ペイントのしかたもいろいろ
Brush
の、Particle Systems
をブラシにすることもできる。パーティクル設定したオブジェクトを走り回らせると、そこから吹き出すパーティクルがちゃんと反映される。
雨の表現なんかで使えるのだと思う。
ノードに設定した、Attribute
の先に、ColorRamp
など設定すれば、いろいろおもしろい表現もできそう。今後何かに使ってみたい。
Canvas
に設定した方も Surface Type
は Paint
の他に、Waves
、Displace
、Weight
が選べて、Waves
やDispalce
は、めんどくさいノード設定なんてしなくても、選ぶだけで有効になるし、面白い動きをする。雪原の足跡、海原をヨットが進む、砲丸が土にめりこむ、とかいろいろ使えそう。