import hou
def createFetchNode(node, camlists):
plane = hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor)
parent = plane.pwd()
currentpos = plane.selectPosition()
for cam in camlists:
camname = cam.name()
fetchNode = parent.createNode('fetch')
camNode = parent.createNode('cam', camname)
fetchNode.setPosition(currentpos)<span id="more-300"></span>
fetchNode.parm('fetchobjpath').set(cam.path())
fetchNode.parm('useinputoffetched').set(1)
fetchNode.parm('fetchsubnet').set(1)
fetchNode.setDisplayFlag(False)
camNode.setPosition(fetchNode.position())
camNode.move([0, -1])
camNode.parm('tx').setExpression('origin("","../' + fetchNode.name() + '/","TX")')
camNode.parm('ty').setExpression('origin("","../' + fetchNode.name() + '/","TY")')
camNode.parm('tz').setExpression('origin("","../' + fetchNode.name() + '/","TZ")')
camNode.parm('rx').setExpression('origin("","../' + fetchNode.name() + '/","RX")')
camNode.parm('ry').setExpression('origin("","../' + fetchNode.name() + '/","RY")')
camNode.parm('rz').setExpression('origin("","../' + fetchNode.name() + '/","RZ")')
camNode.parm('resx').set(2048)
camNode.parm('resy').set(1152)
camNode.parm('focal').setExpression('ch("' + cam.path() + '/focal")')
camNode.parm('aperture').setExpression('ch("' + cam.path() + '/aperture")')
camNode.parm('far').set(1000000)
currentpos[0] += 2
def findcam(node):
camlists = []
if node.type().name() == 'cam':
camlists.append(node)
if len(node.children()):
for child in node.allSubChildren():
if child.type().name() == 'cam':
camlists.append(child)
return camlists
def main():
nodes = hou.selectedNodes()
allcam = []
if len(nodes):
for node in nodes:
allcam += findcam(node)
node = nodes[0]
createFetchNode(node, allcam)
else:
print('先选择一个导入的相机abc或者fbx吧~~!!!')