我正在嘗試編寫一個腳本,使使用 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)
添加回答
舉報
0/150
提交
取消