Technical bits - Houdini to Unreal FBX export workflow
A short guide to exporting geometry with separate meshes as FBX from Houdini to Unreal Engine.
When exporting FBX from a SOP node in Houdini, particularly after merging, all existing meshes get combined into a single geometry. While for some that might be goal, it means nothing can be moved, separated or textured individually. Blender for example has an option to split by group
when importing meshes, so if the geometry is grouped accordingly, there's no need to do anything else.
In UE however, any FBX import from Houdini is just one big geometry. Given that my goal was to create the materials in UE, having separate meshes was a must. I found a workaround with the help of a youtube video which I'll drop here (thank you random stranger on the internet). I wanted to document this workaround for my own future use and for anyone that might find this sort of workflow helpful.
• Helpful video from helpful stranger here
-
I still start with groups – I create base groups of all the meshes I would like to have as separate pieces. This is particularly useful when working with
copy-to-points
nodes as I want to group all the copied geometries. This also ensures I have the correct mesh selected. -
After grouping, I attach a
name
node with the group selected. For convenience you can toggle onName from Group
, but I find it better for clarity to name my geometry asgroupname_geo
, which helps me mentally differentiate between the two.
VERY IMPORTANT NOTE
One error I encountered that is very easy to miss, particularly when there are lots of meshes and/or like me, you're using an HDA and then merging some extra geometries outside of the HDA into a final asset: make sure ALL meshes included in the final geometry (the one being exported) are named. Otherwise, the file will fail to export (">> cannot create node with empty name for primitive 0")
- At last, before the final ROP FBX Output node we add a 'pack' node, which will ensure the separation of geometry based on name. I enable
Path Attribute
andName Attribute
, as well as disablingCreate Packed Fragments
. This should ensure that the pack node draws from the name attribute when exporting, thus preserving the groups we set up earlier.
Finally, set up your ROP FBX Output however you want, and you should be able to import the file into UE as separate meshes. For me, this was a good enough method to render my model in UE and be able to set up different materials/shaders for each mesh.
'Till next time!