How to create a VRChat avatar
A step-by-step guide for creating an avatar for VRChat.
Re-texture
You've downloaded your avatar and extracted the .RAR or .ZIP it comes with and you have a bunch of files and now you want to start customizing it. We recommend the very popular software Substance Painter.
Downloading and installing Substance Painter
Substance Painter is a paid product however Adobe offer a free 30 day trial.
In this tutorial we recommend you use the latest (2020) version installed via Substance Launcher.
Substance Painter projects can always be opened in newer versions of the software but can never be opened in older versions.
How does Substance Painter work?
Substance Painter is similar to other image editing software such as Photoshop. When you open the software you will see various panels and toolbars, explained below:
Main Menu
Tools
These are your painting tools. Use them to draw on your 3D model. You will use the standard paint brush (first item) the most.
Texture Set List
3D models are usually comprised of multiple sets of textures (for example a texture for the hair and one for the body). You can select them here.
Layers
Similar to 2D image editing software, textures can be divided up into layers. The final textures you export will "flatten" these layers together. Layers can have opacity or can blend into other layers. You can use folders to group similar layers together.
Properties
This panel lets you configure your brush, a layer and basically anything else in Substance Painter. You will use this a lot.
Shelf
The shelf is where you can select from all materials and brushes provided by Substance Painter or any you have imported yourself.
Importing your model
If your avatar comes with a Substance Painter project file (.spp) you can open the project and skip to "Painting on your model"
- go to "File" (in the Main Menu) and click "New..."
- in the pop-up next to "File" click "Select..."
- navigate to the .fbx file of the avatar and select it
- in the pop-up click "OK"
We imported the Toastacuga avatar from the previous page and it looked like this:
Textures
The Toastacuga avatar comes with .psd files so we used Sketchbook to open the .psd and export the textures into files that Substance Painter understands.
Albedo maps
The colored part of your texture is called an "albedo map". It is a 2D image that when applied to all of the polygons (triangles) of your 3D model it will give it color.
For the Toastacuga avatar we had to turn off all layers except "AlbedoTransparency_Body" and export it as a PNG:
Normal maps
A normal map is a way to "fake" lighting for a 3D model without needing extra polygons (so it is better for performance). For example it lets you define muscles of a human. It is almost always a purple color.
For the Toastacuga avatar we had to toggle off all layers except "Normalmap_Body" then export it as a PNG:
Import and use textures
Albedo map
- go to "File" then "Import resources..."
- click "Add resources" at the top right
- find the .png file of the albedo texture and select it
- on the right of your file click "undefined" then select "texture"
- for "Import your resources to" select "project 'name'"
- click "Import"
For the Toastacuga it then appears in our Shelf:
Now that you have you have imported it, apply the texture using a Fill Layer:
- click the "Add Fill Layer" icon (paint bucket) to add a new fill layer (highlighted in yellow)
- drag the texture from the Shelf to the "Base Color" square in the Properties panel (highlighted in green)
It should now look like this:
Note that the eyes and fur are still not colored. You need to export a .png for each of these parts and import them just like you did the body by following the same steps but select the different Texture Set.
Normal map
For the normal map you have to do something different:
- import just like you did the albedo
- on the far right click the first icon called "Texture Set Settings" (highlighted in yellow)
- under "Mesh Maps" click "Select normal map" (highlighted in green)
- select your imported normal map
Your 3D model should now look a lot more defined:
Painting on your model
How to paint
Instead of painting directly onto the model (which you can do but is not recommended) you should use a fill layer then apply a mask. A mask is just a way to tell Substance Painter where or where not to apply the color using black and white.
For example to paint the worlds "Hello" on the chest of the Toastacuga you would:
- create a fill layer
- in the Properties for the layer click the white bar under "Base Color" and select a new color
- right-click the layer and click "Add black mask"
- click the black square in the list of layers to select the mask
- paint (in white) where you want it
We wrote "Hello":
Useful keyboard and mouse controls
- Move: Hold down ctrl and alt and drag
- Rotate: Hold down alt and drag
- Zoom: Alt and mouse wheel
- Resize brush: Ctrl and drag
Export
Finally in order to use the textures you must export them.
- click "File" then "Export textures..."
- for "Output directory" create a new folder (you will copy it into your Unity project later)
- click "Export"
- a list of .png files should be shown in green which indicates it was successful