山里ぽん太

UV Care

28 April 2019

山里ぽん太はUVをケアしました。


Chapter 1 UV
というわけで、UVです。
UVとはアレです。
Ultra Violet つまり紫外線です。
違います。
アレです。
Ulcus Ventriculi つまり胃潰瘍です。
違います。
アレです。
UVマッピングです。
正解です!。
Chapter 2 ジオメトリUV
UVとは、メッシュに絵とかテクスチャを貼り付けたりするときに使うアレです。
UV展開して、絵を貼り付けてゆくと、メッシュに反映されるというアレです。
メッシュは曲面ですが、UV展開すると平面になるので、絵を貼り付けるのが楽です。
ところがぎっちょん(笑)。
Houdini には、ジオメトリUVなる概念が存在します。
って、ほかのソフトにもあるのかもしれません。
ぽん太さんが無知なだけです。
それはともかく、ジオメトリUVというのは、UVテクスチャの座標を使って、メッシュの上の座標を指したり、アトリビュートをゲットしたりする技のことです。
Chapter 3 ジオメトリUVのいいところ
なんかややこしそうですが、そんなの使って、なにかいいことってあるのでしょうか?。
それはですね(笑)。
実はですね(笑)。
内緒です(をい)。
嘘です(怒)。
UVテクスチャと同じように、複雑な形状でも、平面的な座標で取り扱えるというところです。
たとえば、平面だったら座標を指定することは簡単ですが、キャラクタだったら座標で指定することはたいへんです。
そこをUVの直交座標で指定するだけで、キャラクタの表面のあらゆる位置を指定できます。
それに加えて、UV空間は、0から1までの正規化された空間なので、最小値は0、最大値は1に固定されているので、取り扱いが楽です。
Chapter 4 はじめてのUV
そうなんです!。
ジオメトリUVを自分で使うのって、これが最初なんです(笑)。
Chapter 5 作例を作る その1 軌跡を作る
というわけで、なにか作ってみましょう。
こんなのを作ってみましょう。
ぐちゃぐちゃの Line を作って、その Line に沿って、発光体が移動する、というものです。
蛍が飛ぶ、という感じです。

ぐちゃぐちゃの Line を作るネットワークはこんなのです。
一番最初の Add でポイントをひとつ追加して、Attributewrangle でポイントを追加して、次の Add でポイントを繋ぐ Line を作って、Convert で NURBS に変換しているだけです。

AttributeWrangle に書いた VEXpression はこんなのです。

Chapter 6 軌跡に沿って移動する
というわけで、作った軌跡に沿って動かしましょう。
ここでは、point を動かして、とりあえず Sphere を Copy to Points してみましょう。

ネットワークはこんなんです。
右上の Object Merge で、Chapter 5 で作った Line をマージします。
次の UVtexture で、UV のアトリビュートを追加します。
次の AttributeWrangle1 で、フレームが進むに従って、UV の U 座標が増加するような処理をします。
次の AttributeWrangle2 で、Add で作った point の座標を動かします。
でもって、あとは、Sphere を Copy to Points しています。

AttributeWrangle1 に書いた VEXpression はこんなんです。
UVsample でもって、UV 座標を P のデカルト座標に変換して、detail アトリビュートに書き出しています。

AttributeWrangle2 に書いた VEXpression はこんなんです。
detail アトリビュートで渡された座標を、point の座標に代入しています。

Chapter 7 レンダリング
というわけで、レンダリングしてみました。
蛍は大急ぎで飛んでいます(笑)。

Chapter 8 メモ
① UV の使い勝手とか、感覚的なものは、今後、実践する中で掴んでゆくことになると思います。