我想知道是否有一种方法可以在每次创建新节点时获取任何新节点的名称。我想编译一个由我的脚本创建的所有节点的列表,以便可以根据需要立即删除它们。
*编辑-更好的解决方案是,在脚本执行完后,我可以获取场景中所有新节点的名称。这样,如果我的脚本在执行时重命名了新节点,则将存储正确的名称。
您可以使用scriptJob
并监听DagObjectCreated
事件:http : //help.autodesk.com/cloudhelp/2018/ENU/Maya-Tech-Docs/CommandsPython/scriptJob.html
但是,除非您的脚本调用了对您的输出几乎没有控制的外部依赖项,否则我认为只记录脚本正在执行的操作会更好。并且,如果有必要,请JSON
在会话或模块之间使用与之相似或相似的数据。
编辑:根据注释,要检测创建或修改的非dag对象,使用cmds.ls()
以下网址列出场景内容可能会更有用:http : //help.autodesk.com/cloudhelp/2018/ENU/Maya-Tech-Docs/CommandsPython/ ls.html
例如:
import maya.cmds as cmds
before = cmds.ls()
cmds.polySphere()
cmds.polyCube()
after = cmds.ls()
diff = set(before).symmetric_difference(set(after))
print(diff)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句