Hello UDN,
This isn’t a bug per-se, but rather a native behavior of Unreal my team is struggling to negotiate with.
My team is working on a project that utilizes USD very heavily, creating many custom UE EUW tools to extend USD functionality in the standard UE editor.
One of our tools changes material bindings on the usd (rel material:bindings) to specific values that we need for our use case.
However, we noticed that if a USD mesh is manipulated in the scene, it triggers a call to UnrealToUsd::ConvertMeshComponent which in turn calls UnrealToUsd::ConvertMaterialOverrides. Depending on the current state of material overrides of that particular mesh, UnrealToUsd::ConvertMaterialOverrides may forcibly stomp on the value we authored to that mesh’s prim’s rel material:binding in the USD.
Is there a way to prevent the UnrealToUsd::ConvertMaterialOverrides code from running and let my project handle the management of the material overrides for a given USD mesh? It makes sense that ConvertMeshComponent needs to run, but Unreal trying to forcibly write a mesh’s material overrides everytime the material is translated/rotated/moved/etc is troublesome when we’re authoring our own material bindings to that mesh.
Any suggestions would be appreciated!
Thanks,
Henry
[Attachment Removed]