Tom Velebny

TomVee

About Me

Senior Tech Artist @ Yaak Technologies
EXPERTISE
Game Artist
INDUSTRY
Gamedev  | VR

Connect

LOCATION
Berlin, Germany

Houdini Skills

Availability

Not Specified

Recent Forum Posts

How is "unreal_bake_actor" attribute used? Feb. 5, 2025, 5:31 a.m.

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 🙂

How is "unreal_bake_actor" attribute used? Feb. 4, 2025, 11:42 a.m.

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

Using the "unreal_pdg_asset" detail attribute Feb. 4, 2025, 10:50 a.m.

I recently noticed this in the changelog [github.com]:

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