HoudiniEngineForUnreal-v2 icon indicating copy to clipboard operation
HoudiniEngineForUnreal-v2 copied to clipboard

Created Assets not Showing up in the World Outliner

Open ykhedar opened this issue 3 years ago • 10 comments

I tried the latest HoudiniEngineForUnreal plugin with a small HDA created with the SideFX OSM Tools. The world is successfully created in the unreal engine. I have one problem though. How can I change settings for individual mesh actors generated by Houdini HDA in Unreal Engine. I can see only settings related to the HDA Actor and it seems all other actors are part of one big Mesh created by the HDA and hence I am not able to change the settings individually.

Thanks in advance for your help.

ykhedar avatar Oct 04 '20 17:10 ykhedar

Upon further digging into the source of the plugin, i found that the following function/option give the functionality i am seeking.

Bake Option

Am I right about this and if yes does the sidefx team has it already planned to release this in a future release. Also if some pointers to add this myself would be really appreciated. Thanks again.

ykhedar avatar Oct 04 '20 20:10 ykhedar

I have tried the following options until now:

  1. unreal_split_instances: Added this as a detail attribute. This creates Split Instancers but when I bake to actors, I see only these instancers in the world outline. I was able to see the individual static mesh actor in the detail view of the HDA asset.
  2. unreal_split_attr: Tried adding this both as detail attribute and also as point attribute and then specified a new attribute "unreal_id" to create a unique id for the points. I hoped that if all houdini objects have unique id, a mesh instansiater will not be created and instead i will get only the static mesh actor directly. But this did not happen. In fact I did not see any change w.r.t the option 1.

I tried this option because in the Wiki it was mentioned that:

Instancers Components are only created if the number of instances exceeds one. If an instance only has one instance, a StaticMeshComponent is created instead. This is especially useful if using packed primitives to split geometry.

and

Attribute and packed primitives instancers can now be split using attribute values. The name of the attribute used to split the instancers can be set via the "unreal_split_attr" attribute (string). The specified attributes values will then be used to create multiple instancers instead of one. ie: setting the "unreal_split_attr value" to "tile" will create a separate instancer for each value of the "tile" attribute.

So i thought if I do this then i will have unique instances and no instancer would be created. Clearly I am doing some mistake but not able to figure it out.

So still waiting for a working solution.

ykhedar avatar Oct 06 '20 18:10 ykhedar

Hi,

It all depends on how your HDA is setup.

If when processing the OSM data, the building geometry you generate are just merged together in the HDA output, then the result will be one mesh with everything, as that is what merging geos is for.

If you want to separate the buildings, then I'd recommend packing them separately into individual packed primitives. This will create "one instance instancers", that the plugin will interpret as separate Static Mesh Components.

Baking the HDA will then result in individual Static Mesh Actors.

The unreal_split_instances and unreal_split_attr attributes are used when you're actually instancing meshes in your HDA, ie: instancing building meshes (from Unreal) via the HDA.

dpernuit avatar Oct 13 '20 17:10 dpernuit

Hi @dpernuit , Thanks for your tip. I was able to get this to work by using the Pack node before merge node. The names of all these meshes so generated is generic in nature. It is of the form "$hda_asset_name_instancer_0_*". I tried adding the "unreal_generated_mesh_name" and "unreal_bake_name" to override this generic name. But it seems to have no effect. Could you please point me to the solution. Thanks again. :)

ykhedar avatar Oct 24 '20 17:10 ykhedar

I also tried using the "unreal_output_name" and it changes the name of the meshes in the Houdini Outputs dialog but not in the World Outliner.

ykhedar avatar Oct 24 '20 19:10 ykhedar