こちらの記事は下記を元に作成されました。
https://www.sidefx.com/tutorials/h16-game-shelf-tools-uv-stacker/
Game Dev Toolsのインストールはこちらをご参照ください。
https://support.borndigital.co.jp/hc/ja/articles/115001527973
UV Stacker はHoudini デジタルアセット(HDA)です。UVシェルが、ジオメトリまたはUV空間のいずれかを通して、類似したサーフェスエリアを共有しているのかを示し、同一またほぼ同一のものをスタックします。
ユーザは、求める結果を得るために2つのパラメータをコントロールすることができます。
UV STACKERはGitHubのsideeffects/GameDevelopmentToolsetにあるDeployブランチからダウンロードすることで使用が可能です。
機能
STACKING METHOD(スタック方法)
このツールは、どのシェルを積み重ねるかを決定する2つの方法を提供します:UV-AreaとGeometry-Area。 最も正確な結果が得られるためデフォルトのUV-Areaを使用することをお勧めします。 ただし、ユーザーがジオメトリの違いによってUV-Shellのスタックを区別したい場合は、Geometry-Areaオプションを使用する必要があります。
COMBINE BY THRESHOLD(閾値で統合)
場合によって、ユーザーはお互いに少しの違いしかないジオメトリを大量に持ちます。ゲームでは、できればUVを少し変更してオーバーラップさせ、パフォーマンスを節約するために同じテクスチャスペースを使用します。 "Combine Similar by Threshold" 機能を使用すると、それを行う事ができます。精度を落とすにはスライダーを使用します。このツールはどのシェルがスタックされるべきを示します。この値を非常に低い値に設定すると、類似しないシェルもスタックされることに注意してください。これは孤立したグループのプリミティブに対してのみこのツールを実行することで防ぐことが可能です。
SPLIT STACKED SHELLS
すべての類似したUVシェルを結合した後も、ユーザーはタイリングを除去するためのバリエーションを必要とする場合があります。 "Stacked Shells"を有効にするだけで、プロセスが開始されます。 ユーザーは、Splitting Threshold(分割閾値)、Number of Splits(分割数)、 Visualize Splits(分割の視覚化)の3つのパラメータを制御可能です。 Splitting Threshold(分割閾値)は、ツールが指定された「Number of Splits(分割数)」にスタックを分割するためのしきい値を制御します。Splitting Threshold(分割閾値)を5に、Number of Splits(分割数)を3に設定する必要があります。ツールは、5つ以上のシェルを持つスタックを3つに分割します。 Visualize Splits(分割の視覚化)トグルを有効にすると、何が起こるかの概要をすばやく知ることができます。
使ってみよう
ケース1:Geometry Areaでスタック
Boxを作成し、Copyで並べたあとUV UnwrapでUV展開します。全てのフェースが重ならないように配置されます。
UV Stackerを作成し接続します。
Stacking MethodをGeometry Areaに設定、Conbine Similar を有効、Similarity Thresholdを1.0に設定すると、ジオメトリの大きさが同じようなプリミティブのUVが重ねて配置されます。
ケース2:UVAreaでスタック
上記のデータでは、Sphere、Box、Torusが同じ位置に複数配置されており、その後、UV Unwrapで展開しています。
上記にUV Stackerを接続し、Stacking MethodをUV Areaにします。同じUV領域をもつシェルが重ねて配置されます。
ケース3:Split Stacked Shell
UV展開したブロックを並べると同じUVが繰り返し表示されタイルが目立ちます。
UV Layoutで並べると同じUVで異なるUVを使用し、テクスチャスペースがもったいない
UV Stackerを追加しSplitting ThersholdとNumber of Splitを設定し、重なった部分を表示するためにVisualize Splitを有効にする