
这个 SessionSync 是 Houdini 18.0 以来为大家新开发的接口,17.x 的 Houdini 早期叫Debugger,所以大家别绕圈子哦,就是一个而已。
那么新开发的从目前来看做的最棒的是Houdini链接至游戏引擎的接口了,为什么呢,因为这种桥接为我们展示了对每个场景操作的实时变化,除非插件完全不工作,一旦工作,那么你的每一步操作都可以实时的查看该工作的故障排除,而且工作流程更人性化,毕竟导来导去烦死了,是吧。
如果你在使用其他三维软件,但没有实时接口,可以阅读 Unity如何导入3D模型,或许可以稍微帮助到你。
在Unity中启动SessionSync并链接Houdini
在 Unity 中,可以启动一个新的 Houdini 实例并启动 SessionSync。然后插件将自动连接到它。为此,请通过菜单 HoudiniEngine > SessionSync 在 Unity 中打开 SessionSync 面板。然后按左上角的启动 Houdini 按钮。这将需要几秒钟来启动启用了 SessionSync 的 Houdini,然后插件将会自动连接到它。

请注意,如果已经有另一个 Houdini Engine 会话正在运行,则必须通过中间位置的 Disconnect 按钮将其停止。
连接后,可以随时从插件中停止 SessionSync,然后重新连接。也可以在 Houdini 中停止 SessionSync 并继续正常使用它。
连接到Houdini
如果 Houdini 已经在运行,那么插件一旦启用就可以连接到 SessionSync。要启用它并连接,请按照下列步骤操作:
首先,在 Houdini 中,通过转到 New Pane Tab Type > Misc > Houdini Engine SessionSync 打开 Houdini Engine SessionSync 窗口。

在 Connection 下,按 Start 按钮启动 Houdini Engine 会话。请注意 TCP Port或命名管道等设置,默认是 9090,可以将其保留为默认值。

然后,在 Unity 中,打开 HoudiniEngine > SessionSync 。

如果有一个 Houdini Engine 会话已经在运行,请按 Disconnect 停止它。然后选择 Socket 端口或管道名称(基于 Houdini 中设置的名称),然后按 Connect to Houdini ,那么就会连接了。
连接后,大家可以随时从插件中停止 SessionSync,然后重新连接。也可以在 Houdini 中停止 SessionSync 并继续正常使用它。
设置
可以通过以下设置更改 SessionSync 的行为:
- 与 Houdini Cook 同步启用此选项以使插件端的资产与 Houdini 端的 cook 更改保持同步,这允许对任一应用程序的更改反映在两个方向上。
- Cook Using Houdini Tim e启用此选项以使用 Houdini 时间线时间来 cook 资产。通常,Houdini Engine 通过插件使用自己的时间设置来cook资产。在 SessionSync 中,Houdini 视口将使用 Houdini Timeline 时间进行 cook,这会使资产不同步,启用此功能可解决该问题。
同步数据
同步数据之后会在 Assets 当中生成一个开始项目的文件夹(对于 Assets 的理解大家可以打开 Unity如何导入3D模型 阅读内容当中的总结处 ),此时只需将该 Houdini 的文件拖拽到场景当中并调整一下位置。

SessionSync 目前仅支持的数据类型有以下四个:
- HDA
- 曲线
- 输入
- 节点同步
HDA、曲线和输入节点的功能与非 SessionSync 工作流中的相同,SessionSync 的不同之处在于,对 Houdini 中这些资产的任何更改(参数、节点或网络更改)都将自动反映到插件中。
对于 HDA,升级参数的添加或删除将不会同步,除非 HDA 被解锁并重新保存。
节点同步
NodeSync 是 SessionSync 的一项新功能,它允许在不使用 HDA 的情况下动态创建节点,并使它们保持同步。如果 Houdini Engine 支持几何类型,则它们的输出几何会在 Unity 中自动生成,节点及其所有内容也可以保存到文件中,并重新加载到 Houdini 引擎会话中。(节点同步功能目前还是一个实验性的开发功能)

目前支持以下类型的容器节点:
- 包含输出 SOP 的对象
- 对象子网
- SOP子网
为每个输出对象创建一个根 GameObject,生成的几何图形将来自带有显示标志的节点,对于 Object 子网,其中的每个对象都将生成一个子 GameObject,其父级位于根 GameObject 下。
这些可以从 Unity 的 SessionSync 面板中的 New Node 部分创建,创建后,生成的 GameObject 将包含一个 HEU_NodeSync 组件,该组件与在 Houdini 中创建的相应节点保持同步,该组件还具有保存节点功能,允许将节点及其内容序列化到文件中。
要加载 NodeSync 文件,请从 Unity 的 SessionSync 面板中,选择 New Node 部分下的Load NodeSync ,将使用 HEU_NodeSync 组件创建一个 GameObject,并在 Houdini 中创建其对应的节点。