On this page |
Introduction ¶
In Unreal, the Procedural Content Generation Framework (PCG) allows you to create procedural content within the engine. See Unreal’s PCG documentation for more information.
The PCG plug-in integrates Houdini Digital Assets (HDAs) and its functionalities into Unreal’s PCG graph. Using Houdini’s node networks and HDAs, it allows you to create tools, assets, landscapes, geometry, curves, and skeletal meshes with the combined power of PCG nodes to enhance your assets within Unreal.
Houdini Digital Asset node ¶
The Houdini Digital Assset (HDA) node is the framework to connect PCG’s network to Houdini Engine for Unreal plugin capabilities. This node allows you to use all the functionalities of an HDA in Unreal combined with PCG nodes to output an asset or pass through data.
The HDA node is set to send and receive Parameters, Inputs, and Outputs.
Using HDA node in PCG ¶
You can set parameters and HDA inputs on the HDA PCG node similar to Houdini Asset Components.
A single output pin contains information about all outputs.
To create the HDA node in PCG:
-
Import your HDA into Unreal. See the HDA import and export workflow for more information.
-
In your PCG graph, click TAB and enter
Houdini
. This pops up Houdini Digital Asset as a node option. Set this node into the PCG Graph. -
In the Houdini PCG details panel, locate the Houdini Asset parameter.
-
In the dropdown menu, select your desired HDA.
-
A Houdini Session will now be created. The HDA is parsed for inputs, outputs and paramters.
-

You can use any supported HDA type inside of PCG. See Assets for more information
Parameters ¶
You can override parameters by assigning one or more attribute sets to the parameter pins. Create attribute sets from any built-in PCG node such as properties or data tables.
Inputs ¶
Unreal objects such as meshes and landscape can be sent to HDA inputs using attribute sets. The attribute name object
identifies the object being used. You can set additional input settings on the HDA PCG node’s details panel.
The plugin uploads the raw data to Houdini if an attribute or point data is assigned to the HDAs input node and doesn’t contain an object
attribute. This is useful for sampling points on a landscape and sending it to Houdini rather than the whole landscape.
Note
Point data transforms its coordinates between Unreal and Houdini. Generic Vector attributes don’t convert because vectors can’t be distinguished from points, vectors, or arbritrary data.
Outputs ¶
You can create Unreal objects directly from Houdini similar to Houdini asset components. These objects create in the content browser or the level hosting in the PCG graph actor since PCG doesn’t pass Unreal objects between nodes.
The HDA PCG node can pass information about the objects between PCG nodes.
The HDA PCG node can create raw PCG data instead of Unreal objects. For example, an HDA may sample a Houdini heighfield and return a list of points rather than a whole landscape. You can use unreal_pcg_params
to export parameters and attribute sets.
Houdini PCG ¶
When you are in the PCG graph and have created a Houdini Digital Asset (HDA) PCG node, an additional Houdini PCG tab appears. See Details Panel for the full list of HDA settings.
Setting |
Description |
---|---|
Houdini Asset |
Set the Houdini Asset from the dropdown for the HDA PCG node in the PCG Graph. |
Output Type |
Dropdown menu to select the output. Cook - When you cook an asset, it follows these steps
After cooking scene components such as meshes, they're attached to the HoudiniPCGActor. Actors are placed in the current level. Assets are created in the temperary Houdini directory located in Game/HoudiniEngine/Temp. Cook and Bake - First, cooks the PCG Node following the Cook description process. Then, bakes the cooked data which typically means copying the data from the Cook stage to its final output location. Scene components are replaced with actors in the level. Actors are placed using the final baked actor naming convention. Assets moved to the Baked folder. Note Baked actors and assets are deleted when regenerating the PCG graph or selecting Cleanup in the PCGComponent settings. To prevent this, select Clear PCG Link on the PCGComponent. |
Create Scene Component |
When on, scene components and actors will be created for HDA outputs in the current level. When off, only assets are created in the content folder. This is useful for creating assets which are then used to spawn other actors in the PCG Graph such as the Static Mesh Spawner node. |
Automatically Delete Temp Assets |
When on, automatically deletes assets stored in the Houdini Engine temporary folder in the Content folders. This folder can become full when using PCG, so turn it on to reduce disk space. |
Use PCG Cache |
To optimize PCG performance, Unreal uses an internal cache to store outputs generated by PCG nodes. If the inputs do not change, the cache assumes the outputs can be reused and speeds up the PCG graph generation. However, using the PCG cache is not desirable if the HDA PCG node depends on assets outside of Unreal. For example, if an HDA loads a Note This setting only affects the node applied, the rest of the graph’s nodes still uses the PCG cache. Tip When this setting is on and a node does not generate correctly. Use Force Generate to clear the cache. You can also use CTRL + |
Supported features ¶
In general features available on the Houdini asset component are compatible with the HDA PCG node with a few limitations listed.
Landscapes ¶
Landscape creation is fully supported by Houdini in PCG. Landscape modification is supported with some caveats.
If an HDA modifies an existing Unreal landscape, enable “Ignore Landscape Tracking” on the PCG Component in the level. This prevents Unreal from creating a dependency loop when landscapes are modified.
The Houdini Engine plugin for Unreal currently does not fully support the modification of existing landscape layers. Although modifications to existing layers will be applied, they will not be undone when a PCG graph is regenerated. The recommended workflow for PCG is to create landscape edit layers inside the HDA, as created layers will be deleted when the HDA is cleaned or regenerated.
Session Sync ¶
Session Sync mostly functions when you use PCG HDA in simple PCG graphs.
Be aware when you use PCG loops, one HDA SOP is instantiated per loop iteration in PCG. This means edits to one HDA in session sync only affects on iteration of the loop until the HDA is saved again.
PCG Loops ¶
As mentioned in session sync, one HDA is instantiated per loop iteration. There are no limits to how many HDAs you can load but be cautious of complex HDAs that may iterate many times over.
All HDAs in a PCG graph including loops share input data. For example, if three HDA PCG nodes use the same landscape as the input, then the landscape will only be sent to Houdini once.