houdini-与unity交互

houdini-与unity交互.
测试环境: unity 2018.3.11f1 & houdini 17.0.352
测试工程: https://github.com/yangxuan0261/HoudiniLab


前篇


unity 安装 houdini 插件

安装 houdini 时勾选上 unity 插件, 则会在 D:\Houdini 17.0.352\engine\unity 路径下有个 HoudiniEngineUnity.unitypackage unity插件包, 直接拖到 unity 中即可


houdini 导出资源

教程: 04 - Engine Test

导出的资源 .hda 文件

测试: 一个 圆环 并暴露一个参数可以让 unity 控制其半径.

  1. 新建一个 圆环

  2. 创建 hda 文件, 改文件就是给 unity 用的.

    选中 圆环节点, 右键 -> create digital asset, 然后自定义文件名, 保存路径最好是默认的路径 ( 我换成其他路径会报找不到资源错误 ), 然后又会弹出一个窗口, 点击 destroy all spare parameters, 然后又弹出窗口, 可以增加 一些参数暴露给unity, 但是可以先不设置. 直接点击 accept 即可完成创建.

  3. 暴露一个 参数a 给 unity 动态控制.

    1. 选中 圆环节点, 右键 -> type properties. 可以把不需要控制的属性隐藏掉, 选中并勾选 invisible
    2. 从左边拖一个参数类型 float 到右边 root 之下 , 修改下 展示名 CustomRadius 和 变量名 customR , 勾选 range 控制范围, 然后切到 channels 页签, 指定该参数的 默认值 为2
    3. 点击 accept你 完成. 参数面板上就所处了一个参数 CustomRadius
  4. 圆环结合体的半径 引用 这个 参数a.

    1. 右键 参数a -> copy parameter, 进入到几何体中, 在 Radius 属性栏中, 右键 -> paste relative references (这个录屏看不太到). 就会显示乘一个 绿色 的表达式.
  5. 最后, 保存. 选中 圆环节点, 右键 -> save node type. (最左下角有保存路径提示)

  6. [unity 导入资源](#unity 导入资源)

踩坑

  • 上面 步骤3, 要暴露的参数并不是 设置 -> edit parameter interface. 这个是 houdini 内部网络基点暴露参数的方式.

    正确的是 选中 圆环节点, 右键 -> type properties.


unity 导入资源

  1. 直接把 houdini 导出资源 .hda 文件拖进 unity 的 assets 目录下.

  2. 在从 assets 拖到场景中, 然后就可以 圆环 的 半径.

重建资源

意思就是 houdini 修改并保存 (save node type) 后, 直接把 .hda 文件覆盖上去, 然后选中场景中 旧对象, 点击 rebuild asset, 就可以看到修改后的效果.
这里是加多了一个参数 Custom Scale


添加碰撞

教程: Adding Collision Meshes

  1. 通过一个 group 且命名必须为 collision_geo, 就为添加上碰撞框.
    $OS 表示 变量名 引用 节点名

    因为插件中默认指定了这个名字. houdiniEngine -> plugin settings -> advanced 中可以查看到

  2. 效果, 碰撞框会跟随 cube 的大小变化而变化


控制点 xform

教程: Houdini Engine Handles

方便可视化控制参数, 比如: 控制缩放, 导入到unity中也可以可视化控制参数

  1. 选中节点, 右键 -> type properties, 切到 handles 页签, 添加一个 xform, 然后指定 平移属性 tx,ty,tz 分别对应上需要 控制的参数 boxScale 的三个分量 boxScalex,boxScaley,boxScalez

  2. unit 中的效果


曲线 curve

教程: Houdini Engine Curves