def connectedImgPlanes(self,dagNode):
print "dagNode ",dagNode ,type(dagNode)
sourceConnections = cmds.listConnections(dagNode, source = True) or []
if len(sourceConnections) != 0:
lc = sourceConnections[0].split("->")[1]
atribVal=cmds.getAttr(lc+".imageName")
return atribVal
else:
return ""
上面的函数工作并从imageplane的shape节点的imageName属性返回文件名的路径,但如果顶级摄像头有imageplane设置,那么上面的函数不起作用,在这种情况下我得到错误说 #Error :第1行:IndexError:文件第1行:由于
而列出索引超出范围#newStr=str(sourceConnections[0]).split("->")[1]
然后我尝试了不同的方法来获取图像平面的形状节点并从中返回一个属性,
lc=""
try:
lc=cmds.listRelatives(cmds.listRelatives(dagNode)[0])[0]
except TypeError:
return ""
print lc
atribVal=cmds.getAttr(lc+".imageName")
return atribVal
这个也适用,直到我们添加顶级摄像头并且代码开始提供不同类型的错误,说多个对象匹配名称:imagePlane1#
请有人帮助我获取每个摄像机的形状节点,如果摄像机没有设置了图像平面,则返回空字符串...
答案 0 :(得分:0)
由于imagePlanes
(dependNode)不能附加任何shape
节点,因此我假设它是imageName
所需的imagePlane
attr。
以下函数(如果传递camera
)将返回附加到其中的imageName
个imagePlane
属性。如果传递transform
将查找与其camera
的任何连接,然后返回附加到找到的相机的任何imageName
的{{1}}属性。
imagePlanes