-BlenderでDynamic Paint するときの手順と注意点-

3. Vertex Weight から色へ

ダイナミックペイント、もしくは幾つかのモディファイアは、ダイナミックに変化する Vertex Weight を作成します。ところが、この値を使って色づけしてみようとしても、直接色に影響を与えることはできません。
そこで、一旦 Vertex Weight を使って UV を変化させて、UV 経由で色を変化させる方法について説明します。

■ Vertex Weight

Vertex Weight (Vertex Group) の値に連動して UV を変化させることのできるもディファイアは、ほとんどありません。
その貴重なモディファイアとして UVWarp があります。使用頻度の低いであろうモディファイアなので、まずその挙動を見てみます。
2つのオブジェクト、From と To の相対的な位置(や回転)関係から UV を変形します。
From を原点に置き、To の位置を動かすと、それに連動して UV で貼ったテクスチャが動きます。
分かりやすいように四角を操作していますが、これはエンプティなどでかまいません。
From と To の 1 のずれが、UVの端から端までに対応するので、この場合は2倍の速さでテクスチャが動いています。

気をつけるのは、To の移動にあわせてテクスチャが動いているということは、To が +1 すると、UV の値のほうは -1 変化しているというところです。
(絵が右に移動する、ということはある固定した点に着目していると、その場所では元の絵よりも左側を表示している、ことになります)
Dynamic Paint を使ってこのような Vertex Weight (dp_weight) になったとします。このWeightにあわせて 0 から 1 まで UV が変化するようにシーンを組み立ててみます。

まずは、何もない状態で UV が 0 になるように 作成したUVマップを変形してすべて 0 に合わせます。
この UV の値が1になるように UVWarp を設定し、その影響が Vertex Weight の大きさに依存するようにすれば、Vertex Weight の大きさが UV に反映されるようになるわけです。
そこで、From 用に原点に Empty を置き、To 用に (-1, 0, 0) にも Empty を置きました。
ここで -1 にしたのは、先ほども見たように UV への影響は正負が逆なためです。ついうっかり逆にしがちな点です。
UVに与える影響が、dp_weight に影響されるように設定しました。これで、dp_weight の値に従って UV(のU) が 0から1に変化するはずです。
カラーカーブを作成してUVMapに従って色が変化するようにマテリアル設定します。
これで、Vertex Weight にあわせて好きな色で着色ができるようになりました。

inserted by FC2 system