Substance 3d Painter For Liveries


Substance Painter Tutorial

Courtesy of Zach

Primer and Tips

Substance Painter allows you to use Perspective View or Orthographic View, F5 and F6 respectively. I almost always use orthographic view.

Substance Painter has quite a few default keybinds. The ones I use the most are;

Substance Painter likes perfectly square images. When creating a PNG decal for stripes, logos, or anything else, make sure it is perfectly square. My preferred way of doing this is to add an invisible square around each asset that I make. For example, an N-Number, I'll place it inside an invisible square and export it together as one. Otherwise, the scale on the XYZ directions gets skewed and messy.

Substance Painter is pretty resource hungry. The resolution you set at the time of project creation is not what you are limited to on export. So, if 4096x4096 is bogging down the program, you can set it as low as you want — It will look blurrier in the viewport, but you can export it at any resolution that you want, all the way up to 8K.

Black Masks and White Masks are your friend, as is Polygon Fill

I don't recommend painting via "Paintbrush" or similar. Creating "Decals" or "Stencils" in another program such as Illustrator will make your life 10X easier, and yield a much better looking end result

Setting Up the Project

When you open up Substance Painter, you can either open a preexisting project, or create a new one.

For the purpose of the M500, you'll want to open the preexisting project .spp since FSReborn has provided all of the necessary overlays already for things like the boots, screws, etc that you'll want on top of your paint. It's not set up wholly for UDIM though it seems, which is a bit of a bummer — but not the end of the world with Substance Painter in comparison to Blender.

For the purposes of the tutorial and for future reference though, I'll explain how to set up a new project as you'll need that for other aircraft without a paintkit.

At the top left, go to File>New, which opens the New Project dialog window.

Once all of that is set up, you're good to go by pressing the OK button which will launch your new project into the program

newproject.png

Interface Familiarization

At first glance, Substance Painter will look extremely overwhelming — and frankly, it is. The majority of Substance Painter (and the entire Substance family of programs) is geared mainly towards the creation of game assets, renderings, and full start to finish asset creation... hence, 75% of the features we won't even need to know exist. The good part here is, it is so powerful, that it makes our job when creating liveries very easy.

Now that you have loaded in your project (or created a new one), you'll see the default SP layout. From left to right we have:

interface.png

Decal/Stencil Creation

Now that we have our project loaded in, the first step is to create our decals/stencils. These are the art that we project onto the model — reg numbers, stripes, logos, all that fun stuff.

You can use just about whatever program you want, free or paid, as long as it is capable of exporting your art into a high-resolution .PNG with transparency. Personally, I use Adobe Illustrator since it is a vector program, but other bitmap programs such as Photoshop, Paint.net, etc will work just fine.

To begin, I like to take a side shot of the aircraft in orthographic mode. Then I place that into Illustrator, so I can use that as a base for creating the art that is project onto the model

ortho.png

From there, there are a few different directions you can go.

If you're just freehanding a design, there isn't much else to do besides starting on that.

If you are trying to replicate a real world livery, you'll want to find a photo that is as perfectly side-positioned as possible. Then you can import that, position it over your fuselage screenshot, and lower the opacity to see the underlying screenshot. Note, it is impossible to get a perfectly orthographic photo from a camera or picture online, so some inferencing or adjust will be necessary.

For the sake of this tutorial, I will just create some basic stripes that we can project onto the fuselage. I'll also add in a logo and an N-Number for the sake of the tutorial as well

stripes.png

You'll see below how I have a perfect square (invisible) around the right side N number stencil, so that SP handles it without skewing

registration.png

If you want to follow along with what I'm doing exactly, here are the assets from above that you can use in the below steps as I go through the tutorial

M500 SP Tutorial Assets.zip

Asset Importing

Once you have your assets created + exported (or if using mine above), you can now import those into Substance Painter.

To do so, ensure that you have a project open — then, click File>Import Resources. The Import Resources dialog window will pop up. Click the Add Resources button, and select all of your PNGs. When done, it should look something like this;

asset_import.png

You'll notice that next to each resource/image/PNG is a box that says Undefined. You can click on each one and change that to Texture prior to importing. Once all of those are set as textures, click the Import button. You'll now see that your Asset Explorer on the left side has only your 4 new assets that we just imported. Since you won't need any other assets at this point, that is fine. Everything that you import will always be housed in this Asset Explorer.

Putting Imported Stencils on the Model

Now that we have our stencils imported, we can apply them to the model.

Let's start with the stripes. Using the Shift + Alt + LMB keys, we'll snap our viewport to be looking at the left side of the fuselage in orthographic mode. It'll look like this;

look_like_this.png

Now, we can go over to the Asset Explorer on the left, and click + drag our stripes stencil image onto the fuselage of the M500

As you let go of the mouse, a little window will pop up. Click Base Color Note, wherever you place the image will be the material that it is located on at first. You can see these materials as you drag it around before releasing the mouse — by default, they show up as a red wireframe

With the stencil now roughly on the fuselage, there are a few things we need to take care of. These are very important, and are done every time we add a new stencil onto a model.

On the right side, you'll see that your stencil is now at the very top of your Layers. As can be inferred, these layers act exactly how you'd expect — what's on top is on top, anything below that is covered by anything above it.

In cases like UDIM27_out_fuselage, you'll see that FSReborn included some overlays for base parts that we want on top of our paint/livery, such as the deice boots, screws, rivets, etc. In cases such as that, we'll drag our painting layers underneath the overlay layers.

With our paint layer selected, we'll go down to the bottom right in the PROPERTIES - FILL tab. Set the Projection Depth and Hardness sliders all the way to the right, at a value of 1.0.

Under the 3D Projection Settings dropdown, we'll set the Rotation X value to 90, Rotation Y value to 90, and the Rotation Z value to -90. This creates a perfectly flat projection. Note, these values change depending on how you are wanting to project onto the model — for example, if you want to project something from the right side, Rotation X remains the same, Rotation Y changes to -90, and Rotation Z changes to 90.

When done, your PROPERTIES - FILL tab should look something like this;

properties.png

From here, we can go ahead and resize the stencil now to fit the fuselage as intended. In the case of the M500, since there are so many materials, it is a little difficult as non-UDIM setups paint only on one material at a time. I'll have to check with Raul as to why the paintkit isn't set up on UDIM, and why the FBX won't import under UDIM either...

Anywho, we will use the resize tool and move tool to adjust sizing and positioning

Once you've clicked the resize tool from the upper toolbar, you can click and drag the top right corner of the grey square (pointed to by the arrow in the photo below) to resize up or down move.png

The move tool is in the same upper toolbar. When that is in use, you can click and drag the green arrow to move up and down, red arrow for left and right, and the blue dot in the center for both axes.

resize.png

Tip... in cases like the M500, for positioning, sometimes it is helpful to copy and paste your paint layer onto other materials, like the tail and/or nose, to help with positioning rather than constraining yourself to positioning with only one material. Just make sure that once it's moved to where you want it, that all of the materials have the same positioning

Now that it's positioned where you want it, use the Shift + Alt + LMB again to look at the model head-on. With the move tool, we'll then click and drag the blue arrow so that it is roughly centered down the middle of the fuselage. This ensures that the texture is applied to both sides. The green hollow arrows that you see are a generalized idea of how far the texture will extend in the viewport in terms of mirroring and coverage

front.png

From here, we can start copying our stencil and pasting it onto other material slots so that we are covering all of the necessary material slots

At this point, it'd also be wise to decide on what ou want your base color to be. Off the bat, the M500 paintkit comes with a plain white base color. If you want to change that, you can add a new fill layer (paintbucket icon) and place it under your stripes layer, or, just edit the color of the White Fill layer that FSReborn has provided

white_fill.png

Now we have our stripes on all of the necessary materials

result.png

With the M500, you will probably have to futz around a bit with the layering in order to make sure that the provided overlays don't get covered up by the paint. You can also do this in post processing once our textures are exported, in a program like Photoshop or Paint.net You can also use things like a Black Mask or White Mask with Polygon Fill to mask out areas as desired, which I'll talk about later on below Now that our stripes are all good to go, we can add a logo under the cockpit window.

Just like the stripes, we'll drag it onto the model, set the Projection Depth, Hardness, and Rotation X, Y, X. Then we will scale it and move it to it's desired spot However, you'll maybe realize at this point that we don't want it mirrored, since it is text — it would look reversed on the other side. So for that, we can skip moving it down the center of the fuselage.... in fact, depending on the size, we might even have to move it away from the fuselage so that it is only painting it on the desired side.

logo.png

With our logo now on the right side, we can copy and paste that layer.

This duplicate layer can now be moved to the right side of the fuselage via the move tool and it's blue arrow to ensure that we are only translating it from left to right

If nothing is showing up on the right side, that is because the right side is on a different material. So, we can Control + Alt + RMB in that area to select that material, and then paste the logo layer into there and move it over.

To fix it from looking backwards, change Rotation Y to -90 and change Rotation Z to 90.

rotation.png

Finally, all we have left is the N-Number. We'll start with the left side. Since the N-Numbers I made for this tutorial are slanted, we have a stencil for the left side, and a stencil for the right side, to ensure that they are always slanted towards the aft of the airplane.

After using the above methods to place the N-Number, it'll look like the below photo. By now, you should be getting a good idea for how to place and adjust stencils onto the model

You may also be noticing that, similar to the stripes, depending on the size of your N-Number you will need to copy and paste it to the neighboring material if it is cut off

reg1.png

reg2.png

For the right side, we'll paste this layer again onto whatever materials cover that right side. Likely it will be 2 materials.

Similar to the logo on the nose, we have to translate the stencil to the right side with the move tool, and also flip the Y and Z rotations for each layer on each material on the right side.

reg11.png

reg12.png

Now that the stencils are placed, we can replace them with the right side stencils to have the correct slant and orange shadow orientation.

To do so, click on the layer for the right side N-Number, and scroll down in the PROPERTIES-FILL tab. Drag and drop your right side stencil from the Asset Explorer onto the Base Color box to replace it.

base_color.png

Rinse and repeat for the other material slot on the right side, if your N-Number is covering two materials

repeat.png

And that's it! You now have a neat white livery with custom stripes, logos, and N-Numbers. Now it is time to export

Exporting Textures

Go to File>Export Textures or press Control + Shift + E to bring open the Export Textures dialog window.

You will be presented with the initial window, the Global Settings tab.

You'll want to select your output directory, and then your output template. For now, you can use Document Channels + Normal + AO (With Alpha.

File type will automatically export as PNG, so no need to touch that.

Size is up to you, for UDIM-type applications like this, 2048x2048 is fine, or 4096x4096 is too albeit at a higher VRAM cost in the sim. 8192x8192 is not really necessary unless you want something super duper ultra crisp. For other non-UDIM aircraft like the Vision Jet, you'll want 4096x4096 at a minimum IMO. Any less than that and it's pretty blurry in most cases.

Padding is also up to you, and a very "variable" variable. It depends on how you want to put your textures together in the end.

Next, is to set up each material for export. On the left tab, you'll see all of your material slots. Materials that are checked will export, materials that are unchecked will not be exported. Clicking on each material then allows you to select which channels you want to be included in the export for that material slot. In this case, all you want is $textureSet_Base_color. Metallic, Roughness, Normal, Height, Normal_OpenGL, and Mixed_AO all should be unchecked. Unfortunately, you will have to go through and uncheck these for each material

export.png

From there, I recommend clicking the Save Settings button, else you will have to redo this step if you close out the export window.

Once you are ready to export, you can go back to the Global Settings tab, verify that everything is as you want, and then click the Export button in the bottom right. Your textures will then compile and export as PNGs in your chosen directory.

And you are now done with Substance Painter! Everything else will be done via Photoshop/Paint.net/etc or even the package tool for converting from PNG to DDS, depending on your preference of program/workflow

Bonus | Black Masks and White Masks with Polygon Fill

These come in handy a ton, especially as your liveries get more complex and/or when you paint complex-shaped aircraft.

Let's take the COWS DA42 for example. You put stripes on the side, but you see that the fuselage and the engines are on the same material slot, meaning that your stripes show up both on the fuselage and the engine cowling since you are projecting from a left-side ortho view. That's a problem, right?

Black Mask time! Black masks when applied to a layer allow you to control where the paint is allowed to be, and where it isn't. Let's say we don't want the stripes on our M500 to go over the panel on the right side of the nose

poly_fill.png

By default, the entire UV for this material is now "off limits" for the stripes layer. You can leave it as is, or you can customize the mask with a Polygon Fill. We'll try that.

On the left side toolbar, click the polygon fill tool

poly_fill2.png

You'll see that the entire model now has a red wireframe around it. These are the 2D UVs now showing on the 3D model

poly_fill3.png

We can use any of the 4 polygon selection tools to make our mask

poly_fill4.png

You will generally use a combination of 3-4 of these during painting, pretty much whatever works for your specific usecase at the time. Sometimes they work great, sometimes they are a little finnicky — it all depends on how the UVs are laid out for the model.

In this example, I'll use the square/quad selection. With this, wherever I click, it is added to the black mask, allowing the stripes to be visible in that area

poly_fill5.png

On the contrary, we also have the option to use a White Mask.

Similar to the Black Mask, but the inverse. When a White Mask is applied to a layer, by default, the entire layer is allowed to be visible. You can then use the polygon fill tool to select areas that you don't want to show up, essentially masking those out On the N-Number picture below, I've used a white mask + the polygon fill tool with the square/quad selection to remove some parts of the N-Number

poly_fill6.png

And, a bit long winded, but I think that is roughly about all for now in terms of a basic tutorial.

Of course, with the M500, it is much more complex, but this should get you to the point of being able to make a nice livery. This whole thing will seem 10X easier on something like the Vision Jet, C172, DA62, etc, but you get the big picture here

Finishing

You need to convert png to DDS files you can use any image editor for that or the imagemagick convert tool.

The material names in Substance will be different than the DDS texture names, that's just an M500 thing.

For example, UDIM10_out_fuselage in Substance Painter translates to FSR_M500_OUT_FUSELAGE_BASECOLOR_OPACITY_1010.PNG.DDS

Instead of renaming them all, what I like to do is take all of the DDS files I need from the root FSR500 folder, open them all, and then just drag each of my PNGs on top of the materials and save as DDS. That way it just overwrites the DDS and I don't have to rename anything.

Then you put them in a livery diretory structure by using a template like this: FSR500 Livery Template.zip

Things you'll need to change/setup;