【Maya:Unity】LODを作る
shamimatsu
三味松ブログ
maya2022を使用
複数まとめて処理を行いたい時に、グループノードだけは除外したい時がありました。
選択階層化すべてを選択するコマンドはmayaにあったので、そこからグループノードだけ外せないか考えました。
コードはpython3のため過去バージョンのmayaでは動作しない可能性があります
選択 → 階層 で選択しているのノードの階層化をすべて選択できます。
1# -*- coding: utf-8 -*-
2import maya.cmds as cmds
3
4cmds.SelectHierarchy()
階層のあるグループノードを選択した状態で実行してください。
画像ではわかりづらいですがグループノードは選択から外れています
1# -*- coding: utf-8 -*-
2import maya.cmds as cmds
3import pymel.core as pm
4
5cmds.SelectHierarchy()
6sl_nodes = cmds.ls(sl=True, typ='transform')
7for sl_node in sl_nodes:
8 obj = pm.PyNode(sl_node)
9 shape = obj.getShape()
10 if shape == None:
11 print(sl_node)
12 cmds.select(sl_node, d=1)
グループノードはシェイプが無いのでNoneが返ってきます。
Noneだったら選択を外すことにより「グループノードだけ選択から除外する」ことができました。
==を!=に変えれば逆にグループノードだけ選択できます。
if shape != None:
[Maya] getShape で shape ノードを取得する