本篇文字我讲四个案例来展示Houdini扩展开发的一种新思路,可依据公司流程扩展一个增强版Houdini来使用。
之前写Houdini扩展开发的文字已经很多,可以后台搜索Houdini相关文字,这篇文字为了演示一种通用扩展功能的理论依据,实际之前也写过相关文字,但没有理论依据,只知其然不知其所以然,有了理论依据,就可以举一反三,文字试图在引导大家如何增强自己的Houdini一些功能。
我们先来看四个案例,左侧图片是Houdini原始的配置,右侧图片是我测试的扩展配置。
下面我们来讲讲如何来配置,为什么可以这样来配置以及采用的通用方案是什么?
首先我们创建一个mantra节点,打开齿轮菜单>Edit Parameter Interface...
找到Output Picture参数,选择右侧的Menu
可以看到此参数使用的是Menu Scripts,其中写了一行代码
echo `pythonexprs("__import__('toolutils').parseDialogScriptMenu('FBrender')")`
其实调用的是toolutils模块中的parseDialogScriptMenu方法读取的FBrender配置文件
我们可以打开一个Python Shell来验证此事。
实际toolutils.py和FBrender配置文件都在Houdini安装包中
C:\Program Files\Side Effects Software\Houdini 18.0.460\houdini\python2.7libs\toolutils.pyC:\Program Files\Side Effects Software\Houdini 18.0.460\houdini\FBrender
可以查看toolutils.py源代码,第1114行有所描述
实际咱们直接修改FBrender文件就可以做到扩展菜单的作用,但这里本着不修改任何安装文件的前提下,我们需要思考使用HOUDINI_PATH的方式来扩展,在D盘新建一个houdini文件夹(此路径仅测试,你可以放在任何位置,包括服务器),然后在我的文档\houdini18.0\houdini.env文件中添加一行环境变量,将D:\houdini添加到HOUDINI_PATH中。
然后将文件C:\Program Files\Side Effects Software\Houdini 18.0.460\houdini\FBrender
拷贝到D:\houdini文件夹中并做需求修改,比如添加一行。
图
此时重启我们的胡迪尼就可以发现修改的变化
Houdini搜索一些配置文件有自己的路径优先级,所以它会优先获取到D:\houdini\FBrender
我们再创建一个相机节点看看,同样齿轮菜单找到对应参数
可以看到也是使用的Menu Script
echo `pythonexprs("__import__('toolutils').parseDialogScriptMenu('FBres')")`
聪明的你肯定知道将文件C:\Program Files\Side Effects Software\Houdini 18.0.460\houdini\FBres
拷贝到D:\houdini文件夹中并做相应的修改
重新开Houdini看看,你会得到你的扩展配置。
然后我们在geo节点中创建一个Python节点,依然打开齿轮菜单找到对应参数
可以看到也是使用的Menu Script,但此时代码有所不同
import pythonscriptmenureturn pythonscriptmenu.buildSnippetMenu('Sop/pythonscript/python')
我们找到源代码C:\Program Files\Side Effects Software\Houdini 18.0.460\houdini\python2.7libs\pythonscriptmenu.py打开
代码的第16行实际调用的是PythonScripts.txt文件,我们将文件C:\Program Files\Side Effects Software\Houdini 18.0.460\houdini\PythonScripts.txt
拷贝到D:\houdini文件夹中找到Sop/pythonscript/python并做相应的修改
重新开Houdini看看,你会得到你的扩展配置。
我们再来看Wrangle,创建一个Attribute Wrangle节点,打开齿轮菜单找到对应参数
可以看到使用的也是Menu Script,代码如下
import vexpressionmenureturn vexpressionmenu.buildSnippetMenu('attribwrangle/snippet')
我们找到源代码C:\Program Files\Side Effects Software\Houdini 18.0.460\houdini\python2.7libs\vexpressionmenu.py打开
代码的第528行实际调用的是VEXpression.txt配置文件,我们将文件C:\Program Files\Side Effects Software\Houdini 18.0.460\houdini\VEXpression.txt
拷贝到D:\houdini文件夹中找到attribwrangle/snippet并做相应的修改
重新开Houdini看看,你会得到你的扩展配置。
所以扩展的通用方案就是通过查看菜单中Menu Script脚本找到具体的配置文件,然后通过HOUDINI_PATH来修改新的配置文件。胡迪尼整个在环境变量控制,API完善性,扩展开发的友好性都不是别的CG软件可以比拟的。
今日份文字到这里,