February 19, 2023

Houdini Python(一)

Houdini Python(一)

还在为重复操作而流失的时间而苦恼么?来吧,使用python进行批处理。
我写这些的目的呢很简单,逐步复习之前获得的技能点,顺便水一水,嘿嘿。
需求导向学习,只有知道了要什么,然后带着需求去学习,才是最快的。

我接触Hpython(就是houdini中的python)是因为项目中的操作很多过于繁琐,而且很多时候想对文件进行规范化是一件很重要,但是又十分苦恼的事情。那时候,我看了很多大佬的分享,发现了,哦,我们可以使用hpython 进行一些处理。比如:快速搭建初始场景,将abc,摄像机之类快速加入houdini文件,对一些目的性的节点进行自动区分,还有hda的控制之类都是由python操作的。

虽然工具架很多还是由houdini脚本语言进行写的,但python同样也可以写。

关于python的基础语法,推荐大家去看一下廖雪峰大神的免费python博客,虽然那个是3.X的python,而houdini 默认的是2.7,但这不妨碍学习。
Python教程​www.liaoxuefeng.com
大概看到正则表达式,就可以愉快的使用了,毕竟我们不是程序员,只是为了让自己的工作更愉快,嘿嘿。

或许你就会有一个疑惑python和Hpython 有啥区别呢?

Hpython 就是 python 在houdini里的库 “hou”

关于Hpython 的最快捷学习方法 就是 看官方帮助。
http://www.sidefx.com/docs/houdini/hom/index.html​www.sidefx.com
为了更加方便,请在对应版本的houdini文档的环境变量中添加以下:

1
HOUDINI_EXTERNAL_HELP_BROWSER = 1

当你在houdini环境下按F1时,用默认浏览器打开houdini的帮助,这样就能很快捷的进行查找你想要的,还可以偷懒使用谷歌翻译,嘿嘿嘿。

实践是检验真理的唯一标准。
Windows-Python Shell 这个调试框将是最常用的面板,可以快速调试,支持自动补足。

从上图可知houdini使用的是2.7.15版本的python 引入了H18.0.348的hou模块。还有一些简单的提示信息
所以先来个 hello world吧

1
2
3
geoNode =hou.node("/obj").createNode("geo","hello_world")
fontNode = geoNode.createNode("font")
fontNode.parm("text").set("Hello World")

然后就获得了下图效果。

关于本文

本文作者 Master Gong Sheng, 许可由 CC BY-NC 4.0.