Houdini Engine for Unity
 All Files Pages
SessionSync

The Houdini Engine SessionSync feature allows the plugin to connect to a session of Houdini Engine running inside Houdini. In terms of functionality, it supports all the features of the regular (headless) Houdini Engine workflow, along with additional features specific to SessionSync.

The benefit of SessionSync is that the state of Houdini Engine can be viewed in Houdini while working with the plugin in Unity. Additionally, changes on either end, whether in Unity via the plugin or in Houdini via its various interfaces, will be synchronized across so that both applications will be able to make changes and see the same results.

SessionSync enables the following workflows:

  • troubleshooting loaded assets and hip files
  • real-time feedback when building an asset in Houdini and seeing its results in Unity
  • better understanding of Houdini Engine features and limitations
  • synchronize other types of data than nodes (e.g. camera, selection) in the future

Note that Houdini Engine SessionSync replaces the Houdini Engine Debugger in Houdini 18.0 and earlier.

Starting SessionSync

SessionSync must be running in Houdini before the plugin can connect to it. There are 2 ways to connect to SessionSync from the plugin:

Launch Houdini with SessionSync

From Unity, you can launch a new Houdini instance with SessionSync started. Then the plugin will connect to it automatically. To do so, open the SessionSync panel in Unity via menu HoudiniEngine > SessionSync. Then press the Start Houdini button. This will take a few seconds to launch Houdini with SessionSync enabled, and connect to it.

Unity_SessionSync_Unity.png

Note that if there is already another Houdini Engine session running, it must be stopped via the Disconnect button.

Once connected, you can stop SessionSync at any time from the plugin, and reconnect. You can also stop SessionSync in Houdini and continue to use it as normal.

Connect to Houdini

If Houdini is already running, then the plugin can connect to SessionSync once its enabled. To enable it and connect, follow these steps:

First, in Houdini, open the Houdini Engine SessionSync pane by going to New Pane Tab Type > Misc > Houdini Engine SessionSync. Under Connection, press Start to start the Houdini Engine session with SessionSync enabled. Note the settings such as the TCP Port or Named Pipe, which you can leave as default values.

Unity_SessionSync_Houdini.png

Then, in Unity, open HoudiniEngine > SessionSync. If there is a Houdini Engine session already running, stop it by pressing Disconnect. Then choose either the Socket port or Pipe name (based on whichever was set in Houdini), and press Connect to Houdini. This should connect right away.

Once connected, you can stop SessionSync at any time from the plugin, and reconnect. You can also stop SessionSync in Houdini and continue to use it as normal.

Settings

SessionSync behaviour can be changed by the following settings:

  • Sync With Houdini Cook Enable this to keep the assets on the plugin side synchronized with cook changes on Houdini side. This allows for changes on either application to be reflected in both directions.
  • Cook Using Houdini Time Enable this to use the Houdini Timeline time to cook assets. Normally, Houdini Engine uses its own time set via the plugin to cook assets. In SessionSync, the Houdini viewport will cook using the Houdini Timeline time which can make assets out of sync. Enabling this fixes that issue.

Synchronized Data

SessionSync supports the following data types for synchronization:

HDAs, curves, and input nodes function the same way as in non-SessionSync workflow. The difference in SessionSync is that any changes to these assets in Houdini (parameter, node, or network changes) will be reflected across to the plugin automatically.

For HDAs, addition or removal of promoted parameters will not be synchronized unless the HDA is unlocked, and resaved.

NodeSync

This is an experimental feature.

A NodeSync is a new feature for SessionSync that allows to dynamically create nodes without the use of HDAs, and keep them synchronized. Their output geometry is automatically generated in Unity, if the geometry type is supported by Houdini Engine. The node and all its contents can also be saved to a file, and reloaded into a Houdini Engine session.

Currently the following types of container nodes are supported:

  • Object containing output SOP
  • Object subnetwork
  • SOP subnetwork

A root GameObject is created for each output object. The generated geometry will be from the node with the display flag. For the Object subnetwork, each object within will generate a child GameObject parented under a root GameObject.

These can be created from the New Node section in the SessionSync panel in Unity. Once created, the generated GameObject will contain a HEU_NodeSync component that is kept synchronized with the corresponding node created in Houdini. This component also has a Save Node feature that allows to serialize the node and its contents to a file.

To load a NodeSync file, from the SessionSync panel in Unity, select Load NodeSync under the New Node section. A GameObject will be created with a HEU_NodeSync component, and its corresponding node will be created in Houdini.