Houdini 20.5 Unreal

Attributes and Groups

On this page

Certain special groups and attributes are used when marshalling data between Houdini and Unreal.

See the referenced topics for more details.

Note

Although attributes may indicates a preferred type, the plugin will try to automatically convert an attribute that has an unexpected type. For example, if you expected an int attribute but found a float attribute. The plugin logs a warning when an attribute’s value is converted to its expected type.

Note

When using packed primitives, either for instancing or creating multiple mesh outputs, the attribute’s location is important. Attributes created before packing will be applied to the generated mesh, whereas attributes created after packing will be applied to the generated component/actor.

Houdini to Unreal

This table lists special attributes to set in an HDA and the plugin recognizes when you translate the Houdini data to Unreal outputs. You can setup these attributes on your assets to control and override some properties and behaviours of the generated Unreal outputs.

Bake Outputs

Attribute Name

Owner

Type

Description

unreal_uproperty_tag_*

any

string

Prefix used to specify tags on the output object. This will apply the tags on the actor and all components related to this output object

unreal_uproperty_actorTag_*

any

string

Prefix used to specify Actor tags on the output object

unreal_uproperty_componentTag_*

any

string

Prefix used to specify Component tags for all components on the output object

unreal_uproperty_mainComponentTag_*

any

string

Prefix used to specify Component tags on only on the main component of the output object. If the output object is an actor, these tags will only be applied on the root component

unreal_output_curve

prim

int

Curves that have this attribute set to 1 will output as SplineComponents

unreal_output_curve_linear

prim

int

Indicates whether or not an output curve should be linear

unreal_output_curve_closed

prim

int

Indicates whether or not an output curve should be closed

unreal_level_path

any

string

Determines the level to which outputs are baked when baking to actors / foliage. Meshes, instancers, foliage and landscapes are baked to the specified level. This can be especially useful for world composition, baking landscape tiles and their associated instancers or foliage to a separate level per tile. This attribute is also available on inputs (where it is set to the path of the level where the input originated). The default value is ., which will generate geometry in the the current persistent world, paths starting with a / are considered absolute, otherwise paths are relative to the current persistent world’s Map. (supports String Tokens).

unreal_bake_folder

prim, detail

string

Unreal path of a Folder used to override the default Bake folder for this asset. Default value: {bake}. (Supports String Tokens)

unreal_bake_name

any

string

(deprecated) use unreal_output_name instead

unreal_bake_actor

any

string

Unreal path to an Actor that will be created/used when baking the given output

unreal_bake_actor_class

any

string

Unreal path, or classname, of the Actor class to use when spawning the bake actor. If missing/blank then Actor is used

unreal_bake_outliner_folder

any

string

Unreal path to a world outliner folder that will be created/used when baking the given output

Generic UProperty

Attribute Name

Owner

Type

Description

unreal_uproperty_*

any

int, float, string

Attribute prefix used to modify UProperties of the generated output objects/actors/components

Geometry Collections

Setting up these attributes on your asset allows you to control and override some properties and behaviours of the generated Unreal outputs.

Attribute Name

Owner

Type

Description

unreal_gc_piece

prim

int

Specifies the primitive as a GeometryCollection piece. The value represents the clustering level, or 0 to disable this behaviour

unreal_gc_cluster

prim

int

Specifies the primitive clustering index, to group multiple pieces of the same level to different groups

unreal_gc_clustering_damage_threshold

detail

float

Specifies the clustering damage threshold

unreal_gc_collisions_collision_type

detail

int

Specifies the collisions collision type. 0 = Implicit-Implicit, 1 = Particle-Implicit

unreal_gc_collisions_implicit_type

detail

int

Specifies the collisions implicit type. 0 = Box, 1 = Sphere, 2 = Capsule, 3 = Level Set, 4 = None, 5 = Convex

unreal_gc_collisions_min_level_set_resolution

detail

int

Specifies the collisions min level set resolution

unreal_gc_collisions_max_level_set_resolution

detail

int

Specifies the collisions max level set resolution

unreal_gc_collisions_min_cluster_level_set_resolution

detail

int

Specifies the collisions min cluster level set resolution

unreal_gc_collisions_max_cluster_level_set_resolution

detail

int

Specifies the collisions max cluster level set resolution

unreal_gc_collisions_min_level_set_resolution

detail

int

Specifies the collisions min level set resolution

unreal_gc_collisions_collision_object_reduction_percentage

detail

float

Specifies the collisions collision object reduction percentage

unreal_gc_collisions_mass_as_density

detail

int

Sets the collisions mass as density. 0 = unset, 1 = set

unreal_gc_collisions_mass

detail

float

Specifies the collisions mass

unreal_gc_collisions_minimum_mass_clamp

detail

float

Specifies the collisions minimum mass clamp

unreal_gc_collisions_collision_particles_fraction

detail

float

Specifies the collisions collision particles fraction

unreal_gc_collisions_maximum_collision_particles

detail

int

Specifies the collisions maximum collision particles

unreal_gc_name

prim, detail

string

Specifies the name of the GeometryCollection. Used to differentiate multiple GC outputs

Geometry Collections - Unreal Engine 5

These attributes are specific to Unreal Engine 5. UE5 Allows you to specify multiple “Size Specific Data”. In addition, each element of “Size Specific Data” allows you to specify an array of collision shapes.

Attribute Name

Owner

Type

Description

unreal_gc_clustering_cluster_connection_type

detail

int

Specifies the clustering connection type. 0 = Point implicit, 1 = MinimalSpanningSubsetDelaunayTriangulation, 3 = PointImplicitAugmentedMinimalDelaunay

unreal_gc_collisions_max_size

detail

float, float

The max size of the Size Specific Data. Required to specify multiple Size specific data

unreal_gc_collisions_damage_threshold

detail

int, int

The collision damage threshold for each Size Specific Data

unreal_gc_collisions_collision_type_X

detail

int, int

Specifies the clustering damage threshold. The _X specifies the index of the size specific data

unreal_gc_collisions_implicit_type_X

detail

int, int

Specifies the collisions implicit type. 0 = None, 1 = Box, 2 = Sphere, 3 = Capsule, 4 = Level Set. The _X specifies the index of the size specific data

unreal_gc_collisions_min_level_set_resolution_X

detail

int, int

Specifies the collisions min level set resolution. The _X specifies the index of the size specific data

unreal_gc_collisions_max_level_set_resolution_X

detail

int, int

Specifies the collisions max level set resolution. The _X specifies the index of the size specific data

unreal_gc_collisions_min_cluster_level_set_resolution_X

detail

int, int

Specifies the collisions min cluster level set resolution. The _X specifies the index of the size specific data

unreal_gc_collisions_max_cluster_level_set_resolution_X

detail

int, int

Specifies the collisions max cluster level set resolution. The _X specifies the index of the size specific data

unreal_gc_collisions_collision_object_reduction_percentage_X

detail

float, float

Specifies the collisions collision object reduction percentage. The _X specifies the index of the size specific data

unreal_gc_collisions_collision_particles_fraction_X

detail

float, float

Specifies the collisions collision particles fraction. The _X specifies the index of the size specific data

unreal_gc_collisions_maximum_collision_particles_X

detail

int, int

Specifies the collisions maximum collision particles. The _X specifies the index of the size specific data

unreal_gc_collisions_collision_margin_fraction_X

detail

float, float

Specifies the collisions margin fraction. The _X specifies the index of the size specific data

The X in the attributes that contain _X represents the index of the size specific data. Additionally, some of the collision attributes can either be a value or an array of values. An element at index i represents the value for the collision object at index i.

A value is identical to a value array of size one with only that value in it for backwards compatibility.

If you do not add the _X suffix, then it will be equivalent to index 0.

If you want to have more than one size specific data, then it must be specified using the unreal_gc_collisions_max_size attribute. For instance, the sequence of attributes unreal_gc_collisions_max_size = {1234, 12345} and unreal_gc_collisions_collision_type_1 = {0, 1} means that you have a GeometryCollection with two size specific datas, and the second size specific data has two collision shapes: One with a collision type of Implicit-Implicit, and the other with a collision type of Particle-Implicit.

Instancers

Attribute Name

Owner

Type

Description

unreal_instance

point, detail

string

Unreal path to an Asset that shall be instanced at the given transform. In version2, this attribute can also be a Class Name (PointLight for example)

unreal_foliage

detail, prim, point

int, float

When used on instances (and set to 1), the plugin will add the instances to the current level’s foliage system instead of creating new actors/components

unreal_foliage_attachment_type

point

int

Determines whether foliage should to attach to other objects in the level - 1 for yes, 0 for no, a value of 2 attaches to landscapes only.

unreal_foliage_attachment_distance

point

float

Distance to search vertically when using unreal_foliage_attachment_type. Default is 1000.

unreal_split_attr

any

string

Indicates the name of another attribute to be used to split the instancers into multiple components depending on that second attributes values

unreal_split_instances

detail, prim

any

(deprecated) use unreal_split_attr instead - Indicates that the generated instances should be split into StaticMeshComponents instead of one InstancedStaticMeshComponent

unreal_instance_color

prim

float(4)

(deprecated) Used with unreal_split_instances to specify a per-instance color to override the generated StaticMeshComponents vertex colors

unreal_hierarchical_instancer

any

int

When set to 1, forces the creation of HierarchicalInstancedStaticMeshComponent instead of InstancedStaticMeshComponents. This will also force the creation of a HierarchicalInstancedStaticMeshComponent even in cases where the instance count is only 1

unreal_force_instancer

any

int

When set to 1, forces the creation of an instancer component (InstancedStaticMeshComponent or HierarchicalInstancedStaticMeshComponent, the latter based on having LODs or unreal_hierarichal_instancer == 1) even if there is only one instance of a static mesh

unreal_num_custom_floats

any

int

Indicates the number of custom floats to be used for an instancer’s Per Instance Custom Data

unreal_per_instance_custom_dataX

any

float

Per-Instance Custom float data, where X is the zero-based index of the custom data

Landscapes

Attribute Name

Owner

Type

Description

unreal_material_hole

prim, detail

string

Unreal path of a Material asset used for Landscape holes

unreal_landscape_shared_actor_name

any

string

Name for the main/shared landscape actor when using landscape streaming proxies. The name for landscape tile actors will be read from unreal_output_name. Default Value: {hda_actor_name}_SharedLandscape. (Supports String Tokens)

unreal_landscape_layer_min

any

float

Specify the minimum values to be used for when converting heightfield layers/height values to landscapes. This is especially useful to ensure all tiles are converted in the same manner

unreal_landscape_layer_max

any

float

Specify the maximum values to be used for when converting heightfield layers/height values to landscapes. This is especially useful to ensure all tiles are converted in the same manner

unreal_landscape_write_locked_layer

any

int

Allows the layer’s data to be written to a locked Landscape Edit Layer

unreal_landscape_lock_layer

any

int

Locks the Edit Layer after writing

unreal_landscape_section_size

any

int

Specifies section size for landscapes. unreal_landscape_sections_per_component must also be set

unreal_landscape_sections_per_component

any

int

Specifies sections per component for landscapes. unreal_landscape_section_size must also be set

unreal_unit_landscape_layer

prim, detail

int

If set to 1, indicates that a heightfield mask’s value should be considered in 0, 1 when converting their values to landscape layers

unreal_landscape_layer_nonweightblended

prim, detail

string

Names of heightfields masks, separated by spaces, that should be created a non-weight blended landscape layers

unreal_landscape_layer_info

prim

string

Unreal path of an existing LandscapeLayerInfo object to be used when converting a given heightfield mask to a landscape layer

unreal_landscape_layer_noweightblend

prim, detail

int

Set the NoWeightBlend property on the corresponding paint layer’s LayerInfo object in Unreal to unchecked 0 or checked 1. This attribute takes precedence over unreal_landscape_layer_nonweightblended

unreal_landscape_output_mode

any

int

Set landscape output mode to Generate Landscape 0 or Modify Edit Layer 1

unreal_landscape_editlayer_name

any

string

Name of target edit layer

unreal_landscape_editlayer_target

any

string

(deprecated) use unreal_output_name instead

unreal_landscape_editlayer_type

any

string

Type of layer being output. 0 - Base layer, 1 - Additive layer. (Default: 0).

unreal_landscape_editlayer_clear

any

int

Whether to clear the whole editor layer before drawing the output heightfield (Default: 0).

unreal_landscape_editlayer_after

any

string

After which layer on the target landscape this output layer should be placed

unreal_landscape_editlayer_subtractive

prim, detail

int

This attribute can be set on heightfield masks to set the Subtractive Blend property to unchecked 0 or checked 1 on paint layers in Unreal

unreal_landscape_partition_grid_size

prim

int

This attribute controls the world partition grid size when creating landscapes. Only apply in levels that have world partition enabled

unreal_landscape_landscape_size

prim

int2

Used to indicate the total landscape size when importing a single tile

Landscape Splines general

The table lists the general attributes that affect landscape splines output.

Attribute Name

Attribute Owner

Description

unreal_landscape_spline

point, vertex, prim, detail

Set to 1 for the plug-in to recognize the curve primitives as landscape splines

unreal_landscape_spline_target_landscape

prim

The landscape to create the landscape splines on. This can be set to InputX (0, 1, …) to target an input landscape of the HDA

Landscape Splines edit layer

Attribute Name

Attribute Owner

Description

unreal_landscape_editlayer_name

point, vertex, prim

The name of the edit layer to create and apply the splines to

unreal_landscape_editlayer_clear

point, vertex, prim

Whether the edit layer should be cleared the first time it is altered during landscape spline translation

unreal_landscape_editlayer_after

vertex, prim

The edit layer specified in unreal_landscape_editlayer_name is moved to after this layer

Landscape Splines control point

The table lists the attributes that are supported for the control points of the landscape splines. Many attributes can be applied to either the curve’s points or vertices, but not both at the same time.

Attribute Name

Attribute Owner

Description

rot

point, vertex

The rotation of the control point

unreal_landscape_spline_control_point_id

point, vertex

The id of the control point. Valid ids are greater than or equal to 0. Values that are less than 0 indicate the point is not a control point

unreal_landscape_spline_control_point_lower_terrain

point, vertex

The Raise Terrain property on the control point

unreal_landscape_spline_control_point_mesh

point, vertex

Control point static mesh

unreal_landscape_spline_control_point_mesh_material_overrideX

point, vertex

Control point mesh material overrides

unreal_landscape_spline_control_point_mesh_scale

point, vertex

Control point mesh scale

unreal_landscape_spline_control_point_paint_layer_name

point, vertex

The Paint Layer Name property on the control point

unreal_landscape_spline_control_point_raise_terrain

point, vertex

The Raise Terrain property on the control point

unreal_landscape_spline_end_falloff

point, vertex

The End Falloff property of the control point

unreal_landscape_spline_half_width

point, vertex

The Half-Width property of the control point

unreal_landscape_spline_side_falloff

point, vertex

The Side Falloff property of the control point

Landscape Splines segment

The table lists the attributes that are supported for the segments and segment connections of the landscape splines. These attributes can be applied to each point or vertex and affect the segment starting at that point or vertex. If the attribute does not exist on the points or vertices of the curve then the primitive is checked, and any attribute found is applied to all segments in the spline.

Attribute Name

Attribute Owner

Description

unreal_landscape_editlayer_name

point, vertex, prim

The name of the edit layer to create and apply the splines to

unreal_landscape_editlayer_clear

point, vertex, prim

Whether the edit layer should be cleared the first time it is altered during landscape spline translation

unreal_landscape_editlayer_after

point, vertex, prim

The edit layer specified in unreal_landscape_editlayer_name is moved to after this layer

unreal_landscape_spline_segment_connectionX_mesh_socket_name

point, vertex, prim

Segment connection 0 and 1: The socket name on the control point to use at the segment control point connection

unreal_landscape_spline_segment_connectionX_tangent_length

point, vertex, prim

Segment connection 0 and 1: The tangent length of connection point at this end of the segment

unreal_landscape_spline_segment_lower_terrain

point, vertex, prim

The Raise Terrain property on the segment (whether or not the landscape can be raised when the spline is applied)

unreal_landscape_spline_segment_meshX

point, vertex, prim

Segment meshes. X is omitted for the first mesh, then 1, 2, 3…

unreal_landscape_spline_segment_meshX_material_overrideY

point, vertex, prim

Segment mesh material overrides

unreal_landscape_spline_segment_meshX_scale

point, vertex, prim

Segment mesh scales

unreal_landscape_spline_segment_paint_layer_name

point, vertex, prim

The Paint Layer Name property on the segment (the layer that is painted when the spline is applied to the landscape)

unreal_landscape_spline_segment_raise_terrain

point, vertex, prim

The Raise Terrain property on the segment (whether or not the landscape can be raised when the spline is applied)

Level of Details

You can change the LOD settings on the Generic UProperty Attributes.

Attribute Name

Owner

Description

unreal_uproperty_LODForCollision

Detail

Sets the LOD used for collision

unreal_uproperty_MinLOD

Detail

Sets the minimum LOD

unreal_uproperty_LODGroup

String

Sets the LOD Group

lodX_screensize

Detail

Sets the screensize values where lodx is the name of the LOD

Note

Manual change of the screensize values turns off AutoComputeLODScreenSize on the static mesh

lod_screensize

Primitive

Sets the screensize values of the LOD

Note

Manual change of the screensize values turns off AutoComputeLODScreenSize on the static mesh

Meshes generated by Houdini Engine that have LOD groups will automatically create Hierarchical Instanced Static Mesh Components when instanced, either on Packed Primitives or Object Instancers.

Note

Make sure the geometry inside of each LOD group is not packed. The plugin will create a separate instancer instead of a LOD level for packed geometry.

Materials

Attribute Name

Owner

Type

Description

unreal_material

any

string

Unreal path of a Material asset to apply to an output. You can specify the material slot by prefixing the path with the slot number in square brackets.

unreal_physical_material

prim, detail

string

Unreal path of a PhysicalMaterial asset to be used as a Physcial Material on the output

unreal_simple_physical_material

prim, detail

string

Unreal path of a PhysicalMaterial asset to be used for Simple Unreal Collisions

unreal_face_smoothing_mask

prim

int

Mesh smoothing mask data

Material Instances

Attribute Name

Owner

Type

Description

unreal_material_instance

prim, detail

string

Unreal path of a Material asset to create an instance of

unreal_material_hole_instance

prim, detail

string

Unreal path of a Material asset to create an instance of, to be used for Landscape holes

unreal_material_parameter_*

detail

any

Attribute prefix used to modify generated material instances' parameters

Meshes

Attribute Name

Owner

Type

Description

unreal_lightmap_resolution

any

int

Lightmap resolution for the mesh component

unreal_output_name

any

string

Name to be used for the output. Default value for single landscape actor: Landscape

unreal_disable_gamma_correction

any

int

Meshes

If not 0, gamma correction is not performed when reading the 'Cd' attribute.

unreal_generated_mesh_name

any

string

(deprecated) use unreal_output_name instead

unreal_nanite_enabled

any

int

Enables Nanite on the generated meshes (UE5)

unreal_nanite_position_precision

any

int

The position precision attribute to be used for Nanite Meshes (UE5)

unreal_nanite_percent_triangles

any

int

The percent of triangles to keep for Nanite Meshes, zero by default (no triangles) (UE5)

Meshes Nanite

(UE5 only) The plugin can control the Nanite settings on the meshes found in the outputs of your HDA by using the following attributes:

Attribute Name

Owner

Type

Description

unreal_nanite_enabled

any

int

Turns on Nanite on the generated meshes.

unreal_nanite_position_precision

any

int

The position precision attribute for Nanite Meshes.

unreal_nanite_percent_triangles

any

int

The percent of triangles to keep for Nanite Meshes, zero by default (no triangles).

unreal_nanite_fallback_relative_error

any

float

Fallback relative error - sets the maximum amount of relative error allowed when removing details from the source mesh. This relative error value doesn’t have a unit size and is relative to the size of the mesh.

unreal_nanite_trim_relative_error

any

float

Trim relative error - All detail in the source mesh with less visual impact than this relative error amount is removed. This relative error value doesn’t have a unit size and is relative to the size of the mesh.

Having any of those three attributes automatically enables Nanite on the generated Static Meshes. This only applies to refined meshes, as Houdini Proxy Meshes do not support Nanite.

Mesh Sockets

Attribute Name

Owner

Type

Description

mesh_socket_name

point

string

Name of a mesh Socket generated by Point Groups

mesh_socket_tag

point

string

Tag of a mesh Socket generated by Point Groups

mesh_socket_actor

point

string

Name of an Actor to be automatically attached to a socket generated by Point Groups. In V2, this can also be a path to an asset that will be instantiateed as an Actor and attached to the socket

mesh_socketX_pos

detail

float3

Vector3 representing a Mesh Socket’s location

mesh_socketX_rot

detail

float4

Quaternion used for a Mesh Socket’s rotation

mesh_socketX_scale

detail

float3

Vector3 representing a Mesh Socket’s Scale

mesh_socketX_name

detail

string

Name of a generated Mesh Socket

mesh_socketX_tag

detail

string

Tag of a generated Mesh Socket

mesh_socketX_actor

detail

string

Name of an Actor to be automatically attached to

Unreal to Houdini

These attributes are available in Houdini when using Input Types to marshall data from Unreal to Houdini.

These Standhard Houdini Attributes are generally available: position p, vertex colorsCd, Alpha, normals N* and UV setsuv, *uvX.

You can see these attributes and their values by Debugging the internal Houdini Scene (File ▸ Open Scene In Houdini) after initializing your asset’s Inputs.

This table lists special attributes which are created by the plug-in when importing data from Unreal to Houdini.

Geometry Collections

All output attributes in the above table are imported into Houdini in addition to the attributes below:

Attribute Name

Owner

Type

Description

unreal_input_gc_name

detail

string

The path name of the geometry collection

unreal_actor_path

detail

string

Path to the actor that contained the input data/should be generated. Only available if Actor is specified as input

unreal_level_path

detail

string

Path to the level in which an actor should be generated or which contained the input data. Only available if Actor is specified as input

Inputs

Attribute Name

Owner

Type

Description

unreal_object_path

prim

string

Path to the input object

unreal_level_path

prim

string

Path to the level that contained the input data

unreal_actor_path

prim

string

Path to the selected input actor

unreal_input_mesh_name

prim

string

Unreal path of the mesh uasset plugged in the input

unreal_input_source_file

prim

string

Source path of the uasset plugged into the input (file path to the source .fbx for example)

unreal_material

prim

string

Path to a material asset used on the input

unreal_material_hole

prim

string

Path to a material asset used as hole material on the input landscape

unreal_material_parameter_*

prim

string

Prefix used when importing all the Scalar/Vector/Texture parameters of a material as attributes. The parameter’s name then follow this prefix

lodX_screensize

detail

Float

Screensize value for LOD number X of the input mesh

unreal_tag_*

prim

string

Prefix used to import the input object/actors tags as attributes

unreal_data_table_*

point

string

Prefix used when importing table via a Geometry input, each attribute will be named: unreal_data_table_COL::_NAME

unreal_datatable_rowstruct

point

string

Attributes storing the type of data table (FDataTableRowStruct) for the input data table.

unreal_level_instance_name

point

string

Name of the level being instanced in a level instance actor.

Materials

Attribute Name

Owner

Type

Description

unreal_simple_physical_material

prim

string

Unreal path of a PhysicalMaterial asset taken from simple collisions

Mesh Sockets

Attribute Name

Owner

Type

Description

mesh_socket_name

point

string

Name of a mesh Socket imported from the input object

mesh_socket_tag

point

int

Tag of a mesh Socket imported from the input object

mesh_socketX_pos

float3

int

Vector3 representing the location of the socket imported from the input object

mesh_socketX_rot

float4

string

Quaternion representing the rotation of the socket imported from the input object

mesh_socketX_scale

float3

int

Vector3 representing the scale of the socket imported from the input object

mesh_socketX_name

detail

string

Name of the imported Mesh Socket

mesh_socketX_tag

detail

string

Tags of the imported Mesh Socket

Landscapes

Attribute Name

Owner

Type

Description

unreal_vertex_index

point

int2

Component vertex indices (indices of vertices within the grid - x,y)

unreal_landscape_streaming_proxy

prim

int

Set if the input landscape actor is a streaming proxy

Groups

Some special group names have naming schemes which specify generation behavior when marshalling data from Houdini to Unreal. See the referenced topics for details on how each works.

Collisions

Complex collision

Group name

Description

collision_geo

Creates a complex collision (invisible)

rendered_collision_geo

Creates a complex collision (visible)

Warning

DO NOT use the rendered_collision_geo attribute for your custom collision. This results in Unreal generating a collision based on your original asset and not your custom collision.

Convex collision

Group name

Description

collision_geo_ucx

Creates a convex hull collision (invisble)

rendered_collision_geo_ucx

Creates a convex hull collision (visible)

Simple collision

Group name

Description

collision_geo_simple

Creates a default simple collision (invisible)

rendered_collision_geo_simple

Creates a default simple collision (visible)

collision_geo_simple_box

Creates a simple box collision (invisible)

rendered_collision_geo_simple_box

Creates a simple box collision (visible)

collision_geo_simple_sphere

Creates a simple sphere collision (invisible)

rendered_collision_geo_simple_sphere

Creates a simple sphere collision (visible)

collision_geo_simple_capsule

Creates a simple capsule collision (invisible)

rendered_collision_geo_simple_capsule

Creates a simple capsule collision (visible)

collision_geo_simple_kdop10x

Creates a simple 10DOP-X collision (invisible)

rendered_collision_geo_simple_kdop10x

Creates a simple 10DOP-X collision (visible)

collision_geo_simple_kdop10y

Creates a simple 10DOP-Y collision (invisible)

rendered_collision_geo_simple_kdop10y

Creates a simple 10DOP-Y collision (visible)

collision_geo_simple_kdop10z

Creates a simple 10DOP-Z collision (invisible)

rendered_collision_geo_simple_kdop10z

Creates a simple 10DOP-Z collision (visible)

collision_geo_simple_kdop18

Creates a simple 18DOP collision (invisible)

rendered_collision_geo_simple_kdop18

Creates a simple 18DOP collision (visible)

collision_geo_simple_kdop26

Creates a simple 26DOP collision (invisible)

rendered_collision_geo_simple_kdop26

Creates a simple 26DOP collision (visible)

Level of details

Group Name

Description

lod_*

Prefix used for defining a Mesh’s LOD level

Mesh Sockets

Group Name

Description

socket_*

Prefix used for adding sockets

Standard Houdini Attributes

Certain standard Houdini attributes are used when marshaling data between Houdini and Unreal.

Attribute Name

Description

instance

For object-level instancing, See Instancers

p

position

rot

rotation

scale

scale

pscale

uniform scale

Cd

color

Alpha

opacity

N

normal

uv

uv

uvX

additionnal uv channels X from (2..8)

Note

Since Houdini 16.5, uv SOP nodes allow you to change the attribute name used for storing the uvs. These attributes are supported by the plug-in, and will be converted to uvs as long as the total number of uv attributes doesn’t exceed the MAX_STATIC_TEXCOORDS value in Unreal (8 by default).

The transform of the Houdini Asset in Unreal is available on the asset’s parent object transform in Houdini. For example, you could obtain the X Position by using the following python expression in your HDA: hou.parent().worldTransform().extractTranslates('trs').x()

Parameter Tags

Certain parameter tags can be used to control the behaviour fo the exposed parameter in Unreal:

Parameter Tag Name

Associated Parameter Type

Description

unreal_ref

string

When set to 1, the string parameter will be created as an AssetPicker in Unreal, that sets the string’s value to the selected asset’s path

unreal_ref_class

string

When used with the “unreal_ref” tag, can be used to specify a class used to filter the asset picker

hengine_noswap

Float (tuple3)

Indicates that the Vector3 Y and Z values should not be swapped in Unreal

filechooser_mode

File

When set to read, the file parameter will be Read-only

default_dir

File

Default directory used when opening the Browse dialog

Generic UProperty Attributes

The aim of this system is to allow you to modify any available property in the objects and meshes generated by the plug-in by using generic attributes. Since you can’t set all the properties in the components generated by the plugin, this system allows you to preset these properties using attributes.

To set these properties:

  1. Add an attribute to your HDA that starts with unreal_uproperty_

  2. Append the name of the uproperty you want to modify.

  3. Houdini Engine then tries to find the uproperty that corresponds to the attribute in the generated mesh components and set its property’s value to your settings.

For example, if you want the static mesh component generated by your asset to have the Simulate Physics property activated, add a detail attribute called unreal_uproperty_SimulatePhysics, and set its value to 1. The static mesh generated by your asset now has the Simulate Physics property enabled.

The uproperty attributes can be floats, integers, or strings. The plug-in will always try to convert the attribute’s value to the uproperty’s type.

For example, the boolean uproperty UseEmissiveForStaticLighting can be set to true by using an int attribute set to 1, a float attribute set to 1.0 or a string attribute set to true if the attribute is named unreal_uproperty_UseEmissiveForStaticLighting.

Vector Uproperties, like Center Of Mass Offset, can be set using an attribute of size 3.

Correspondance between Uproperties and the attributes are done using either the uproperty’s name (the name of the uproperty in the source code) or it’s display name without space (the name used in the details panel).

The Center of Mass Offset property can for example, be modified either by using an attribute called unreal_uproperty_centerofmassoffset (using the display name) or unreal_uproperty_comnudge (using the uproperty name).

Generic Property attributes can also be used to modify properties of the Houdini Asset Component itself. This allows you to preset some of the Houdini Asset Component’s default properties, like the Cook Triggers, Auto-Bake, Use Output Nodes etc… In order to be applied to Houdini Asset Component itself, these attributes must be set on the details.

ie: i@unreal_uproperty_bUseOutputNodes = 1;

If you want to get a list of property attributes for a given object type/class, you can use the Houdini.DumpGenericAttribute Log Command. This will list all of the generic property attribute that the plugin sees for the given type, listing its attribute name, unreal name and display name, as well as its Unreal and Houdini types.

To use it, simply open the “Output Log” panel, and in the “Cmd” box, type “Houdini.DumpGenericAttribute XXXX”, replacing XXX with the Class you want the list for.

ie: Houdini.DumpGenericAttribute StaticMesh

String Tokens

Not all attribute values can be determined ahead of time and may need more contextual information (post-cook) to fully resolve the output values. For example, the default output name or path for a Static Mesh asset depends on whether the HDA is currently running in Temp mode or in Bake mode.

Token

Description

world

Path to the Map that contains the current persistent world

hda_level

Path to the Map that contains the level in which the current HDA has been placed

hda_name

The type name of the current HDA

hda_actor_name

The name of the current HDA actor

object_name

Name of the package we want to create. If null, we’ll generate one from: ASSET_OBJ_GEO_PART_SPLIT (without PDG), or ASSET_TOPNET_TOPNODE_WORKITEMINDEX_PART_SPLIT (with PDG)

pdg_topnet_name

For temporary PDG outputs: the TOP network name

pdg_topnode_name

For temporary PDG outputs: the TOP node name

pdg_workitem_name

For temporary PDG outputs: the TOP node name

guid

A GUID that identifies the owning Houdini Asset Component

out

Contextual output folder, depending on whether the HDA is operating in Temp mode or Bake mode. If the HDA is in Temp mode, this value will match the value of the temp token. If the HDA is operating in Bake mode, this value will match the value of the bake token

temp

Base folder that will be used when creating assets in Temp mode

bake

Base folder that will be used when creating assets in Bake mode

Examples

Bake to the HDA level

  • 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}”.

Bake to a target level

  • To bake actors to a level (named MySubLevel) that is relative to the current persistent level, set unreal_level_path attribute to {world}/MySubLevel.

  • To bake actors to a specific level (using an absolute path), set unreal_level_path attribute to the package path /Game/Maps/MyTargetLevel.

Unreal

Getting started

Basics

Using Houdini Engine

Scripting

Reference