はじめに
最初、HoudiniでSeam Edgeを指定するUV展開はどうやるんだろうって思ってました。
その答えは UV Flattenでした。
というわけで、
ここでは、例としてTest Geometry: Pig Headを使って
色々なGroupをSeam edgeに結合して
以下の二つのノードだけを使って
- UV Flatten
- Seam edgeを指定してUV展開
- UV Layout
- UV Islandの配置を操作
UV展開する方法の解説をします。
UV
まず、最下流にあるUVのブロックから
UV Flatten
Seamsに境界エッジのEdge class のgroupを指定 (ここではedge_boundary)

UV Layout
必要に応じて調整
- Variable Scaling
- Primitive classに作ったアトリビュートのFloatの値によってIslandの大きさを調整
- Packing
- Fixedに変更したときにスライダーの値に応じて全体のスケールを調整
- Island Stacking
- オプションによって左右で同じ形のIslandのUVを重ねる
Seam edge
既存のGroupの利用
Pig Headには Primitive classに、いくつかgroupが作られているので
そのgroup毎に境界エッジを作成し、Seam edgeとして使います。
Name from group
全てのPrimitive class のgroupをnameアトリビュートに格納します
Group from Attribute Boundary,For-each Named Primitive
For-eachについて
各Name アトリビュート毎に個別に境界エッジを作成している様子が
foreach endのSingle Passを有効にしてスライダーを動かすと目で見て確認できます
この、それぞれの結果をMergeするので、edge_boundary group一つに各name毎の境界エッジが格納されます

Mirror
Pig headは左右対称ではないので、clipで左側を消してからmirrorします

clip
断面のEdge classが中心線になるので Clipped Edgeをcenterとしておきます

mirror
Separate group
edge classのグループを作り Group combineで 既存のedege_boundaryに結合します

確認
繋ぎ変えて片側だけの状態で必要な展開ができているか確認します
様子をみながら適宜groupを追加します

groupの転写
mirrorのConsidate Seam
(対称平面上のポイントを結合します。反対側にミラーコピーされた新しいポイントのみが結合されます)
にチェックを入れた状態だと、ポイント結合された部分のedge groupも繋がってしまいます。

そこで
緑で囲ったmirror : Considtate Seam 有効
赤で囲ったmirror : Considtate Seam 無効
Group transfer でGroupの転写をします
Group Name Conflict: Overwrite

完成!
調整
比率を変えたいとき(対象を0.2(Value) 他を1(Defaul)
Attribute createでPrimitive classのGroup名を指定してアトリビュートを作って

UV layoutで Island Scale Attribute でアトリビュート名を指定すると部分的なスケールを掛けられます。










