> For the complete documentation index, see [llms.txt](https://docs.bestway.com.ua/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bestway.com.ua/gem-rts-v1-ru/bazovaya-informaciya-o-resursakh-v-gem-rts/binarnye-resursy-v-gem-rts.md).

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

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

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

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

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

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

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

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

<table><thead><tr><th width="157.00390625">Формат файла</th><th>Описание</th></tr></thead><tbody><tr><td><code>.mesh</code></td><td>Контейнерный файл, содержащий один или несколько ресурсов моделей в формате <code>.ply</code></td></tr><tr><td><code>.cmesh</code></td><td>Контейнерный файл, содержащий один или несколько ресурсов коллизионных и физических сеток в формате <code>.vol</code></td></tr><tr><td><code>.animation</code></td><td>Контейнерный файл, содержащий один или несколько ресурсов анимации в формате <code>.anm</code></td></tr></tbody></table>

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

<table><thead><tr><th width="121.28125">Расширение</th><th>Описание</th></tr></thead><tbody><tr><td><code>.ply</code></td><td>Формат хранения данных геометрии модели</td></tr><tr><td><code>.anm</code></td><td>Формат хранения данных анимаций</td></tr><tr><td><code>.vol</code></td><td>Формат хранения данных волюмов модели</td></tr></tbody></table>

## Типы данных

<table><thead><tr><th>Тип</th><th width="328.2109375">Описание</th><th>Размер</th></tr></thead><tbody><tr><td>chunk</td><td>Четырёхсимвольный магический идентификатор (FourCC), определяющий тип и содержимое следующего блока данных.</td><td>4</td></tr><tr><td>int8 / uint8</td><td>Однобайтовое знаковое / беззнаковое целое число.</td><td>1</td></tr><tr><td>int16 / uint16</td><td>Двухбайтовое знаковое / беззнаковое целое число.</td><td>2</td></tr><tr><td>int32 / uint32</td><td>Четырёхбайтовое знаковое / беззнаковое целое число.</td><td>4</td></tr><tr><td>float</td><td>Четырёхбайтовое число с плавающей точкой.</td><td>4</td></tr><tr><td>string8</td><td><p>Короткая строка:</p><ul><li>uint8 length</li><li>char - массив символов uint8[length], <strong>без завершающего нулевого символа</strong>.</li></ul></td><td>1+</td></tr><tr><td>string8/24<br>или<br>string24</td><td><p>Строка переменной длины в формате string8/24.<br>Для коротких строк, длина которых меньше 255, структура совпадает с string8.<br>Если длина больше либо равна 255:</p><ul><li>uint8 signature</li><li>0xFF - uint24 long_length</li><li>char - массив символов uint8[long_length], <strong>без завершающего нулевого символа.</strong></li></ul></td><td>1+</td></tr><tr><td>string32</td><td><p>Устаревший формат строки:</p><ul><li>uint32 long_length</li><li>char - массив символов uint8[long_length], <strong>без завершающего нулевого символа</strong>.</li></ul></td><td>4+</td></tr></tbody></table>

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

| **Обозначение**    | **Описание**                                                                                                            |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| struct             | Вложенная структура данных.                                                                                             |
| `<type>[<number>]` | Массив фиксированного размера типа `<type>`, содержащий `<number>` элементов.                                           |
| `<type>[<name>]`   | Массив переменного размера типа `<type>`. Количество элементов определяется значением, хранящимся в поле `<name>`.      |
| `unorm8`           | Беззнаковое 8-битное целое число (`uint8`), которое при чтении преобразуется в значение типа float в диапазоне \[0..1]. |
| Little-endian      | Порядок байтов, используемый для хранения всех многобайтовых значений. Младший байт записывается первым.                |

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

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td>Контейнеры бинарных файлов</td><td><a href="/gem-rts-v1-ru/bazovaya-informaciya-o-resursakh-v-gem-rts/binarnye-resursy-v-gem-rts/konteinery-binarnykh-failov-.mesh-.cmesh-.animation.md">Контейнеры бинарных файлов (.mesh, .cmesh, .animation)</a></td><td><a href="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FrCk1dAvSKKe04Fp9WkP4%2Fsplash_editor_3.jpg?alt=media&amp;token=a89d5e03-56d3-401d-b04b-8da366458bd9">cover picture default</a></td></tr><tr><td>Меш модели</td><td><a href="/gem-rts-v1-ru/bazovaya-informaciya-o-resursakh-v-gem-rts/binarnye-resursy-v-gem-rts/format-mesha-.ply.md">Формат меша (.ply)</a></td><td><a href="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FrCk1dAvSKKe04Fp9WkP4%2Fsplash_editor_3.jpg?alt=media&amp;token=a89d5e03-56d3-401d-b04b-8da366458bd9">cover picture default</a></td></tr><tr><td>Анимации модели</td><td><a href="/gem-rts-v1-ru/bazovaya-informaciya-o-resursakh-v-gem-rts/binarnye-resursy-v-gem-rts/format-animacii-.anm.md">Формат анимации (.anm)</a></td><td><a href="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FrCk1dAvSKKe04Fp9WkP4%2Fsplash_editor_3.jpg?alt=media&amp;token=a89d5e03-56d3-401d-b04b-8da366458bd9">cover picture default</a></td></tr><tr><td>Волюмы модели</td><td><a href="/gem-rts-v1-ru/bazovaya-informaciya-o-resursakh-v-gem-rts/binarnye-resursy-v-gem-rts/format-volyumov-.vol.md">Формат волюмов (.vol)</a></td><td><a href="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FrCk1dAvSKKe04Fp9WkP4%2Fsplash_editor_3.jpg?alt=media&amp;token=a89d5e03-56d3-401d-b04b-8da366458bd9">cover picture default</a></td></tr></tbody></table>
