On this page

Mesh sockets are useful if you want to attach something to your meshes in Unreal without having to parent and set the transform of the objects manually. Houdini Engine for Unreal supports the creation of mesh sockets either by using Point Groups or with Detail Attributes.

By default, found sockets are attached to meshes generated by the same part. If no valid meshes for that part are found, then the sockets attach to meshes created from the same geo as the sockets.

Input

You can import the mesh sockets found on input Static Meshes. When the Export Sockets checkbox is enabled on the input, the plugin automatically creates the point, groups, and attributes to the mesh’s sockets.

Output

Using Point Groups

To create mesh sockets, you need to assign points to a point group with the prefix mesh_socket.

The position P, rotation rot, and scale scale attributes of these points defines the socket’s transform.

If the rotation attribute is not found, the socket’s rotation can be deduced from the normal Nattribute of the point if it’s present.

Note that the rot attribute should be set as a quaternion (float 4) and not an euler angle.

You can define a socket’s name by adding a string attribute to the points named mesh_socket_name, and a socket’s Tag by using an attribute named mesh_socket_tag

You can display and edit the generated sockets in the static mesh editor.

To attach actors to them, drag and drop an Actor on the asset in the World outliner or use the “Attach to” in the context menu.

Attribute Wrangle Example

Here’s an example VEX snippet that can be used in a attribute wrangle to create two sockets via detail attributes:

v@mesh_socket0_pos = {0.5, 0.5, 0.5};
v@mesh_socket0_scale = {2, 2, 2};
s@mesh_socket0_name = "plip";
s@mesh_socket0_tag = "test";
s@mesh_socket0_actor = "Cube";

v@mesh_socket1_pos = {0, 0.5, 0};
v@mesh_socket1_scale = {0.5, 0.5, 0.5};
s@mesh_socket1_name = "plop";

Detail Attributes is recommended over Point Groups, especially when using Packed Primitives.

Assignment

You can assign existing actor assets from the content browser to the sockets generated on the Static Mesh Components.

  • Add a string attribute named mesh_socket_actor containing the name of the actor, path of or the path the asset.

Multiple actors can be pre-assigned to a socket. Separate their names with , or ; (commas or semicolons).

An actor is created if the attribute is set to an asset and that path is valid. The matching actors automatically attaches to the sockets in Unreal upon cook.

Note

If multiple actors in the world match the mesh_socket_actor attribute, they all assign to that socket. Also, if multiple sockets point to the same actor for pre assignement, only the last socket has the actor assigned.

Attributes and groups

Detail Attributes

You can also create mesh sockets by using the following Detail Attributes: X being the 0 based index of the socket.

Command

Function

IsSessionValid

Returns true if a valid Houdini Engine session is running/connected

Name

Type

Description

mesh_socketX_pos

float[3]

Vector3 representing the socket’s location

mesh_socketX_rot

float[4]

Quaternion used for the socket’s location

mesh_socketX_scale

float[3]

Vector3 representing the socket’s Scale

mesh_socketX_name

string

For the socket’s name

mesh_socketX_tag

string

For the socket’s Tag

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. See Attributes and Groups for more information.

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

This table lists special attributes which are created by the plug-in when importing data from Unreal to Houdini. See Attributes and Groups for more information.

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

Groups

Some special group names have naming schemes which specify generation behavior when marshalling data from Houdini to Unreal.

Meshes