I’m finding this painful, so I guess I am doing something wrong.
Let’s say I want to make my own slate roof material and apply it to part of a roof, I would then like to snap another part (different size, common geometry edge) with the same material next to it and have the material tile seamlessly between the two.
It seems I have 3 options:
Material Variant:
I can define my own color, metal, normal and roughness maps and scale it - great.
But it does not appear to take any notice of UV maps, so although my parts have similar UV map orientation/positions (identical for the face I want to match) the material application is offset by an unknown amount, giving an undesired edge.
Apply a texture:
This allows UV offsets so I can perfectly align edge conditions - great. But it is just an image, no metal, roughness or normal. So it looks different when next to a full material surface depending on lighting and viewing angle.
Use Surface Appearance:
Just like a material variant, but still no UV control. (hard to see the point of this).
So how do I align UVs for custom materials when I want color, metal, roughness and normal?
I’d go with MaterialVariants for your use-case. Roblox doesn’t allow you to manually edit UVs for meshes, and the “Texture” properties you mentioned are not really what Blender has. They simply offset the texture or size it.
Unfortunately, the objects are meshed parts placed as part of a kit, so union is not available. For now I’m using Texture as it is the only way to have a seamless aligned image, although obviously I lose the nice material appearance.