Half-Life Sprite Tutorial by Spider
Page 2

Indexalpha Tutorial
They are painted in grayscale but end up as full color in the game, with the palette as the alpha channel. Black is transparent and white is opaque, which is what you'll see. The last color in the palette is the sprite color. These are just like decals. See my decal tutorials for Photoshop and for Paint Shop Pro.
 
mommaspit.spr palette
mommaspit.spr palette

The three examples below show how this sprite changes in the game, depending on what you choose for the last palette color:
 

1 > After you've extracted mommaspit.spr out of the pak file, open it up with the sprite viewer.

2 > Save it by choosing 'File' then 'Save sequence...' and name it mommaspit.bmp. It will save all 4 frames as mommaspit00x.bmp

3 > Open them in a paint program and edit them. Paint something new, change the color and resize them. All frames must use the same palette, and paint programs usually have a way to save and load the palette. Then save them.

4 > Set up the sprite.qc and compile it by running sprite.bat. This is how the .qc file is already set up, but you can change it:
 
// mommaspit
//
$spritename mommaspit
$type vp_parallel
$texture indexalpha
$load mommaspit001.bmp
$frame 0 0 32 32
$load mommaspit002.bmp
$frame 0 0 32 32
$load mommaspit003.bmp
$frame 0 0 32 32
$load mommaspit004.bmp
$frame 0 0 32 32

5 > Copy mommaspit.spr to the half-life\valve\sprites folder and you're done.
 
 

Advanced Topics
$frame is for offsets (x,y) and size (x,y). Offsets are used when you want to split up one bitmap into a sequence of frames. X and Y indicate where the top left corner starts in the bitmap. Size has to be multiples of 8 and can be smaller than the file's dimensions.

valid $texture types are:
 
additive - Additive sprites can have 256 colors and are blended with additive transparency:
Includes all sprites except ones listed below. This is the most common type.
b-tele1.spr
 
b-tele1.spr palette

 
 
 
indexalpha - These are grayscale but show up as color in the game, with the palette as the alpha channel. Black is transparent and white is opaque. The last color in the palette is the sprite color:
bigspit.spr
bubble.spr
mommablob.spr
mommaspit.spr
mommaspout.spr
oriented.spr
steam1.spr
tinyspit.spr
vp_parallel.spr
vp_parallel_oriented.spr
wallpuff.spr
bigspit.spr
 
bigspit.spr palette

 
 
 
alphatest - These can use 255 colors with the last one used for transparency:
agrunt1.spr
bhit.spr
blood.spr
blooddrop.spr
bloodspray.spr
crosshairs.spr
explode1.spr
rope.spr
agrunt1.spr
 
agrunt1.spr palette

 
 
 
normal - same as additive in practice, full color, no blending or transparency:
lgtning.spr

Note: this sprite was set as additive in Valve's sprite.qc, but was set to normal in the .spr. Since it ends up being the same as additive in the game, I'd recommend using that instead of normal.

lgtning.spr
 
lgtning.spr palette

 
 
 

If there are any questions or comments, feel free to email me.