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 ""
上記の関数は機能し、イメージプレーンのシェイプ ノードの imageName 属性からファイル名のパスを返しますが、上部のカメラにイメージプレーンが設定されている場合、上記の関数は機能しません。その場合、# Error: line 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 #
各カメラの形状ノードを取得し、カメラにイメージプレーンが設定されていない場合は空の文字列を返すのを手伝ってください...