We have a city block generator which we use to build a whole city with (using PDG). We want to have one actor per city block, with multiple different components (static meshes, instanced meshes, splines, etc) and each of these components need to have different properties (hidden in game, custom collision geometry, LODs, draw distance, etc).
One of these components need to be a static mesh (a single triangle) that stores a custom collision geometry for the whole city block. Only this component then needs to be hidden in game, what would be the best way to do it? Yes there are different approaches of not using these kind of hidden blockers, but that's what we'd like to go with.
I also tried using multiple outputs in my example and nothing really changed. If the "Hidden In Game" is not on the first output, then it's propagated to the whole actor.
It's also interesting that the internal name for "Hidden In Game" is "bHiddenInGame" for the component, but "bHidden" for the whole actor. I'm only using "bHiddenInGame" so it shouldn't really affect the actor.
Thanks for your time, I love Houdini and would really like to figure this out 🙂
Found 25 posts.
Search results Show results as topic list.
Houdini Engine for Unreal » How is "unreal_bake_actor" attribute used?
-
- TomVee
- 25 posts
- Offline
Houdini Engine for Unreal » How is "unreal_bake_actor" attribute used?
-
- TomVee
- 25 posts
- Offline
Thanks for the reply @dpernuit, it makes it a bit clearer 🙂
The attached example works completely fine for me, including setting the bake_actor/folder.
There is however one issue that I think is a bug:
- "Hidden In Game" has to be the first component to be merged with the rest in Houdini or the whole actor will have the property set (see screenshots)
If it's not the first component:
- it doesn't matter if it's written on primitives or points
- if it's set only before packing it does nothing
- if it's set after packing it propagates to the whole actor
And here are some other observations:
- only the spline component is named after @unreal_output_name, ideally all components would have nice names
- not setting default BlockAll collision profile on all components will result in strange custom collision setting
- not setting default collision complexity will result in one setting on all static meshes
- "bake one actor per HDA" will result in 2 actors with strange names (spline + rest)
- some @unreal_* properties work only before packing, some only after packing (safest to use both, but confusing)
-- @unreal_bake_actor has to be set after packing for static meshes, but before packing for splines, ISMs and HISMs
The attached example works completely fine for me, including setting the bake_actor/folder.
There is however one issue that I think is a bug:
- "Hidden In Game" has to be the first component to be merged with the rest in Houdini or the whole actor will have the property set (see screenshots)
If it's not the first component:
- it doesn't matter if it's written on primitives or points
- if it's set only before packing it does nothing
- if it's set after packing it propagates to the whole actor
And here are some other observations:
- only the spline component is named after @unreal_output_name, ideally all components would have nice names
- not setting default BlockAll collision profile on all components will result in strange custom collision setting
- not setting default collision complexity will result in one setting on all static meshes
- "bake one actor per HDA" will result in 2 actors with strange names (spline + rest)
- some @unreal_* properties work only before packing, some only after packing (safest to use both, but confusing)
-- @unreal_bake_actor has to be set after packing for static meshes, but before packing for splines, ISMs and HISMs
Houdini Engine for Unreal » Using the "unreal_pdg_asset" detail attribute
-
- TomVee
- 25 posts
- Offline
I recently noticed this in the changelog [github.com]:
Could someone from SideFX expand on this a little bit more?
How exactly do I use it? I have a SOP level HDA that contains a TOP network with an HDA Processor node (running another HDA), Houdini Engine in Unreal then loads the work items from the TOP network. Where should I put this detail attribute? What improvements should I look for? Thanks
Added support for the "unreal_pdg_asset" detail attribute.
It can be used to indicate to the plugin if an HDA is expected to use PDG.
This is especially useful on big HDAs that contain a lot of nodes - as it will speed up instantiation and rebuild times significantly.
Could someone from SideFX expand on this a little bit more?
How exactly do I use it? I have a SOP level HDA that contains a TOP network with an HDA Processor node (running another HDA), Houdini Engine in Unreal then loads the work items from the TOP network. Where should I put this detail attribute? What improvements should I look for? Thanks
Houdini Engine for Unreal » How is "unreal_bake_actor" attribute used?
-
- TomVee
- 25 posts
- Offline
I just spent quite some time trying to figure this all out 🙂 Unfortunately it seems like the Houdini Engine is a bit buggy, especially when dealing with generic uproperties, I still want to email support about it... But these basic properties seem to work (after you bake the HDA's output). The
P.S. There was a bugfix in 20.5.445 that made the actor/level naming work properly
unreal_output_name
should control the name of the file on the disk and unreal_bake_folder
should set the folder while unreal_bake_actor
sets the name of the actor. Have a look at this HDA, it should all properly bake in Unreal into one actor with multiple components and different settings/properties on each of them.P.S. There was a bugfix in 20.5.445 that made the actor/level naming work properly
Houdini Engine for Unreal » Export Material Parameters not working in Houdini 20.5
-
- TomVee
- 25 posts
- Offline
Hi, we use Material Parameters to pass data from Unreal into Houdini and this stopped working when upgrading from Unreal 5.3.2 + Houdini 20.0.688 to Unreal 5.4.4 + Houdini 20.5.370.
It seems like a big issue, I have a repro below, or is there something I'm forgetting? Thanks.
P.S. Is there a better way of passing data from Unreal to Houdini, say per spline?
It seems like a big issue, I have a repro below, or is there something I'm forgetting? Thanks.
- Create new material "TestMat"
- Add scalar parameter "TestParam = 26"
- Place Shapes > Sphere in the world
- Assign TestMat to the sphere
- With the sphere selected place PolyReduce HDA from Houdini Tools shelf
- Change "Percent To Keep" to see it's working
- Change "Houdini Inputs > Input Geometry > Export Material Parameters > On"
- Recook
- Open Scene in Houdini
- Open he_polyreduce, select input node
- Observe unreal_material_parameter_TestParam is missing in H20.5 but is present in H20
P.S. Is there a better way of passing data from Unreal to Houdini, say per spline?
Edited by TomVee - Oct. 17, 2024 11:54:52
Houdini Engine for Unreal » Matching the number of landscape components
-
- TomVee
- 25 posts
- Offline
To set the right size, use Heightfield Resample > Specify Exact Resolution > Grid Samples
Then use a detail wrangle with:
Or any other recommended setting:
https://dev.epicgames.com/documentation/en-us/unreal-engine/landscape-technical-guide-in-unreal-engine#recommendedlandscapesizes [dev.epicgames.com]
Then use a detail wrangle with:
i@unreal_landscape_section_size = 127; i@unreal_landscape_sections_per_component = 2;
Or any other recommended setting:
https://dev.epicgames.com/documentation/en-us/unreal-engine/landscape-technical-guide-in-unreal-engine#recommendedlandscapesizes [dev.epicgames.com]
Houdini Engine for Unreal » Bake to the HDA level
-
- TomVee
- 25 posts
- Offline
Hey Cody, that's great, if you could mention landscapes in the bug report (as that's what I was originally after), that would be great. Thanks!
Houdini Engine for Unreal » Bake to the HDA level
-
- TomVee
- 25 posts
- Offline
I'd like to bake an actor to a specified level (same as the HDA), but it is always baked to the current level (activated through the levels palette), no matter what I try (relative paths, absolute paths, prim/point attrib, etc).

Attached is a very simple example just with a static mesh, though I'd like to make this work with landscapes. I'm using Unreal 5.3.2 + Houdini 20.0.688 and no world partition.
I'm trying to follow the example in the documentation, but it's just not working for me
https://www.sidefx.com/docs/houdini/unreal/attributes.html#bake-to-the-hda-level [www.sidefx.com]
Thanks!
Attached is a very simple example just with a static mesh, though I'd like to make this work with landscapes. I'm using Unreal 5.3.2 + Houdini 20.0.688 and no world partition.
I'm trying to follow the example in the documentation, but it's just not working for me
https://www.sidefx.com/docs/houdini/unreal/attributes.html#bake-to-the-hda-level [www.sidefx.com]
To bake actors to the same level that contains the HDA, as opposed to the persistent level, set unreal_level_path attribute to “{hda_level}”
Thanks!
Houdini Engine for Unreal » PDG Services in Unreal
-
- TomVee
- 25 posts
- Offline
Hi,
I was wondering if PDG services are working as expected in UE5 or if I'm doing something wrong?
I just couldn't see any speed increase in UE5, though I did see a massive speed increase in Houdini.
This is a test of generating simple city blocks in PDG, using an HDA Processor (one city block per work item):
Out-of-process (7 cores)
UE5: 6 min
Houdini: 3:30 min
Services (14 cores)
UE5: 6 min
Houdini: 45 sec (10 sec 2nd time)
Thanks!
I was wondering if PDG services are working as expected in UE5 or if I'm doing something wrong?

I just couldn't see any speed increase in UE5, though I did see a massive speed increase in Houdini.
This is a test of generating simple city blocks in PDG, using an HDA Processor (one city block per work item):
Out-of-process (7 cores)
UE5: 6 min
Houdini: 3:30 min
Services (14 cores)
UE5: 6 min
Houdini: 45 sec (10 sec 2nd time)
Thanks!
Houdini Indie and Apprentice » $JOB and HDA
-
- TomVee
- 25 posts
- Offline
It sort of works, but you have to name the folder $JOB/otls
Then you have to set the project, save your file and reopen it. It's probably easier to create a simple package now...

Houdini Indie and Apprentice » Saving HDA's to the job
-
- TomVee
- 25 posts
- Offline
It sort of works, but you have to name the folder $JOB/otls
Then you have to set the project, save your file and reopen it. It's probably easier to create a simple package now...

Houdini Engine for Unreal » Exporting Geometry Collections into UE5
-
- TomVee
- 25 posts
- Offline
I’m looking into exporting pre-fractured meshes from Houdini into UE5 as a Geometry Collection.
I’d like to use the RBD Material Fracture node to create 3 levels of fractures – Let’s say there’s a sphere that gets fractured in two pieces (L1), then those two get further divided into two (L2) and then each of those 4 pieces gets divided into two once more, to a total of 8 (L3).

This works in UE5 only up to level 2, but not with level 3.
Here’s my level 2 setup (also attached as an HDA), I’m using a combination of
I’d like to use the RBD Material Fracture node to create 3 levels of fractures – Let’s say there’s a sphere that gets fractured in two pieces (L1), then those two get further divided into two (L2) and then each of those 4 pieces gets divided into two once more, to a total of 8 (L3).
This works in UE5 only up to level 2, but not with level 3.
Here’s my level 2 setup (also attached as an HDA), I’m using a combination of
@unreal_gc_piece
and @unreal_gc_cluster
:- All primitives get
@unreal_gc_cluster = 2
to indicate 2 levels of fractures - Then selecting primitives by their
@name
notation that’s coming from the RBD fracture, I divide them into two clusters:@name=piece0-0-*
get assigned@unreal_gc_cluster = 1;
@name=piece0-1-*
get assigned@unreal_gc_cluster = 2;
However, I am unable to do this with the level 3 fracture, as the primitives need to be in multiple clusters at the same time and that doesn't seem to be possible with the current attributes.
This is the level 3 setup I’d like to achieve in UE5, where I had to cluster the leaf nodes manually:
The provided example HDAs show multiple levels of fractures, but never with the hierarchy that I'm after, where clusters would split into smaller and smaller chunks.
The documentation [www.sidefx.com] says that "Full control over the exact GeometryCollection hierarchy is not supported at this time", is this one of those cases or am I doing something wrong? If it's the former, do you have a timeline when this could be implemented?
Thanks!
Houdini Engine for Unreal » HDA has problems using SplineComponent input in UE5Preview?
-
- TomVee
- 25 posts
- Offline
Hi, I have the exact same issue.
The HARS crash happens when you move a point on the spline component of a blueprint that is hooked to the HDA's world outliner input.
It happens in both UE5 and UE4.
My main goal is to save splines with the UE level and use those as inputs for my HDAs for further processing.
Thanks!
The HARS crash happens when you move a point on the spline component of a blueprint that is hooked to the HDA's world outliner input.
It happens in both UE5 and UE4.
LogHoudiniEngineRuntime: Display: [UHoudiniAssetBlueprintComponent::NeedUpdateInputs()] Inputs need update for component: /Game/Developers/tomvelebny/Collections/Levels/LevelTest.LevelTest:PersistentLevel.HoudiniAssetActor_UAID_3C7C3FF50E6A250401_1167386896.HoudiniAssetComponent
LogHoudiniEngine: Error: Houdini Engine Session lost! This could be caused by a crash in HARS.
LogHoudiniEngine: Error: Hapi failed:
LogHoudiniEngine: Error: Hapi failed: No valid Houdini Engine session.
My main goal is to save splines with the UE level and use those as inputs for my HDAs for further processing.
Thanks!
Houdini Engine for Unreal » Landscape Component Subsections
-
- TomVee
- 25 posts
- Offline
In the end as a workaround I exported the heightmaps as textures and used the "Import Tiled Heightmap" dialog in UE4 as that let's you set the exact parameters (see attached)
This is similar to a Worldmachine workflow:
https://www.ue4community.wiki/legacy/world-machine-to-unreal-engine-4-in-depth-guide-537ukcye [www.ue4community.wiki]
But comes with it's own issues, like figuring the correct scale of the terrain in Unreal to match the heightmap values. Some of it is explained in Epic's technical guide:
https://docs.unrealengine.com/en-US/BuildingWorlds/Landscape/TechnicalGuide/index.html#calculatingheightmapdimensions [docs.unrealengine.com]
However the heightfield export Labs tool clips any values between -256 and +256, so I had to adjust that as well. And there's no easy way to reimport the tiled heightmaps in UE4 if you make changes.
A Houdini Engine solution is much more flexible, if only we could set the exact component subsection and other landscape size values
This is similar to a Worldmachine workflow:
https://www.ue4community.wiki/legacy/world-machine-to-unreal-engine-4-in-depth-guide-537ukcye [www.ue4community.wiki]
But comes with it's own issues, like figuring the correct scale of the terrain in Unreal to match the heightmap values. Some of it is explained in Epic's technical guide:
https://docs.unrealengine.com/en-US/BuildingWorlds/Landscape/TechnicalGuide/index.html#calculatingheightmapdimensions [docs.unrealengine.com]
However the heightfield export Labs tool clips any values between -256 and +256, so I had to adjust that as well. And there's no easy way to reimport the tiled heightmaps in UE4 if you make changes.
A Houdini Engine solution is much more flexible, if only we could set the exact component subsection and other landscape size values

Houdini Engine for Unreal » Landscape Component Subsections
-
- TomVee
- 25 posts
- Offline
How can I control the number of component subsections that are on the landscape generated by Houdini?
I made a landscape in Unreal with 4x4 components, 1x1 section per component and 63x63 quads per section (overall resolution 253x253) and I would like to generate a landscape in Houdini with the same settings. In Houdini I can only control the Grid Samples which I set to 253. The resulting landscape has the same overall resolution, but only 2x2 components and each component has 2x2 sections. I could live with the component count (by splitting the landscape into more tiles probably) but the 2x2 subsections means 4x the draw calls, which is a problem for the large landscape I'm trying to create.
I've tried manually resampling the generated landscape, but it didn't work. If I resample the temporary landscape generated by Houdini, then it doesn't get baked into the streaming proxies for the world composition setup that I'm trying to test. And when I try resampling the baked landscape it gets pulled out of the individual levels and merged into one landscape, breaking the world composition setup.
Any advice here? Ideally it would be possible to control both the component and the subsection count. Thanks.
I made a landscape in Unreal with 4x4 components, 1x1 section per component and 63x63 quads per section (overall resolution 253x253) and I would like to generate a landscape in Houdini with the same settings. In Houdini I can only control the Grid Samples which I set to 253. The resulting landscape has the same overall resolution, but only 2x2 components and each component has 2x2 sections. I could live with the component count (by splitting the landscape into more tiles probably) but the 2x2 subsections means 4x the draw calls, which is a problem for the large landscape I'm trying to create.
I've tried manually resampling the generated landscape, but it didn't work. If I resample the temporary landscape generated by Houdini, then it doesn't get baked into the streaming proxies for the world composition setup that I'm trying to test. And when I try resampling the baked landscape it gets pulled out of the individual levels and merged into one landscape, breaking the world composition setup.
Any advice here? Ideally it would be possible to control both the component and the subsection count. Thanks.
Houdini Engine for Unreal » Landscape Layers giving unexpected results
-
- TomVee
- 25 posts
- Offline
If someone is still looking for an answer to this, I found a way how to do it.
If you only have 3 layers and Layer1 is your bottom layer, then you have to subtract Layer2 and Layer3 from it, then subtract Layer3 from Layer2.
There's probably some way to do it with VEX using the Volume Wrangle, but if you only have a few layers you can just use the Volume Mix nodes. Make sure to clamp the minimum and maximum or it will look different in Unreal.
If you only have 3 layers and Layer1 is your bottom layer, then you have to subtract Layer2 and Layer3 from it, then subtract Layer3 from Layer2.
There's probably some way to do it with VEX using the Volume Wrangle, but if you only have a few layers you can just use the Volume Mix nodes. Make sure to clamp the minimum and maximum or it will look different in Unreal.
Houdini Engine for Unreal » Material instance for landscapes
-
- TomVee
- 25 posts
- Offline
Eetu_Mainframe
Hi!
I would like to do this same thing, this seems like a clear bug. Have you reported this as a bug to support?
Hey, I have not reported it yet, I might do that later.
Houdini Engine for Unreal » Material instance for landscapes
-
- TomVee
- 25 posts
- Offline
Is there a way to generate a material instance for a landscape coming out of Houdini?
I've been using the detail attribute "unreal_material_instance" (as per the docs [www.sidefx.com]) but for landscapes it doesn't automatically create a material instance from the given material in Unreal like it does for a static mesh.
Ideally I'd like to take an Unreal landscape as an input for my HDA, generate a new material instance with different parameters (textures, etc.) and output that landscape with the new material instance to Unreal.
I have created a simple HDA to test it all, it switches between 4 objects:
Then an attribute wrangle assigns the detail attribute "unreal_material_instance" or "unreal_material" and outputs that to Unreal (see attached).
Only the static mesh correctly generates a new material instance and changes its specular parameter. The landscapes created from the heightfields use the material directly and the landscape passed from Unreal has its material unchanged.
Is there any way to do this? HDA attached, any help is appreciated, thanks.
I've been using the detail attribute "unreal_material_instance" (as per the docs [www.sidefx.com]) but for landscapes it doesn't automatically create a material instance from the given material in Unreal like it does for a static mesh.
Ideally I'd like to take an Unreal landscape as an input for my HDA, generate a new material instance with different parameters (textures, etc.) and output that landscape with the new material instance to Unreal.
I have created a simple HDA to test it all, it switches between 4 objects:
- Heightfield
- Heightfield from a file
- Static mesh
- Landscape input from Unreal
Then an attribute wrangle assigns the detail attribute "unreal_material_instance" or "unreal_material" and outputs that to Unreal (see attached).
Only the static mesh correctly generates a new material instance and changes its specular parameter. The landscapes created from the heightfields use the material directly and the landscape passed from Unreal has its material unchanged.
Is there any way to do this? HDA attached, any help is appreciated, thanks.
Houdini Engine for Unreal » Material Instance Texture Params don't work for Object HDAs
-
- TomVee
- 25 posts
- Offline
I'm trying to generate multiple textures in Houdini, then creating multiple material instances in Unreal and assigning those textures to them as UE4 shader parameters.
I've been trying various things all day, looking at all the helpful [www.sidefx.com] threads [www.sidefx.com] on this forum, but the generated textures just wouldn't shown up in UE4.
I've narrowed the issue down to a very specific and simple case (see screenshots)
- If I create my HDA as an Object type, with a geo node inside with the squab model and an attrib wrangle node, the textures won't be shown in UE4
- If I create my HDA as a Geometry node type, with the squab model and an attrib wrangle node, the textures will be shown in UE4
This is strange, because the unreal_material_parameter_ detail attrib always points to the same relative location where the texture is stored ("testgeometry_squab1/shopnet1/SquabSkin/diffuse"). Interestingly both HDAs generate the same files, all the correct textures are present in UE4, but only one HDA assigns the texture to the shader.
I wonder if there's a workaround for this or if I have to restructure/recreate my HDA? I'm not sure what the best practices for HDA types are, but I've always created them at the Object level, with a geo node inside, and never ran into any issues.
Both HDAs are attached, thanks for any help!
I've been trying various things all day, looking at all the helpful [www.sidefx.com] threads [www.sidefx.com] on this forum, but the generated textures just wouldn't shown up in UE4.
I've narrowed the issue down to a very specific and simple case (see screenshots)
- If I create my HDA as an Object type, with a geo node inside with the squab model and an attrib wrangle node, the textures won't be shown in UE4
- If I create my HDA as a Geometry node type, with the squab model and an attrib wrangle node, the textures will be shown in UE4
This is strange, because the unreal_material_parameter_ detail attrib always points to the same relative location where the texture is stored ("testgeometry_squab1/shopnet1/SquabSkin/diffuse"). Interestingly both HDAs generate the same files, all the correct textures are present in UE4, but only one HDA assigns the texture to the shader.
I wonder if there's a workaround for this or if I have to restructure/recreate my HDA? I'm not sure what the best practices for HDA types are, but I've always created them at the Object level, with a geo node inside, and never ran into any issues.
Both HDAs are attached, thanks for any help!
Technical Discussion » ROP File Output: Render tiff with alpha channel (Instead of transparency)
-
- TomVee
- 25 posts
- Offline
It works with good old TGA, which are suitable for a game pipeline 
Just make sure you have the alpha premultiplication turned off - https://www.sidefx.com/forum/topic/57642/?page=1#post-267193 [www.sidefx.com]

Just make sure you have the alpha premultiplication turned off - https://www.sidefx.com/forum/topic/57642/?page=1#post-267193 [www.sidefx.com]
-
- Quick Links