ほとんどの場合、参照ファイルの内容は名前空間の一部として入ります(名前の前にコロンとコロンで識別されます)。例: 'reference:pCube1`。そのファイルを参照すると、セットを作成するのではなく名前空間内を検索できるようになりますが、あなたやあなたのユーザーが参照ダイアログでオプションを設定した方法によっては、事前に名前空間を知ることができません。
あなたは、名前空間を持っている場合
、それは簡単です:
rig_namespace = "rig" # or whatever you call it
control_grp = "control_grp") # name of the object you want
cmds.select(rig_namespace + ":" + control_grp)
あなたは詐欺を保存することができます検索するどのような名前空間がわからない場合テントをPythonにロードする前にシーンのテントset()
を作成し、参照が入った後に新しいset()
をコンテンツから外します。difference()
ファンクションを使用すると、ポストロードセットからプリロードセットを減算することができます。参照ファイルに付属しているすべてのものcmds.select
を使用して、探しているアイテムをファイルから取得できます。
取得インポートされたファイルの内容
import maya.cmds as cmds
before = set(cmds.ls(type='transform'))
cmds.file(r"path/to/file.ma", reference=True)
after = set(cmds.ls(type='transform'))
imported = after - before
print imported
インポートされたファイルのうち制御リグを取得
controls = set(cmds.ls("*control_grp*", type = transform)) # wildcards in
case maya has added numbers or prefixes
imported_controls = controls & imported # this gets only controls just added
cmds.select(*imported_controls) # you need the asterisk to unpack the set