houdini-与unity交互
houdini-与unity交互.
测试环境: unity 2018.3.11f1 & houdini 17.0.352
测试工程: https://github.com/yangxuan0261/HoudiniLab
前篇
- Houdini与Unity游戏制作基础技能训练视频教程 - https://www.bilibili.com/video/av38576013
- Houdini Engine for Unity - https://vimeo.com/281847072
- Procedural Workflows with Houdini and Unity 2018 for Game Artists - https://vimeo.com/286186074
- 官网游戏相关教程 - https://www.sidefx.com/learn/game-tools/
unity 安装 houdini 插件
安装 houdini 时勾选上 unity 插件, 则会在 D:\Houdini 17.0.352\engine\unity
路径下有个 HoudiniEngineUnity.unitypackage unity插件包, 直接拖到 unity 中即可
houdini 导出资源
教程: 04 - Engine Test
导出的资源 .hda 文件
测试: 一个 圆环 并暴露一个参数可以让 unity 控制其半径.
新建一个 圆环
创建 hda 文件, 改文件就是给 unity 用的.
选中 圆环节点, 右键 -> create digital asset, 然后自定义文件名, 保存路径最好是默认的路径 ( 我换成其他路径会报找不到资源错误 ), 然后又会弹出一个窗口, 点击 destroy all spare parameters, 然后又弹出窗口, 可以增加 一些参数暴露给unity, 但是可以先不设置. 直接点击 accept 即可完成创建.
暴露一个 参数a 给 unity 动态控制.
- 选中 圆环节点, 右键 -> type properties. 可以把不需要控制的属性隐藏掉, 选中并勾选 invisible
- 从左边拖一个参数类型 float 到右边 root 之下 , 修改下 展示名 CustomRadius 和 变量名 customR , 勾选 range 控制范围, 然后切到 channels 页签, 指定该参数的 默认值 为2
- 点击 accept你 完成. 参数面板上就所处了一个参数 CustomRadius
圆环结合体的半径 引用 这个 参数a.
- 右键 参数a -> copy parameter, 进入到几何体中, 在 Radius 属性栏中, 右键 -> paste relative references (这个录屏看不太到). 就会显示乘一个 绿色 的表达式.
最后, 保存. 选中 圆环节点, 右键 -> save node type. (最左下角有保存路径提示)
[unity 导入资源](#unity 导入资源)
踩坑
上面 步骤3, 要暴露的参数并不是 设置 -> edit parameter interface. 这个是 houdini 内部网络基点暴露参数的方式.
正确的是 选中 圆环节点, 右键 -> type properties.
unity 导入资源
直接把 houdini 导出资源 .hda 文件拖进 unity 的 assets 目录下.
在从 assets 拖到场景中, 然后就可以 圆环 的 半径.
重建资源
意思就是 houdini 修改并保存 (save node type) 后, 直接把 .hda 文件覆盖上去, 然后选中场景中 旧对象, 点击 rebuild asset, 就可以看到修改后的效果.
这里是加多了一个参数 Custom Scale
添加碰撞
教程: Adding Collision Meshes
通过一个 group 且命名必须为 collision_geo, 就为添加上碰撞框.
$OS 表示 变量名 引用 节点名因为插件中默认指定了这个名字. houdiniEngine -> plugin settings -> advanced 中可以查看到
效果, 碰撞框会跟随 cube 的大小变化而变化
控制点 xform
教程: Houdini Engine Handles
方便可视化控制参数, 比如: 控制缩放, 导入到unity中也可以可视化控制参数
选中节点, 右键 -> type properties, 切到 handles 页签, 添加一个 xform, 然后指定 平移属性 tx,ty,tz 分别对应上需要 控制的参数 boxScale 的三个分量 boxScalex,boxScaley,boxScalez
unit 中的效果
曲线 curve
教程: Houdini Engine Curves