Skinning Assetto Corsa Cars from Nothing using Mudbox and Photoshop

This Tutorial was originally posted over on the simracingsystem.com forums where I do all of my skinning. I was constructing it AS I was learning the process, so obviously some of this is going to be "not the best way" to do certain things. I was going to make a post just linking the original tutorial, but after asking permission to the folks here at RD, it was suggested that I just post the tutorial in its entirety here! That said, let's get started!

NOTE: I have added notices before or during the parts where it is SRS specific, like making sure your skin is under 10MB (a limitation of the SRS Skin Transfer App used to automatically share custom skins just before races start). Follow the red instructions so you aren't doing extra work where you don't need to!

Software Used
The Goal
Since it is almost the end of the current season and I don't know what cars are going to be used next season, I figured I'd learn on something that I figure will EVENTUALLY come up. So the McLaren 650 GT3 is what I'll be doing. The goal is to replicate my typical Red/Black two tone design, complete with a skull on the hood using the most efficient means... rather than just fumbling around with a wireframe texture in Photoshop like I have been doing.

Disclaimers
  • I'm not a professional artist. I have a background in graphic design and some 3d modeling but make no claims to know the best way to do any of this stuff. This is just what I've learned jumping in head first.
  • Also, Mudbox crashes. A lot. Save often!

Extracting 3D Model
I started by using a program called 3DSimED3. Unfortunately it only has a 20 day trial, and today it ran out. Normally in this situation I would just purchase a licence and call it a day, but I was curious if there was a better way to just get a 3D model out of the .kn5 files that Kunos includes in a normal installation of Assetto Corsa. My googling lead me to this youtube video: Assetto Corsa KN5 Converter & Download

I was unable to find the origin of kn5conv.exe, but I ran a few scans on it and it turned up nothing, so I gave it a try. Works great. Here's how _I_ would recommend extracting the model (as opposed to how the youtuber above does it):

  1. Create a Workspace for your new skin outside of your Assetto Corsa file structure. Here's mine: S:\GameFiles\AssettoCorsaStuff\cars\ks_mclaren_650_gt3\workspace
  2. Copy the mclaren_650_gt3.kn5 file from your Assetto Corsa installation into this folder (you can find it here: ...\Steam\steamapps\common\assettocorsa\content\cars\ks_mclaren_650_gt3.kn5)
  3. Place an instance of kn5conv.exe in your workspace folder.
  4. Drag the KN5 file onto kn5conv.exe and watch the magic happen.
The result is that in your workspace folder you will now have a number of file types that can be understood by a number of 3D software packages, such as Mudbox and Blender. I gave Blender my best shot, but couldn't figure it out and there was not a good tutorial I could find that would clue me into how it works. I did find one that was enough help so that I could get going in Mudbox, so that's what I'll be doing.

If interested, here's the youtube video I found that got me going:

Cleaning Model For Painting
Once you have an .FBX file for the car you want to paint, you can import it into Mudbox.

  1. Open Mudbox.
  2. File>Import...
  3. Navigate to your workspace folder and import mclaren_650_gt3.fbx
  4. Save the scene as a .mud file (mclaren_650_gt3.mud) in your workspace folder.
tW27zHe.png


This is ALL of the geometry and a bunch of other nodes/objects that you will not need for the purposes of creating a livery. So we must now delete all of the stuff we don't care about. This will speed up performance within Mudbox, as well as avoid Mudbox wanting you to add additional materials every time you attempt to paint on a different mesh. In other words, we want to avoid painting on the windshield when what we want to do is paint on the car's body. Here's what I did to go through everything:

  1. Change to the Object List.
    PFRDqcNl.png

  2. Hide everything in the Object List
    vK0Fq6Cl.png

  3. Show only Geometry
    DWA09AHl.png

  4. Switch to Object Selection, and turn on Mirror on the X axis.
    O9lP6tQl.png

  5. Select geometry in the scene view that you know you will not be painting. Windows, tires, brake discs, windshield wipers, whatever. All that should be left are the panels of the car you want to put your design on.
  6. Save your .mud file. You may want to save it as a different .mud file than the original, in case you realize later you deleted some part of the geometry you actually wanted!
The end result should look a bit like this:

cNmg23N.png


...continued next post...
 
Last edited:
Couple of things. The "not painting all in one layer" is because different meshes are assigned to different materials. For a long while I just painted on these separate sections manually and then brought them all together in Photoshop. That's stupid, as it turns out. Now what I do is figure out what all meshes belong to the "main" texture mapping, and then create a brand new Material called "Combined" and assign ALL of the meshes that are going to be painted on that single texture to the single new material. Then I delete unused materials (this will help clean up your scene on top of letting you paint everything in only one material worth of layers.

The second part is your brush size. From that screenshot it is so big you can't see it on the screen. Hover the center of your brush over some geometry, hold down B, and then move the mouse to the left a whole bunch until the circle is visible again. Or better yet, where it says "Size" on the far right of the screen there in the tool properties panel, set your brush size manually by typing in something tiny... like 2 or something. You should see your brush size circle then.
 
Links to locations to get all the software in the tutorial are in the list of software for the tutorial. I have no affiliation with the youtube video mentioning that particular software, so if his link isn't working, you are kind of out of luck.
 
Russell, watching you later videos it would seem as that you only use Mudbox to get an idea of where the paint will end up and that you're actually completing everything in 2D with Photoshop. Is this the case?
 
Yeah, you pretty much have to. Mudbox won't turn your tga's into dds's. So at the very least you are exporting what Mudbox gives you to the DDS format. But in a lot of cases there are things that Photoshop (or any 2D app) can do much cleaner than Mudbox can, such as layer FX and such. Good example of that is my Audi #5 where I do different colors for different layers, and then make all of those colors red and apply an outline to them in post.

Things like sponsor/logo placement is almost required to do in 3D, depending on the UV layout on a particular car, and typically those don't get touched in 2D.
 
Another tip I would add is that once you remove all the geometry you don't need to paint, select all of the remaining geometry, and then scale the entire car up so it fits better within the scene. I find that scaling the car up so that it fits just within 4 default grid squares like so makes it so that Focus View yields good results without having the geometry clip your camera poorly.

Hi, this is great series. Can you give step by step instructions how to do the scaling (if you meant to change the actual scale and not the zooming level). I always manage to blow up the hood and doors, so there's something I'm not doing correctly. It's annoying to have brush sizes smaller than 1 filling half the model. Or maybe it's the size it comes from the imported file and can't be changed?
 
Hello!
I've got an problem with Mudbox. I have painted many cars with Mudbox but never had this problem. I've converted the kn5 file like descriped with this little converter program and started to import the fbx file to Mudbox. But after that, my 3D model ended up like this. (look at attachment)
I tried some cars, some work fine, some are destroyed like the Porsche in my picture. Does someone know, what is causing this?
mudboxfehler.png
 
I'm not entirely positive, but in my experience, the state that the 3d model is in when it is put into the kn5 format is what makes models look like this upon extrusion using the extraction process. In most cases the model comes over with everything in the right place, but really, really small. In some cases, one or two parts of the car are rotated funny and you can one by one select them and zero out their orientation in Mudbox and they happily move to the right spot. Some I have to identify what part of the body is misplaced and just move it to the correct location by hand.

In the case of that particular example you've attached... that's pretty bad. At a glance, it looks like the majority of the stuff off to the left is all internal or crash panels (which you don't have to worry about putting texture on). I do see a floating door there, however... so that'll have to get adjusted.

So, in short, some models just aren't saved in a way that the kn5 extractor is happy with. Which car is that, exactly? If it is one I have cleaned up in the past, I might be able to help out with a mudbox file for you.
 
Thank you for your answer. The car is the Porsche 911 RSR 2017.
I tried to convert the kn5 file with 3DsimED. The result is a little bit better. But I noticed, that the original kn5 model, loaded in 3DsimED, is showing the left door a little bit out of place. It's not exactly in the right positon. There is a gap between door and rear fender and roof. It's like the door is minimal sack. It is working, not good but I can live with that.
But I would be happy if you have a correct file :)
 
Hi Russell,

Just wondering if you'd be able to help me with this issue im having with a purple window texture instead of clear???
https://www.reddit.com/r/assettocor...ure_issues/?utm_source=share&utm_medium=web2x

Cheers

Exporting Texture Map to PSD
Once you have your BasePaint ready for 2D editing and other stuff, you need to export your work.
  1. Switch to the UV View, Show Layers, right click on your texture and select Export Selected...
    NnwxY9Kl.png

  2. In Windows Explore, browse to where your "texture" folder that was extracted by kn5conv.exe.
  3. Look for a .dds file that looks like it might be the external skin file. In the case of this car, this file is called "skin.dds".
  4. Back in Mudbox, navigate your Export Paint Layer dialog to your workspace folder.
  5. Type in the same file name as the .dds file you found in the texture folder (skin).
  6. Change Save as Type to "Photoshop [16 bit Interger, RGBA] (*.psd) and save.
This will be used as one layer in your final PSD file, and CAN be used to get the wireframe. In the case of the McLaren, I think something went wrong... likely when I started trying to paint the rims, which caused the wireframe to glitch out. I have a plan to address that later on when we get to using Content Manager.

[Edit: The following section contains details on how to get your skin working for simracingsystem's skin transfer app. You'll still need to set up a skin directory, but you won't have to adhere to the rules such as total file size or folder naming!]

Setting Up Custom Livery Folder, and Folder Shortcuts
There are rules when it comes to having a valid skin for the SRS skin transfer app. Rules can be found here.
To easily adhere to those rules, it is important to keep working files out of your custom livery folder, mostly to stay below 10MB, but also just because it's more organized. Here's how I do things:
  1. Find the folder in your Assetto Corsa installation for the car you want to make your livery for. In my case the path is this:
    C:\Games\Steam\steamapps\common\assettocorsa\content\cars\ks_mclaren_650_gt3\skins\
  2. Look through the other folders in this directory for a preview of a car that somewhat matches your color scheme (this will be for glove/crew/helmet selection later).
  3. When you find one you think will work, select that folder, hit Ctrl+C (copy) and then Ctrl+P (paste) to create a copy of that skin in the same directory.
  4. Rename that directory to your SRS name according to the rules. (for me, that's "russell_sobie" without the quotes, of course).
  5. Select this new folder and hit Ctrl+C again.
  6. Navigate back to where your workspace folder is in Windows Explorer.
  7. Right click in that directory and select "Paste Shortcut".
What you've now done is 1) set up your skin directory and 2) created a really fast way to save stuff from your workspace folder to where it needs to go to see it in game! Trust me, you'll want this.

Quick Custom Livery Setup
Just to start seeing our livery in game quickly, follow these steps after you've done the previous section:
  1. Open your skin folder (you can even use the shortcut you just created!).
  2. Open the "livery.png" in Photoshop (or whatever).
  3. Alter this image however you want to identify your skin in the list of liveries. This is the little square image that shows up in skin selection.
  4. Open the "ui_skin.json" in a decent text editor (I like notepad++, it's free and good).
  5. Type in your skin's name between the quotes after "skinname".
  6. Type in your driver name as it appears in game for SRS races.
  7. Populate the rest of this file as you feel appropriate. I put in USA for country, SOB Racing for team, and 73 for number. I don't know what priority does.
Using Existing Templates
For most Kunos cars, official developer templates have been provided. Not all of them, but most. It will save a bit of time for you if one is available. There happens to be one for the McLaren 650 GT3. You find official skin templates here:

...\Steam\steamapps\common\assettocorsa\sdk\dev\skin_templates\

And the official skin for the McLaren is here:

...\Steam\steamapps\common\assettocorsa\sdk\dev\skin_templates\template mclaren650s gt3

Copy these PSD files to your workspace directory.

Preparing Your Own Template
This is much easier than it seems if you have Content Manager installed. I highly recommend it. It's great for an improved front end for Assetto Corsa, works great with the SRS API, and allows you do to the following to create your own skin templates... even for cars that don't have official ones available for download! Grab it here: Content Manager for Assetto Corsa
  1. Install Content Manager if you haven't already.
  2. Navigate to your Assetto Corsa install where the car you wish to create a template for resides. In the case of the McLaren, we go here:
    ...\Steam\steamapps\common\assettocorsa\content\cars\ks_mclaren_650_gt3
  3. Double click on the large .kn5 file. This should automatically open the model in Content Manager using their custom showroom feature.
  4. Select the Skin pulldown and find your newly created livery. It'll still look like the skin you copied for now; that is expected.
    8FLb9W7l.png

  5. Click on a major part of the body, which will make it glow and show the name of the geometry as well as the textures used for that part.
  6. Click on the dot stack button to the right of the texture used for "txDiffuse". In this case it is "Skin.dds".
    K2gsugk.png

  7. In the new dialog that appears, click the pulldown menu for View Mapping and select 2048x2048
    ZbvQCoOm.png

  8. Click the Floppy Disk icon in the lower right and save to your workspace directory as "skin_wireframe.png" or something else meaningful.
  9. Click the X to close the wireframe.
  10. Click the pulldown menu for Calculate AO and select 2048x2048 as well. Wait for it to finish rendering.
  11. Click the Floppy Disk icon in the lower right and save to your workspace directory as "skin_AO.dds" or something else meaningful.
  12. Click the X to close the AO preview. Click Close. Click the X to close the Content Manager application for now.
Creating Template From Wireframe and AO
Here's where we find out that the McLaren 650 GT3 has a UV mapping error! Open the following files in Photoshop from previous steps in the tutorial:
  • skin.psd (from Mudbox Export)
  • skin_AO.dds (from Content Manager AO render)
  • skin_wireframe.png (from Content Manager Wireframe extraction)
  1. In the skin_AO.dds image, hit Ctrl+A, then Ctrl+C to copy everything to the clipboard.
  2. In the skin.psd layout, hit Ctrl+P
  3. In the skin_wireframe.png image, hit Ctrl+A, then Ctrl+C to copy everything to the clipboard.
  4. In the skin.psd layout, hit Ctrl+P
Your Photoshop Layers panel should look a bit something like this:

Ec9lPfrm.png


The wireframe that I got from Content Manager is slightly different from the one obtained through mudbox, so I'm going to keep them both. Here's what I'm doing next (follow along if you want!):

  1. Unlock "Mudbox Base Mesh" layer and rename it to "mbwire"
  2. Rename Layer 2 to "cmwire"
  3. Select mbwire and cmwire and drag them to the folder icon to group them.
    Tgi2agum.png

  4. Rename the group to "wire"
  5. Rename Layer 1 to "AO" and set it's draw type (?) from Normal to Multiply.
    Ll61Xhmm.png

  6. Rename "Mudbox Texture Layer" to "basepaint"
You should now see much of the base paint being affected by the AO layer. It's time to see this thing in game!

...continued next post...
 
I don't own the mod, and even with a bit of googling it is difficult to find out where to get it in the first place. What I usually do in this situation is use Content Manager to show the car in the "CW Showroom". Then click on the offending geometry where the texture issue is, and then start sleuthing from there. Assuming the default skin doesn't have the purple texturing, it should be a simple matter of 1) finding out which texture asset has the problem and then 2) making sure you clear that part of the texture out in the alpha channel (which is what I'm guessing is the problem here).
 
Hello Russell,

your tutorial is very helpful and I understand the most things of your workflow. I would like paint my AC car too but different to you I have only *.psd files in the Assetto car folder. From where I can get the *.kn5 files? Or can I use the psd files directly in Mudbox ?

thx for your help
Mario
 

Latest News

Shifting method

  • I use whatever the car has in real life*

  • I always use paddleshift

  • I always use sequential

  • I always use H-shifter

  • Something else, please explain


Results are only viewable after voting.
Back
Top