There’s a bug that if you have modified the base MS material, for example because of turning on the virtual textures, it sometimes doesn’t compile properly, but the editor won’t throw any warning until you open the base material (not just the material instance) and recompile it. Then you should check output log for errors regarding unsupported nanite features.
I remember using one of the matlayerblend nodes which instead of the new get/set material attribute nodes uses the older break/make material attribute nodes. Just transferring the inputs between them, even if they are empty, can sometimes cause some nanite unsupported feature to trigger and therefore material end up unsupported and meshes turning black.
If that’s your case (it may, or may not be), then here’s how you’d fix it:
This is for example MatLayerBlend_MultiplyBaseColor:
You would make a copy of the material function into your game’s content folder, and change it up to use the newer get/set node, so other inputs aren’t possibly affected:
And you’d then use that function as a replacement.
I wish epic would just go over all the old MatLayerBlend node and modify them to use the newer get/set nodes. That was the source of issue in my case.