Houdini Engine for Unreal
 All Files Pages

Houdini Engine for Unreal supports both inputting and outputting meshes to/from Unreal.


There are multiple ways that you can use to import meshes from Unreal to Houdini. You can use geometry:

Sockets, colliders and LODs in the input Static Meshes can be imported to Houdini as groups and attributes when their respective Export checkboxes on the input UI are ticked.


Mesh Generation

Houdini assets contain Objects, Geos and Parts. These will control the way the resulting geometry in Unreal will be split in multiple meshes.

  • Object (OBJ) nodes are Houdini's transform nodes. They can contain other OBJ nodes or geometry (SOP) nodes.
  • Geo (SOP) nodes are Houdini's geometry container nodes. They do not contain geometry directly, instead, they contain parts.
  • Parts contain the actual mesh/geometry/attribute data.

In version 2, packed primitives can be used to easily separate multiples meshes in your output (ie, to create multiple parts from merged geometry). A pack primitive will always create its own part, and therefore, Static Mesh. If that packed primitive is not copied multiple times, a Static Mesh will be created instead of an instancer.

The only thing that might split meshes further is the use of collision groups or LOD groups.

A Static Mesh will be created regrouping all the LODs found in the part. Another one will be created for all the non-collidable / non-lod geometry from a part. Finally, additional meshes will be created for each complex collision geometry group present in the part.

Other groups used in the asset will not split parts into separate meshes.

All the meshes generated by the asset will be listed with their materials in the Houdini Outputs section.


This section will detail the type and number of colliders, the number of LODs and the number of sockets generated by the plugin for its corresponding Static Mesh.

Level of Details

Levels of Details can be generated easily by the plug-in via the use of LOD Groups .

Simply add the geometry for each LOD to a primitive group with a name starting with "lod", and the plug-in will create the corresponding level of details on the resulting Static Mesh. The alphabetical order of the group names will define the order of the LODs in the mesh (lod0 being the base level, then lod1, lod2 etc..).

LOD levels on a mesh can also be imported to Houdini: LOD groups will be automatically created by the plug-in if the mesh in a geometry input or world outliner input has more than one LOD level and the Export LODs checkbox is ticked on the input.

LOD Settings can be changed via the use of Generic UProperty Attributes :

  • The LOD used for collision can be changed via a detail attribute named "unreal_uproperty_LODForCollision".
  • The Minimum LOD can be changed via a detail attribute named "unreal_uproperty_MinLOD".
  • The LOD group can be changed via a detail string attribute named "unreal_uproperty_LODGroup".

Screensize values for each lod can be changed via a "lodX_screensize" detail attribute (lodX being the name of the LOD), or a "lod_screensize" primitive attribute. Manually changing the Screensize values for the LOD levels will turn 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 via Packed Primitives or Object Instancers.

Please make sure that the geometry inside of each LOD group is not packed, as the plugin will create a separate instancer instead of a LOD level for packed geometry.

Materials and Attributes

Houdini Engine for Unreal can recognize and convert various attributes to their Unreal equivalent.

  • Normals

You can use the standard normal (N - Point/Vertex - Float3) to set the normals of the mesh.

The plug-in can recompute the normals automatically. This can be controlled by changing the value of the Recompute Normals settings, located in the Static Mesh Build Settings part of the plug-in settings.

If normals are present, you can also have the tangents to be automatically recomputed by changing the Recompute Tangents plug-in settings.

  • UV sets

UV sets can be defined with the standard uv attribute (uv - Point/Vertex - Float2).

You can use up to 8 different uv sets by naming them respectively uv, uv2, uv3... uv8.

  • Colors

Vertex colors can be set by using the standard Color Diffuse attribute (Cd - Any - Float3 / Float4).

  • Lightmap resolution

The lightmap resolution of the mesh can be set by using the unreal_lightmap_resolution Integer attribute.

  • Materials

You can set up the Unreal Material used on the faces of a mesh by using the unreal_material string attribute, either on vertices or points. The value of this attribute must be set to a reference to a Material in the content browser (obtained by right clicking > "Copy Reference").

All the different materials used by a mesh will be listed in the Houdini Outputs section of the details panel. Please see Materials for more information.

  • Face Smoothing

The mesh smoothing mask data can be set by adding the unreal_face_smoothing_mask Int attribute on the primitives.

  • Generated Mesh Name

You can set the name used for the mesh generated by the plug-in by using the unreal_generated_mesh_name string attribute.

  • Colliders and Sockets

You can also add sockets and colliders to the mesh by using special Groups.

Nanite Settings

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

  • unreal_nanite_enabled : (int) Enables Nanite on the generated meshes if this attribute's value is not zero.
  • unreal_nanite_position_precision : (int) Indicates the position precision to be used when building Nanite Meshes. The Step size is 2^(-PositionPrecision) cm. The default value is set to MIN_int32 (auto).
  • unreal_nanite_percent_triangles : (float) Indicates the percentage of triangles to keep from LOD0, set to zero by default. (1.0 means no reduction, 0.0 means no triangles.)

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