MAYAでモデリングしている時に、同じ形状のオブジェクトを複製する時ってありますよね。
特に人工物などのモデリングをする際には大量に複製をする事があるかと思います。
複製元モデルのUVをあらかじめ展開してから複製すれば同じUVのまま複製が完了しますが、
UV展開する前に複製してしまった場合は元のモデルのUVを展開して「Transfer Attributes」などでUV情報を転送する必要があります。
しかし大量に複製した場合はひとつひとつ「UVの転送」を行わないといけないので非常に手間がかかります。
そこで大量に複製したオブジェクトに一気にUVを転送出来ないかな〜と思っていたら、とても便利なスクリプトを公開してくれている方がいたので紹介させていただきます。
スクリプトの実行の仕方も合わせて紹介するので、スクリプトの使い方が分からない方も参考にしてみてください。
【MAYA】複数のオブジェクトにUVを転送するスクリプト
今回紹介するのはコチラのページで紹介されているPythonのスクリプトです。
数年前に公開されていたものですが、僕が使っているMAYA2020でも問題無く使えました。
▼「Transfer UVs from one object to multiple objects MAYA」
Pythonでスクリプトを実行する手順
それでは順を追って実際の使い方を解説していきます。
モデルを複製する
まずは適当なオブジェクトを用意します。
UV展開はまだしていない状態です。
簡単な流れ
- オブジェクトを複製
- 元のオブジェクトのUVを展開
- 複製したオブジェクトにUVを転送
この様に大量に複製しておきます。
手作業でひとつひとつ転送するのがめんどくさくて嫌になるくらい増やしておきます。
モデルをUV展開する
元のオブジェクトのUVを展開します。
スクリプトエディターにスクリプトを貼り付け
スクリプトを公開してくれているページから上記のコードをコピーします。
Script Editorを開いてスクリプトを実行します。
画面右下のアイコンをクリックするとスクリプトエディターが開きます。
メニューからScript Editorを開くこともできます。
今回使用するスクリプトはPythonで作成されているので、タブを「Python」に切り替えておきます。
エディターにスクリプトを貼り付けておきます。
UVを転送するオブジェクトを選択
次にUVを転送するオブジェクトを選択します。
元のオブジェクト(UV展開済みのもの)を選択してから、UVを転送したいオブジェクトを全て追加選択します。
UV展開済のオブジェクトを選択▶︎Shift+転送したいオブジェクトのみドラッグ選択するのがポイントです。
スクリプトを実行
選択が完了したらスクリプトエディターのスクリプト実行ボタンをクリックします。
これでスクリプトが実行されます。
画面下のコマンドラインを「Python」に切り替えてスクリプトを入力▶︎Enterでも実行できます。
全てのオブジェクトにUVが転送される
スクリプトが実行されて、追加で選択した全てのオブジェクトに転送元のオブジェクトのUV情報が転送されます。
全て同じUVになっているのがわかります。
サクッと大量のオブジェクトにUVを転送できるので非常に便利ですね。
オブジェクトの複製を頻繁に行う方は使ってみてはいかがでしょうか。
オブジェクトの形状が違うと転送できない
こちらのスクリプトを使う場合でも「Transfer Attributes」を使う場合でも同じですが、オブジェクトの形状(トポロジー)が違っていると転送が上手くいきません。
綺麗に転送出来るように、オブジェクトを複製した後にモデリングをしたりトポロジーを変えちゃったりしないように注意しましょう。