This is a group effort document - primarily authored by Tiggerypum with various bits of advice and wisdom from other members. This article is going to be Milkshape/Unimesh centric, although it does also contain general information that can be applied to other programs.
What Are Normals
Normals are values attached to the vertices of the meshes that let the 3D program know how light is to shine across the faces. The normals create a smoothing effect on the mesh. Here is a visual of what normals 'do'.
When you first read in a Sims body mesh into your program (such as milkshape) it already has normals. If you are using Unimesh to edit, the normals will be preserved, although some editing might cause it to become necessary to adjust the normals.
Normals can be edited by users in several ways in milkshape - they are automatically generated if 'auto smooth' is left set on (we turn it off for body editing).
- Milkshape also has a smooth command - but it will smooth everything - which will result in seams down the sides of the body mesh if you have a body mesh loaded.
- Demon's Tools include an 'align normals' command that will adjust the normals on vertices you select, allowing one to touch up part of a mesh without reworking the entire mesh.
- Demon's Tools also include 'extended manual edit' which has an option for copying and pasting all sorts of values, including the normals, of vertices. This is most handy if working on a body mesh and needing to match the game's neck settings or the settings on the waistline of a top or bottom mesh.
If you are not using Milkshape, you will still see normals - and might have to do things like weld seams (which we now no longer do with the Unimesh plugin) or use the Filter Points command in XSI Modtool, for instance.
If you create new parts for the mesh and they are black when the rest of the mesh is gray - that either means you are looking at the backfaces and need to flip them, or that the faces do not have normals (or have incorrect normals, for instance, rotating part of the mesh with 'autosmooth' off will result in bad normals)
Normals and Hemlines/Edges
What happens with normals and 'smoothing' is that Milkshape tries to average the normals to make a smooth transition from one face to the next. That is great for giving the rounded effect to, say, a Sims' arm. But it can cause problems with areas like hems, where two different planes do come together and touch but really are separate.
If one takes a hemline and 'smooths' it, you'll get something like this:
That dark shadow will show up on your sim mesh, even once it has a texture.
There are a few ways you can work with normals to avoid bad shadows
- If possible, do not smooth hem edges
- Use extended edit and copy the normals from a similar area on the mesh. (but this can be crude and still not get you the results you want - unless you are replicating normals on a sim neckline or waistline)
- Slightly separate the vertices in question (I'll use extended edit, or select a section by the faces and move it slightly) and _then_ smooth. Then snap the vertices back together.
- Unweld the edge, then hide each side in turn to align the normals on the opposite side - no need to play with the values. Now if you want to be sure that the edge won't be welded again and the normals smoothed on export (I had that happen more than once), you can slightly separate the uv-coordinates on the seam. (Marvine's technique)
- Learn how to use Smooth Groups in Milkshape (see the next part of this article for instructions by Dr. Pixel)