Making skins for the CleanerWolf model

I assume that you know how to make skins for Q3A models in general, how to work with skin files and shaders and of course how to use Photoshop.

Setting up Quake3 as a model viewer
First of all you should have some things prepared.
Forget all modelviewers that are available for Q3A, the best modelviewer is Q3A itself. Download the
"Colored rooms maps" and install them, make sure, you have the md3_cleanerwolf.pk3, view.pk3 and the modelview.cfg (from this archive) in your ...baseq3 folder.

Make a copy of your Quake3 Shortcut on the Desktop, go into the properties of that shortcut and in the line where it reads "F:\Quake3\quake3.exe" (maybe this is different with your installation) add the following:

+set sv_pure 0 +exec modelview.cfg +devmap view

Now when you doubleclick the new shortcut Quake3 will start with a special map with some colored rooms in which you can view the model. After the map is loaded go into model selection menu, select one of the wolf skins and go back. Maybe you have to hit the TAB key now, otherwise Quake3 doesn't load the new skin.   

Thanks to the modelview.cfg you have some useful options now. Hit 5 on the numpad to change into 3rd person view. With 8 and 2 on the numpad you can zoom in and out, with 4 and 6 you can change the view angle. If your videocard (and driver) allows that, you can run Quake3 in a window and have Photoshop running at the same time. This allows a good workflow, because everytime you save your skin as a TGA in Photoshop you then change to Quake3 and hit the V button what restarts the level and loads the actual skin.

Okay, now you have Quake3 prepared to be a perfect modelviewer :-)

The skins
Let's take a look at the skins. There are 3 basic textures in Photoshop format:
"wolf_basemesh.psd" for the torso and legs and "wolf_base_h.psd" for the head. I also include a psd file of the dukeglasses as an example.
I recommend, that you use these as the base for your skins.
The skin for the torso should be in 256x256 resolution, the skin for the head should be 128x128 and the glasses 128x64. Of course you can paint them in a higher resolution and then scale them down finally.

For your skins you need to have a "models/players/cleanerwolf" directory structure under baseq3 and then put your TGAs, skin-files and icon-files into the cleanerwolf folder.

I think you know how to use the .skin-files, but with this model there is something special I have to explain.

Take a look at the head_default.skin file:

tag_head,
h_head,models/players/wolf/bizowolf_h.tga
h_ears,models/players/wolf/bizowolf_h.tga
h_glasses,models/players/sarge/null.tga
h_wood,models/players/sarge/null.tga 

The objects h_head and h_ears have the bizowolf_h.tga, but there are 2 other objects named h_glasses and h_wood.
 

You can see the glasses on the head and the thin stick at the side of the mouth. This is meant as a toothpick, but you can make a thin cigarette out of it also. With the ...sarge/null.tga applied, these objects are invisible.

If you want them visible you have to apply textures to them like the dukeglasses_h.tga and wood_h.tga. For the glasses you have to make a texture with an alpha channel and a shader that only shows the part of the glasses_h.tga that have white pixels in its alpha channel. Make sure to save this skin  as a 32 BIT TGA in Photoshop, otherwise the alpha channel will not be included ! Take a look at the dukeglasses_h.psd in Photoshop to understand how it works.

Your shader should go into ...baseq3/scripts and has to be named "cw_yourskin.shader".

The shader script should look like this:

models/players/cleanerwolf/myglasses_h
{
        cull disable
        {
                map models/players/cleanerwolf/myglasses_h.tga
                alphaFunc GE128
                depthWrite
                rgbGen lightingdiffuse
        }
        {
                map models/players/doom/doom_fx.tga
                tcmod scale 1 2
                blendfunc GL_DST_ALPHA GL_DST_ALPHA
                tcgen environment
                rgbGen lightingdiffuse
                depthfunc equal
        }
}

The first stage makes the unnecessary parts of the geometry transparent and the second stage applies an environment map to the glasses to give them a shiny look.
The name "myglasses_h.tga" has to be replaced with your own glasses skin.

I hope this helps, if you have questions send me a mail.
And of course send the results of your work to me.
cleaner@hirnriss.in-berlin.de