FBX socket export/import seems completely busted (Houdini)

Mesh exports fine, we’ve got collisions exporting/importing fine, but sockets just vanish. This is on a static mesh.

We’ve followed all the naming schemes, looked at essentially every tutorial we can find, and nothing appears to work. No matter how we export an FBX from Houdini, Unreal’s side isn’t finding the exported sockets. I’m starting to wonder if Unreal 5 broke this somehow, since all the tutorials are for 4.x.

We even tried adding sockets on Unreal side and exporting them as an FBX, thinking well hey, we can see how Unreal sets them up then, and- the sockets didn’t export into the FBX when Unreal exported the FBX either.

Help? Anyone got this working from Houdini, without using Houdini Engine to essentially skip the FBX export step?

EDIT: It’s always an hour after posting the extremely public help-post that you find the fix, right?

Anyways, if anyone else hits this: the object in question has to be a NULL (or a bone, oddly- yes even on a static mesh it sweeps for bones). It can’t have any geometry assigned to it. Meaning if you were, say, using a box geo as your socket so you could visualize it? Nope, won’t work, silently fails. An empty geo node also seems to work.

There’s a pic in my tweet here if you want a visual reference of how the node looks in Houdini. https://twitter.com/glassbottommeg/status/1542210297984823296

1 Like

Thank you!
I was struggling to find resources for exporting unreal sockets from Houdini. Everything seems to reference how to do it in Houdini Engine, but completely ignores this workflow

Hi megalomanium,

I’m running into this issue myself now, and for my workflow I want to stay in SOPs, and not need to wrangle multiple NULL objects if possible.
Do you know if it’s possible to create socket geometry purely in SOPs?
I’ve tried several things, such as creating dummy geometry with a path attribute with the correct naming convention, and turning on the option to use the path attribute for the hierarchy. Also tried using empty packed geometry to just get the transforms, but doesn’t work either.

Anyway it’s great to know the workflow does work using object level Nulls!

Cheers

If it’s possible, we never found a way. This was basically the only workable solution we found. If you find one, update the thread! :smiley:

Thanks, I think I will try using Houdini Engine for ingesting geometry assets straight from Houdini .bgeo files, as the Houdini Engine docs state that you can set up custom collisions and sockets using specific naming conventions on attributes and groups in geometry.
Will report back with what I find!

Hey mega, it works much more nicely using Houdini Engine to generate the static meshes with custom collisions and sockets.
I just followed the docs to set up the correct groups and detail attributes on the geo, then write out a .bgeo file, and import that directly into the content browser and it works great!
So much better than setting it all up at the object level and exporting .fbx files.

Now I just wish Houdini Engine could generate skeletal meshes without having to use the fbx pipeline

Hi everyone, I figured this out and wanted to clear up any confusion. It is possible to add sockets at the SOP level without adding any nulls at the Object level.

Software Versions used -
UE 5.4.2
Houdini 20.0.748

  1. Use the Split/Blast node to remove all geometry. You can use the * symbol for this.

  2. Optionally delete any groups/attributes.

  3. Use the Add node to add points where your socket locations will be.

  4. Create a Point group for each socket you will have. Use either mesh_socket or socket as the prefix for the group.
    It’s not case-sensitive, i.e., MESH_socket, mEsH_Socket, SOCKET, etc will all work.

  5. Merge the points back to the original geometry that we blasted.

  6. Optionally assign a name and tag attribute to each socket using the point groups we made. Both are string attributes. Use mesh_socket_name and mesh_socket_tag as the naming conventions.

Nodes -

Add a point -

Create a point group -

Assign mesh_socket_name or mesh_socket_tag attribute -

NOTE:
Points do NOT add additional geometry to your meshes. Points are just a reference to a location in 3D space so feel free to add as many as you need.

GEO count before adding a socket -

GEO count after adding a socket -

Demonstration in UE5 -

Shameless plug - Follow me :slight_smile:
https://x.com/Caden_fps

I made a twitter thread with a breakdown that includes examples on how to setup multiple sockets based on an objects bounding box.

Check it out →

Is there a way to export this as an FBX, it works as bgeo but unfortunately that takes way too long if you’re dealing with a lot of pieces.