A Guide in Creating Sim Body Meshes

How can I create body meshes for the sims?
Many people would like to explore the world of meshing but while the question is simple, the answer is much more complex. That is why I have decided to lay out these guidelines to anyone brave enough to attempt it.

I have no intention of presenting a technical illustration, nor is this a tutorial. There are other sites, such as the Sims Skins Tutorial, that provide this kind of help. This document is to be used only as guide in the world of creating Sims. Where needed, I will refer you to other sites.

How is a Sim built?
Basically there are only two types of Sims: children and adults. Both have their own dimensions. Furthermore each Sim consists of body parts similar to those of humans: legs, arms, neck and spine. The dimensions of the Sims and how the body parts are connected to each other are defined in the bone structure. At this point, we only have to keep in mind that these dimensions are used in the game while interacting with other Sims or Objects.

Around the bone structure a three dimensional model is created. This model is called the mesh and represents the actual shapes of a Sim. There are three different types of meshes: heads, bodies and hands. This separation is necessary to make it possible to exchange heads and bodies in the game. Each type of outfit like a dress, skirt, trousers or swimsuit has its own mesh. This guide will only deal with body meshes.

To give the Sim its final look, there is a picture projected on the mesh. This picture is called a skin or texture. Although making of skins is not part of this guide it is very important not to forget about them. Since we will make new meshes it is possible we have to define a new skin layout or texture. This is because not only will the mesh define the shape of the skin but also how the texture is projected on the mesh.

For a more detailed and technical description of how Sims are built visit the Sims Workshop.

What are the tools?
There isn't one particular tool that can be used to create meshes. To get a new working Sim you will need a combination of tools. I recommend downloading all of them when you want to create meshes.

  • Faredit: This program is used to extract original body meshes in BMF format from the FAR files of the game. German versions don’t have FAR files and don’t need this program. Faredit can be found at Blueprint.
  • Bmf2Skn: This program is used to convert the binary BMF files, extracted with Faredit, to ASCII text SKN files. Bmf2Skn can be found at kelahn.com.
  • Skn2Obj: This program is used to convert the SKN file to the more common 3D format OBJ file. It is also used to convert OBJ back to SKN. This program is the most important one and you won’t be able to do anything without it. Skn2Obj can be found at kelahn.com.
  • BodyWarp: This program is used to view meshes and perform some rough editing like rotating, resizing and relocating separate body parts. BodyWarp can be found at Spanki's Skin Shack.
  • 3D Modeler: I don’t recommend any particular program. When you have a 3D modeling program of your own you might use it. Most important thing is that it must be able to import and export OBJ files. You can get more information following this link. I can only tell you that an evaluation version of MilkShape is often used by Simeditors.
  • UVMapper: This program is used to remap the texture on your mesh. This program is not really needed for body meshes, but can be very handy in creating textures for other 3D objects attached to your Sims. UVMapper can be found at Steve Cox Consulting.
  • SimShow: This program is used to preview skins on the meshes with animations of the original game. You better use this program before using the new meshes in the game to prevent crashing it. This program can be found at Maxis. Another tool to preview skins is SIMposium, which is available at SimPose-ium instructions page.

Can I create my own original mesh?
Okay, here is the bad news: NO, you can’t create your own original mesh at this moment. Well you might if you were a real 3D wizard. But, there are no tools available yet for creating Sim meshes from scratch. You can, however, modify existing body meshes. This will leave you possibilities enough to create almost any body mesh you want. You just need to have some creativity skills.

Okay, How do I modify a mesh?
First decide what your new mesh must look like. Then search for a Sim that looks the most like your new mesh. You should use this one as a basis for your new mesh. Go to the Maxis\The Sims\Gamedata\Skins folder on your hard drive and look for this particular Sim. The key to the mesh is the code given by the first nine characters of the skin, for instance B001FAFIT…..BMP. Now, look in the same directory and see if you can find the correct body mesh. According to the example this will start with XSKIN-B001FAFIT……SKN.

If you can’t find the correct BMP or SKN file, you have to use Faredit to extract the mesh from the original gamefiles. Search for the code by opening Maxis\The Sims\Gamedata\Textures\textures.far in Faredit. Then search for the mesh by opening Maxis\TheSims\Gamedata\Animation\animation.far.

When you have found the SKN file you want to modify you will copy this file in a separate folder. If you have extracted the file from the game with Faredit, you must convert the BMF file to SKN first. To do this just drag and drop the BMF file on the Bmf2Skn program. Bmf2Skn will create the SKN file in the same directory where the BMF file is located. You can now delete the BMF file since it is no longer needed.

The SKN file contains all data needed to represent the 3D model of the Sim. Basically a 3D model consists of a collection of points connected by lines. The points are called vertices. Each vertex has three coordinates, which defines its distance to a particular point called origin. The lines, which connect the vertices with each other, are the wire frame. A triangle of
three connected vertices is called a face. The faces are the actual surface of the mesh on which the texture will be displayed. At this point it is not necessary to understand the technical details on 3D models. More information can be found at the Sims Workshop.

Why do we have to use Skn2Obj?
Although the SKN file contains all the 3D information, the SKN file is not a known format for 3D modeling programs. With the Skn2Obj we can convert the SKN format to the more common OBJ format. As far as I know there isn't any other converter available yet. To create an OBJ file start the Skn2Obj program, choose file open, load the SKN file and save it as SPJ file. Now three files will be created. The SPJ file, a MTL file and the OBJ file.

  • SPJ: As mentioned before, Sim bodies consist of various body parts. The SPJ file contains the information in which body part vertices are located. This file is really important since the OBJ file does contain this information.
  • MTL: Contains information about materials, this file has no role in this guide, just leave it where it is.
  • OBJ: This file we have to use when we want to edit the mesh. However it does not contain the information of different body parts.

One funny thing happens with the conversion. Body models of children will be stretched. Don't worry it will unstretch when it is reconverted back to SKN file after the proces. Same goes for the bended toes.

Now open your 3D modeler and import the OBJ file into your program. You can edit the mesh by moving the vertices around. There are only a few rules to keep in mind:

  • NEVER remove or add any vertices or faces.
    This is the most important rule since unfortunately, you can’t change the amount of vertices. You have to deal with the existing amount. This is because all vertices are declared in the SPJ file. Skn2Obj can’t deal with a changed number of vertices when converting the OBJ file back to SKN.
  • You can’t change the habitat of a vertex.
    Since all vertices are already declared in the SPJ file, it is not possible to change the habitat of a vertex. For example, when you move a vertex of a leg to the foot it will still be a part of the leg. Consequently, it will still follow the movements of the leg in animations of the game. Expect weird effects when a vertex doesn't follow the movement of the body part it is located in.
  • Do not resize or relocate the mesh.
    Resizing or relocating the mesh will result in disorientated Sims in the game. Coordinates are very important in interacting with other Sims or objects in the game.

When you are done editing export the mesh to OBJ again. Since a lot of editors use MilkShape it is important to know that an earlier version of MilkShape has a bug: It will name the file 3DS in stead of OBJ. However you only have to rename the 3DS to OBJ to solve this problem.

Why can’t I convert back to SKN properly?
Now that we have done our editing on the mesh we are ready to convert the OBJ back to SKN. Most of the problems editors experienced occurred in this step. Although it is mentioned in the tutorial of Skn2Obj by The Sims Workshoop, the correct procedure is apparently not very clear. DO NOT try to convert the OBJ by choosing "Import OBJ". Instead, make sure the new OBJ file replaces the old OBJ file by having the same filename. Remember that we have created a SPJ file? Now this file contains all information for a correct conversion and placing the vertices in the correct body part. All we have to do is to choose file and open to load the SPJ file, when done, save as SKN file.

Congratulations! You are done, now you have created a new bodymesh. However, there are still a few things to keep in mind:

What can we do with BodyWarp?
BodyWarp was originally created to resize heads created by FaceLift Gold but it has developed some other interesting features. You will always preview your new body mesh with BodyWarp, create a totally BLACK BMP file and load this file as texture on your mesh. Now use your mouse to rotate the body around and look at it carefully. Due to an imperfection of the original body mesh it is possible there will be holes in your new mesh. You can recognize them when you see the background instead of the black body. When you have found a hole you can toggle the texture on and off to see where in the body mesh this hole is located. You have to use your 3D modeling program to correct the holes, however do not weld the vertices because this will change the amount.

Another feature in version 4 and higher, that you might be interested in is "Split Faces". Performing this split before using Skn2Obj to create the OBJ file will give you more vertices to move around when editing the mesh. But be very careful, because this might create holes anywhere in your mesh. I think this is to blame for the imperfections of the original SKN file rather than a bug in Bodywarp. However with this in mind splitting faces can be very useful.

Speaking of Bodywarp, when you only have to relocate, resize or rotate some body parts to create the mesh you want you don’t need to convert the SKN file or do some 3D editing. Finally BodyWarp can create the necessary CMX files for you. CMX files are needed to read your SKN files in the game. Although they are very important, CMX files are not within the scope of this guide. Check the following link for more information.

What is the "Import OBJ" in Skn2Obj?
In Skn2Obj we have the option to import OBJ files. In this guide we didn't use this feature to convert OBJ files to SKN because this feature is only used when we want to attach objects to the body mesh. A very famous object is the wings of the fairies that are connected to the spines of a mesh. So only use this feature when you want to add objects to a mesh. Remember to adjust the CMX file when using this feature.

How to fix the texture files?
When you have modified a mesh it is likely that the original skin or texture won,t fit anymore. In most 3D modelers you can adjust the texture layout to fit them to your mesh again. In the Sims, textures are 256 colored bitmaps of 256x256 pixels. When moving vertices around you might have to adjust the texture map as well. When creating objects to attach to your mesh UVMapper might be useful.

Is testing necessary?
If anything in this process went wrong it is likely that your game will crash, so testing is really necessary. In general you can use SimShow to test your creations. When you don’t keep in mind the applicable naming conventions and use correct CMX files, SimShow will crash. When it does, it is probably a naming convention problem. Open the files in a text editor and make sure all filenames are correct. Keep in mind, when your mesh is working in SimShow, it is likely working within the game. Now import the mesh into the game.