UV座標へのメッシュ投影を利用したプロシージャルニット作成①
UV位置にメッシュを張り付ける手法のチュートリアル紹介

環境
HoudiniFX 20.5.613
UnrealEngine 5.6.0
概要
entagmaのチュートリアルで過去に共有してくださっている方法。 ニットのメッシュパターンを作成し、UV位置に割り当てることで編み物のようなモデルを作成することができる。
Knitting in 3d: Building a UV Deformer
https://www.youtube.com/watch?v=C9VBY9Wbbrw
ただしこのチュートリアルは5年前のもので、スクリプトで作成している部分を代用できるノードも多い。 そういった部分を置き換えてくれているこちらのチュートリアルの内容が参考にしやすかった。
Houdini - Procedural knitted fabric
https://www.youtube.com/watch?v=WwsW3V4CMOw
覚えておくとプロシージャルモデリングの自由度がすごく広がるので一度視聴をオススメします。
メッシュのニットパターンを作成する
UV座標に投影するためのニットパターンを作成する。
カーブ、line、addなどでパターン用の形状を作成

途切れている部分は必要に応じてfuseやpolypathなどで結合

コピーノードで複製する

matchsizeで0-1の範囲に合わせる(UV座標と対応させるため)

後述しますが、チュートリアルではニット表現のために投影をしているものの、投影するオブジェクトは何でもいけるので覚えておくとプロシージャルモデリングの様々なようで利用できると思います。
UV座標に投影する
UVをもつモデルに対して 右クリック/ UV Split Seamsで作成したノードを接続。 これでUVごとに分離したピースになる

For Each Connected PieceでUVエリアごとに処理を実行する。 uvがvertex attributeの場合attrib promoteでpoint attributeに変換し、Pをuv位置に移動する。

作成したpatternのz位置をアトリビュートに保持しておき、

rayでpatternをuv位置に移動したメッシュに投影する。
あたっていない部分を後で削除したいのでray衝突したpointをグループ化してdeleteで削除

元のメッシュを第2入力として一致するuv座標の元メッシュPにパターンポリゴンカーブを移動してloopを完了

Sweapなどでポリゴンカーブに合わせてメッシュを作成するとUV位置に網目パターンを投影したメッシュができる。

チュートリアル動画の方だとHairGenを使った毛の表現なども追加していてより見栄えが良くなっているので是非そちらも見てみてください。

補足:ニット以外の投影
UVへの投影はニット以外でも活用できるので覚えておくと便利。
(端の補完などはそれぞれで考える必要はある)


Entagmaは昔のチュートリアルも素晴らしいものにあふれているので本当にいつでもお勧めです。
昔理解できなかったものを見直して学ぶことが非常に多いです。
チュートリアルで行っている部分はこの記事の内容で終わりですが(毛を生やすなど、レンダリング向けの見た目の補完には触れていないです)、チュートリアルに無い部分で細かな調整をしたのでそちらは次回の②にまとめます。

fish_ball
プロシージャル魚類