GuidesSims 3 Custom ContentTutorials

Basic Hair Meshing in TSR Workshop

finished hair mesh from TSR Workshop

This tutorial will teach you the basics of creating hair meshes in TSR Workshop. It won’t be an in-depth tutorial about modelling in your 3d application or drawing nice textures in your graphics editor. There are plenty of nice tutorials about those topics on the internet. I’ll just share a few tips and tricks about meshing and texturing. This tutorial will cover things like how to make a set of textures/LODs and what those things mean. So note that you must be familiar with your 3d application and graphics editor and  practice a lot to create good looking hair. So let’s get started!

What You Will Need

  • TSR Workshop (
    You will need TSR Workshop for importing/exporting your meshes and textures and exporting your final work as a .sim3package or .package. This tool doesn’t make meshes, you need a 3d application for that.
  • A graphics editor capable of supporting DDS (I’ll be using Photoshop CS3)
    You’ll need a graphics editor to draw your hair textures and save the textures in .dds format. This is the only format The Sims 3 recognizes. You can’t just save your textures in .bmp or .jpg.
  • Milkshape 1.8.5 or later
    You’ll need Milkshape mainly for bone assignments and because Workshop has Milkshape plugins to export – import .wso files. This format can hold bone assignment information. But for modelling I strongly recommend to use a more professional 3d application like 3ds Max, Maya and Cinema 4d. It doesn’t mean you can’t mesh in Milkshape. But Milkshape has very limited tools to help you get your work done faster, so you’d probably spend weeks in Milkshape to create a smooth and beautiful hair mesh. Trust me, it’s a lot of work!
  • CrazyBump ( (optional)
    This program is amazing . You can make your bump maps, specular and normal maps within seconds with this tool. Try it!

Step 1

So, first things first. Install TSR Workshop then go to C:\Program Files\The Sims Resource\TSR\Workshop\Extras\Milkshape Plugins and grab the two files named msTSRWorkshopExport.dll and msTSRWorkshopImport.dll. Now go to C:\Program Files\MilkShape 3D 1.8.5 and paste them there. Now your Milkshape has TSR Workshop plugins!

Step 2

creating hair in TSR workshop

Now fire up TSR Workshop. Hit Create New Project > Hair > Age > Sex > Clothing Category and pick a hair from there.

Pick a hair that suits your new custom mesh best. If you’re planning to make a long hair pick a long one from the list so you can study how their vertices are assigned to bones and copy them.

You can also pick a hair that has accessories like hair clips or hats if your new mesh has accessories too. This will make things easier later.

Step 3

Name your Project, find a unique name for the unique indentifier (for example creatorname_hair_01) find a name for the title and write a description. Since I’m too lazy to fill all those spaces I just paste Ulker_hair_00x to all of the spaces. It doesn’t matter what you write really.

Just make sure the unique identifier is somewhat unique!

Step 4

Let’s just save our project in .wrk format and close Workshop. We’ll mesh hair now! Open your favorite 3d application and import one of the example bodies. I’ll be using 3ds Max 2010 and importing the adult female body in this  tutorial. But you can do the same things I’ll be doing in another 3d application too. Now group the face, scalp and the body together and freeze them so you don’t move their verts by accident.

Step 5

Now start to consider how you’re going to mesh the hair. Will you make a hair that is tied up or will it fall over the face and the shoulders? You can use  primitive shapes as a starting point. Then you’ll achieve a nice look by moving its vertices. I’ll use plane as a starting point.

plane starting point

Then I’ll make a sphere and modify it to fit the shape of the head and add small planes to here and there to achieve a natural look.

modifying the shape

I’ll make her bangs from a plane and smooth the entire mesh using the “Turbo smooth” modifier in 3ds Max. Your 3d application should have a similar tool but as far as I know Milkshape doesn’t have such a tool. That’s why I told you it’s hard to make hair meshes in Milkshape.

You’ll have to deal with thousands of vertices and edges in order to make a smooth looking hair.

It’s also important that your hair mesh is not very high poly. Most people’s machines will slow down while using your – say 10.000 ploy – hair. Try to balance between beautiful-smooth and better performance- faster game play.

creating hair mesh in TSR workshop

Step 6

Now you need to make the UV maps so you can draw pretty hair textures on it. It’s not strictly neccessary that every piece of hair has its own unique place in the UV space. You can put some similar pieces on top of each other to save some space for the other pieces.

UV maps

It’s important that you make the UVs so every piece of hair has the same resolution when applied a texture. You can apply a checker material to see if they match each other.

applying checker material if they match

Step 7

When you’re done with meshing and UV mapping, start to make your LODs. LODs are a mesh’s level of details. There’s LOD0 which is the most detailed one and that has the most poly count.

Then there’s LOD1, LOD2 and LOD3. LOD3 has the lowest poly count and shouldn’t be detailed at all because it will only show in sims’ family trees, thumbnails and such.

So I suggest that you make your LOD0 originally in your 3d application then use a poly count optimizer to reduce the poly count. There’s the ‘ProOptimizer’ in 3ds Max 2010 and ‘Optimizer’ in the earlier versions. If you’re a Milkshape user then there’s DirectX Mesh Tools that reduce
the poly count.

If you have no idea on how many polys your mesh can have look at EA meshes. You’ll notice the LOD0s are not higher than 5000 and the LOD3s not higher than 250. You don’t have to make your hair that lowpoly though, I think a 7000 poly hair is still OK.

Step 8

If you have successfully made your mesh, and its level of details (LOD) now’s time to assign bones. Import your mesh to Milkshape or open your .ms3d file if you have created it in Milkshape and import an original EA mesh that you exported from Workshop in .wso format. Export the original EA meshes from Workshop.

export original EA mesh

You can import a .wso from File/Import/TSRW object. We only need to do that so we can see how they’re assigned to verts and to bring a set of bones to Milkshape.

Hit ‘draw vertices with bone colors’ under the joints tab. The EA mesh should have funny colors now.

vertex weights

Select some of these vertices and go to Sim2Unimesh bone tool under the Vertex menu. If you don’t have the tool grab it from mts. Now look at the little pop-up windows.

select vertices

The vertices that are around the very bottom of the hair are assigned mostly to spine0, 1 and 2.

But the vertices around the scalp are assigned to b__HeadNew__. There’s a soft transition between rows of vertices so that the hair will animate smoothly.
Now that you’ve studied how EA meshes are assigned to vertices start  assigning your mesh to bones. You can use Milkshape Unimesh Bone Tool to assign a vertice to more than one bone (Like 50% Spine1 40% Spine0 and %10 Spine2) or assign vertices only to one bone (Like %100 head). You can do the latter under the joints tab. So you don’t have to download the unimesh bone tool really.

When every vertice is assigned to an appropriate bone export it as a .wso file.

Do the same thing for all 4 LODs.

Step 9

Now fire up Photoshop or some other graphics editing program and start drawing. It’s a plus if you have a graphics tablet but it’s not a must. Again, it’s very time consuming to explain how I make the textures. I suggest you read sim_man123’s tutorials to have an idea of how he creates his textures. They’re very detailed and well explained:

Step 10

So if you have successfully made your texture turn it to black and white. It must be black and white! Take a look at the original EA textures and see how they made it. You’ll notice that the diffuse texture is a very light gray while the specular maps are way darker. Look at one of my hair’s diffuse texture:

hair textures in TSR workshop

I know it isn’t as light as EA’s own, that’s because I wanted the shadows and highlights look more dramatic and realistic and not cartoonish. See how I added the alpha to the alpha channel. The alpha’s black defines invisible while white defines where the hair will show.

hair textures alpha channel

Ok now make your specular texture. You can use Crazy Bump to make a specular texture from your original diffuse texture. This way you can simultaneously see the effects and foresee how reflective your hair will be in game, wow! But if you don’t want to install it just see how EA made it and copy them. That’s how my specular looks:

hair textures in TSR workshop

Now’s time to make the control map. This is the texture that makes parts of your hair separately recolorable in game. Paste your highlights to the green channel, roots to the red and tips to the blue.

adding highlights to hair textures in TSR workshop

I suggest you don’t make the normal and bump maps but use EA’s own neutral bump and normals because it’s less risky and because a hair isn’t very bumpy normally. I’ll show you how to use EAs own neutral bumps and normals later in this tutorial.

Step 11

creating hair meshes in TSR workshop

Now you have all the necessary files that make up a hair mesh. A diffuse map, a specular map and a control map. You also have your LODs. Great! Open Workshop and open your .wrk file you saved before. If you didn’t then make one.

You’ll see 3 tabs called Project, Texture and Mesh in the right hand menu. Go to the mesh tab and import your LOD0 to the place where the original LOD0 is, and the LOD1, 2, 3 to the place where the originals are.

Now go to the Texture tab and import your new textures.

Go to the mesh tab again and hit the 3 dots next to Material. Import your new textures to the appropriate places.

Don’t import the same texture more than once but use the ‘browse’ function to direct it to the existing texture. This will keep the file size small.

Don’t change the thing called “HaloRamp.”

For the Normal map, write key:00B2D882:00000000:75AECFABC8FE9704 and hit find. This little green texture is the neutral normal map.

You need to do this for all LODs. Again, use the browse function to use the existing textures and do not import them again and again.

editing the LOD

Step 12

Lastly go the mesh tab again and hit the 3 dots next to mesh. Change all the TagValues to FFFFFFFF. Do the same for all 4 LODs. This step is essential. If you skip this step your hair will be plain black in game.

change tag values for all 4 LODs

Step 13

Save your .wrk file once again just incase you need to make some changes later. And export your work in .sims3package format. Load your hair in the game launcher and test it in game thoroughly.

Here is how my hair looks in game!

finished hair mesh from TSR Workshop

How to Build a Modern Starter in The Sims 3

Previous article

How to Build a Beach House in Sims 3

Next article