Move And Sew UVSをもっと賢くできないものか




UVのシェルを縫い合わせて、つなぎ合わせたいことって結構ありますよね!

Mayaには「Move And Sew UVS」というものがあり、離れたシェルを移動して縫い合わせてくれます。

ただこの便利なのは、UVの大きさが同じ時だけです。大きさの違うUVに「Move And Sew UVS」をすると、ただ縫い合わせただけになってしまいます。。。(´・ω・`)

そこで、もう少し望んだ「Move And Sew UVS」にするべく、以前紹介した「
UVの傾きを計算して水平・垂直にする!! part1」「UVの傾きを計算して水平・垂直にする!! part2」を応用して考えてみました!(`・ω・´)ゞ

Maya2017 update3以降

Maya2017 update3以降では、「Stitch Together」で同じようなことができます!

「Stitch Together」は、UV Editorから以下の2通りから使うことができます!(`・ω・´)ゞ

リンゴ酸さん(@umai_ringosan)、ご指摘ありがとうございます!!

UVの傾きを合わせる

今回の様に、エッジを選択して縫い合わせるっということは、2つのエッジをベクトルとして考えることができます!

もう少し見やすくすると、、、

このベクトルAと、ベクトルBの角度を求めるには、公式をまとめて一行にすると以下のようになります。実際にはMVectorとか使うと計算式を書かなくていいので楽だと思います(`・ω・´)ゞ

角度 = (AとBの内積) / (Aの長さ * Bの長さ) * 180 / 円周率

大きさを合わせる

2つのUVシェルの大きさを合わせるのにも、2つのエッジをベクトルを元に比率を求める事でできます。

比率を求めるには、以下のような式になります。ベクトルの長さを求めるには、MVectorとか使うと計算式を書かなくていいので楽です(*´ω`*)

比率 = ベクトルAの長さ / ベクトルBの長さ

この比率を使ってUVシェルにスケールをかければ、大きさがバッチリ合います(*´ω`*)b

位置合わせについては、ベクトルAとベクトルBの始点の差分を求めて移動すればOKなので省かせていただきます。

実際にツールを作ってみると、、、

上記の傾き、比率を計算して、オリジナルの「Move And Sew UVS」を作ってみました!

これなら、かなり直感的に縫い合わせることができるかと思います!

整備ができたらAmaterasuにも追加したいと思います(*´ω`*)b







Maya x Pythonの技術書
たっきゅんのガチンコツール開発部 Maya Python 101
(CG Pro Insights)

もっとMayaを便利に使いませんか!?実用性のあるツールを例にPythonが学べるように、がんばって執筆させていただきました!是非、この機会によろしくお願いいたします!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です