houdini导入相机处理代码

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吧~~!!!')

 

点赞

发表回复

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像