Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 9

CREATE CUSTOM FACE & VOICE

Thanks go to Wodan & The_Hairy_Vlad among many others.


The process is pretty easy, just complicated by the amount of work needed to accomplish
this first task.

This first part deals with creating faces.

Decide which character you are going to work on.


Example: Hamous (Postie in UC), which is character number 63.

NOTE: NON-recruitable characters use images with a ‘B’ in front, eg b63.sti


Mercs use images without anything in front, eg 63.sti
Recruitable characters, like Hamous, need all of them.

For the faces of character #63, you will need:


/data/faces/63.sti (48x43 pixel image)
/data/faces/B63.sti (90x100 pixel image)=the one you see when talking to someone.
/data/faces/33face/63.sti (15x14 pixel image)
/data/faces/33face/B63.sti (29x33 pixel image)
/data/faces/65face/63.sti (31x27 pixel image)
/data/faces/65face/B63.sti (58x65 pixel image)
/data/faces/bigfaces/63.sti (106x122 pixel image)=the one in AIM profile with background
or terrorist intel page.

Check the Ja2/data/faces folder with UC installed for examples.

Create a face image.

Use the graphics program of your choice. Tip: Make it 106x122 pixels or bigger, this way,
you only have to cut/scale down for all the others.
Check in Ja2/data/faces folder to see how the faces fit the images.
When the image is finished and the correct size, convert the image to 256 colors and export
the color palette for later use.
It is possible to simply copy(CTRL+C) and paste(CTRL+V) the image into STI-EDIT, but
may lose some quality.

Mouth and eye movements.

1
Some face sti’s have moving mouths and eyes.
Prime among these are the 90x100, 48x43 and the 58x65. The others, as far as I can tell, do
not need them.
There are 8 pages in one sti-file. The 106x122.sti is the exception, it is single page.
Each page is:
* Full face image
* Eyes closed
* Eyes half closed
* Eyes, angry frown
* Eyes, eyebrows up
* Mouth ee
* Mouth aa
* Mouth oo
These are the order of appearance in the multi-page sti and must be placed as such.

NOTE: Try to make the three eye details the same size and the same for the mouth. This will
save a lot of ‘tweaking’ of the x-y coordinates in STI-EDIT.

Importing into STI-EDIT.

Open STI-EDIT. Here you can do two things that have the same effect.

EITHER, open a face image you want to overwrite, and paste your homemade image (from
your graphic program) onto the image in STI-EDIT. Press the RED ARROW pointing to the
right to go to the next image in the sti file and copy/paste your first eye detail over the
present image (image will be replaced with yours). Do this for the other 6 images.
OR, create a new sti file in STI-EDIT using the white page icon (neue data einstellen), and
choose the second option (collection).
Here, you can start with the standard palette, which will be overwritten by the first image
you paste into it, or load the palette you exported for a better matching result. Click on “neue
data einstellen” (read:create) and you get a nice black square empty sti collection.
Now copy your face image from your graphic program and paste it in STI-EDIT.
Press the RED ARROW pointing to the right with GREEN background to CREATE the
second page in the sti file. Copy/paste your first eye image and continue until you have 7
pages, thus, 8 images – the first image is on page 0.

Save file to appropriate folder.

Remember that there are several face sti files with the same name (63.sti or B63.sti), so you
may want to duplicate the folder structure as above (/data/faces/etc…..)

Repeat until you have all 7 face sti’s for your merc. Place them in the appropriate folder.

2
Mouth and eye movements.

You still have to get the eye and mouth movements in the correct spot.
Open prof.dat with ProEdit located in binary data. In the bottom left, you can enter the
mouth and eye image coordinates.
These coordinates measure, in pixels, the distance from the TOP LEFT CORNER of your
face image to the TOP LEFT CORNER of your eye/mouth image. You can look up these
coordinates by checking the placement of the detailed images in your advanced graphic
program or in paint, by pasting the detailed image over the big one and move them to the
correct position. The coordinates appear in the bottom window.
Use ProEdit Add-On by Arael, to open the exe you are using. Edit the coordinates for the
48x43 face eye and mouth images.
If for some reason your 4 eye detail images are not the same pixelsize, they will look
distorted in the game, since they will be offset with the first set of coordinates you entered
into ProEdit or the add-on.
This can be solved by making the images the same size, or by tweaking their position using
the x and y offsets in sti-edit. If your first image is 20x38 and your second is 14x30, aligning
to the center of the other one, then you will have to adjust x and y to 3,4.

NOTE: Sometimes, pasting a new page into the sti file can cause the other pages palette to
corrupt – so save often!!!

VOICE

Below is the table data for voices used by AIM, MERC, RPC and IMP, extracted from .slf
files. NPC speech is in a different file. These list(s) will help to identify those you may wish
to alter/edit for your custom character(s). Tools you may need are : Unslf, EDT Editor, Ja2
Voice Ripper.

000 – sees enemy 001 – sees enemy


002 – sees lots of enemies 003 – sees bug
004 – sees bug for 1st.time 005 – sees signs of bugs
006 – hears something 007 – smells signs of bugs
008 – expects trouble 009 – hopes the bugs are gone
010 – sees too many bugs 011 – sees item
012 – sees item 013 – out of ammo
014 – badly injured/deathspeech 015 – friend 1 dies
016 – friend 2 dies 017 – friend 3 dies
018 – (empty) 019 – weapon jams
020 – gets shot repeatedly 021 – complains about injury
022 – avoids a bullet/explosion 023 – warns cannot hit target

3
024 – is injured 025 – is tired
026 – out of breath/needs break 027 – killed an enemy
028 – killed a bug 029 – complains about disliked merc 1
030 – complains about disliked merc 2 031 – complains about disliked merc 3
032 – killed Mike 033 – sees gruesome death
034 – won’t go in water 035 – has finished task
036 – refuses to obey order 037 – has a drink of alcohol
038 – has killed bug queen 039 – complains about npc
040 – complains about team/job/deal 041 – thinks enemies are inferior
042 – sees airstrike 043 – complains about quality of equipment
044 – would prefer to work alone 045 – complains about other merc
046 – just gained a point/level 047 – disagrees with strategy
048 – disagrees with strategy 049 – finds out in team with disliked merc
050 – finds out in team with disliked merc 051 – congratulates friend 1
052 – congratulates friend 2 053 – congratulates friend 3
054 – would prefer to discuss contract later 055 – sees Mike
056 – is blinded 057 – fails repeatedly at task/refuses to
continue
058 – appreciates an npc’s personality 059 – detects enemies in sector
060 – knows enemies are left 061 – finds cool item?
062 – killed an enemy 063 – sees Joey
064 – responds reassuringly to Miguel 065 – all enemies defeated
066 – items missing/Bobby Rays shipment 067 – killed Doreen
068 – sees bloodcat 069 – victory speech
070 – all enemies have fled sector 071 – (empty)
072 – (empty) 073 – seconds someone’s comment
074 – complains about quality of equipment 075 – discovers mine in ground
076 – discovers mine in ground 077 – (empty)
078 – has arrived at chosen destination 079 – (empty)
080 – refuses to join(casualty rate) 081 – refuses to join(casualty rate)
082 – refuses to extend contract 083 – refuses to extend contract due to
short notice
084 – video-phone greeting 085 – accepts dismissal pleased and
willing to work again
086 – refuses to join due to dislike of merc 087 – refuses to join due to dislike of merc
088 – refuses to join due to dislike of merc 089 – notifies that contract is ending soon
090 – accepts contract extension 091 – accepts to join
092 – reluctantly accepts to join due to 093 – reluctantly accepts to join due to
friend 1 influence friend 2 influence
094 – reluctantly accepts to join due to 095 – refuses to join due to casualty rate
friend 3 influence
096 – repeats 097 – you cannot afford this mercenary
098 – accepts dismissal 099 – refuses to join because of casualty

4
rate(repeated)
100 – refuses to join due to disliked merc 101 – refuses to join due to disliked merc
(repeated) (repeated)
102 – refuses to join due to disliked merc 103 – reluctantly accepts to join due to
(repeated) friend 1 influence
104 – reluctantly accepts to join due to 105 – reluctantly accepts to join due to
friend 2 influence friend 3 influence
106 – repeats 107 – you cannot afford this mercenary
108 – video-phone greeting (alternate) 109 – make comment about video-phone
technology
110 – comments on your delay while 111 – asks how long and if you buy
using video-phone equipment etc..(payment options)
112 – comments on your delay while 113 – comments about another mercenary
using video-phone while using video-phone
114 – comments about another mercenary 115 – notifies that contract ends soon
while using video-phone
116 – asks for higher pay grades

The speech.slf file contains a series of dual-number files in both .gap and .wav format.
The basic filename template looks like this:

036_020.wav

The first number represents the playable character, in this case, Scope. The second number
represents what she says. Both corresponding .wav and .gap files have the exact same name
and differ only in extension and file content. The .gap files, for those not in the know,
contain values which express the delay between each movement of the lips on your character
portrait, so it moves along perfectly in sync with the speech. If you choose not to include a
.gap file, the computer just moves the lips at the same interval.

The first list deals with individual quotes. This second list is about the characters. The file
speech.slf has its characters numbered:

000 – Barry 001 – Blood 002 – Lynx


003 – Grizzly 004 – Vicky 005 – Trevor
006 – Grunty 007 – Ivan 008 – Steroid
009 – Igor 010 – Shadow 011 – Red
012 – Reaper 013 – Fidel 014 – Fox
015 – Sydney 016 – Gus 017 – Buns
018 – Ice 019 – Spider 020 – Highball
021 – Bull 022 – Hitman 023 – Buzz
024 – Raider 025 – Raven 026 – Static
027 – Len 028 – Danny 029 – Magic

5
030 – Stephen 031 – Scully 032 – Malice
033 – Dr.Q 034 – Nails 035 – Thor
036 – Scope 037 – Wolf 038 – MD
039 – Meltdown 040 – Biff 041 – Haywire
042 – Gasket 043 – Razor 044 – Flo
045 – Gumpy 046 – Larry(sober) 047 – Larry(stoned)
048 – Cougar 049 – Numb 050 – Bubba
051 – Male IMP1 052 – Male IMP2 053 – Male IMP3
054 – Female IMP1 055 – Female IMP2 056 – Female IMP3
057 – Miguel 058 – Carlos 059 – Ira
060 – Dimitri 061 – Devin 062 – Madlab robot – no speech
063 – Hamous 064 – Slay 065 – (open slot)
066 – Dynamo 067 – Shank 068 – Iggy
069 – Vince 070 – Conrad 071 – Maddog

All these files are in the same folder (.slf file) with their corresponding .gap files.

NOTE: Not all mercs have all the speech lines in the list. Some speech lines/quotes are
exclusive to certain merc personalities. Danny, for example, will bitch about other mercs
more than others and will mention that he prefers to work alone. This is because of his
‘Loner’ personality trait (that you may get from the IMP quiz), for example. Gus is another
merc who displays this sort of attitude. Some of them have more friends and disliked mercs
than others, and their speech lines reflect this. Don’t feel the need to include all 117 of them
when you create a sound collection for new characters.
Remember, you can also change likes/dislikes/traits etc… within ProEdit, to further enhance
your custom work.

Addendum: Additional to the 113 165 – Gaston


166 – Stogie
167 – Tex
168 – Biggins
163, 164 and 169 are unused.

NPC_Speech.slf

057 – Miguel(pre hire) 058 – Carlos(pre hire)


059 – Ira(pre hire) 060 – Dimitri(pre hire)
061 – Devin(pre hire) 062 – Madlab robot(no speech)
063 – Hamous(pre hire) 064 – Slay(pre hire)
065 – (unused) 066 – Dynamo(pre hire)
067 – Shank(pre hire) 068 – Iggy(pre hire)
069 – Vince(pre hire) 070 – Conrad(pre hire)
071 – (unused) 072 – Maddog(pre hire)

6
073 – Darrel 074 – Perko
075 – Deidranna 076 – Auntie
077 – Enrico(cutscenes) 078 – Carmen
079 – Joe (queens bodyguard) 080 – Dr.Willis
081 – Rat 082 – M.O.M./Annie
083 – Imposter/Chris 084 – Bob
085 – Brenda 086 – Kingpin
087 – Darren 088 – Maria
089 – Angel 090 – Joey
091 – Joey 092 – Frank
093 – Spike 094 – Damon
095 – Kyle 096 – Mickey
097 – Skyrider 098 – Pablo
099 – Sal 100 – Father Walker
101 – Fatima 102 – Warden
103 – Gordon 104 – Gabby
105 – Ernest 106 – Fred
107 – Madame 108 – Yanni
109 – Martha 110 – Eddie/Joe
111 – T-Rex/Jasmin 112 – Druggist/Charlie
113 – Jake 114 – Pacos
115 – Dave 116 – Skipper
117 – Hans 118 – John
119 – Mary 120 – General
121 – Sergeant 122 – Armand Ricci
123 – Lora Ricci 124 – Franz
125 – Howard 126 – Sam
127 – Eldin 128 – Arnold
129 – Tina 130 – Fredo
131 – Walter 132 – Nurse Jenny
133 – Billy 134 – Brewster
135 – Elliot 136 – Derek (end cutscene)
137 – Oliver (end cutscene) 138 – Waldo
139 – Doreen 140 – Jim (KP goon)
141 – Jack (KP goon) 142 – Olaf (KP goon)
143 – Ray (KP goon) 144 – Olga (KP goon)
145 – Tyrone (KP goon) 146 – Madlab
147 – Keith(Cambria merchant)148 – Matt
149 – Mike 150 – Darryl
151 – Herve – contains all DeSantos(barmen) speech
152 – Peter (no sound files) 153 – Alberto (no sound files)
154 – Carlo (no sound files) 155 – Manny(apprentice bartender)
156 – Oswald (miner) 157 – Calvin (miner)

7
158 – Carl (miner) 159 – Speck (M.E.R.C.)
160 – Hummer 161 – El Dorado
162 – Ice Cream Truck 163 – NOT USABLE
164 – spare 165 – spare
166 – spare
JOHN_000 to JOHN_029 – John Kulba
E 057_001 to _003 – Miguels ending political speech
DARREL 000 to 013 – Darrel

Battle_SNDS.slf.

These include all the speech for all the playable or escortable characters. Those speech lines
are delivered in-game, without the characters portrait showing up, with subtitles at the upper
left corner of the screen.

Every number between 000(Barry) and 072(Maddog) has the following 17 sound files:

_ATTN.wav = The sound made when you initially click on the character, or, when he/she is
already selected at the beginning of a turn.
_COOL.wav = A response to a good kill or finding an item by opening a container.
_CURSE.wav = Cursing when missing a shot or failing at a task.
_DYING.wav = Sound character makes when dying or falling unconscious.
_ENEM.wav = Default sound when seeing enemy.
_GOTIT.wav = When character has successfully picked up an item and placed it into
his/her inventory.
_HIT1.wav = Sound made when character gets hit or suffers from unbandaged wound.
_HIT2.wav = Ditto.
_HUMM.wav = Sound made when spotting an item or finding something in a container.
_LAUGH.wav = Usually follows a kill using burst or autofire.
_LMATTN.wav = Pissed-off ATTN (see above).
_LMOK1.wav = Pissed-off OK1 (see below).
_LMOK2.wav = Pissed-off OK2 (see below).
_LOCKED.wav = Notifies that the door/container is locked.
_NOTH.wav = Finds nothing on ground or in container.
_OK1.wav = Acknowledges order.
_OK2.wav = Acknowledges order.

073 (Darrel) has CURSE, DYING, HIT1, HIT2 and LAUGH.


074 (Perko) to 159 (Speck) have only DYING, HIT1 and HIT2.

Being escortable NPCs, 088 (Maria), 090 (Joey), 097 (Skyrider), 118 (John) and 119 (Mary)
have more speech than the other NPCs.

8
All escortables have ATTN, DYING, HIT1, HIT2, OK1 and OK2. Skyrider seems to have
CRASH and END. Exact copies of speech already available in NPC_speech.slf.

In addition to the numbered characters, the enemy codes BAD0, BAD1, BAD2, BAD3,
BAD4, BAD5, BAD6, BAD7, BAD8 have CURSE, DYING, HIT1, HIT2 and LAUGH.

Miguel, Carlos and Ira have second sets of DYING, HIT1 and HIT2 used when they are off
your team or not hired yet.

John Kulba seems to have an identical second set of sounds under JOHN.

That covers most of what is currently available, detail wise.

When recording, regard the following:

If possible, do not use the Windows default sound recorder, I have found ‘Audacity’ to be
more than up to the task.
Use a decent microphone.
Make sure no ambient sound(s) can interfere.
Experiment to get the best results for your situation.
Recordings should be:
88Kbps
16bit
Mono
22Khz

You might also like