Maya

【Maya:Python】UVセットを一括で切り替え

shamimatsu

maya2022、2019を使用
maya2022でpython3になったためコードを修正しました。

追記

既存の機能にあるUVセットエディタで一括で切り替えられることがわかりました。処理も軽いのでこちらの方がおすすめですがコードも何かの応用に使えるかもしれないため残しています。

ライトマップのベイクなどでUVセットを2つ持つことがあると思いますが、UVエディタでメッシュ一つずつしかUVセットを切り替えられないのが非常に面倒だったため一括変更できるスクリプトをpythonで書きました。

UVセット名が map1, uvSet であることが前提となります。
オブジェクト選択状態にしてから実行してください。

map1に切り替える

python3

maya2022でpython3になったためコードを修正しました。
printをステータスバーに表示するための関数(pm.displayInfo)を追加しています。
参考サイト:Maya print in status bar

# -*- coding: utf-8 -*-
import maya.cmds as cmd
import pymel.core as pm

sl_nodes = cmds.ls(sl=True)

for sl_node in sl_nodes:
    cmds.polyUVSet(currentUVSet=True, uvSet='map1')
    pm.displayInfo('UVセット:map1 を選択')

python2.7

# -*- coding: utf-8 -*-
import maya.cmds as cmds

sl_nodes = cmds.ls(sl=True)

for sl_node in sl_nodes:
    cmds.polyUVSet(currentUVSet=True, uvSet='map1')
    print u'UVセット:map1 を選択',

uvSetに切り替える

上記の「map1に切り替える」のコードを一部を変更します。
コードをコピぺした後、uvSetの箇所を修正してください。
cmds.polyUVSet(currentUVSet=True, uvSet=‘map1’)

cmds.polyUVSet(currentUVSet=True, uvSet=‘uvSet’)

 

ABOUT ME
shamimatsu
shamimatsu
3DCGデザイナー
ながらくゲーム業界で2D、3DCGデザイナーとして働いてきましたが、新しい業界に挑戦中です。 ブログのデザインをリニューアル中のため、見づらい箇所もあるかもしれませんが少しづつ修正していきます。
記事URLをコピーしました