I don’t need to get edge weights from Modo into other applications much.
Last time I tried was Modo sub-d with edge weights -> Mudbox (this short sword).
I had some issues with it, but it mostly worked ok (I think I used fbx 2013).
This time around, I have an object I want to take from Modo to Houdini.
I didn’t have the same luck as I did with Mudbox back in the day.
I don’t think Houdini imports crease (edge weighting) info from fbx. I probably could have tried another format, though. Or maybe there is some checkbox I missed somewhere 🙂
In the end, I found another fairly painless way of doing it!
Edge selection to UVs
When modelling in Modo, I usually create an edge selection group from all edges of the same edge weight:
For this exporting trick, having this group makes life easy.
Also, only having 1 set of edge weights helps (i.e everything is either 30% or 0%), since we’d need a new UV set per edge group (more on that later).
So, with all those edges selected, I run the unwrap tool:
Export the mesh with the new unwrap to fbx, and then into Houdini.
Here is what my geometry network looks like (merged the fbx into the scene, and re-arranged a bit):
So what I love about this is that it ends up being really simple:
- Split the vertices of the mesh by the uv attribute
- Group unshared edges (this gets the open edges that were created by the vertex split, which basically gets us back the Modo hard edge selection set).
- Set the crease weight values for edges in the group
- Copy the crease weights back onto the non split mesh with a wrangle
(@creaseweight = @opinput1_creaseweight)
On the “crease” node, I just dragged the value slider around until it matched Modo (a value of 3 seemed to do it).
If I had edges weighted at different values, I’d need to create a UV set for each unique value, and do the vertex split + group + crease for each UV set.
I’m still hanging on to the dream of more companies adopting edge weighted sub-d in games.
Creased sub-d is coming to UE4 someday, so that’s exciting 😛
In the meantime, at least I have a pretty easy/slightly hacky workaround!