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://youtu.be/WwsW3V4CMOw?si=LO2tdIuazSpQf8GH
UVへのメッシュ投影は覚えておくとプロシージャルモデリングの自由度がすごく広がるので一度視聴をオススメします。
前回の内容
前回はチュートリアルの内容を追ってメッシュをUV座標に投影するところまで進めた。
今回は動画には無い部分を追加でいくつかの調整を行う
UV座標へのメッシュ投影を利用したプロシージャルニット作成①
https://www.procedural.jp/articles/nsv5rh0_7v/
今回の記事の内容
本記事では以下について触れています
- アーティファクト修正
- 太さの微調整
- 糸ごとに色をそろえる
- スキンメッシュをコンバートして動かすための調整

糸の太さを場所によって調整する
Sweapノードで糸をpolyCurveから生成しているが、pscaleを設定することで場所ごとの太さが調整できる。

紐全体にバリエーションをつけたい場合はSweapで全体の紐を生成する際にScaleによるばらつきを持たせることもできる

伸びた糸(エラーカーブ)を削除
UVの形状や網目パターンのサイズによって削除したカーブがつながって細い線が生まれてしまう場所がある。これを直したい

ConvertLineを接続してPplyCurveをpointごとに分割し、MeasureでLengthを測定

group expressionでlengthが長すぎるものを削除するとこのエラーカーブを削除できる

糸方向に色を揃える
投影直後の状態は色ごとにpolyCurveがつながった状態になっている

なのでこの時点でAssembleなどでpackして元のテクスチャの色を転送すると糸ごとに共通の色が設定できる。


スキンメッシュをコンバートして動かす
スキンメッシュに対してプロシージャルニットを作成し、バインド情報をコピーすればスキンメッシュでも動作させることができる
入力メッシュをMixamoのXbotに差し替えてメッシュモデルにコンバートし、BoneCaputureをコピーする

bone deformで動かせるようになる


次はゲームリソース向けにコンバートを行っていきたいと思います。
ところで、スキンメッシュはともかく、背景用のモデルならこの外側の毛糸をポリゴンで持つ編み物モデルはNaniteを使えば最適化しなくても行けたりするのでしょうか。
とはいえリソースレベルの制御性はプロシージャルなパイプラインの非常に大きな魅力なのでなので、将来的に不要だなとなる可能性があるにしてもテクスチャベイクのフローは作るべきだろうと思います。

fish_ball
プロシージャル魚類