UV Map References for R15 & R6 Humanoid Body Parts to Support Clothing

Roblox character body parts require specific UV mapping for specific textures to work properly with “Shirts” and “Pants”. I’ve seen a lot of people struggle with this, probably because there are no public resources for this!

With the help of some friends I figured out how this worked, and I figured I’d share the details and example files!


R15

For R15 rigs, each part’s texture uses a sub-image of a large composite texture. Multiple parts of the same limb will share the same texture, so you must UV map them to look properly. Multiple limbs will use the same UV map, but with a different texture.

The composite texture that is not for UV mapping (click to expand)

This is not the texture for UV mapping!


See the following images for the texture you should UV map with!


A limb texture. This is used for UV mapping all Parts on each limb (e.g. RightLowerArm, RightUpperArm, RightHand)

TemplateLimb


A torso texture. This is used for UV mapping all Parts on the torso: (UpperTorso, LowerTorso)

TemplateTorso


A head texture. The head usually uses most of the texture for the front face, then uses sections of the left/right/top/bottom for the rest of the head. This is usually fine since the edges of faces are transparent.

TemplateFace

The red/blue here isn’t matching any specific dimensions. The default head uses some (unknown) part of the blue as the rest of the head’s texture, and some (unknown) part of the red as the front face. Generally, as long as you display what’s in the red and use the blue for the rest of the head, your head mesh should work fine.


R6

For R6 rigs, all of the body parts and accessories get added to a single composite texture. A subset of this texture is shared with all body parts except the head. Unlike R15, different limbs will have different UV maps since they’re all sharing a single texture with their parts at different coordinates.

Here is the full composite texture that is not for UV mapping (click to expand)

This is not the texture for UV mapping!


See the next following image for the texture you should UV map with!


Here is the shared body part texture: (for UV mapping the arms, legs, and torso)

I have annotated the body parts as follows:

  • AL: Arm Left
  • AR: Arm Right
  • LL: Leg Left
  • LR: Leg Right
  • T or no additional annotation: Torso

Each limb uses the same texture above, so you must map your mesh to the correct limb faces in the texture, unlike R15 which gives each limb its own unique texture.


Here is a head texture. This is the same as the R15 head texture. You should read the notes on the R15 head texture for more info.

TemplateFace


Sample Files

The following zip files contains:

  • the above textures
  • example meshes for limb parts, torso parts, and the head
  • example R6 and R15 models that have had some of their parts replaced by the meshes in the zip file
  • the shirt and pants texture I used

Character UV Sample.zip (2.3 MB)
(edit: fixed torso left/right being swapped)


Tips

This being nearly the first time I’ve used Blender, I figured I’d share some stuff that helped me:

  • From Blender, set the Scale in the FBX exporter to make the Blender units match Roblox units
    This is important for limbs to be the proper size on R6 characters.

    • Most tutorials say to set this to .01.
    • You can also try changing “Apply Scalings” to FBX Units Scale or FBX All.
    • For some reason, I had to set mine to .005.
  • In the UV Editing layout in Blender, you can set the UV coordinates to exact pixels instead of to a percentage in the X/Y axes.

    Directions (click to expand)
    • Press N on the keyboard to open the information panel.
    • Press View then check Pixel Coordinates
    • Press Image
    • Select one or more UV points and you can type in the coordinates in the information panel.
      The Y coordinates will be flipped.
      You can select multiple points and set the X or Y coordinates at once.
      You can do math in the coordinate entry boxes if useful to you.
    • I suggest opening an image editor with vector shape support then moving a rectangle over the area you want to map the UV to. With both programs side-by-side, you can easily enter the coordinates.
  • If you’re using a trackpad or touchpad, there’s an “Emulate 3-button mouse” option in Edit > Preferences > Input which makes Alt + Mouse 1 the same as Mouse Middle. The middle mouse button is necessary for some actions, like moving the camera around.

  • You can set the object’s material to the UV reference texture by following the answers on this Blender Stack Exchange question

  • You may need to “rotate” your UV coordinates to make them properly match a clothing face. Try to do this first to lower the amount of work you have to do.

  • Always be comparing the object in blender to the examples in Studio to make sure everything is oriented properly.

68 Likes

I’m confused as to why the UV mapping is setup like this.

Does each body part have two UVMaps (one for the composite and one of the subsection of that compose). Why are there two maps; as it seems only the subsection is used in game…what’s the point of them having the composite map? And it would have been a lot easy if they had just used the composite map.

Also why does the back for head map to about 1 pixel on the texture? Why did they do this?

I want to use the default R15 block character (for aesthetic reasons); but it seems like I’m going to have to re-import at least the head as a custom mesh just to get a UV for the back of it’s head.

1 Like

I wondered the same thing…
Each body part only has one uv map (idk how you would make two) Also note that Corecii stated that the composite texture is not for UV mapping.

They probably didn’t use the composite texture because of Roblox’s image size limit. If every part of the texture had to share 1024 pixels, the textures would look blurry especially since the composite texture isn’t space optimized. You can add a lot more detail to your textures if each part has its own 1024 pixels.

As for the head… because of how Roblox set up their customization system, there is no need for anything to appear on the back of the character’s head. (It’s usually covered up by hair.) If nothing will ever go there except the skin color of the character, then there’s no need to make it take up any more space since it only needs one pixel of color to achieve its purpose.

2 Likes