|
|
 |
 |
Doom Legacy Skin Specs
Written by: Denis Fabrice
Converted to Html by: Dan Colardeau
Last updated Aug 25, 1998
CONTENTS:
[0] First Note
[1] Overview
[2] Implementation
[3] Example
[4] Technical Blurb
[4-1] Skins And Sprites In Pwad
[4-2] Same Resource Name On Different Pwads
[5] Tools
[0] FIRST NOTE
If you have problems creating Skins wads for Doom Legacy, and can't find
the answer to your questions in this documentation contact
us.
[1] OVERVIEW
Let's first have an overview of what defines a Skin:
S_SKIN: Each skin in a pwad is identified by a 'skin
marker': this is a resource by the name 'S_SKIN'. The resource contains
data in the form of a text file, which describes what is replaced by the
skin, and gives the name of the skin.
Skin sprites:
A skin is basically a sprite replacement for the player
avatar. ALL the frames of the player sprite must be replaced : this includes
the normal run, attack, hurt sequences, as well as the 'normal' death, and
the 'explode' death sequences.
Skin face:
Though the status bar face is viewable only by the player
who uses the skin, it may be replaced in order to be consistent with the
player character appearance. As soon as we ran some tests with a 'Leprechaun'
skin, and saw the marine's head in the status bar.. we added support for
replacing the status bar face. Like the sprites, ALL the face graphics
need to be replaced, if some are not defined, the game will quit.
Skin sounds:
To make it more fun, a skin can have a set of up to 10
sounds replaced, these are called the 'skin sounds'. Skin sounds are replacements
of a set of the original Doom sounds, which are given out only by the skin
that defines them. All the sounds need not be replaced.
[2] IMPLEMENTATION
Now on to implementations:
S_SKIN resource format:
The content of S_SKIN is just a simple ASCII text file.
If you put more than one skin into a wad file, there
are effectively multiple resources of the same 'S_SKIN' name. If this is
a problem you can add any characters after the 'S_SKIN' letters, so that
your wad editor doesn't complain. Example: S_SKIN1, S_SKIN2, ... Legacy
will search only for the first 6 letters.
Format of the text file:
// comments start with '//'
name = <skin name>
This gives the skin a name, Max 16 Characters,NO SPACES!
sprite = XXXX
Identifys the sprites to use for this skin 4 characters, optional.
face = XXX
Identify the status bar face graphics to use for this skin. MUST be 3 characters.
dsouch = dsXXXXXX
Replace one of the 10 customisable sounds with a new sound. The new sound
name MUST start with letters 'DS'
dsplpain =
dspdiehi =
dsoof =
dsslop =
dspunch =
dsradio =
dspldeth =
dsjump =
dsouch = br>
[3] EXAMPLE
An example is better than 1000 words, so here we go.
Here's a sample of a text file that you could have into the 'S_SKIN' resource:
// Terminator skin by xxx mail me yyy@myhouse.com
name = terminator
sprite = TERM
face = TER
dsouch = dstmouch
dsplpain=dstmpain
dsslop = dstmexpl
As you see each line looks like: <property> = <value>
Let's study each line one by one:
// Terminator skin by xxx
This is just a comment line. Comments start with '//'.
Use comments to put author information. The comments are not displayed anywhere
into the game, but they may be useful if someone hacks your wad, he/she'll
know where it comes from and who did it.
name = terminator
This tells that the skin name is 'terminator'. The skin
name is displayed in the Multiplayer, Setup menu. It is used by the 'skin'
command, in the console. You would type 'skin terminator' at the console
to change the skin manually, of course it's easier to use the multiplayer
menu. The skin name must be UNIQUE : if there are two skins in a wad with
the same name, whatever different may be the graphics, only the first skin
will be used. The skin name is also displayed in the TEAMPLAY Rankings,
when using 'teamskins'. Since each team is identified by a skin in 'teamskin'
mode, the rankings would show like this:
| 98 |
Leprechauns Team |
| 107 |
Terminator Team |
As you see, the name of the skin is used as the name of the team. If you
don't specify the name of the skin, it receives a name like 'SKIN 1', 'SKIN
2', etc.. not fun.
ATTENTION: the name can't have spaces in it... for example a name like 'blues
brothers' will make Legacy quit with a message like "unknown 'brothers'
keyword". We should fix that later.
sprite = TERM
Tells the name of the sprite to use for the skin. Sprites
in Doom uses only 4 letters, the original player graphics sprite is 'PLAY'.
The line above tells Legacy to look for TERMA1 instead of PLAYA1, TERMA2A8
instead of PLAYA2A8 etc...
It is not needed to rename the player sprites like this. It is usually simpler
to put all the sprites _JUST AFTER_ the S_SKIN resource. Example:
S_SKIN
TERMA1
TERMA2A8
TERMA3A7
TERMA4A6
etc...
Note that if you put the sprites just after S_SKIN, the
sprite name doesn't matter, Legacy looks for the first sprite name, and
continue to collect all the frames with the same sprite name, until the
name has changed, or the end of the wadfile.
You will want to rename the skin sprites only if your wad editor requests
that all resources have a _unique_ name.
Since you can use any name for the sprites, even without
using the 'sprite = xxxx' statement, you will probably need this only if
you really can't get the sprites ordered just after the S_SKIN resource.
Note: _ALL_ the frames of the player sprites must be replaced.
face = TER
All the status bar face graphics resources in Doom wad have the name start
with 'STF' : STFST01, STFGOD0, STFDEAD, etc...
This lines simply tells _3 LETTERS_ to use in place of 'STF'.
So in this example Legacy will look for 'TERGOD0' instead of 'STFGOD0',
'TERST01' instead of 'STFST01', etc...
Attention : the STPB0-STPB3 resources are no more used.
the STFB1,STFB2,STFB3 resources of the original Doom are no more used. Doom
Legacy only uses STFB0, and remaps the green color to the color of the player,
just like for the sprites.
Note 1: contrary to the sprites renaming, you MUST use this line in order
to change the status bar face graphics.
Note 2: remember you must replace _ALL_ the status bar face graphics, that
is: provide a replacement for all the resources that start with 'STF'.
dsouch = dstmouch
dsplpain = dstmpain
dsslop = dstmexpl
These lines tells new sounds to use for that skin in particular, in place
of the game's original sounds.
Up to 10 sounds can be replaced, the sounds are related to the player actions:
DSOOF
DSNOWAY
DSPLPAIN
DSPLDETH
DSPDIEHI
DSSLOP
DSPUNCH
DSRADIO
DSJUMP (This Sound is the Jump Sound, New Doom Ports Only.)
DSOUCH (This Sound is the Hurt when hit on celing Sound, New doom ports
only)
For each sound to replace, use a line like:
original sound name = new sound name
Any of the 10 sounds can be replaced, or all.
The sounds that are not replaced will sound just like the original.
Note: the replacement sounds doesn't have to be new sounds, you can use
any sound from the game. For example, if you create an imp skin, you could
replace the player sounds with the imp sounds.
[4] TECHNICAL BLURB
[4-1] SKINS AND SPRITES IN PWAD
If you have a wad with skins _AND_ other sprite replacements,
make sure you use S_START, S_END sprite section markers so that the skin
sprites are not replacing the default player sprites, in case you use 'PLAY'
for the skin sprites. If the PLAYxxxx skin sprites are _outside_ of the
sprite section markers, they will not be mistaken as the default player
sprites.
[4-2] SAME RESOURCE NAME ON DIFFERENT
PWADS
To make it clear : Legacy will add skins _WAD PER WAD_.
Which means it doesn't bother at all if there are resources with the same
name in different pwads.
In fact, Legacy doesn't even bother if you put several markers with the
same name in a pwad (multiple 'S_SKIN' for example). We added support for
'S_SKINxx' where xx can be any character, just because some wad utilities
don't like multiple resources of the same name.
You could for example use the same sprite name for several skins into _one_
pwad, since they are delimited by skin markers (S_SKIN).
[5] TOOLS
That's it. Creating skins is very easy, provided you
have the tools. We recommend NWT 'New Wad Tools' version 1.3, by Denis Mller.
This program allows to insert new resources, rename it, insert raw data
into resources (which is how we insert text files into Doom wad resources).
Another common wad utility is 'WinTex' version 4.0, by Olivier Montanuy.
This is similar to NWT, but it will run under Windows only.
If you have questions regarding the WAD tools in particular, please consult
the Doom editing newsgroups, or ask questions on the Doom
Legacy forum.
Have fun!
|
|