【MEL】UVの大きさを確認 正確な解像度にスケール


![]() | AriUVScaleChecker |
このスクリプトで、
・UVが大きいのか小さいのか数値で確認
・UVを理想の大きさにスケール
・他のUVの大きさに統一
ができます。
UV展開において、UVを大きくすれば解像度は高くなり、UVを小さくすれば解像度は低くなりますよね?
その解像度、つまりUVの大きさを値で確認でき、正確な大きさにスケールすることができるツールです。
適当なチェッカー模様の仮テクスチャのを貼って、それをみながらUVをスケールする作業が、もしかしたらほとんどいらなくなるかもしれません。
何cm何pixにしたいか決まっている場合 |
UVが自分の意図する大きさより大きいのか小さいのか数値で確認できます。
基本情報を入力 |
使用しているテクスチャサイズと、オブジェクト何cmに対して、テクスチャを何pixにしたいのかを入力します。

例えば…1024pixのテクスチャを使用していて、1cmあたり256pixにしたかったら・・・

例えば…2048pixのテクスチャを使用していて、5mあたり128pixにしたかったら・・・

こんな感じです。
cmやm等の単位に注意してください。シーンで設定されている単位が反映されます。
UVの大きさを数値で確認 |
エッジを選択することで機能するツールです。
とにかくエッジを選択してください。
エッジを選択すると、そのエッジの情報が表示されます。(複数選択もOKです。)
エッジの長さ、UVの長さ、等です。

先ほど基本情報を入力したので、
そのエッジに何ピクセルのテクスチャが割り当てられていることになるか見ることが出来ます。
○○mあたり何ピクセルになっているかも表示されるので、他の場所との解像度の比較に便利です。

エッジの長さが違うのにUVの長さが同じスフィアなどこんな感じで・・・
その下に、先ほど入力した目標解像度に対して現在のUVの長さがどれだけの%なのか表示されます。

この場合1cmあたり128pix入れたいのにこのエッジは45.88pixしかありません。
つまりUVの長さが35.8%しかないのです。
じゃあそのUVをスケールして100%にしたくないですか?
意図した解像度にUVをスケール |
一番下のボタンで100%にスケールできます。

UVスケール
「UVスケール」・・・選択されたエッジの属するUVシェルをスケールします。
スケールの中心の設定も「選択の中心」や「シェルの中心」等から選べます。
シェルをスケールする場合、選択しているエッジによってスケール値が変わるので注意してください。
先ほどのスフィアのように解像度が高いエッジを選択していた場合、
このエッジはすでに目標値の116%あるので、スケールを行うとUVは縮小されます。

オブジェクトスケール
追記
「オブジェクトスケール」「シェルスケールボタン」でUVを固定したまま、オブジェクト側のスケールを行うことができます。

詳細記事
他のUVの大きさに合わせる場合 |
100%以外のスケール値を入力できるようにしました。
次の操作で、別のUVのスケールにあわせることが出来ます。
基準にしたいUVのエッジを選択します。

この時あまりにも%の値が小さすぎる場合、目標解像度の値を上げ下げして調整してください。

Getボタンで現在の目標率を取得します。

大きさを変えたいUVのエッジを選択して、シェルスケールボタンで、

基準と同じ解像度になるようにUVがスケールされます。

つまりは、Getボタンで%を基準のものと同じにすることで、目標解像度が適当でも解像度を基準と同じにすることができるということです。


追記2015/09/27
特定の方向のみスケール
UまたはVのチェックにチェックを入れると、一定方向の軸のみスケールします。

注:単純に100%にするためのスケール値をU方向にスケールしているだけなので、U方向以外のエッジが選択されていると、結果が100%にはなりません。(V方向の長さが変わってないため、平均化すると100%ではなくなる理屈です。)
選択エッジが1本のときのみ、「選択方向」にチェックで、選択エッジの方向にスケールすることが出来ます。

複数エッジ選択されている場合は通常のUV方向に作用します。
境界エッジで2エッジになってしまう場合も駄目です。
補足
・右上のfileボタンはfileノードを選択してボタンを押せば、そのテクスチャのサイズ(x)を得られます。
・テクスチャは正方形想定のみ対応です。
・オブジェクトがスケールされている場合、worldの長さか、localの長さかに注意してください。「エッジ距離測定」の項目で変更できます。
・複数エッジを選択した場合、目標率は結果的に平均値になります。
・エッジを選択して長さが出るので、ちょっとした定規になります。
・MELの限界(?)があるのでエッジは最大1000本までの計算です。(エッジ番号が若いものが優先されます。)
更新
2019/03/17 1000超えのUVに対してもスケール実行可能に他
詳細
2018/07/01 オブジェクト側をスケールしてUV解像度を統一できるように
UVは動かさずオブジェクト側をスケールする機能を追加しました
詳細
2016/12/11 目標解像度を何cmにするか設定可能に
1cmに対してしかpix値を設定できませんでしたが、好きな長さを設定できるようにしました。
2015/07/01 100%以外のスケールに対応
100%以外を数値入力できるようにしました。上記「他のUVのスケールにあわせる」
2015/09/27 100%以外のスケールに対応
U方向V方向など特定の方向にのみスケールできるようにしました。上記「特定の方向のみスケール」
よかったらこちらからどうぞ。
Download
つぶやき
このMEL自体は結構前から作ってあって私自身よく使うのでもっと早く公開したかったのですが、インターフェースはめちゃくちゃ、UVの境界エッジを選択するとエッジをダブルカウント、シェルごとスケールの挙動があやしい等々、お見せするには恥ずかしい状態でした。
それに加え、テクスチャサイズの取得や、スケールの中心点を変更する機能など追加したので、もう考えてみたら跡形がなくなって、新しいツールが出来上がってしまった感じです。
そんな出来立て(?)ツールなので、ちょっとだけバグが心配ですが、何かありましたらすぐに修正しようと思いますので、コメントください。
CGWORLD(2015/9号)で北田栄二さんにこのMELを紹介いただきました!!!!!!!
感謝です!感激です!!!

ModelingCafe・北田栄二のオススメ! MayaによるUV作業お助けツール4選
tag : Maya, MEL, UV, AriUVScaleChecker,
スポンサーリンク
コメントの投稿
管理人のみ閲覧できます
ありがとうございます♪
【Mayaスクリプト】AriUVScaleCheckerの使い方 初歩【一分でできます】 | Create3D-3dCG制作作業日記
今まで目分量であわせていたので、本当に助かりました。
ありがとうございます!
Re: ありがとうございます♪
ツールお役にたてて光栄です。
すみません。日本語URLのせいかリンクがおかしくなっちゃってますね。
http://create3d.giren.net/w/3dいじり/【mayaスクリプト】ariuvscalecheckerの使い方 初歩【一分でで.html
こちらですね。
ご紹介とてもうれしいです。ありがとうございました。
No title
今、こちらのブログを全部読みかえしている所なんですよ♪
今までもいくつも使わせていただいています。
本当に助かってます。
ありがとうございました。
心からAriさんの今後のさらなる発展をお祈りしております。
ありがとうございました!
管理人のみ閲覧できます
管理人のみ閲覧できます
No title
このスクリプトを使用いただきたいのですが、
「エラー: line 1: プロシージャ "AriUVGridding" が見つかりません。」
と表示されてしまい、うまく読み込みができません、、
下記URLのような画面になります。
https://i.gyazo.com/9a6045bc67e40693ede75763729c463b.png
データはダウンロードページにありました
「AriUVScaleChecker20190317.zip」を解凍して、使用しています。
解凍したファイルの中に「AriUVGridding」がないため、
うまく読み込みできないのかと思っておりますが、
そのデータが見当たらず・・・
確認不足でしたら申し訳ありませんが、
解決方法をご教授いただけますと嬉しいです。
よろしくお願いいたします。
Re: No title
ご使用になられたいツールはこの記事にあるAriUVScaleCheckerでしょうか?
AriUVGriddingではなく、AriUVScaleCheckerと打ち込んでいただければ実行できると思います。
宜しくお願いいたします。
スクリプトの実行方
http://cgjishu.net/blog-entry-4.html
それでもエラーが起きる場合
http://cgjishu.net/blog-entry-237.html
AriUVGridding(UVを格子状にそろえる)
http://cgjishu.net/blog-entry-58.html
AriUVScaleChecker(UVの解像度をそろえる(この記事))
http://cgjishu.net/blog-entry-69.html