我应该如何在maya中将imagePlane的形状节点连接到相机

时间:2012-10-20 16:50:51

标签: python maya

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#

请有人帮助我获取每个摄像机的形状节点,如果摄像机没有设置了图像平面,则返回空字符串...

1 个答案:

答案 0 :(得分:0)

由于imagePlanes(dependNode)不能附加任何shape节点,因此我假设它是imageName所需的imagePlane attr。

以下函数(如果传递camera)将返回附加到其中的imageNameimagePlane属性。如果传递transform将查找与其camera的任何连接,然后返回附加到找到的相机的任何imageName的{​​{1}}属性。

imagePlanes