为了账号安全,请及时绑定邮箱和手机立即绑定

在Maya中查询一个AOV是否存在

在Maya中查询一个AOV是否存在

慕侠2389804 2022-12-14 21:06:20
我正在尝试编写一个脚本,使使用 LPE(光路径表达式)创建光 AOV 变得更加容易。但我就是找不到一种方法来查询以前创建的 AOV 是否存在并跳过它们。我正在按照从 Arvid Schneider 找到的教程进行操作,因此一些步骤来自他的视频。这是我到目前为止所拥有的:custAovLst = []  for lightSel in range(len(LightList)):    lgt_name = cmds.listRelatives(LightList, shapes = 1)    aov ='setAttr -type "string" {}.aiAov {};'.format(lgt_name[lightSel], 'lgt_' + lgt_name[lightSel].replace("Shape", ""))    mel.eval(aov)for light in LightList:    aovName = cmds.getAttr(light + '.aiAov')    custAovLst.append(aovName) def aovCreate():    for aovPass in custAovLst:        if cmds.attributeQuery(aovPass , node = ".aiAov", ex = True):            pass        else:            lightAov = aovs.AOVInterface().addAOV(aovPass, aovType='rgba')                   aiAov = pmc.PyNode(lightAov.node)            aiAov.lightPathExpression.set("C.<L.'" + aovPass + "'>.*")aovCreate()非常欢迎任何有关如何实现此目标或更好的方法继续点击的帮助或建议!
查看完整描述

1 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

我最终使用了一个带有referenceQuery命令的列表。


aovList = cmds.ls(type = "aiAOV")

deleteNode = [node for node in aovList if 'lgt' in str(node) if not 

             cmds.referenceQuery(node, inr = 1)]

cmds.delete(deleteNode)


查看完整回答
反对 回复 2022-12-14
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信