UVs & Texturing
This doc is an introduction to UVs, textures and Materials in order to create your custom Avatar for Roblox.
What are UVs?
With your character made we need to tell the model how to apply a texture. The catch is that a model is a 3D asset using X,Y,Z axes. A texture is a 2D asset using X,Y axes. To make this a little easier, the name of X and Y for the texture axes is switched to U and V.
To get the XYZ of the character polygons onto the UV of the texture, we have to unwrap the UVs of the character. A simple example would be to take a 3D box, and then flatten it out in order to use flat textures to add color.
Game textures should be powers of two such as 2x2, 4x4, 64x64, up to 1024x1024 pixels. Roblox has a maximum texture size of 1024 x 1024, most likely due to the fact you have to download all the assets when you play but also to work on more environments such as Mobile and Standalone VR.
Any space in the texture that is not used is wasted space, and therefore wasted file size. There is always some wasted space as there needs to be some distance between UV Islands, or sections of the flattened model. But reducing this as much as possible is a good skill to have.
Textures are one of the reasons why so many games have large installs nowadays, as they have many textures that are really big.
Materials
A Material is an asset that combines a number of textures and settings to give a model it's color, among other visual effects.
The number of materials in game development is one of the many things that cost performance. Roblox has a maximum of one material per 3D mesh.
Each material can have a number of textures such as color (also known as Diffuse or Albedo), Metallic, Smoothness, and Normal (which is like a map that defines bumps on an asset). These textures take up filesize, so the more textures you have, the more the player will need to download and load into memory.
Custom Skin Color
Roblox allows transparency in the Diffuse texture to have the skin color be customiseable. If this is something you would like to add to your character you can check out the Official Roblox docs for more info.
Texturing and Unwrapping UV Approaches
You can use the following techniques to apply textures to your assets, some are more performant than others by reducing materials or texture size.
Palette / Gradient Texturing
Trim Sheets
High to Low poly Assets
Some of these approaches also take a lot longer than others such as the High Poly to Low Poly Assets approach, that said the result is usually significantly better. It really depends on the final result you need.
Roblox Experiences are generally quite simple 3D environments, so the fastest and easiest approach like Palette or Gradient Texturing can work well.
Last updated