Substance Painter to Studio Tutorial | SurfaceAppearance PBR

Substance Painter is perhaps the most powerful tool offered for texturing game assets, and as of recent, Roblox games as well!

“SurfaceAppearance” allows you to input 4 different texture maps for meshes using Physically-Based Rendering (PBR) to provide more accurate mesh lighting and textures. You can read more about it here:

Examples of PBR in Studio

FRONTLINES - Roblox

Scene by ArtBlox


Scene by ash

We’ll cover exporting from Substance Painter to Blender, applying textures to your mesh there and then exporting the mesh as an .FBX for use in Roblox Studio.


You should have a textured mesh ready for export in Substance Painter.

We’ll start exporting our textures by going to File > Export Textures

In the SETTINGS tab, set an export location for your textures. I recommend you make a general folder for all your exports, with subfolders for each project.

Then, select Roblox (SurfaceAppearance) from the dropdown as your output template:

It’s important to know that this template is only available on very recent versions of Substance Painter. This screencap was taken on version 8.3.1.

If you're on an older version, open this hidden image and copy these settings. The colored squares correspond to the smaller ones on the right side of the screen.

Here are what the rest of your settings should look like:

“Wait a minute. Why only 1024x1024? Substance Painter can export 8K textures!”
The huge caveat in uploading textures to Roblox at the moment is that textures are capped at a 1K resolution. Even if you tried uploading a 4K texture, it would only make the process longer and your file size larger. It will still reduce it down. So, for the time being, just stick to 1K. Sorry!

Now, having selected your texture sets from the left list, you can click Export and sit back while it works away!

You can export your mesh from Substance Painter using File > Export Mesh if you need to, but this isn’t necessary if you already have a mesh file.


Open your .blend scene where your mesh is located. The first thing we’ll want to be doing is enabling the Node Wrangler plugin.

Go to Edit > Preferences > Add-ons then search for Node Wrangler and enable it.

We’re going to be using the Shader Editor window to apply our texture maps, and the simplest way to open this is going to the default Shading layout at the top of your screen.

Your screen should look like this. The important window is the Shader Editor at the bottom, where we can see the node graph.

Select the Principled BDSF node.
(If you don’t have one, press Space and make one and connect the BSDF to a Material Outpout node.)

Press Ctrl+Shift+T to open your file browser, then select the 4 maps that you exported from Substance.

6cb9aa38f57ded92f182bf3b6caefe84

Node Wrangler will automatically import and connect your texture maps to the selected BSDF node. Repeat this process for every texture set that you have. Switch the material you’re working in by clicking on different meshes.

Make sure viewport shading is on, and check that your textures have loaded.

image

Looks good!

Now, you can select your mesh, and go to File > Export > .fbx to create a file in a chosen directory.


Importing your mesh will be done in the Import 3D window. You can access it through the Home tab.

image

You’ll be prompted to open your mesh file. After you select it, you’ll see this screen:

Open the dropdowns on each mesh to view their material. Make sure you aren’t getting any errors.

Adjust the settings as needed, such as renaming meshes.

Click Import and voilà! Your mesh is imported! Scale it as you see fit, and adjust any mesh positions.

Congratulations! Your mesh is ready to use!

Move your camera around your mesh to make sure that your Normal maps work as intended. If something is off, refer to the aforementioned documentation to optimize your lighting settings.

Read the documentation on the 3D Importer to help troubleshoot any problems:

Using opacity maps in Studio

The Roblox (SurfaceAppearance) template uses the Opacity map from Substance Painter. What this means for you is that you can use AlphaMode to either change the overlayed color of a mesh using it’s BrickColor or as a way to add transparency to objects.

If you’d like to learn how to paint opacity into your textures, I suggest following this tutorial by Stylized Station.

image

Using Overlay allows you to change the color of the mesh using BrickColor.
c01e85ac3759c4a40b7baefa50aad072

Using Transparency will make your mesh transparent (shocker) where the opacity has been applied on the ColorMap.

Have fun with your newly textured mesh!


I’m glad to see that people have found this tutorial useful. I want to make sure that as many people as possible have the opportunity to getting their textured meshes from Substance to Roblox Studio as quickly as possible. The version of this tutorial you’re viewing is a rewrite completed in May 2024. The old versions of this tutorial were written when Substance Painter wasn’t commonly used by Roblox developers, and the tutorials available to them were pretty much nonexistent. I’ve decided to clean it up to get it up to date. The old versions had you manually import your texture maps and apply them one at a time. This new version uses .fbx files and linked textures to streamline that whole process.

The old method that is no longer recommended

Next, we’ll get to importing your textures.

Open the Asset Manager window from the View tab.

On this new window, click the bulk import icon.

image

Navigate to where you exported your textures from Substance. If you’re unsure, check the File > Export Textures window in Substance. It will show you your last selected export directory.

Select your textures, and click Open.

A Bulk Import window will open, showing the progress of every upload you have queued. Sit back and relax.
image

When they’re all done, you can find your new images in the Asset Manager in the Recently Added category.
image

Now, let’s start putting it all together.

Open up the Insert Object window and search for “SurfaceAppearance”
image

Select your mesh and double click on the SurfaceAppearance object to insert it.
If your mesh consists of multiple parts, you can copy it into your MeshParts using this little trick with Shift + Left Click!
Image from Gyazo
Now comes the most boring part of the whole process.

Right-clicking your texture map, you can copy the decal’s ID to your clipboard and then paste it into the SurfaceAppearance properties. Make sure that the texture you’re applying is to the correct mesh and map!

If your mesh consists of multiple meshes with different texture sets for each (which mine does) then it’s simply just a rinse-and-repeat affair until you finish. If you have multiple meshes that do use the same texture set then you can just copy and paste the SurfaceAppearance object into each mesh.

Thank you so much for reading!

twitter-icon-18-256 Twitter

Deer2 ArtStation

152 Likes

Thank you for your very useful tutorial, especially the exporting setup is something that many people could potentially struggle with.

4 Likes

Damn, using alpha for AO is something that I have not thought about.

2 Likes

Do you read the whole License? Are we allowed to export things from surfacepainter to studio?

https://devforum.roblox.com/t/what-do-you-think-of-developers-that-use-illegal-quixel-megascans-assets/794856?u=eternalove_fan32

To add to what @Ukendio said, that situation resulted from users not reading the Quixel Megascans terms of service. Just because it’s a related topic does not mean licensing terms are universal between companies. The Quixel Megascans related issue was not something you had to learn about to fix. Some people used their assets illegally because they simply did not read the terms of service originally, while others brought it up because they did read the terms of service.

Just because one thing kind of relates to another does not mean there is a connection. The overall point I am trying to make here is: don’t rely on an answer here. This is just a tutorial, you are the user purchasing and using Substance Painter, and you are responsible for reading the terms of service and license.

The Quixel Megascans issue would probably not have been as large if users had simply read the terms of service before agreeing to it. I know it’s a popular joke that no one reads the terms of service, but in my opinion, it really can’t hurt to at the very least skim it, especially if you are planning to use it for a project that can earn profit.

This isn’t legal advice, it’s just my opinion.

3 Likes
  1. It would be smaller, yes, but still large: You forgot all the people that knows that it‘s illegal, but still does it, like children (I think we all agree that when we were children we all did something illegal)
  1. I think I understand better: The one is like Blender (a software) and the other is a library. Ok, if this is the case, then I think we can use it (I just fear that it would be illegal)

It isn’t illegal. Substance Painter (and other Allegorithmic programs) are free to use for whatever the case. Games, movies, and even car companies are able to utilize the workflow Substance provides. Quixel Megascans, a program operated by Quixel and in turn Epic Games, is relegated to Unreal Engine, and you can obviously see why.

A few other artists on here use Substance Painter for their projects, just ask around.

2 Likes

do you have a tutorial on how to use Substances Printer? or a yt channel?

Afraid not. This tutorial series by Allegorithmic is a very good starting point if you want to learn the basics.

4 Likes

thank you so much i appreciate the help.

1 Like

Hello, so im thinking on making a topic but this really helped me, and i have a “problem” my PBR textures imported by substance painter by the same method, in roblox the texture looks dark and not so dynamic and i want to know what i can do to make my Textures more bright and make them look better

If your color map textures are too dark, try adding some adjustment layers in Substance to brighten them up. Also try to change colors, roughness, metallic, etc. Or, take the final image files and boost their brightness in a photo editing program if you wish. Hope this helps.

I absolutely adore this. Very useful!

1 Like

anyway i can make this work with one whole mesh, so instead of it creating 8 decals for 2 parts it creates 4 for 1?

Sure. Just make sure that one mesh has one UV map.

im back and i just wanna know if its possible to make a texture that can be colored in roblox studio so i dont have to go back to substance to change the color

I’d suggest following this tutorial: Recolorable PBR Textures - SurfaceAppearance by Noviius.

i have a question, how can i include transparancey information into this? I recently saw a minos prime commission where the torso gradually goes from solid to transparent, how can i achieve this and combine the colormap, AO, and transparency into 1?
image-256

Are you sure that uses all the other Surface Appearance maps? It may just be the color map, which is the only one that can support alpha maps to my knowledge. I don’t see any sort of reflectiveness, normal mapping, etc on it.

Edit: Use the default Roblox (SurfaceAppearance) template, or just swap out Mixed AO for Opacity in the export template setup. Add a dark colored layer with a mask that reads the AO data from your bake. You can then paint opacity on top of this to create transperancy with dark shadows. I suggest this tutorial for a quick run-down on how opacity painting works.

1 Like