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