In Total Annihilation, a GAF file is simply a collection of images. Each of the images within a GAF file can subsequently have multiple frames yielding a short animated sequence. Within Total Annihilation, you will come across 3 basic uses of GAF files:
Contains images with multiple frames that are used as animation sequences for explosions, feature reclamations, etc.
Contains 3 similar images that are used in the menus of construction units to allow the creation of a unit.
A collection of texture images used for "painting" the 3D model of a unit or feature. These textures can also be animation sequences to create effects such as flashing lights (as in the ARM Energy Storage unit) or the blue, red, etc textures representing team color.
A number of tools are available on the Internet to help in the creation and extraction of GAF files, including GAFactory, Gaffer, GAF Builder Pro, and the extraction tool GAF Dump.
Some GAF files are used to contain multi-frame images that are used for animations. Most of these animations are of things like burning plants, reclamated objects, and weapon explosions.
At this time, I'm still learning about this part of TA. It's difficult for me because many of the available tools seem to be developed in French with some broken English, so it's a bit hard for me to read and understand.
One special GAF file needs to be included for a given unit in the anims subdirectory. This GAF file contains a single 3-frame image that describes what the build button for this unit will look like when it appears on the build menu for a construction unit.
This file will be given a name of unitname_GADGET.gaf, where "unitname" is the short name of your unit, and will be placed in the anims subdirectory. (It is referred to as a "gadget", because that is essentially what these become - the button "gadget" on the screen). The 3-frame image within this GAF file will be given the simple name "unitname", which is the short name for your unit.
|The first frame of the 3-frame image is the normal unit picture that is displayed in a build menu when the unit is available for construction.|
|The second frame is a "highlighted" image of the unit. This is the image that is displayed very briefly (to make it flash) when you click on the button in a build menu to build the unit.|
|The third image should be a black-and-white image. This is the image that is displayed when the unit cannot be selected in the build menu.|
|Each of the three images is 64x64, and as with all images and textures created for TA, you should make sure you're using the TA color palette.|
Kinboat's 3DOBuilder can kindly create the 3-frame gadget GAF for you! Simply select the background image you would like to use from the BuildPics package, grab the image out of Unit Viewer, and hit the "Create GAF" button! This can also work without Unit Viewer. Just select an initial state image made by you (in other words, frame 1), then click "Create GAF". You'll need other 3rd party tools, such as Paint Shop Pro to convert your intermediate images to BMP for use within 3DOBuilder.
Some GAF files (generally, those located in the textures subdirectory), simply hold textures. These textures are the bitmap images that are applied to the sides of units to give them a distinct look. Many of these texture images within the GAF file are single-frame images, although multiple-image textures also exist. For example, to give the illusion of "glowing"; they can be started and stopped in the BOS file. In addition, these images are not always the same size. Some are 32x32, some 32x64, and so on.
There is nothing else that is particularly interesting about these texture GAF files except for the fact that they can be imported into a tool such as Kinboat's 3DOBuilder to be applied to the surfaces of units. Multi-frame images are also used to do the team color textures.
This is complete speculation, but the difference between an animated texture and a team-color texture is that the team color textures are in a file called LOGOS.GAF. Any 10-frame texture in there is treated as a team color. That is, the game displays frame one for team one, frame two for team two etc. Any multi-frame texture outside of that GAF is treated as an animated texture.
For people wanting an in-depth specification of the actual file format, you can view these two documents: