Sims Support Page |
The info below is a summarized combination of what I learned from skinning and mesh-making webpages, and my own newbie skinning experience. As both I and my sources are only human, however, it may contain mistakes.
The summary is split up in seven parts:
For ways of extending the standard skin system, see
Further customization on the Skins page.
(Scroll up for information about custom body types.)
A Sim's physical appearance is the combination of at least three types of files:
a 3D wireframe mesh, a bitmap file to stretch over it and a CMX file to declare
the mesh to the game and attach to it any "accessory" meshes.
The mesh is an ASCII file in SKN format, a format only natively supported
by the shareware modeller Milkshape as far as I know. The file contains:
the mesh name; the name of the default BMP to use with it (very handy for
accessory meshes that have no naming conventions); the vertices, as is usual
in 3D mesh files, and what joints of the SKN skeleton these vertices will move
with. The binary form of this ASCII file, found in FAR files, ends on BMF.
The header of the ASCII version looks like this:
Line 1 is the name of the mesh file,
without extension. Line 2 can be "x" or the name of the bitmap texture
that goes with this mesh, also without extension. The rest is all mesh
information: faces, placing of vertices and so on. An analysis of the
format can be found at SimTech.
The BMP must be an 8-bit (256-colour) Windows bitmap, probably (though
I've never experimented with that) not RLE-compressed, square, sized 256x256
pixels (standard for bodies), 128x128 (standard for heads), 64x64 (standard
for hands) or 32x32 (standard for small accessories). Whatever its size, it
must be a multiple of 2; 32x32 is a practical minimum since you can't really
use anything smaller, 256x256 is a practical maximum as older graphics cards
may not be able to display anything with a larger texture. It must also have
a whole-number width-height ratio; 128x128 (1:1) is okay, 128x256 (1:2) is
okay, 256x192 (2:1.5) won't show up. I've seen in several
places that a 24-bit (truecolour) BMP will crash the game, but on my computer
have found that it's the real number of colours which matters, not the image's
colour depth; skins with more than 256 colours will show up white in the
Create-A-Sim screen, but a 24-bit BMP that only contained 256 colours was
treated as an 8-bit BMP.
The CMX is an ASCII file (its binary form, found in the game FAR files,
ends on BCF) which, as said, declares the mesh to the game. What does this
mean? It means that, in the case of Sim body and head meshes, if the mesh
exists and the CMX does not, that head or body will not appear as a choice
in the Create-A-Sim screen. If the CMX is so named as to connect more than
one skin to a mesh, that mesh will appear twice in the Create-A-Sim screen,
covered in two different skins. (And if, through an unhappy naming choice,
the CMX connects two meshes to the same skin, that skin will appear twice in
the Create-A-Sim screen, once on its proper mesh and once on a totally
unsuitable one, with bizarre effects.) If the CMX in the bodystring of a Sim
character IFF refers to a main mesh that doesn't exist, no mesh will be
shown, and the Sim may appear headless, or be a head and a floating pair of
hands; if it invokes a "wrong" mesh, the game may crash. If, on the other
hand, no texture file is found to match the CMX, the game replaces the
CMX with another one, putting the old string behind a semicolon.
I've had a game crash on a CMX referring to a mesh with a different mesh
number in BMF form; normally, though, you can put any mesh name you like in
a CMX file, for instance, "xskin-B300MaFit_flippers-PELVIS-BODYB" in the
file "NMFit_flippers.cmx". This can be very useful! However, this won't
work for two CMX files with the same mesh code both referring to
the same "wrong" mesh; the game ignores the second CMX, or both.
Like the SKN file, the CMX file contains its own name; unlike the SKN file,
it must contain its own name correctly spelled, or the game will ignore it.
A simple CMX file, referencing only one mesh, looks like this:
The first four lines are always the same. The fifth line is the name
of the CMX file without extension; it must be correct, or the file is
ignored. Then two "zero" lines, and a line stating the number of meshes
(in this case, one). Then, for each mesh: a line stating where it's
attached and a line containing its name, followed by two zero lines.
There is no skin name in the CMX; it connects skins and meshes indirectly
through the naming conventions. The only way to directly connect a skin to
a mesh is to put the skin's name in the mesh header, but this is overridden
by any skins named the same way as the CMX.
So, what are these all-important naming conventions? Firstly, a
Sim consists of at least three meshes: head, body, hand(s). The hair is
generally incorporated in the head.
Secondly, and this is important, a Sim has a possible total of eight dress
styles, as I call these states:
These styles apply to the body mesh. The head mesh has no styles, and
unlike the body mesh, which can be changed with wardrobe objects, is not
meant to be changed. The hands are the same for all states except Formal,
but where the normal hands have three states - open, closed, pointing -
the formal hands only have one (open). (This was the situation until HD,
which scrapped the formal gloves because they were getting replaced by
NPC hands.)
Simkids don't have a Formal
style: the string exists in their character IFF files and can be filled
with any outfit, but the game ignores it. The closest children can get
to formal dress is the "Formalwear" option of the House Party costume
trunk, which has its own dress styles. Likewise, in Superstar, children
have no High Fashion style. The game puts "ADDED" in their buyable
Formal and High Fashion strings, overwriting whatever I put in.
The naming conventions begin with the first letter of the BMP and
the CMX name, and the seventh letter of the mesh (which always starts
with "xskin-"). This is:
Naming conventions hardly apply to the Work style; there may
be versions of the work skin for different skin tones, and versions
of the work mesh for different body
shapes. For the job "Astronaut", obviously, it makes no difference.
According to these naming conventions, each skin bitmap's
name contains the following information: dress style, mesh name,
sex, age, skin tone, and a tag to identify the skin. The tag
follows an underscore and may be followed by other tags. The CMX and
mesh names contain the same information, except for the skin tone.
Their tag is usually something like "_01", since the mesh and
CMX are already identified by the mesh number.
The information in the name, I call the code. The tag after the
underscore, which I've also seen called "skin name", I'll call the
identifier to avoid confusion with the physical file's name. The format is:
The anatomy in the mesh name would be things like "PELVIS-BODY".
For the purpose of naming conventions, they can be ignored.
The identifier is mainly important for the BMP skin, as the same mesh
can be used to project many different skins onto, and can be used for
making sets (see "sets" below"). Identifiers in CMX files may denote
different mesh combinations inside the CMX, like "C001MC_default.cmx"
for just the C001MC head, "C001MC_glasses.cmx", "C001MC_tophat.cmx" etc.
It's the same C001MC head mesh being referred to, but different
accessories are added.
In SKN mesh files, identifiers generally serve no use, except to hint at
what kind of mesh it is. Meshes are supposed to be unique per age,
gender and body type, so there shouldn't be two different B200FAFat mesh
files kept apart by their identifiers. (Fans may have to resort to this trick
when mesh numbers are running out, though, or to use a custom mesh with
existing skins.)
The code falls apart into:
A typical skin name might be "B004FCChddrk_elsie.BMP" for a dark girl skin
to be used with the skirt mesh "xskin-B004FCchd_01-PELVIS-BODY.skn". The skin's
identifier is "elsie", to distinguish it from other skins that go with the
same mesh, age, sex, skin tone and, for adults, body type. The corresponding
CMX file would be called "B004FCChd_elsie.cmx" or better still "B004FCChd_01.cmx";
what comes after the underscore doesn't matter so much. Any set of mesh,
skin and CMX where the first five components of the code match, is
a valid combination.
The importance of the naming conventions is this: first, for a body
to appear in the Create-A-Sim screen, there must be a CMX and a BMP
which share the same code. (The internal defaults, for eg. the skinny nude
bodies, deviate a little from this rule.) Every valid combination of CMX and
BMP will produce an outfit/head to choose from. (Outfits will only appear if
they're the "B" type, ie. normal.) Second, the code of the
CMX and BMP must match the Sim's personals; skin tone, age and gender
must all be the same as what's laid down in the character and neighbourhood
IFF. Otherwise, the game disregards the information in the Sim's bodystring
and dresses the Sim up in something else.
Adult Sims come in three body types: Fat, Fit, Skinny. For females,
this means a progression from flat-chested to wide-hipped and full-bosomed.
Fat Sim women have a mature rather than obese figure, and the fit females
are skinny-limbed and mostly buxom. For males, fat means truly paunchy,
fit means your average, slightly chunky thirty-year-old and skinny male
Sims have the same basic body as female Sims, which means their hips are
too high. The skinny Sims of either sex might pass as teen Sims, since
there are no standard teenager meshes.
Children, fortunately, have no body types; their only type is
"chd" (child). Girls and boys have the same bodies.
There are only two heights: Adult and Child. Intermediates are not
possible, as this would interfere with the animations. I've seen an
inventive mesh-maker's height variations: a skin that was slightly
taller than average, and one that was slightly shorter; but these
can look funny with head animations like wearing the VR set.
I've also seen a realistic fat body type, but that had problems with the
placing of the hands. Making more body types is possible - but it's not easy.
There are several sites that have developed their own body types,
for instance, SOB for the SimOnes "Big Girls" project, and SUM for
Jerome's "Summo" (I assume that was meant to be "Sumo"?) type.
The trick is to coin a three-letter type to replace FIT/FAT/SKN.
The SOB files demonstrate the use of being able to reference a mesh
through a CMX with a different code: the "NFSOB" CMX refers to a
"B300FASOB" mesh. Normally, to use a B300 mesh, both the skin and
the CMX have to start with something like "B300", but since all "B"
skins are seen as outfits, the player ends up cycling through nude
"outfits" when using the wardrobe. Connecting the B300 mesh to a CMX
file starting with "N" keeps it out of the wardrobe.
Heads have the same naming conventions as bodies, although they don't
have dress styles, and as with bodies, if they don't pass the criteria,
the game replaces them with something else. Hands have limited naming
conventions, but have one tenuous connection with dress style: gloves.
About heads, there isn't much to say, except that they are not supposed
to change, which means that any changing or hairstyle, headgear etc.
has to be achieved by writing the headgear/hairstyle as accessory into
the body CMX file, so that a change of outfit may leave the Sim bald.
There are three hand meshes: open (normal), pointing and closed. The
second two I hadn't seen until I installed House Party: the fists are
used to grasp the bars of the dance cage and the pointed fingers for
some embarrassingly dated disco dancing. (The closed hands are also used
for planting and weeding in Unleashed.) They come with six CMXs that
the user will rarely have to bother with, and three skins that go on both
hands, starting with HUAO-, HUAP- and HUAC-: Hand, All three sexes,
Used on both sides, Closed/Pointed/Open. This is followed by "drk/lgt/med",
but no identifier. Giving the hand files an identifier locks them to the
body BMP with the same identifier (see "Sets" below, and the section on
making sets). To have separate left and right
hands (for the Michael Jackson glove effect) there are the skins HMROlgt.bmp,
HMLOmed.bmp, HFROdrk.bmp etc. which work by the same code: Hand, sex=Male,
side=Right, Open, dark/light/med tone.
Adding identifiers to these filenames has the same effect as with the HUA-files.
Gloves have only one shape: open. (I guess people don't disco in
formal dress.) The only standard gloves skin I've seen (apart from NPC
skins like the burglar's gloves and the Grim Reaper's skeleton hands) is
"GFAO_bride.bmp": Glove, sex=Female, side=All, Open, with an identifier ("_bride").
People who update from Livin' Large to Deluxe or later may notice that
the bride no longer wears gloves. In my Unleashed installation, I've found that
the glove strings for all characters were filled with strings like "GMAO_bear1"
and "GMAO_yeti". Needless to say, these textures didn't show up in the game, and
neither did any other glove skins; it seems that with the new dress style
strings, the gloves string is ignored along with the old formal string. This
solves both the Hot Date bug of assigning all Sims gorilla "gloves" and
the problem of the gloves having no closed/pointing form, but introduces
a new problem: what if the Sim is supposed to have gloves with that tux?
The solution, post-HD, of getting gloves on a Sim is the same as the
solution in all versions for getting glove-like hands off a Sim: change to a new
"normal" outfit. Suppose the "normal" outfit is a Batman jumpsuit complete
with glove-coloured hands. To prevent SimBatman swimming with his gloves on,
first make him wear another outfit that doesn't come with gloves, then have him
change to swimwear. To get gloves with a formal outfit is trickier; first have the
Sim change to a normal outfit with gloves of the right colour, then
change the Sim to formal. A pity hand skins can't be changed directly...
Gloves have identifiers, but unlike hands, their identifiers don't seem to
"lock" them to an outfit. I suppose that glove strings could be edited in
the versions before Deluxe/Unleashed. Editing hand strings is useless; the game
will write back into the file what it considers the "right" hand skins, which
is either the skins with the same identifier, or the defaults.
The practical side of making sets is explained here.
Sets are: one or more dress styles (other than the normal style) customized
to appear on a particular Sim. There are two ways of making sets: the way
that work in pre-HD installations, and the way that works in post-HD installations.
They are 90 percent mutually exclusive, because the parts of the bodystring that
are affected in the one situation are ignored in the other, and vice versa.
The pre-HD way of making sets depended on the identifier. The idea
was that if the B-type skin bitmap had an identifier that also occurred in
other-type skin bitmaps - so, for "B002MCchddrk_sammie.bmp", there was also a
"NUchddrk_sammie.bmp", a "Pjsmchddrk_sammie.bmp", a "FMchddrk_sammie.bmp" and a
"HUAOdrk_sammie.bmp", then these other files would automatically be filled
in for the Sim using "B002MCchddrk_sammie.bmp" as a skin. Very handy for people
who want to download and assign skins without having to manually edit the
Sim files, but there are disadvantages. Firstly, it is hard to apply the same
principle to use custom meshes, or custom combinations of meshes, instead of
custom skins. (For custom meshes, like a "pregnant" mesh, it's best to use a
custom body type.) Secondly, it can lead to enormous redundance: for instance, I
have a huge collection of hand files for all the Sailor girls I've downloaded.
They have names like "HUAOlgt_SailorMoon.bmp" and "HUAOlgt_SailorSaturn.bmp"
to be automatically assigned along with the main skin, but they are basically
all the same pair of white gloves. Thirdly, all three kinds of file used to
incarnate a Sim can have more than one identifier; in that case, which of the
identifiers is significant in keeping a set together, the first or the last?
I've found a suggestion that the identifiers don't even have to match
exactly; although the formal gloves for the Starlight Sailors were ignored
in Unleashed, the combination of
"BxxxMAFitlgt_Star2" and "GUAO_Starlight2" was flushed out by the name
check (the character was assigned the yeti gloves instead) but the
combination of "BxxxMAFitlgt_Star" and "GUAO_Starlight" wasn't, suggesting
that "_Star" and "_Starlight" were close enough.
The most important thing to remember about the pre-HD set-making method,
and this also applies to hands and nude bodies in the post-HD situation, is
that the set is determined by the identifier on the normal body. The
identifiers on the head or formal gloves have no effect whatsoever, and
adding a tag to the nude skin identifier to try and get the default hands
back in nude dress style will only break the set.
Onto the post-HD set: here, it is possible to customize every dress
style independently and in every aspect - mesh, skin, CMX - as long as the
style is buyable. At last, no more fiddling with the identifiers, except
to customize the nude skin, which can still be necessary, as not every
Sim's skin tone is light, medium or dark as displayed in the game; Gothic
Sims tend to be paler, realistic "coloured" skins may be a lot darker.
Hands are also completely disconnected from dress styles now; in
later expansion packs, formals no longer have gloves, and
winter wear never had any. The post-HD
system relies on extra lines added to the bodystring and three new
mesh/CMX types: S, L, F (plus W in Vacation, and H in Superstar).
Unlike the old system, the new system allows doctoring the CMX files
for different dress styles, and thereby putting non-standard meshes
in a set, while using the standard body types. So, "set" in the old meaning
of dress styles all depending on one shared factor (the identifier) has
ceased to exist. The old dress style lines in the Sim character file are
ignored, their information is not somehow transferred to the new lines
when Hot Date or later is installed;
set-makers have to start over. (The identifier still has some effect,
though. If, in a post-HD setting, I pick a normal outfit with an
identifier in the CMX file, and there are CMX files with the same
identifier for the other dress styles, it is these CMX files that are
automatically filled in when the Sim is created. But if CMX files with the
same identifier are not present for other dress styles, the game
may crash.)
(However!
As of Deluxe/Unleashed, the nude CMX can no longer be replaced by
a customized version; the default name is written back into the file
each time the game is started. I can split "nuskn_01.cmx" into
"nfskn_01.cmx" and "nmskn_01.cmx" for the purpose of having different
male and female nude meshes, but I can't make a "nuskn_pregnantbody.cmx"
for one specific female skinny Sim. Older versions allowed the user
to replace the default nude CMX with something else through manual
editing, but that option is now gone for good.)
The new system is also as fussy as the old one in actually
applying the custom set. Before HD, the user had to cycle through
all outfits in the dresser before the game would write the correct
strings into the user IFF file. In HD, cycling through formalwear
etc. is part of the game itself, but any Sim with a custom body
type is treated as Fit, so to actually get the right outfits into
the Sim's file requires manual editing. This does mean that other
dress styles can have a body type different from the normal-wear
body type and from each other, without causing a game crash; very
convenient for sets with missing dress styles.
Accessories have no real naming conventions. A pair of spectacles
may be contained in "Spectacles.BMP" and "xskin-Spectacles.SKN". There would not
be a CMX for this spectacle mesh, as it would be included in a "B300MASkn_Nerd.CMX"
or some other CMX linking the spectacles accessory to one of the three main meshes.
As the CMX doesn't provide a clue what texture to use on the mesh, the filename
of the BMP to use is included in the mesh's header.
Accessories are any meshes - and skins for those meshes - which are not
one of the three main types: head, body, hands. Hair is usually part of the
head mesh, but when it's a separate mesh, it becomes an accessory. Ditto for
glasses, hats, earrings, the ribbons and bows on Sailor Moon outfits, etc.
As the above definition implies, they have to be attached to one of the
three essentials. You can't really attach anything to the hands (the game ignores
custom hand CMX files) so that leaves the head and the body.
So far, I've used "attached" ambiguously. I've used it for the way
meshes are organized - does the accessory go with the head, or the body? -
and for the way they are physically stuck on the main meshes. In the first
sense, attaching an accessory means choosing in which CMX to put it: the
body CMX, or the head CMX. In the first case, it will disappear when the
outfit is changed, meaning, one CMX is flushed out and another loaded.
In the second case, it will stick to character, because the head CMX is
normally never changed. That doesn't mean that the accessory physically
sticks to the body or head, and this brings me to the second meaning of
attachment: which body part it sticks to and moves with. An attribute
that is always meant to be part of the Sim, like a staff, is attached
to the head - but physically, it is attached to whichever hand is holding
it. Conversely, earrings which belong with a customized Formal dress style
are attached to the body, but physically they are attached to the head
- the ears, but the whole head is one "joint" - and will move when the head
does. A Sims mesh has "joints": body parts that accessories can be fixed
to. I won't list them here, as anyone who edits SKN files with a
SKN-compatible 3D modeller will see them listed as joints. Accessories are
physically attached by assigning them to these joints, and this assigning
is done primarily in the CMX.
A CMX file for the head shown above would run like this:
The example above is a logical reconstruction of a CMX for
three files, a head and two accessories (where the accessories
follow the naming conventions, though they don't have to),
fixing the accessories to the Sim permanently.
The example below shows head accessories (hair and hairclip) being
attached to the body, where the CMX file's identifier, "_bktail",
distinguishes this CMX from the standard "B300MASkn_01.cmx" which
contains no accessories.
To lock this hair permanently to the head, this CMX must be replaced
in the bodystring by the standard "B300MASkn_01" and the head CMX "CAG0MA_BK.cmx",
which contains no accessories, by this one, "CAG0MA_BKtail.cmx":
To make matters more complicated still, although the hair mesh is
physically attached to the head, parts of it are attached to the
shoulder and back to make it move with the body. In the CMX, the
accessory is only assigned a "starting point"; individual vertices
of the accessory mesh can be assigned to other joints. Fortunately, that
is taken care of within the mesh itself.
Something to keep in mind is that all accessories in the head CMX
show up in the character's "face" icon, in a rather rucked-up way if the
joint they're assigned to is not the head joint. From HD onwards,
the "face" icon is created in a different and more crash-sensitive way;
if the accessories are too big, the game crashes on the making of the
icon. In that case, the accessories are best added to the body CMX.
(Which is what I've had to do with a JunJun skin, see the
Skins and meshes page,
right at the bottom).
The strict naming conventions have one major disadvantage: the need for
duplicates. For instance, I have one BMP file for Katze's head. It is the
same for the male and female Katze, only the mesh differs slightly. Nevertheless,
I have to copy it and name one copy with "M" and one with "F", or one of the
two Katze forms doesn't have a head. And these two files are identical.
(Note: it is possible to use "U" in CMX filenames for unisex meshes, and in
BMP names for unisex textures. This works for bodies, I haven't tried it
with heads.)
The same applies to bodies. Female Katze's jumpsuit shows practically
no skin, yet if I wanted to put it on a dark-skinned Sim, I would
have to make a copy where the "lgt" in the filename is changed to "drk".
Sometimes, a skin is renamed only to connect it to a different mesh.
In BodyWarp, I can load skin "C001MAlgt_BK.bmp" on mesh
"xskin-CAG0MA_BK-HEAD-HEAD.skn". Not so inside The Sims. Both
filenames had better contain "CAG0", or there's no saying what head the
character will get. What if I think that skin looks cool on a C001 mesh
too? Then I need to make a separate copy of the skin and change "CAG0"
back to "C001".
A lot of duplicating and renaming goes on to use the same skin for
a different dress style, or to change pre-HD clothing "sets" to post-HD
ones (and how to do this is explained in Customizing
dress styles). Would that cocktail dress make a sexy nightie? Maybe,
but it won't happen unless its name is altered to start with "Pajama" or "L".
And as a "B" mesh can't be combined with an "L" bitmap, if there is no suitable
existing "L" mesh, the mesh may have to be copied and renamed too.
(Actually, a quick'n'dirty solution is to write an "L" CMX pointing to
a "B" mesh, but they don't do quick'n'dirty at Maxis - at least not
always. ^_^ And I've found there can be problems if the CMX and mesh name's
mesh codes don't match.)
The worst example of duplication - and this is probably why the
Swimsuit pack is no longer officially up for download - is the children's
swimsuit meshes. The old child nude mesh type is "Nuchd", the "u" indicating
that it is used for both sexes. This mesh is also used for swimsuits,
thereby obliging both sexes to have the same skintight no-frill basic
swimsuit models. To get round this, the B300mcchd and B300fcchd meshes
were made. However, these are simply duplicates of the nude mesh, not
differently shaped meshes. And the also included B300ucchd mesh was
again a copy of the nude mesh - that makes four times the same mesh.
Now it may be necessary to change a mesh name because of the way outfits appear
in the wardrobe: "U" outfits appear for both boys and girls (I haven't tested
if this works for adults, but they have very few "U" meshes), "M" outfits
only appear for boys and "F" only for girls. But if you've named a frilly
bathing suit "B300Fcchdlgt_frills.bmp" to avoid ever having it
appear on a boySim, you need a B300Fc CMX file to go with that,
because the game won't accept a B300Uc CMX with an M/F skin
(actually I'm not sure that's true, as the male and female nude textures both
work with "nuskn.cmx"); and then it would be consistent to put M/F in the mesh
name too. The B300M/Fc meshes are for gender-specific skins,
the B300Uc mesh is for unisex skins. Okay, so far, I understand. But the
Swimsuit pack also includes a B301ucchd mesh, which again is simply
a copy of the child nude mesh, and of which I completely fail to see the
use.
All this nicely fills up the harddrive and is unpleasantly confusing when
trying to find a particular skin. However, I've heard that duplicate skins
are fairly harmless; it's duplicate meshes that tax the system when the
game is loaded.
In all, I wish the game makers had chosen a more economic naming system...
This trick I discovered when I used an accessory mesh whose name ended
on "BODY"; it took its texture from a Sim's body skin, not from the skin name
in its own header. It's handy for re-using accessory meshes, which normally
can't change skin in the way that head and body meshes do.
At the top of this page, I've said that a mesh's naming convention is
"xskin-code_identifier-anatomy.skn". The "anatomy" bit is "PELVIS-BODY"
for body meshes and "HEAD-HEAD" for head meshes. The bit before the
hyphen is the main "joint" the mesh is attached to. A head only has
one joint, but a body accessory may be attached to R_HAND or NECK. The
joint also decides whether a mesh will appear in the Sim's face icon;
if it's not assigned to HEAD, it won't, and if it is assigned to HEAD
but won't fit in the icon (this is a problem in higher expansion packs,
which can't deal with certain head meshes) the game crashes. The "PELVIS"
bit can be left out, and to make mesh names fit within the Mac maximum
of 31 characters, I usually do that. As is clear from a look in the Sim's
IFF bodystring, the "BODY" and "HEAD-HEAD" bits tell the game whether to
texture the mesh from the head or body skin.
What this means is that if I UVmap a pair of glasses to an unused
part of a head skin (top right corner, for instance), I can have one
head skin with a red top right corner which has red glasses, one head
skin with a green top right corner showing the same glasses in green,
andsoforth. I then need only one spectacles mesh named
"xskin-multispecs_01-HEAD-HEAD.skn" instead of a mesh called
"xskin-redspecs_01-HEAD-SPECS.skn" with "redspecs.bmp" in the header,
an identical file "xskin-greenspecs_01-HEAD-SPECS.skn" with "greenspecs.bmp"
in the header andsoforth, and I don't have so many texture files lying
around either.
Finding space to fit the accessory's UVmap can be a problem. That led to a second
trick: the "double" head. This is a normal head mesh, whose UV map has
been squashed into half its normal width. Since a UV map's coordinates
are relative, not absolute, that means I can put a 128x128 normal head
texture side to side with a 128x128 hair texture in a 256x128 file.
Hair meshes can get quite big, and need texture files as large as that of
the head itself. I can now do two things: combine the hair and head meshes
into one mesh which needs a "double" texture file, or keep head and hair
mesh separate, but have them both end on "HEAD-HEAD", so they will each
use their half of the double texture file, but I can play mix'n'match
through the CMX file.
Making a "double" body mesh in the same style leads to a texture too
big for some graphics cards to handle, so for body textures that include
accessories, I've either shrunk the whole body to three-quarters of its size
and used the space along the edges, or - a trick I read in a forum - mapped
both arms to the same space, leaving enough space for small things like hat
textures.
It sometimes happens that a mesh is invisible in the game. A Sim shows
up headless. Or, there's a head and two hands, but no body. That mesh is
there! If it was missing, the game would have crashed. I've found three
reasons why a mesh won't show:
The mesh name, on the first line of the mesh file, ends in ".skn".
If given, the texture name, on the second line of the mesh file,
ends in ".bmp".
The mesh is in "Animation.far" and being referred to by a BCF
file outside "Animation.far" (if it had been a CMX file, the game would
have crashed).
There's something wrong about the format and I haven't a clue what,
but loading a mesh in BodyWarp and saving it solves the problem.
(If BodyWarp can't load it, there's something seriously wrong
with it.)
Meshes with internal format errors, like more faces than the face
count says, or missing blend vertices, will show up horribly distorted.
They may crash the game; I once tried to add blend vertices to a cloak
before understanding the SKN format, and managed to do just that.
The three vital components
xskin-b300faskn_01-BODY
x
19
PELVIS
R_LEG
etc.
// Character File. Copyright 1997, Maxis Inc.
version 300
0
1
b300faskn_01
0
0
1
PELVIS
xskin-b300faskn_01-BODY
0
0
0
The naming conventions
Normal
Work
Nude
Underwear/Swimsuit
Pyjama/Lingerie
Formal
Winter (Vacation)
High fashion (Superstar)
C ("caput"?) for heads
B for normal bodies
N for nude bodies
Pajama for pyamas, pre-Hot Date (note: a whole word)
U for swimsuit/underwear bodies, pre-Hot Date
S for swimsuit/underwear bodies, Hot Date
L for Lingerie, Hot Date
F for formal bodies
W for winter clothes (Vacation)
H for high fashion bodies (Superstar)
H for hands
G for formal hands (gloves)
bitmap: codeskintone_identifier.bmp
cmx: code_identifier.cmx
mesh: xskin-code_identifier-anatomy.skn
dress style/body part (listed above)
three-character mesh type (skirt mesh, long pants mesh etc.)
M/F/U for male, female, both (the U is rarely used)
A/C for adult/child
fat/fit/skn/chd for fat, fit, skinny or child body type
drk/lgt/med for skin tone
Body types
Hands and heads
Sets
Accessories
This screen capture of Elisims shows hair accessories connected to
a Sim's head.
// Character File. Copyright 1997, Maxis Inc.
version 300
0
1
C210FA_adSailV (-> CMX name)
0
0
3 (-> 3 meshes total)
HEAD (-> attached to head joint; like the other two)
xskin-C210FA_adSailV-HEAD-HEAD (-> the head mesh)
0
0
HEAD
xskin-C210FA_adSailV-HEAD-BOW (-> the bow in her hair)
0
0
HEAD
xskin-C210FA_adSailV-HEAD-SPECS (-> the trademark anime-heroine "mask")
0
0
0
// Character File. Copyright 1997, Maxis Inc.
version 300
0
1
b300maskn_BKtail
0
0
3
PELVIS
xskin-b300maskn_01-PELVIS-BODY
0
0
HEAD
xskin-BKtail
0
0
HEAD
xskin-BKstar
0
0
0
// Character File. Copyright 1997, Maxis Inc.
version 300
0
1
CAG0MA_BKtail
0
0
3
HEAD
xskin-CAG0MA_BK-HEAD-HEAD
0
0
HEAD
xskin-BKtail
0
0
HEAD
xskin-BKstar
0
0
0
Duplicates and renaming
An anatomy trick
Why meshes won't show