Maya

【Maya:Python】UVセットをコピー

shamimatsu

maya2022のpython3で動作確認
シャドウマップ用にUVセットを用意しなければならない機会は多いと思います。
UVエディタで毎回map1からコピーが面倒だったため作成しました。

三味松
三味松
ゲームエンジンのUV自動展開は便利ですがどうしてもきれいにベイクできない時は手動で展開していました。

コード

メッシュを選択した状態で実行してください。
一つ目のUVセット名が map1
二つ目のUVセット名が uvSet
であることが前提となります。

  • UVセットが1つ(map1のみ)の場合はuvSetを作成します
  • UVセットが2つ(map1とuvSet)の場合はmap1をuvSetにコピーします
  • UVセットが3つ以上あった場合は警告が出て処理しません
# -*- coding: utf-8 -*-
import maya.cmds as cmds

def main():
    sl_point = cmds.ls(sl=True)
    uvSets = cmds.polyUVSet(sl_point[0], q=True, allUVSets=True)
    # 要素数3以上なら警告
    if len(uvSets) >= 3:
        cmds.warning( "uvSetが3つ以上あります" )
    # 要素数2以上ならコピー
    if len(uvSets) >= 2:
        cmds.polyCopyUV(sl_point[0], uvi='map1', uvs='uvSet', ch=1)
        cmds.select(cl=1)
    # 要素数1なら作成
    elif len(uvSets) == 1:
        cmds.polyCopyUV(sl_point[0], uvi='map1', uvs='uvSet', ch=1, createNewMap=1)
        cmds.select(cl=1)

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