Toutes les pages de formats ↓
Tutoriels et références

Glossaire

Source : coreprime/kbot @ 0ab97bf · Modifier sur GitHub

Une référence commune à tous les formats pour le vocabulaire récurrent du modding de Total Annihilation. Chaque terme renvoie à la page qui le traite le plus en profondeur.


Objet d'ancrage (anchor object)

Une pièce 3DO avec un sommet et aucune primitive. Invisible à l'exécution ; elle sert de coordonnée nommée pour les commandes des scripts COB (emit-sfx from <anchor>;).

Archive

Un fichier HPI / UFO / CCX / GP3. Les quatre extensions désignent le même format sur disque et ne diffèrent que par l'ordre de chargement.

ARGB4444 / ARGB1555

Les deux encodages de pixels 16 bits utilisés par un TAF truecolor. L'ARGB4444 range 4 bits pour chacun des canaux alpha, rouge, vert et bleu (16 niveaux d'alpha progressif) ; l'ARGB1555 range un alpha sur 1 bit plus 5 bits pour chaque composante RVB (un détourage net). L'octet Format d'une frame (4 ou 5) choisit l'un ou l'autre.

Case d'attributs (attribute cell)

Une case de 16×16 pixels d'une carte TNT (ou SCT). Chaque tuile fait 32×32 px et contient donc 4 cases d'attributs. Les hauteurs, les placements d'éléments de décor et les possibilités de passage et de construction sont stockés par case d'attributs.

Axe (axis)

Pour les COB et les 3DO, un identifiant numérique qui désigne l'un des trois axes de rotation : 0 = X, 1 = Y, 2 = Z. Les opcodes COB MOVE/TURN/SPIN prennent l'axe comme opérande en ligne. Dans les fichiers 3DO, l'axe Y est vertical.

BOS

« Basic Object Script » — le langage source, proche du C, des scripts d'animation et de comportement des unités. Il se compile en COB. Écrit à la main par les moddeurs ; reconstitué à partir du COB par kbot cob decompile.

COB

« Cobble » — le bytecode à pile que le moteur exécute réellement. Voir COB / BOS.

Chunk de compression (compression chunk)

Un bloc d'au plus 64 Kio une fois décompressé, à l'intérieur d'un fichier HPI. Chaque chunk a son propre en-tête SQSH, sa méthode de compression (LZ77 / ZLib / aucune), sa paire de tailles et un éventuel second brouillage XOR.

Palette intégrée (embedded palette)

Une PAL ajoutée à un fichier PCX, juste après les données de pixels RLE, précédée d'un octet marqueur 0x0C. 769 octets au total.

Élément de décor (feature)

Un objet statique, qui n'est pas une unité, placé sur une carte TNT : arbre, rocher, gisement de métal, cheminée géothermique, champ d'hydratation, etc. Défini dans un fichier features/**/*.tdf (voir TDF) et référencé par son nom depuis le TNT.

Virgule fixe (fixed-point)

Le système de coordonnées des modèles 3DO. Chaque coordonnée int32 représente value / 65536.0 unités de l'espace du monde. Ainsi, 0x00010000 = exactement 1 unité du monde ; 0x00018000 = 1,5 unité du monde.

Emprise (footprint)

Le rectangle englobant d'une unité ou d'un élément de décor sur la grille, exprimé en cases d'attributs de 16 pixels (FootprintX × FootprintZ). Le moteur s'en sert pour le placement des constructions et la recherche de chemin.

Tick de jeu (game tick)

L'unité de temps fondamentale. 30 ticks par seconde. La plupart des champs de durée des COB et des GAF sont en ticks.

HPI

Archive « HAPI ». Voir HPI / UFO / CCX / GP3.

Superposition (layering)

La façon dont le moteur combine plusieurs archives HPI au démarrage. Les fichiers d'une archive chargée plus tard masquent les fichiers de même chemin des archives précédentes. L'ordre de chargement est (de la priorité la plus basse à la plus haute) : .hpi → .ufo → .ccx → .gp3.

Table de correspondance (lookup table)

Un fichier .alp, .lht ou .shd : des lignes de 256 index de palette (pas du RVB), une colonne par couleur source. Un .alp fait 65 536 octets (256 lignes, une par partenaire de mélange) ; un .shd ou un .lht fait 8 192 octets (32 lignes, une par niveau d'ombre ou de lumière). Le moteur cherche la couleur courante dans la ligne dont il a besoin, et le résultat est un autre index de palette, dessinable par la chaîne 8 bpp habituelle. Le jeu n'utilise une table que si sa taille est exacte ; une table absente, ou d'une autre taille, est reconstruite à partir de la palette. Voir PAL.

LZ77

La compression à fenêtre glissante utilisée dans les chunks HPI quand CompMethod == 1. Fenêtre de 4 Kio, correspondances de 2 à 17 octets, bits d'étiquette lus à partir du bit de poids faible.

Rose magique (magic pink)

L'index de palette 9 de la palette de référence de TA (#5454FC). Utilisé par les outils d'édition comme couleur de remplissage des zones transparentes dans les fichiers PCX/GAF sources, et clé enregistrée de nombreuses frames GAF, ce qui le rend transparent dans ces frames-là. Ailleurs, c'est une couleur ordinaire. Voir Clé de transparence.

Nom d'objet (object name)

Le nom de base en minuscules que partagent les fichiers 3DO, COB et PCX d'une unité. Déclaré dans le FBI par le champ Objectname. Distinct de UnitName, l'identifiant externe qu'utilisent les autres configurations.

OTA

« Online Total Annihilation » — le fichier compagnon de métadonnées d'une carte TNT. Du texte brut au format TDF (TDF). Il porte le nom de la mission, sa description, les consignes pour l'IA, les positions de départ et des indications sur l'environnement.

Image à palette (paletted image)

Une image dont les valeurs de pixels sont des index 8 bits dans une PAL séparée de 256 entrées, plutôt que des triplets RVB directs. Chaque ressource visible livrée avec TA est à palette : PCX, GAF, SCT, pixels des tuiles des TNT et minicartes intégrées. L'exception notable, ce sont les animations TAF truecolor de TA: Kingdoms.

Pièce (piece)

Un sous-objet nommé d'un 3DO. Les scripts COB manipulent les pièces par leur nom (turn turret1 to y-axis [90] speed [60];).

Schéma (schema)

Une variante nommée de configuration de partie dans le fichier OTA associé à un TNT. Les différents schémas proposent en général différentes dispositions des positions de départ pour différents nombres de joueurs.

Niveau de la mer (sea level)

Le champ SeaLevel de l'en-tête d'un TNT. Toute case d'attributs dont l'octet Height est inférieur au niveau de la mer est considérée comme immergée. Une carte où SeaLevel == 0 n'a rien sous l'eau ; avec SeaLevel == 255, tout est sous l'eau.

Section

Un fichier SCT. Les morceaux de tuiles réutilisables que l'éditeur TAE de Cavedog assemblait pour construire les cartes TNT finales.

Masque de signal (signal mask)

Un masque de bits déclaré dans un script COB (set-signal-mask <n>) qui détermine quels messages signal préempteront l'instance de script en cours. Sert à annuler proprement les animations Walk/Aim/Idle quand l'état change.

Camp (side)

ARM ou CORE dans TA ; Aramon, Taros, Veruna ou Zhon dans TA: Kingdoms. Déclaré pour chaque unité dans le champ Side du FBI ; détermine aussi, dans TA: Kingdoms, avec quelle palette de camp une animation GAF sera rendue.

SQSH

Le marqueur (0x48535153 en LE) en tête de chaque chunk compressé d'un HPI. Allusion amusée aux chunks qui contiennent des données « écrasées » (squashed).

Sous-frame (sub-frame)

Une frame GAF imbriquée. Une seule frame d'animation visible peut être la composition de plusieurs sous-frames copiées à l'écran dans l'ordre, chacune avec son propre décalage d'origine et ses propres données de pixels.

TAF

Une animation truecolor de TA: Kingdoms. Elle reprend la disposition du conteneur GAF, mais stocke des pixels 16 bits ARGB4444 / ARGB1555 au lieu d'index de palette, et porte donc ses propres couleurs et son alpha. L'extension .taf est partagée avec des fichiers à palette de style GAF : l'octet de format de chaque frame permet de les distinguer.

Tick

Voir tick de jeu.

Tuile (tile)

Un morceau de 32×32 pixels des graphismes d'une carte. L'unité d'affichage fondamentale des TNT et des SCT. La grille de tuiles est indexée en uint16, ce qui permet en théorie jusqu'à 65 536 tuiles uniques par carte.

Clé de transparence (transparency key)

L'index de palette qu'une frame GAF enregistre comme transparent. Le jeu ne dessine pas les pixels de cette valeur dans une frame brute ; dans une frame compressée, les pixels transparents sont ses plages sautées, et ses autres pixels sont dessinés même s'ils sont égaux à la clé. Il n'existe pas d'index transparent pour toute la palette : le terrain, les minicartes, les fonds PCX et les textures des modèles dessinent chaque index, y compris l'index de palette 0 (noir). Les frames TAF truecolor n'ont pas de clé : la transparence vient à la place du canal alpha de chaque pixel.

Truecolor

Une image qui stocke une couleur (et un alpha) par pixel plutôt qu'un index dans une palette. L'exception à l'art de TA, par ailleurs universellement à palette : les animations TAF de TA: Kingdoms utilisent des pixels 16 bits ARGB4444 / ARGB1555.

TSF

« TAF Source Format » — la forme texte d'un TAF, lisible et délimitée par des accolades. Le chargeur d'interface de TA: Kingdoms lit directement les .tsf pour les fonds de menus ; kbot taf decompile en produit et kbot taf compile les relit. Voir TAF / TSF.

Système de fichiers virtuel (VFS)

L'arborescence fusionnée de fichiers que voient le moteur (ainsi que kbot mount / kbot mcp) après la superposition de toutes les archives de la famille HPI d'une racine d'installation. Elle permet de désigner un fichier comme units/ARMCOM.fbi sans se soucier de savoir s'il se trouve dans totala1.hpi, dans ccdata.ccx ou dans un répertoire aplati.

Case vide (void cell)

Une case d'attributs d'un TNT avec Feature == 0xFFFC. Elle marque un terrain infranchissable (parois de canyon, bordures d'eau profonde) qui n'est pas lui-même un élément de décor, mais doit être traité comme s'il y en avait un.

Yardmap

Une grille ASCII sur plusieurs lignes, dans un FBI, qui décrit les restrictions de chaque case de l'emprise d'un bâtiment. Lettres courantes : o = terrain libre, c = fermé (construit), w = eau uniquement.