Houdini 中 获取多个物体作为一个输入 还能再分开使用 2

简介: 前段时间写过一篇 获取多个 HDA 在 unity 中获取多个物体,并分开使用的方法Houdini 中 获取多个物体作为一个输入 还能再分开使用 其思路主要是使用 objectMerge 节点的分组功能
houdini版本: 2020.5

前缘

Houdini 中 获取多个物体作为一个输入 还能再分开使用 在使用中啊遇到了一个问题,我只能使用其默认的multiparm Block(list) 里带的属性,自己在 HDA 的参数中重新添加并不会自动映射到 objectMerge 节点上
其实这也正常,毕竟 objectMerge 节点的 param 是固定的,但是我目前又需要给每个加入的物体添加对应的其它参数属性,于是乎,我摸索了一个全新的方式

思路

  1. 自己做一个节点,给他添加 multiparm Block(list) 属性,里面设置上我需要的属性,
  2. 将这个 multiparm Block(list) 暴露到 HDA 的属性面板即可
  3. 获取输入的 object

步骤

创建属性

  1. 创建列表参数
创建参数列表
  1. 创建物体输入参数或其他参数,注意这里,输入物体的类型我选择为了 OperatorPath,这种类型的属性可以选择物体
添加属性

OperatorPath 是可以选择物体路径的

暴露参数到 HDA 面板

暴露属性
属性成功关联

获取输入的物体及参数

分开获取物体我们肯定是要用 foreach 了,我们使用 num 类型的。
此时我们如果直接将 multiInput 节点链接到 foreach 上,然后输出,我们是看不到任何物体的,因为我们的这个 null 节点只是携带了几个参数,但其内部实质上并没有什么物体,所以要获取其每一条路径下的物体,我要想到的还是 ObjectMerge 节点, 因为他可以接受一个路径来获取物体

  1. 我习惯先创建一个 辅助节点,来获取我需要的参数,这里命名为 InputHelper , 它链接了当前的迭代数,根据当前迭代数获取到的 othernum 和 输入路径
辅助物体
  1. 我们 ObjectMerge 节点的输入路径连接到我们辅助节点的 输入路径上
链接计算出来的输入路径
  1. 拖动迭代数,查看我们的获取结果,我这里使用了merge 来合并结果


    show.gif

结束

这样我们就可以获取任意自己需要的物体和添加任意需要的物体了。
如果我们把 OperatorPath ,设置为 string 并给他添加一个 tag heuassetpath,那么在 unity 内的界面会更简洁,heuassetpath tag 的作用就是让路径属性显示为一个 objectfiled

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容