在houdini vex中有很多函数,非常的方便。但是如果想在python中使用一些个人喜好的功能就需要我们先来定义这个函数了,这篇文章主要讲的就是如何在houdini中使用python功能自定义一个小函数的方法。
首先我们先做一个简单的函数, 在houdini中创建一个python节点,里面输入:
def greet(name):
return f"hello, {name}! 欢迎来到数字折叠!"
message = greet("小明")
print(message)
可以在Python Shell面板查看输出的结果为
hello, 小明! 欢迎来到数字折叠!
这就是一个简单的输入输出函数,怎么样,是不是很简单?定义python函数首先是需要输入def,然后定义函数名以及里面需要输入多少项。然后再里面设置函数的逻辑就好了。下面我们增加一些难度,在函数里设置两个输入项。
def find_max(a, b):
return a if a > b else b
num = find_max(53,10)
print(num);
打印出的结果为
53
这是一个寻找输入项最大值的函数,永远输出两个值中最大的一项,你也可以根据这个逻辑去设置输出最小值等其他的结果。
下面我们就根据python的函数创建方法,制作一个可以去修改模型上某个点位置的函数吧。
首先创建一个line节点。设置多一些点数量,然后连个python节点,在python节点里输入:
def set_point_position(node,point_num,position):
geo = node.geometry()
if point_num < 0 or point_num >= len(geo.points()):
raise ValueError(f"点号{point_num}超出范围!")
point = geo.iterPoints()[point_num] # 获取指定点
point.setPosition(hou.Vector3(position)) # 设置新位置
node = hou.pwd()
set_point_position(node, 5, (2,1,2))
这个函数的意思就是根据输入的节点,点号,和位置数据,把该节点上的指定点号的位置属性匹配到我们输入的位置数据。在这个函数应用中我们设置了5号点的位置为{2,1,2},在视图中我们也可以看到5号点发生了明显的位移。
如果我们在第二项输入的是一个超出当前点序号最大值的点,python节点就会报错,并且会返回我们设置的提示信息。
python作为一个在数据学最常用的语言,能够为我们的houdini项目制作提供很大的帮助,对于刚接触程序化建模的同学,数字折叠会一直提供相关入门文章,欢迎关注我们的公众号“数字折叠”。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容