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.