Modo 用の自動UV展開&パッキングプラグイン「Modo xatlas Kit」が公開されました。
ライトマップのベイク処理やテクスチャ ペイントに適した独自のテクスチャ座標を生成するライブラリ「xatlas」を使用しているようです。
https://github.com/Hazelight/modo-xatlas-kit
https://github.com/Hazelight/modo-xatlas-kit/releases/tag/v1.0.2
Releases から modo-xatlas-kit-v1.0.2.lpk をダウンロードしてインストールすると、「xatlas」コマンドでUV展開を実行できます。
デフォルトの設定で実行すると伸びた面が生成されますが、パッキング効率がよさそうです。
Modo xatlasキット
このキットにはプラグインコマンドxatlasが含まれています。
ほとんどの引数は自明でしょう。私が唯一誤解を招きやすいと思ったのはRotate Charts to Axisで、これは実際には回転させませんが、より最適なパッキングソリューションになるのであれば、チャートを反転させます。
用語解説
- Chart : 連結されたポリゴンのグループ
- LSCM : Least Squares Conformal Maps (最小二乗法による等角マップ)
Pack Options
Max Chart Size
チャートをこれより大きくしません。0は無制限を意味する。
Max Boundary Length
この値より長い境界線を持つようにチャートを成長させない。0は制限なしを意味する。
Normal Deviation Weight
フェースと平均チャート法線との角度。
Roundness Weight
丸みウエイト
Straightness Weight
真直度ウエイト
Normal Seam Weight
1000以上の場合、通常のシームが完全に尊重される。
Texture Seam Weight
テクスチャーシームウェイト
Max Cost
すべてのメトリクスの合計 * ウェイト > maxcost の場合、チャートを大きくしない。値を下げると、チャートが増えます。
Max Iteration
チャートの成長とシード・フェーズの繰り返し回数。値が大きいほど、より良いチャートになります。
Use Input Mesh UVs
既存のUVデータをチャートに使用します。
Fix Winding
一貫したテクスチャ座標の巻きを強制します。
Pack Options
Max Chart Size
チャートをこれより大きくしません。0は無制限を意味します。
Padding
グラフをパディングするピクセル数。
Texels Per Unit
例えば texelsPerUnit が 32 の 1x1 の四角形はアトラス内で約 32x32 のテクセルになります。
0 の場合、指定された解像度にほぼ一致するように推定値が計算されます。
解像度も0の場合、推定値は1024x1024のアトラスにほぼ一致します。
Resolution
0の場合、texelsPerUnitが最終的な解像度を決定する単一のアトラスを生成します。
0でなくtexelsPerUnitも0でない場合、正確な解像度で1つ以上のアトラスを生成します。
0でなくtexelsPerUnitが0の場合、texelsPerUnitは解像度にほぼ一致するように推定されます。
Bilinear
バイリニアフィルタリングによってサンプリングされるテクセルのために、チャートの周りにスペースを残す。
Block Align
チャートを4x4ブロックに揃えます。考慮すべきチャートの位置が少なくなるため、パッキング速度も向上します。
Brute Force
より遅いが、最良の結果が得られます。OFF の場合はランダムなチャート配置を使用します。
Rotate Charts to Axis
チャートをその凸包の軸に回転させます。
Rotate Charts
チャートを回転してパッキングを改善します。
ライブラリのページ見るとゲーム用途のように見えますが、Brute force packingのパッキング効率がよさそうで面白いです。