If there is any info you would like added or other sites you think should be linked then mail the q2 modelling mailing list.
Contributors:
Common Questions
[1] The Programs
[1.1] I AM NEW TO MODELING, WHAT PROGRAMS CAN I USE?
Free Downloads
Things you can buy.
3dsMax is the next generation of 3D Studio. It's a great 3D program with Great support all over the net. There is huge number of tutorial sites and pluguns you can get freely from the net. If you're used to making organic meshes in 3DSR4 then you might have a bit more trouble making models in MAX but once you get used to it, it's a very good tool. 3dsmax has reasonable bones support without any plugins. One of the most powerful character animation packages is the "Character Studio" plugin for 3dsMAX. CS Allows extreme flexibility in what you can do to your model and with practice you should be able to achive almost anytihng. Valve uses CS for it's character animation in Half-Life. CS Costs US$500 (??).
3d Studio is one of the original great 3d tools. Although it only operates under DOS it's extremely powerful and is the prefered 3D model constuction tool of Paul Steed. The interface is very easy to learn and effective. Although there are plugins like Bones Pro available for 3ds Release 4, it is very limiting in is organic model animation capabilites.
Inspire 3D can basically be considered "Lightwave Lite" in that it is basically a cut down version of Lightwave (see below). Whether it leaves in enough modeling and animation tools to be useful for Quake modeling - and you'd expect it would - is currently unknown. If it does, then this is surely one of the best low cost options around.
Lightwave is a popular choice for the high-end but low-cost 3D program market. It's expensive for just "playing around" with, but it's benefits over the cheaper and free programs make it a worthwhile purchase if you are serious in doing models and can afford the higher cost. Version 5.5 is a big improvement over 5.0, although if the cost of the additional upgrade is a bit much, 5.0 is still an excellent program. Lightwaves strength is mostly in the modeling side - which is amoung the best polygonal modelers around, but the animation side has a very steep learning curve. However lots of good things have been animated with Lightwave so it can produce the goods if you are prepared to learn.
$20000 US is pretty steep for a 3D program, especially considering you need an SGI machine to run it, so it's not really a feasible choice for all but the biggest game companies. PA is the program id use to make their models. PA's strength is in the animation features which are only second to those in SoftImage, although since Quake is low polygon modeling, there is basically no difference between the two programs when it comes to animation. Polygonal modeling in Alias is quite strong, although not really as smooth as Lightwave. Alias, however, has the most respected NURBS modeler around so it'll be a hot item for Trinity. In a perfect world everyone would have access to Power Animator, but for now it's not really a a serious option.
Maya (free upgrade for users of Alias|Wavefront products) Maya is the next generation 3D system coming from the makers of Alias and Wavefront. This long delayed product has not been released yet but A|WF are saying late May or so. The makers are touting it as a major step in 3D programs and indeed the list of features lined up for it looks amazing. Paul Steed, of id Software, has talked about it a bit in his plan lately so chances are that Maya will be the system that id uses for Trinity.
[1.2]
WHAT PROGRAMS CAN I USE TO MAKE SKINS?
There are numerous paint programs used for making skins, but generally you need
something that can preferably work directly with the Quake palette, although you
can always remap textures to the Quake palette later if you aren't too concerned with the outcome.
Deluxe Paint 2a is the program id uses to make the artwork for their games. It's a very old program which originated on the Amiga (which went through to version 4) which only ever reached version 2 on the PC. It's DOS based and has an unfriendly workflow, but once you get famiailiar with it, you will be able to do good things (as id's stuff proves). DPaint only works in screen sizes which are a multiple of 16 pixels wide (which comes from it's Amiga heritage) which is why id's model generation scripts are filled with $load and $grab which actually cut out the images to the size required. Dpaint is also the only program that natively supports the version of the .LBM format which qdata.exe looks for when generating a model.
If you are doing your skins on an Amiga there is no better program to use. Brilliance has all the tools of Deluxe Paint, along with many more, all wrapped up with a easy to use interface. Unfortunately official PC version was never made, Pixler (see below) is a non-official port to DOS, and GraFX2 is similar too.
NST is basically a dream come true for those wanting to paint skins. Underneth the somewhat daunting interface is a program capable of everything you could want in a skin editing/manipulating program, with semi-regular updates and no cost. To the die hard pixel painter, NST doesn't really replace the likes of GraFX2 (see below), but it's still a useful tool to have around, and certainly to anyone starting out it is the ideal util to get a grasp on.
GraFX2 is a DOS paint program which is still being fairly regularly updated, plus the authors are open to requested features. It currently lacks a few "standard" tools such as the ability to type text, but it has an excellent workflow (helped immensely by the config util which lets you bind every single tool to your prefered hotkeys). Being DOS based might put a lot of people off, but working in DOS has many benefits like being able to work in a multitude of resolutions, plus you can control how fast the mouse is. Definitely the pick of the DOS based paint programs.
Pixler is a "fan" port of Brilliance (an excellent Amiga pixel-editing program) to DOS.
Deluxe Draw is the old Deluxe Paint reborn. It's a commerical product and looks to be virtually a 1:1 copy of the old DPaint except with some newer tools added to bring it up to date. It's still a DOS only product.
PM is a very neat port of Deluxe Paint to the Win95 environment while also adding more tools and functionality. This is one of the better choices for pixel-level editing if you prefer to work in Win95.
PSP is a very popular Win95 paint program having quite a lot of functionality and being cheap at the same time (in fact you can use the whole program without registering so long as you don't mind putting up with the registration messages).
The most popular of all graphics programs, Photoshop is also not very good at doing Quake style skins. It's simply not designed to work on paletted images. However if it's all you have access to and want to use it you can try converting the images to the Quake2 palette after you've made them in PS.
[2] The Basics
[2.1] HOW DO I MAKE A MODEL?
There are several good tutorial sites around the net on making models with various different modeling programs.
One of the best places for tutorials for commercial applications like 3D
Studio, MAX, Lightwave, Alias/WaveFront, Bryce, SoftImage, TrueSpace and other applications is 3D Cafe Tutorials.
[2.2] HOW DO I MAKE THE SKIN MAPPING COORDINATES?
- In Q2 Modeller
Go to the F1 Help menu and read "Making a basic Skin Mesh"
[3] Quake 2 Model Errors
[3.1]
WHY DO I GET ERRORS THAT SAY "NULL SKIN FOUND"?
This is because you haven't linked the skin to the model properly. If you are making a player model, there should be no linked skins. Other models should have a skin linked that is in the same directory as the model. To fix this, use NST or Q2 modeller.
- In NST
Open the model, and you should get one of the following messages:
"External PCX does not exist...creating temporary skin"
"This MD2 has no internal skins, would you like to load from it's base folder?"
If you are making a player model, and get the first message (or no message at all) you should unlink the skin.
Click "Skins" then click "Unlink".
Then save the mesh by clicking "File" and "Save". Then open the model again, and you shoud get the second message.
If you are making a weapon or monster model, then when you open NST, you should get no messages at all. If you do, unlink the skin, then open the proper skin. Link this skin to the model, then save the mesh by clicking "File" and "Save". When you open the model again, you should get no messages.
- In Q2 Modeller
First set your game path to \quake2\blah (blah is your game or baseq2)
Then put the save the skin where it should go,
EG, for a new BFG weapon model it will be in
/quake2/blah/models/weapons/v_bfg/skin.pcx
Now when you save the model save it to
/quake2/blah/models/weapons/v_bfg/tris.md2
Q2 modeller will then ask you for the skin that is in the model, simply navigate to corect path and save it.
[3.2] WHY DOES MY SKIN LOOK BLACK AND RED?
This is the same problem as [3.1] above, except in GL you don't get the NULL skin error.
[3.3] WHY DO I GET AN ERROR SAYING "BAD PCX"?
This could be due to several problems. The skin must the proper size and color depth.
If you open the model and skin in NST, and get an error saying the skin size or dimensions are incorrect, then you need to click "Skins" and "Re-size all" to see how large the skin should be. You will probably have to make a new skin, but you might be able to just resize the skin from NST. If you resize the skin in NST, you need to save the mesh by clicking "File" and "Save".
If you open the skin in NST, and it looks like some Rainbow Brite skin instead of the skin you remember making, you probably forgot to change the color depth to 8 bit color (256 colors). Going from 24 bit color to 8 bit color is different for every paint program, so if you don't know how it's done with the program you use, read the help file.
You could also get this error if your skin size exceeds the games limits. The largest skin you can use in Quake 2 is 640x480 pixels. This is too large anyway. The largest size your skin should ever be is 512x512 pixels. Recommended sizes are 256x256 and 256x128. The reason for this is 3DFX cards. They have a hardware limitation of 256x256 texture size, and will scale down anything larger. These cards work best with skin sizes that are a power of 2 (64x64, 128x128, 128x256, ect). Also keep in mind that the larger the skin is, the more texture memory it will take up on any 3D accellerator, not just 3DFX. If you want to avoid lots of texture thrashing, keep the skin size down.
[3.4] WHY DOES MY SKIN LOOK WARPED?
Quake 2 is very picky about the PCX format. Some programs (such as Corel Photo-Paint) don't quite save the skin in a way that Quake 2 likes, and the skin will look like it was mapped onto the model sideways. Simply open the skin in NST, then save it by clicking "Skins" and "Save".
[3.5] WHY DO I GET THE ERROR "R_DrawAliasModel: No Such Frame ##
Your model doesn't have the same number of frames as the model you are replacing. If your model is a player replacement then your model needs to have 198 frame, just like the quake 2 player models, and in the same order for the actions like running, firin g, death etc.
[3.6] WHY CAN'T I CHOOSE MY MODEL IN THE MULTIPLAYER MENU?
Make certain there are NO files in the baseq2/players directory. If you don't have any files there and still can't choose your model, move all the other directories out of the players directory except for Male, Female, and your own directory. Then start Quake 2. Then you can exit Quake 2 and put the other directories back.
Also make sure you have the tris.md2, weapon.md2, weapon.pcx, xxxx.pcx, and xxxx_i.pcx (where xxxx is the name of the skin). The xxxx_i.pcx file is the small face preview of each skin and it MUST be there for the model to appear in the player select menu.
[3.7] I CAN CHOOSE MY MODEL FROM THE MENU, BUT THE MODEL DOES NOT SHOW UP IN THE PREVIEW WINDOW!
Most likely your model is off-center. You will have to either center all the frames in your modeling program, or use Q2 Modeller to move all the frames. You also may want to check the scale of your model. If you made the model with a program that uses a smaller scale than Quake 2 (such as LightWave or TrueSpace) then you will need to scale all the frames of the model.
[3.8] THE QUAD AND INVULNERABILTIY POWERUPS LOOK WEIRD!!!
This problem hasn't been solved as yet. Some models are fine while other models that are perfectly constructed appear weird. If you know the solution let us know :)
[3.9] MY SKIN HAS BRIGHT WHITE BITS IN THE GAME, HOW DO I FIX IT?
This problem is caused by the use of color 255 in the palette. This color is used for transparent sections of menu graphics etc and when it is used on a model skin or a wall texture it appears bright white.
To remove it the easiest way is to load your skin up Paint Shop Pro or other paint program and go to the palette. Alter the color of 255 to something really bad like bright pink or something so you can easily see where it is in your skin. Then just paint over the bright spots with another color that is better suited such as color 104.
[3.10] WHY DOES MY SKIN HAVE PINK BITS WHERE IT SHOULD BE WHITE?
This is because you have used an old version of the quake 2 palette to make your skin. Old version of the palette had white colours where the final palette had skin tones. You can get a copy of the proper palette by extracting it from the "colormap.pcx" that can be found in your quake2\baseq2\pics\ directory. Althernatively you can download a JASC Paint Shop Pro format palette HERE"
[4] Other Bits
[4.1] HOW CAN I MAKE MY MODEL FROM MY PROGRAM INTO A QUAKE MODEL
There are several programs that can read files to create a quake model and each supports different file types.
Now comes the easy part. Lets presume that you have unziped Qdata to f:\q2utils
Copy all of your animation frames to f:\q2utils\bin_nt\frames
Generate a text file, and write the following:
$modelname whatever_name_you_want
$cd frames
$origin 0 0 24
$base base
$skin skin
$frame frame01frame02 frame03 etc etc
Save this file as whatever_file_name.qgr to your /q2utils/bin_nt directory.
It is also presumed that when you exported the frames, you named then frame01, frame02, frame03 etc etc. and that you have exported your base frame to base.3ds
Now simply goto the /q2utils/bin_nt directory, and type : qdata -3ds whatever_file_name.qgr
Everything should have gone smoothly. You might have to fiddle with the origin settings ...
[4.2] MY MODEL LOOKS LIKE IT BEEN TURNED INSIDE-OUT
All the "normals" of the faces are the wroing way around, this can happen with things like .3ds files as different programs read file in different way.
In your program of choice select all the faces and flip the normal the other way. Your model should then display properly.
[4.3] WHERE CAN I FIND THE QUAKE 2 .MD2 FILE FORMAT?
[5] Other Help
[5.1]
WHERE ELSE CAN I GET HELP?
Try these websites for help:
/*
========================================================================
.MD2 triangle model file format
========================================================================
*/
#define IDALIASHEADER (('2'<<24)+('P'<<16)+('D'<<8)+'I')
#define ALIAS_VERSION 8
#define MAX_TRIANGLES 4096
#define MAX_VERTS 2048
#define MAX_FRAMES 512
#define MAX_MD2SKINS 32
#define MAX_SKINNAME 64
typedef struct
{
short s;
short t;
} dstvert_t;
typedef struct
{
short index_xyz[3];
short index_st[3];
} dtriangle_t;
typedef struct
{
byte v[3]; // scaled byte to fit in frame mins/maxs
byte lightnormalindex;
} dtrivertx_t;
#define DTRIVERTX_V0 0
#define DTRIVERTX_V1 1
#define DTRIVERTX_V2 2
#define DTRIVERTX_LNI 3
#define DTRIVERTX_SIZE 4
typedef struct
{
float scale[3]; // multiply byte verts by this
float translate[3]; // then add this
char name[16]; // frame name from grabbing
dtrivertx_t verts[1]; // variable sized
} daliasframe_t;
// the glcmd format:
// a positive integer starts a tristrip command, followed by that many
// vertex structures.
// a negative integer starts a trifan command, followed by -x vertexes
// a zero indicates the end of the command list.
// a vertex consists of a floating point s, a floating point t,
// and an integer vertex index.
typedef struct
{
int ident;
int version;
int skinwidth;
int skinheight;
int framesize; // byte size of each frame
int num_skins;
int num_xyz;
int num_st; // greater than num_xyz for seams
int num_tris;
int num_glcmds; // dwords in strip/fan command list
int num_frames;
int ofs_skins; // each skin is a MAX_SKINNAME string
int ofs_st; // byte offset from start for stverts
int ofs_tris; // offset for dtriangles
int ofs_frames; // offset for first frame
int ofs_glcmds;
int ofs_end; // end of file
} dmdl_t;