![]() | 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 にあわせて好きな色で着色ができるようになりました。 |