Все страницы форматов ↓
Руководства и справка

Глоссарий

Источник: coreprime/kbot @ 0ab97bf · Редактировать на GitHub

Сквозной справочник по терминам, которые постоянно встречаются в моддинге Total Annihilation. Каждый термин ссылается на страницу, где он разобран подробнее всего.


Опорный объект (anchor object)

Деталь 3DO с одной вершиной и без примитивов. Во время игры невидима; она нужна как именованная точка координат для команд скриптов COB (emit-sfx from <anchor>;).

Архив (archive)

Файл HPI / UFO / CCX / GP3. Все четыре расширения обозначают один и тот же формат на диске и различаются только порядком загрузки.

ARGB4444 / ARGB1555

Две 16-битные кодировки пикселей, которые использует полноцветный TAF. ARGB4444 упаковывает по 4 бита альфы, красного, зелёного и синего (16 уровней мягкой альфы); ARGB1555 — 1 бит альфы и по 5 бит на каждый канал RGB (резкая маска). Какая из них используется, задаёт байт Format кадра (4 или 5).

Ячейка атрибутов (attribute cell)

Ячейка 16×16 пикселей карты TNT (или SCT). Каждый тайл имеет размер 32×32 пикселя и поэтому содержит 4 ячейки атрибутов. Высоты, расстановка объектов и допустимость прохода и строительства хранятся для каждой ячейки атрибутов.

Ось (axis)

В COB/3DO — числовой идентификатор одной из трёх осей вращения: 0 = X, 1 = Y, 2 = Z. Опкоды COB для MOVE/TURN/SPIN получают ось как встроенный операнд. В файлах 3DO ось Y направлена вверх.

BOS

«Basic Object Script» — похожий на C исходный язык скриптов анимации и поведения юнитов. Компилируется в COB. Моддеры пишут его вручную; из COB его восстанавливает kbot cob decompile.

COB

«Cobble» — стековый байткод, который на самом деле исполняет движок. См. COB / BOS.

Фрагмент сжатия (compression chunk)

Блок внутри файла HPI, который после распаковки занимает не больше 64 КиБ. У каждого фрагмента свой заголовок SQSH, метод сжатия (LZ77 / ZLib / без сжатия), пара размеров и необязательный второй проход XOR.

Встроенная палитра (embedded palette)

PAL, дописанная в файл PCX сразу после пиксельных данных RLE, с байтом-маркером 0x0C перед ней. Всего 769 байт.

Объект (feature)

Статичный объект на карте TNT, не являющийся юнитом: дерево, камень, месторождение металла, геотермальный источник, поле гидратации и т. д. Определяется в файле features/**/*.tdf (см. TDF), и TNT ссылается на него по имени.

Фиксированная точка (fixed-point)

Система координат моделей 3DO. Каждая координата int32 означает value / 65536.0 единиц мирового пространства. Так, 0x00010000 — ровно 1 единица мира, 0x00018000 — 1,5 единицы.

Площадь основания (footprint)

Ограничивающий прямоугольник юнита или объекта на сетке, выраженный в 16-пиксельных ячейках атрибутов (FootprintX × FootprintZ). Движок использует его при размещении построек и поиске пути.

Игровой тик (game tick)

Основная единица времени. 30 тиков в секунду. Большинство полей, связанных со временем, в COB и GAF задаются в тиках.

HPI

Архив «HAPI». См. HPI / UFO / CCX / GP3.

Наложение слоёв (layering)

Способ, которым движок при запуске объединяет несколько архивов HPI. Файлы из архива, загруженного позже, перекрывают файлы с тем же путём из более ранних архивов. Порядок загрузки (от низшего приоритета к высшему): .hpi → .ufo → .ccx → .gp3.

Таблица поиска (lookup table)

Файл .alp, .lht или .shd: строки из 256 индексов палитры (не RGB), по одному столбцу на исходный цвет. .alp занимает 65 536 байт (256 строк, по одной на каждый цвет, с которым идёт смешивание); .shd или .lht — 8 192 байта (32 строки, по одной на уровень тени или освещения). Движок находит текущий цвет в нужной строке и получает другой индекс палитры, который можно нарисовать через обычный 8-битный конвейер. Игра использует таблицу, только если её размер точно совпадает; отсутствующая таблица или таблица любого другого размера строится заново по палитре. См. PAL.

LZ77

Сжатие со скользящим окном, которое используется во фрагментах HPI при CompMethod == 1. Окно 4 КиБ, совпадения длиной 2–17 байт, биты-теги начиная с младшего.

«Волшебный розовый» (magic pink)

Индекс палитры 9 в канонической палитре TA (#5454FC). Инструменты редакторов используют его как цвет заливки прозрачных областей в исходных файлах PCX/GAF, и он записан как ключевой цвет во многих кадрах GAF, поэтому в этих кадрах он прозрачен. В остальных случаях это обычный цвет. См. Ключевой цвет прозрачности.

Имя объекта (object name)

Базовое имя в нижнем регистре, общее для файлов 3DO, COB и PCX юнита. Объявляется в FBI в поле Objectname. Не путать с UnitName — внешним идентификатором, который используют другие конфигурации.

OTA

«Online Total Annihilation» — сопутствующий файл метаданных карты TNT. Обычный текст в формате TDF (TDF). Содержит название миссии, описание, задание для ИИ, стартовые позиции и сведения об окружении.

Палитровое изображение (paletted image)

Растр, значения пикселей которого — 8-битные индексы в отдельной PAL на 256 записей, а не прямые тройки RGB. Все видимые ресурсы, поставляемые с TA, используют палитру: PCX, GAF, SCT, пиксели тайлов TNT и встроенные миникарты. Заметное исключение — полноцветные анимации TAF в TA: Kingdoms.

Деталь (piece)

Именованный подобъект в 3DO. Скрипты COB управляют деталями по имени (turn turret1 to y-axis [90] speed [60];).

Схема (schema)

Именованный вариант настройки игры внутри парного файла OTA карты TNT. Разные схемы обычно содержат разные раскладки стартовых позиций для разного числа игроков.

Уровень моря (sea level)

Поле SeaLevel в заголовке TNT. Любая ячейка атрибутов, у которой байт Height меньше уровня моря, считается подводной. На карте с SeaLevel == 0 под водой нет ничего, а на карте с SeaLevel == 255 под водой всё.

Секция (section)

Файл SCT. Многоразовые фрагменты из тайлов, которые редактор Cavedog TAE сшивал в готовые карты TNT.

Маска сигналов (signal mask)

Битовая маска, объявляемая в скрипте COB (set-signal-mask <n>), которая определяет, какие сообщения signal вытеснят текущий экземпляр скрипта. Используется, чтобы аккуратно прерывать анимации Walk/Aim/Idle при смене состояния.

Сторона (side)

ARM или CORE в TA; Aramon, Taros, Veruna или Zhon в TA: Kingdoms. Задаётся для каждого юнита в поле Side в FBI; в TA: Kingdoms также определяет, с палитрой какой стороны будет отрисовываться анимация GAF.

SQSH

Маркер (0x48535153 LE) в начале каждого сжатого фрагмента в HPI. Шутливый намёк на то, что данные во фрагментах «сплющены» (squashed).

Подкадр (sub-frame)

Вложенный кадр GAF. Один видимый кадр анимации может быть составлен из нескольких подкадров, выводимых по порядку, у каждого из которых своё смещение точки привязки и свои пиксельные данные.

TAF

Полноцветная анимация TA: Kingdoms. Использует структуру контейнера GAF, но вместо индексов палитры хранит 16-битные пиксели ARGB4444 / ARGB1555, поэтому несёт собственный цвет и альфу. Расширение .taf общее с палитровыми файлами в стиле GAF — различить их позволяет байт формата в каждом кадре.

Тик (tick)

См. игровой тик.

Тайл (tile)

Фрагмент графики карты размером 32×32 пикселя. Основная единица отображения для TNT и SCT. Сетка тайлов индексируется значениями uint16, что теоретически допускает до 65 536 уникальных тайлов на карту.

Ключевой цвет прозрачности (transparency key)

Индекс палитры, который кадр GAF хранит как прозрачный. В кадре без сжатия игра не рисует пиксели с этим значением; в сжатом кадре прозрачны пиксели, пропущенные сериями пропуска, а остальные пиксели рисуются, даже если равны ключевому цвету. Общего для всей палитры прозрачного индекса нет: рельеф, миникарты, фоны PCX и текстуры моделей рисуют все индексы, включая индекс палитры 0 (чёрный). У полноцветных кадров TAF ключевого цвета нет — прозрачность задаёт альфа-канал каждого пикселя.

Полноцветное изображение (truecolor)

Растр, который хранит для каждого пикселя сам цвет (и альфу), а не индекс в палитре. Исключение из правила, по которому вся графика TA палитровая: анимации TAF в TA: Kingdoms используют 16-битные пиксели ARGB4444 / ARGB1555.

TSF

«TAF Source Format» — читаемая текстовая форма TAF с фигурными скобками. Загрузчик интерфейса TA: Kingdoms читает .tsf напрямую для фонов меню; kbot taf decompile выдаёт этот формат, а kbot taf compile читает его обратно. См. TAF / TSF.

Виртуальная файловая система (VFS)

Объединённое дерево файлов, которое видит движок (а также kbot mount / kbot mcp) после наложения слоями всех архивов семейства HPI в корне установки. Позволяет ссылаться на файл вроде units/ARMCOM.fbi, не думая, лежит ли он в totala1.hpi, ccdata.ccx или в распакованном каталоге.

Пустая ячейка (void cell)

Ячейка атрибутов TNT с Feature == 0xFFFC. Помечает непроходимый рельеф (стены каньонов, границы глубокой воды), который сам не является объектом, но должен обрабатываться так, будто объект там есть.

Yardmap

Многострочная ASCII-сетка в FBI, описывающая ограничения для каждой ячейки площади основания здания. Распространённые буквы: o — открытая земля, c — закрыто (застроено), w — только вода.