First I couldn't make an USD with Unreal materials and MaterialX work at the same time, so it seems you need to decide which one you want to use. Changing the USD Stage Editor > Options > Render Context changes which material kind you'll see (click the bulletpoint instead of the text if you want the menu to continue open).
--Unreal Materials
I got the unrealMaterial attribute working, just make sure it's not named as primvars:unrealMaterial, and it's not an Array like it will be if you set it as polygons attribute. You can simply set it in an Attribute Wrangle LOP, or if using SOP Create LOP you can put it in the USD Custom Attributes parameter so it avoids the primvar: prefix. It can be set to subsets.
The path to the Unreal material can either have the Type bits before /Game/ like this "/Script/Engine.Material'/Game/StarterContent/Materials/M_Basic_Floor.M_Basic_Floor'" or shorter like '/Game/StarterContent/Materials/M_Basic_Floor.M_Basic_Floor', it doesn't seem to matter.
--MaterialX
So first thing is that the materials shouldn't come inside of the USD but the .mtlx files referenced in it. So in your USD ROP make sure in your Save Style you are "Preserving References". Flattening the Stage will prevent the materialX's from working in Unreal.
I haven't figured out if there's a way of using relative paths, so I just didn't use any Houdini variables like $HIP and made sure all my paths were absolute.
If you authored your mtlx in Houdini exporting it from a Mtlx Surface Material node works for me, when exporting from Mtlx Standard Surface or Collect nodes it doesn't.
--
So because of having to decide which Render Context to work with, it seems to me that if it's not important for you to have your materials set in Houdini, you should simply set the unrealMaterial primvar and have all your materials in Unreal, even your MaterialXs, as you can import them separately from your USD. This way you can mix them with Bridge's surfaces easily, for intance.
USD Preview Materials also work out of the box but for some reason sometimes the BaseColorScaleTranslation color come with weird values in the alpha that I need to reset for the textures not to be all stretched out.
As a side note, lights and cameras were imported nicely on first try, with even correct area lights colour/sizes and focus length. Also, transform animations and point deformations come for free, so the whole process is looking promising.
I attached a zip with my HIP, USD, MTLX and texture files for you to play with. Just check the paths as they'll be absolute, and here's a preview of Houdini next to Unreal:
Cheers
Image Not Found