The way I do it is turn the materials into images by ‘baking’ them. I do not recall the full process but I shall outline what I do remember, though I suggest searching up something like ‘Baking in Blender.’
Perhaps there’s a better way, but what I do is:
-Select a material I wish to convert
-Open the shader editor view
-Add an image texture
-There is no need to connect this node to the material node
-Give it a name, choose a size. 1024 is the maximum for roblox i believe, and roblox will automatically compress anything bigger. If there will be no transparency, you can turn off the Alpha channel
-Do the same for every material. If you want different materials in one Image, then instead of pressing New, press the dropdown next to it and select the first image you made/the image you wish all those materials to appear on.
-MAKE SURE all the new Image Texture nodes are selected/highlighted/outlined when you leave them.
-Go to Scene and, I believe you need to set the render engine to Cycles
-Scroll down to Bake and, I believe these are the settings you should want.
-For materials you wish to be present on the same image, make sure the UV maps for those meshes aren’t overlapping (you should also make the most of the UV space to make the most of the texture resolution.)
-Then, click Bake, and if i missed nothing and you did it right, an image should generate, which you can view from the Image Editor view. It should appear within the view by default, if not, there is a dropdown menu at the top of the Image View where you can select an image.
-Press Image>Save Image
-I do not recall if converting the file to FBX at this point will make roblox automatically aquire baked textures when you try to import it. If not, you can always import the textures seperately.
-You probably want a different image for each seperate object since roblox can only apply one texture to each object.
Read more here: Source link