前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自定义HScript Expression Functions

自定义HScript Expression Functions

作者头像
企鹅号小编
发布2018-02-26 14:49:14
6900
发布2018-02-26 14:49:14
举报
文章被收录于专栏:编程编程

当我需要使用Expression Functions来写表达式的时候,比如stamp函数,我试图想通过一种通用的理念站在编程的角度来表述如何使用它,而不是依靠惯性记忆来使用它。阅读设定它们的源代码应该是一种万变不离其宗的理念,但是很遗憾,HScript的命令以及表达式函数都是通过C++编译成底层的二进制文件存放在Houdini安装目录下,查看源代码有点不切实际,现在唯一寄希望于帮助文档或者HScript命令exhelp来获取表达式的说明与案例了。

有人可能觉得笔者在钻牛角尖,其实不然,笔者理解的牛角尖是当我不理解一件事件的时候,我会去从根本上去学习它的规则是怎么玩的,而不会纠结它的规则为什么这样制定,钻牛角尖是一件浪费时间才能有所收获的事情(除非你有时间)。比如我们一年级就知道的加法口诀和乘法口诀,我们只要知道怎么把这些口诀运用到实际生活中就行,真心没必要去纠结1+1为什么等于2,一切都是遵循一套规则,这是很多人前赴后继得来的规律与经验,有人就喜欢打破这种规则形成另一种规则,比如制定计算机二进制数,1+1就等于10,而我们没必要去破坏这种规则,如果你是想开发一个跟Houdini一样的软件可以去思考思考,如果只是使用Houdini就理解到它的规则就行了。

虽然表达式函数的设定就像一个只有说明书的黑盒子一样,但如果有一点点编程基础,知道函数是如何定义的,传参与返回值这些基础知识的话,或许也是一条通用的理念,我们只需要知道这个黑盒子需要什么类型的参数才能正确运作,以及黑盒子返回的值我可以用在什么地方就足够,知道了这些,陌生的表达式函数稍加研究应该就可以很好的用起来。

为了直观地描述这一点,我们自己来定义一些表达式函数,即自己设定一些源代码,这个自定义的黑盒子对于我们来说已经不是秘密,演示表达式函数运转的原理足够了。

按图示选择菜单Edit>Aliases and Variables,点击Expressions选项,输入一个求矢量元素最小值的函数,Apply Changes就会将这个表达式函数存储到当前的hip文件中,在参数面板按规则调用就没有问题。

我们可以通过几个HScript命令来编辑和删除我们的自定义的表达式函数

excat 获取表达式函数源代码

exedit 打开文本编辑器编写表达式函数

exhelp 查看表达式函数帮助

exls 查看所有当前自定义的表达式函数

exread 从文件中加载表达式函数

exrm 删除自定义表达式函数

这里的自定义表达式函数有个很大的缺点,不能写完在所有Houdini环境中使用,换个hip文件就不起作用,官方在很多表达式函数的使用上都使用了Python语言来替代,所以不建议自己来写HScript表达式函数,写Python就足够用,比如stamp(“../copy1”, “sides”, 5)可以用Python语言写法node(“../copy1”).stampValue(“sides”, 5)来替代,扩展全局的Python表达式也相对简单一些。

如果非要像官方那样扩展写一些表达式函数的话,需要用到HDK来扩展,语法和案例开发文档上都有明确的规定。

本文来自企鹅号 - CGRnDStudio媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - CGRnDStudio媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档