统计
  • 建站日期:2021-03-10
  • 文章总数:32 篇
  • 评论总数:7 条
  • 分类总数:9 个
  • 最后更新:7月9日
文章 Houdini

Houdini Python 小工具(持续更新...)

Luo7758
首页 Houdini 正文

1. 提取abc面组(maya 导出面集)

  1. nodel = list(hou.selectedNodes())
  2. for node in nodel:
  3. geo = node.geometry()
  4. a = geo.primGroups()
  5. nodePos = node.position()
  6. x=-3
  7. for group in a:
  8. name=group.name()
  9. x+=3
  10. next_position = [ nodePos[0]+x,nodePos[1]-2]
  11. blastNode = node.createOutputNode('blast')
  12. blastNode.setPosition(next_position)
  13. blastNode.parm('group').set(name)
  14. blastNode.parm('negate').set(1)

2.fetch abc相机


  1. selectNodes = hou.selectedNodes()
  2. allNodes = []
  3. allNodeName = []
  4. for node in selectNodes:
  5. type = node.type()
  6. parent = node.parent()
  7. for child in parent.children():
  8. allNodes.append(child.name())
  9. #print(child)
  10. print(allNodes)
  11. obj = hou.node("/obj/")
  12. if 'transfer' not in allNodes:
  13. Nullnode = obj.createNode('null', 'transfer')
  14. selectNodes[0].setInput(0,Nullnode,0)
  15. #Nullnode.setName('transfer')
  16. for abc in selectNodes:
  17. abcallnode = abc.allSubChildren()
  18. posx =abc.position()[0]
  19. posy = abc.position()[1]
  20. abc.moveToGoodPosition()
  21. for node in abcallnode:
  22. cameraname = node.type().name()
  23. if cameraname == "cam":
  24. node.setDisplayFlag(0)
  25. camera_path = node.path()
  26. cameraAspectPath = node.parm('aspect').path()
  27. cameraFocalPath = node.parm('focal').path()
  28. cameraAperture = node.parm('aperture').path()
  29. if 'fetch1' in allNodes:
  30. hou.node('/obj/fetch1').destroy()
  31. fetchNode = obj.createNode('fetch')
  32. fetchNode.setDisplayFlag(0)
  33. fetchNode.setPosition([posx-3,posy+1])
  34. fetchNode.parm('fetchobjpath').set(camera_path)
  35. fetchNode.parm('useinputoffetched').set(1)
  36. if 'renderCam' in allNodes:
  37. hou.node('/obj/renderCam').destroy()
  38. cameraNode = fetchNode.createOutputNode('cam')
  39. cameraNode.setName('renderCam')
  40. cameraNode.parm('near').set('0.0001')
  41. cameraNode.setParmExpressions({"aspect":'ch("%s")'% cameraAspectPath})
  42. cameraNode.setParmExpressions({"focal":'ch("%s")'% cameraFocalPath})
  43. cameraNode.setParmExpressions({"aperture":'ch("%s")'% cameraAperture})

3. 重置节点参数

  1. import hou
  2. selectnodes = hou.selectedNodes()
  3. for node in selectnodes:
  4. for c in node.parms():
  5. a=c.name()
  6. node.parm(a).deleteAllKeyframes()
  7. node.parm(a).revertToDefaults()

4.选择要渲染的null节点

  1. sel = hou.selectedNodes()
  2. if len(sel)==1:
  3. curPath = sel[0].parent()
  4. objPath = sel[0].path()
  5. namePath = sel[0].name()
  6. pos = sel[0].position()
  7. path = curPath
  8. obj = hou.node("/obj")
  9. geoNode = obj.createNode("geo",namePath)
  10. geoNode.setColor(hou.Color(0.3,0.5,0.1))
  11. geoNode.parm("geo_velocityblur").set(1)
  12. nullNode = geoNode.createNode("null","Display")
  13. mkMergeNode = geoNode.createNode("object_merge")
  14. mkMergeNode.setPosition(pos)
  15. mkMergeNode.setName(sel[0].name()+"_merge")
  16. mkMergeNode.setColor(hou.Color(1,0.5,0.1))
  17. mkMergeNode.parm("xformtype").set(1)
  18. mkMergeNode.parm("objpath1").set(objPath)
  19. nullNode.setDisplayFlag(1)
  20. mkMergeNode.setRenderFlag(1)

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
这篇文章最后更新于2022-5-10,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
houdini 配置vscode 编写python 自动补全
« 上一篇
宝塔Linux面板开启【面板SSL】后无法访问
下一篇 »

发表评论

HI ! 请登录
注册会员,享受下载全站资源特权。
暂不提供社交账号登录

今日事今日毕

今日已经过去 21 小时
88%
这周已经过去 5
71%
本月已经过去 16
51%
今年已经过去 5 个月
41%

标签

热门文章

2
Houdini vellum 学习 - 01
4
Houdini vellum 学习 - 02
5
carbon学习之路(一)