For the complete documentation index, see llms.txt. This page is also available as Markdown.

Бинарные ресурсы в GEM RTS

Общая информация

Большинство бинарных файлов GEM RTS представляют собой контейнеры на основе чанков (chunk-based containers).

Любой чанк начинается с четырёхсимвольного магического идентификатора (Chunk_ID, FourCC), который обычно представляет собой человекочитаемую комбинацию из четырёх ASCII-символов.

Чанки не содержат информации о своём размере, поэтому программа-парсер должна вычислять его на основе структуры данных конкретного чанка.

Все многобайтовые данные в бинарных форматах GEM RTS хранятся в формате Little-endian, при котором младший байт записывается первым.

Контейнеры бинарных файлов

Контейнер используется для хранения однотипных файлов с целью уменьшения количества отдельных файлов в файловой системе.

Формат файла
Описание

.mesh

Контейнерный файл, содержащий один или несколько ресурсов моделей в формате .ply

.cmesh

Контейнерный файл, содержащий один или несколько ресурсов коллизионных и физических сеток в формате .vol

.animation

Контейнерный файл, содержащий один или несколько ресурсов анимации в формате .anm

Расширения файлов

Расширение
Описание

.ply

Формат хранения данных геометрии модели

.anm

Формат хранения данных анимаций

.vol

Формат хранения данных волюмов модели

Типы данных

Тип
Описание
Размер

chunk

Четырёхсимвольный магический идентификатор (FourCC), определяющий тип и содержимое следующего блока данных.

4

int8 / uint8

Однобайтовое знаковое / беззнаковое целое число.

1

int16 / uint16

Двухбайтовое знаковое / беззнаковое целое число.

2

int32 / uint32

Четырёхбайтовое знаковое / беззнаковое целое число.

4

float

Четырёхбайтовое число с плавающей точкой.

4

string8

Короткая строка:

  • uint8 length

  • char - массив символов uint8[length], без завершающего нулевого символа.

1+

string8/24 или string24

Строка переменной длины в формате string8/24. Для коротких строк, длина которых меньше 255, структура совпадает с string8. Если длина больше либо равна 255:

  • uint8 signature

  • 0xFF - uint24 long_length

  • char - массив символов uint8[long_length], без завершающего нулевого символа.

1+

string32

Устаревший формат строки:

  • uint32 long_length

  • char - массив символов uint8[long_length], без завершающего нулевого символа.

4+

Другие условные обозначения

Обозначение

Описание

struct

Вложенная структура данных.

<type>[<number>]

Массив фиксированного размера типа <type>, содержащий <number> элементов.

<type>[<name>]

Массив переменного размера типа <type>. Количество элементов определяется значением, хранящимся в поле <name>.

unorm8

Беззнаковое 8-битное целое число (uint8), которое при чтении преобразуется в значение типа float в диапазоне [0..1].

Little-endian

Порядок байтов, используемый для хранения всех многобайтовых значений. Младший байт записывается первым.

Описание форматов ресурсов

Cover

Меш модели

Cover

Анимации модели

Cover

Волюмы модели

Последнее обновление