Maya

【Maya:Python】選択ノード名を入れ替える

shamimatsu

ノード名を手作業で入れ替える時、名前重複を避けるために一旦違う名前をつけてから戻すという工程が面倒だったためpythonでスクリプトを作成しました。
一見するとノードの順番が変わっているだけのように見えるかもしれませんがちゃんと名前が入れ替わっています。
maya2022のpython3で動作確認しました(2022/1/13)

コード

選択方法が間違っていた場合はすべて警告が出る処理も入れてみました。

1# -*- coding: utf-8 -*-
2import maya.cmds as cmds
3
4sl_nodes = cmds.ls(sl=True)
5
6#2つ選択以外は警告を出す
7if not cmds.ls(sl=True):
8    cmds.warning(u'なにも選択されていません')
9elif len(sl_nodes) == 1:
10    cmds.warning(u'1つしか選択されていません')   
11elif len(sl_nodes) > 2:
12    cmds.warning(u'2つまでしか選択できません')
13else:
14    sl_first = sl_nodes[0]
15    sl_second = sl_nodes[1]
16
17    #名前重複を避けるため一旦別の名前にリネーム
18    sl_first2 = sl_first + "_exchange"
19    sl_second2 = sl_second + "_exchange"
20    cmds.rename(sl_first, sl_first2)
21    cmds.rename(sl_second, sl_second2)
22
23    cmds.rename(sl_first2, sl_second)
24    cmds.rename(sl_second2, sl_first)
 
ABOUT ME
shamimatsu
shamimatsu
3DCGデザイナー
ながらくゲーム業界で2D、3DCGデザイナーとして働いてきましたが、新しい業界に挑戦中です。 ブログのデザインをリニューアル中のため、見づらい箇所もあるかもしれませんが少しづつ修正していきます。
記事URLをコピーしました