version 1.71
Last Updated: March 25, 2007
Tutorial created by neural-link
Special thanks to other skinners & modders on the old Raven forums (notably Kirk1701 and ToonLoon)
Tutorial Sections:
Tools Used | PK3 File Structure | Creating a UV Map in LithUnwrap | More File Information | Bot Support | CTF Team Color Support | Sound Support | Editing head.md3 | Editing upper.mdr & lower.mdr | Viewing Your Skins in the Game | Shaders | Photoshop 7 and TGAs | Animation | Additional Information
Tools Used
Tools needed:
- Image editor
Photoshop or Paint Shop Pro or GIMP (GIMP is free) - MD3 Viewer (views the model file)
md3View (comes with the EF GDK 1.2 Game Development Kit 1.2, the EF GDK comes with a version that can view mdr files) - WinZip or Pakscape (for extracting and creating pk3 files) - if you are on Windows ME/2000/XP or newer you might not need this to extract pk3 files
- LithUnwrap 1.3 (last free version of LithUnwrap, shows you where on the 3D model you are painting)
- Text editor
Notepad for example (be sure NOT to use anything that puts formatting into the file such as Word, WordPad or Works)
Optional Tools:
- Milkshape (editing md3 files)
- old Milkshape Plugin (editing mdr files) by theSnerd
- NEW Milkshape Plugin (editing mdr files) by theSnerd
- Sound Editor
Goldwave or Audacity (Audacity is free) - you might need to get LAME to edit or create mp3s for these programs, don't worry its free
PK3 File Structure
pk3 files are located in your located inside your Elite
Force folder, the default location is
c:\Program Files\Raven\Star Trek Voyager Elite Force\BaseEF
It is helpful to a extract (unzip) a pk3 file (pk3 files are zip files renamed with pk3 for the extension). If you browse through the
models\players2\ folder you can get an idea about how pk3 files are made.

This is how a pk3 file with 1 character will look (NOTE: a skin without bot, teamcolor, or sound support only
needs the models folder, more on that later ).

A pk3 file with several characters.

View the models\players2\skinname folder, in it you will see several types of files, look for a file
named head (make sure its a jpg or tga) or head_default or
something similar, this is the skin for the head. There are normally 2 skins for every head model, the other skin is usually
named face or something similar. Open these in your graphics program. As you can see these files may not look
like you would expect. Different regions of the image file (skin) are associated with different areas of the model.
TIP:
You can use a picture of a person and modify it to fit the model correctly.
BE SURE TO ASK BEFORE YOU USE SOMEONE
ELSE'S ARTWORK OR CUSTOM SKINS, EVEN IF YOU ARE JUST MODIFYING IT OR USING A PORTION OF IT. ALSO BE SURE TO GIVE THEM SOME
RECOGNITION.



You should have your model viewer open (and be sure to refresh after you made changes to the image and saved it). The images must be saved as a jpg or tga file, be sure not to change the image size. The head model is usually called head.md3.
The skins for the torso and legs are usually called torso and legs. The models for this skins are usually called upper.mdr and lower.mdr and are still model files. NOTE: There are normally 3 models, one for each different segment, such as a head model, torso model and a leg model (md3 and mdr files are model files, but don't worry about that, as long as you can view them, thats all you need to do with them, unless you want to modify them, but we will get into that later on). The mdr file is a compressed collection of several md3 files. If you load an mdr in md3View and export it as md3, you'll get three separate md3's. For example, if you export an upper.mdr as .md3, you'll wind up with upper.md3, upper_1.md3, and upper_2.md3. The upper_1.md3 and upper_2.md3 are less detailed versions of upper.md3, with less polygons. The game engine uses these depending on how far away the model is when you view it. If you're close to the model, the game uses upper.md3. If you move away, it changes to the upper_1.md3, and if you move even further away, it changes to the upper_2.md3. You don't have to make your files mdr they can be md3 and it will still work. So you could use all your model files as md3 and have no problems.
Creating a UV Map in LithUnwrap
LithUnwrap is a great program to help you see where you are editing the skin. First you will want to convert the
mdr to a md3 using md3View. Then load the md3 into
LithUnwrap.

As you can see it doesnt resize to the proper size of the texture, so here's what you do.

Go to: File > UV Map > Save

And enter in the correct image size of the texture, you can find out the size in your graphics program. Then save it as a image
file. Then in your graphics program you can put it on a layer above the edited skin and make it semi-transparent so you can use
it as a reference guide (I also recommend, having a copy of the original skin on the very bottom layer).

More File Information
TIP: The best thing to do is to look at the head models (head.md3) for each character in models\players2\skinname in your pak0.pk3 and if you have the Expansion Pack, also look in pak2.pk3. You will notice that some of the characters use a identical head, but just use a different skin, get an idea about what shape of head you want for your skin, such as whether it is bald or has long hair, and so on. All of the male StarFleet characters use the same upper.mdr and lower.mdr files, this is also true for the females, but their models are shaped different than the men. All of the StarFleet characters have a combadge attached to their chest and pips (rank buttons, NOTE: Different ranking characters have different pips, these are only different in the image file not the model itself) on their neck. If you are making a StarFleet skin, you can simply copy these, they are also editable, but if you want these not to appear you can search for a head and torso model that does not include these or make them transparent. NOTE: Only tga files will preserve transparency and you must make an alpha channel to do so. TIP: I recommend using tga files until you are finished editing the images, then convert to jpg, to make the filesize smaller.
Inside the models\players2\skinname folder, you will see files that end in cfg, namely animation.cfg and groups.cfg. These files are just ASCII (text) files and can be opened in Notepad or whatever text editor you use. The game will use animation.cfg for deciding what gender group the bot belongs to. Inside animation.cfg, you can set the gender of the character to m (male), f (female) or n (for no gender). To save time its usually best just to copy this file from a character that uses the same torso or legs model. The file groups.cfg says what groups the character belongs to. In the game you can set up your bots to belong to a certain group and this is what it refers to. Some of the groups are StarFleet, Romulans, Klingons, and Aliens (be sure to spell them correctly and with capitalization) . You can also make custom groups, if you want the character to belong to more than one group simply put a space between them or a carriage return (press Enter or Return).
Inside the models\players2\skinname folder, you will also see files that end in
skin (these files can also be opened in Notepad). They are usually named
head_default, upper_default, and lower_default. These files link the image to
the model
For example here is head_default.skin for a skin named picard
h_doctor,models/players2/picard/head.tga h_doctorface,models/players2/picard/face.tga h_pip,models/players2/picard/pip.tga
Note how after the players2 the skinname picard is entered, this must be the name of the skinname you decide. Depending on what models you are using, the text before models is the name of the model mesh, again copy these from whatever head, torso or lower model you are using, and then edit them. No matter what image type your skin is, inside the skin file you must type the extension as tga, the game automatically looks for a tga file and if it isn't found looks for a jpg file. Inside the upper_default.skin, it sometimes links to a image file for the hands, you can link to the same hand if you wish, or if you want to make hands different (lighter, darker, hairy, spots, scales) then you will need to make a image file for the hands and place it in your models\players2\skinname folder and link to it in the upper_default.skin file.
Your models\players2\skinname folder, must have a icon_default.jpg file (Note it must be .jpg), you can make it look however you want, but it must have a height and width of 64 pixels. If you have a custom combadge or pip you must also include it in this folder.
NOTE: If md3Viewer doesn't open your skins and shows just white, here's what you do. Type in the full
location inside your skin files and when you load the model it will load the textures correctly example:
h_janeway,C:\whatever\somefolder\models/players2/cooldude/head.tga
But remember when you are done testing and ready to put it online for others to use, rename them back to:
h_janeway,models/players2/cooldude/head.tga
Some people use Winzip to make the pk3 file by making a zip file and changing the
extension from zip to pk3, but I prefer to use Pakscape and move the folders into the new
pk3 file.

Bot Support
Skins give your characters a new appearance but botfiles give the character a personality. If you want bot support (to be able to play as your new character) then there are several things you must do. In your scripts folder there must be a file called skinname.bot (replace skinname with what ever your skin name is of course). A bot file can be opened in Notepad. Here is what a bot file looks like.
{
name TroiLavender
funname Troi
model troilavender
aifile bots/troi_c.c
}
The bot will show up as TroiLavender in the Change Player Model and HC Selection screens in the game, but when she chats, and when she's
in your crosshair, her name will show up as Troi, thats what the funname is for. NOTE: the model is not
capitalized and contains no spaces (putting a space inbetween a folders name or image file, could result an error, if you want
a space put a _ between the name, that character is known as a underscore).
Inside your botfiles\bots folder, you must have the following files, skinname_c.c,
skinname_i.c, skinname_t.c, and skinname_w.c,
these are C (programming language files) and can be edited in Notepad. Don't worry, you don't need to know the C programming
language.
skinname_c.c is a file that contains the characteristics of the bot, replace any instances of the skin's name with the correct skinname, also be sure that the gender is correct. The file is broken up into different settings for each skill level, you can try experimenting with different numbers if you like, but don't edit the variables (the text in ALL CAPS). The following varibles CANNOT have decimals in their number values:
CHARACTERISTIC_VIEW_MAXCHANGE CHARACTERISTIC_CHAT_CPM
skinname_i.c is a file that determines how much the bot will want to pick up certain weapons and items, it also contains the initial health/armor states. None of the numbers in this file should have a decimal.
skinname_t.c is a file that contains any text chat that the bot randomly says. For example
// Initiated when the bot exits the game
// 0 = bot name type "game_exit"
{
"Report to my ready room.";
0, " returns to the bridge";
"I, " 0, " am the greatest!";
"Dismissed";
}
Any text following the // is ignored until the beginning of the next line, these are just comments. The text in the curly
brackets { } is where any text you want the bot to say is entered. Put your text enclosed around parenthesis " and end the
line with a semicolon ;
Note the comment that says // 0 = bot name type "game_exit" this is just a comment letting you know how if you type 0
it will insert the bot's name.
So the line that says "I, " 0, " am the greatest!"; will end up showing up as
I, picard am the greatest!
At the beginning of the file be sure to edit it to
chat "skinname"
Of course, insert the proper skinname. Most of the skinname_t.c files are commented letting you know at what instance the command will take place.
skinname_w.c is a file determines how often they fire in a certain mode. For example:
#define W_SCAVENGER 90 #define W_QUANTUM 175 #define W_SCAVENGER_ALT 5 #define W_QUANTUM_ALT 200
This bot is very likely to fire more often with the stronger alt setting on the Scavenger weapon than the normal setting.
But more than likely, this bot will fire with the Photon Burst. None of the numbers in this file should have a decimal.
Note: If you are converting a Quake 3 model to Elite Force, the main thing you have to
change are the botfiles (the weapon names, items and powerups are different). As mentioned earlier it doesn't matter if you use
md3 or mdr files.
Here's a site that covers bots in
great detail: Bot Building 101 - by Brian "Slug" McDonald
CTF (Capture the Flag) Team Color Support
If you want teamcolor support (to make the skin chooseable and load in Capture the Flag or Team Holomatch) then there are several things you must do. First off you will want to make icon_blue.jpg and icon_red.jpg (you can just modify icon_default.jpg and edit it accordingly and save it to the appropriate name). If you want your character to have a different color legs (pants, dress, whatever) then simply make 2 more files called legs_blue and legs_red (samething with the torso and head, although different file names, the face usually doesn't need a blue or red version, unless you want it to change it). You must have head_blue.skin, head_red.skin, lower_red.skin, lower_blue.skin, upper_blue.skin and upper_red.skin in your models\players2\skinname folder. Make these files link to the appropriate files, if you choose only to have one skin for the torso, then all the upper_xxxxx.skin files must link to the same image. If you're using skinfiles that are identical to one already used by another character (for example: the male StarFleet pants) you can simply link to that, without having to add another file to your folder.
Sound Support
Sound support is optional. If you don't include any custom sounds then the game will use default sounds for your character.
No one willl hear any custom sounds unless they have it installed on their own computer or if they come with your skin or another skin. You can use wav or
mp3 (mp3 files are often smaller than wav files) files. The following sound files must be named as such in the
sound/voice/skinname/misc folder
death1, death2, death3 -these are the sounds randomly played when the
character dies
fall1, falling1 -sounds played when falling or after falling
gasp -gasp sound
jump1 -sound played when jumping
pain100, pain25, pain50, pain75 -sounds played when taking
damage
victory1, victory2, victory3 -sounds randomly played when character frags
another character
taunt1, taunt2, taunt3, taunt4, and taunt5
(you CANNOT have more than 5 taunts, you can have less) -sounds randomly played when the taunt button is pressed.
If you want a character to share sounds with another character you can add the following line
soundpath skinname
in animation.cfg , below the line which states the sex of the character, animation.cfg is located in the models\players2\skinname folder.
You can also add a sound for when the character wins in Free For All, this must go in the sound/voice/computer/misc folder and must be named skinname_wins
If you're looking for a sound editor, you can use Goldwave or Audacity. If you plan on using mp3 sound files you might have to download LAME (its free) to edit or create mp3s.
Editing head.md3
It is possible to edit the head.md3 and resize it or add other features to it like horns, helmets or whatever else you want. To do so I recommend a program called Milkshape
3D. The head.md3 has no animation to it, so you won't have to worry about that.

As you can see this is a imperial head with a hat added to it. Once you edit the head, you'll have to generate a
qc file, which will tell which textures go which mesh. Do the following in Milkshape:
Tools > Quake III Arena > Generate Control File
You may have to edit the qc file. Here's an example:
// Quake III Arena MD3 control file, generated by MilkShape 3D // $model "models/players2/outlaw/head.md3" // reference frame //$frames -1 -1 // frame 1-30 $frames 1 30 $flags 0 $numskins 0 // you can have one or no parent tag // tags // meshes (surfaces) $mesh "h_oldhat" $skin "models/players2/outlaw/hat.tga" $flags 0 $mesh "h_outlawhead" $skin "models/players2/outlaw/head.tga" $flags 0 $mesh "h_outlawface" $skin "models/players2/outlaw/face.tga" $flags 0
Editing upper.mdr & lower mdr
You can now edit the upper and lower mdr files with the old Milkshape
plugin by theSnerd. In Milkshape, do the following:
File > Import > Elite Force MDR
Then you can edit the model. Once you edit the model, you'll have to generate a qc file, which will tell
which textures to go to which mesh. Do the following:
Tools > Quake III Arena > Generate Control File
Then you can edit that qc file. Then to export, do:
File > Export > Elite Force MD3
(be sure NOT to pick the Quake3
MD3)
Name the md3 file either upper.md3 or lower.md3, and then pick the anm file the importer created. The anm file is created when you import the mdr, and retains the animation information. The old Milkshape plugin also has information on scaling the model, inside the readme. TIP: If you want to save your model changes, you can save the file as a ms3d file and then load that file and tell it to use the correct anm file so you dont lose the animation when you need to export the file. Keep in mind you cant make big changes doing it that way because the animation is still working with the same mesh more or less but if you play around you might be able to get away with a few things here and there. This is what I did when I made the Team Elite skins when I added the backpack and new boots. You may also have to create tags. Tags are used to tell another model where it should be placed. There is usually a tag for the weapon, head, and torso. The Milkshape website has tutorials on creating tags. I won't go into editing the models anymore than this, but I recommend viewing any Quake3 modeling tutorials out there.
There is a NEW MILKSHAPE MDR IMPORTER AND EXPORTER !
This new Milkshape plugin can also export MDRs which can help modders decrease their bot paks by well over 50%! I have not used it so I cant offer much more information, but I figured I would let you know about this.
Viewing Your Skins in the Game
You can use md3viewer to view them (which is a pain) because animated shaders won't show up properly. However thanks to Captain Max Ames, there is now a map botchk3 that will allow you to view your skins easily. Just place it in your BaseEF folder and launch EF, then in the console (press the ~ key to bring it down) type in
/map botchk3
That will load the map. At first you will just spawn by yourself stuck. Press Esc to bring up the menu, add a bot (your bot). Then type in
/kill
that will make your character suicide, then frag the enemy bot. When he respawns he will respawn in the nonmovable area, allowing you to view him.
You can also view your bot by launching EF and typing in
/devmap whatevermapnameyouwant
Using devmap will allow you to use cheats. Thus allowing you to change the thirdperson range and angle. You can then rotate and zoom back from yourself while in thirdperson and move yourself where you want to. Here is a link to a modelview config (thanks to The Bind Arena website). The way the config works is that the numbers on your numberpad will do different things. 5 will toggle between thirdpersonmode & firstperson modes, 4 & 6 will rotate you around, 8 & 2 will zoom in and out. Be sure to place the modelview.cfg file in your BaseEF folder. You can then bind a key to take screenshots.
/bind x screenshot
and to load the config type in
/exec modelview.cfg

Shaders
Basically shaders allows for some great effects, such as glowing, textures pulsating, etc. They aren't necessary for a skin,
but if used correctly they add great effects. I haven't gottten around to adding a shader tutorial, but here are some good links on shaders
Q-Branch
Q3ASE
Shader Docs
Photoshop 7 and TGAs
If you are having problems with TGAs and you are using Photoshop 7, this is due to the fact that there is a bug in Photoshop 7. You can update Photoshop to 7.01 or you can download the targa fix from Adobe's website.
Animation
Kenn Hoekstra formally from Ravensoft, released the orginal model animation source files for Elite Force in XSI format. I havent tried this out however.
James Monroe released the ASE Model Source Files and
Carcass program that Kenn forgot to put in the other file. "Not sure what to do with those XSI animation source files?
Kenn forgot to include the ASE model source files so that we have a root model to put the animations on. Also included is
Carcass, the program Raven used to create the character models. You'll need it to attach the animations to the root model and
compile to MDR. Apparently it was supposed to be included with the GDK but somehow slipped thru the cracks."
-
description from effiles.com
::::::::: The following information was posted on effiles.com file comments by 71M
In any case, since the animations pack and this pack were supposed to be released as one, but accidently weren't, I recommend you go about as treating them as one when working with them.
As such, here is a description of each type of file that's in these packs:
----------------------------------------
.XSI - This is a file that contains a set of skeletal data for one character animation of the model. So, anything like dying and falling over, or typing on a console, each XSI file has one animation. Generally, these animations can be applied to several separate models. I proved that the hazard ones can be successfully integrated into the starfleet ones, and you will also notice that every single MP character (minus a few special cases) have the same death animations.
Aside from looking at vast amounts of numbers in Notepad, I have not managed to actually import and view the contents of any of these files in a 3D application. Neither 3DSMax, MilkShape, or the freeware version of SoftImage 3.5 (For HL2) seem to be able to access them. The main reason for this I believe is that these files are too old for those programs. The only hope I have for you opening these files, is if you can get ahold of a really old copy of SoftImage, somewhere like version 1.0 or 1.1.
----------------------------------------
.ASE - A 3DSMAX Ascii Scene Export file. This is the format the origianl Quake 3 models were exported from 3DSMAX as before they were converted to MD3. In this case, the same applies here, and every head model made (since they were by default, MD3s ingame) is in here as an ASE. Presumably, afterwards, they were converted to MD3 using q3data.
----------------------------------------
.ASK - From what I can see, this is exactly the same as an ASE, but it has a K on the end lol. The ASK files contain the static bodies of each model. Inside each one is 3 copies of the model, each one at different poly counts, and it's these that make up the model's LODs. Although when I imported them, i didn't see any skeleton, I beleive these files also contain extra data to allow the XSI animation files to be integrated into them successfully.
----------------------------------------
.CAR - These are simple text files that will easily open up in Notepad. Basically, they show Carcass what model is going to be compiled and what animations are going to be used. Carcass then takes that information, looks for those files, and then makes an MDR file out of them.
----------------------------------------
Carcass.exe - The main program behind it all.
Carcass is an MS-DOS program (meaning it has to be run through command prompt) that processes .car files and produces MDR files (The EF character model format) as a result, containing a model and a number of animations written into it. Carcass runs very similar to how q3data does, so getting the hang of it is a breeze.
----------------------------------------
Okay, also to get you started, I'll try and write up a brief tutorial on how to quickly create an MDR file using these XSI and ASK files and Carcass:
1) To make it easy on yourself, extract the animation pack, and this pack to the top of your hard drive list (usually it's just C:\)
You should end up in with a directory labeled 'StarTrek' there.
*WARNING* After extraction, the collective size of these files exceeds 1GB. Be sure you have enough space available beforehand.
2) As a demonstration, we'll be making our own copy of the crewthin model. Fire up a Command Prompt console. In my case, for Win XP, you go Start>Run and then type 'cmd' (exclude the quotes) and hit 'OK'.
3) In the black window that appears, type this:
StarTrek\bin_nt\carcass.exe StarTrek\quake\baseEF\models\players\crewthin\crewthin.car
Make sure your backslashes go in the same direction as above too or you may get an error.
What this does, is it tells it to run Carcass, and then provide carcass with a file route to a .car file which it'll then process.4) Wait a few seconds until the processing is done (Hopefully no errors will make it terminate) and then go and check the crewthin folder.
You should have your very own, newly created copy of the crewthin model, in the exact same specifications as the one you've seen everytime you've played EF SP!!!
----------------------------------------
Okay, I think that's all I know.
Now, so far, all I've found is possible to do with these sets of files is to add new sets of animations to the default set of character models EF has (Expansion Pack included).
That may seem quite brief for such a large set of files, but I believe it's worth it. Being able to add new animations to multiple models will definately come in handy for most SP and even some MP mods.
Anyway, I hope that helped!
Good luck and Happy Modding!!
-TiM
:::::::::end of effiles.com file comment
I personally have not tried this though, but it sounds great!
Additional Information
The better you know how to edit images the better your skins will turn out. Most modern image editors allow for things such as layers, textures, adjusting gamma, brightness hues, and so on.
Consider this tutorial as a starting point and a reference. I recommend looking at Quake3 and even Quake2 tutorials out there
that go into tips on how to make metal effects, armor textures, and so on.
