-
Notifications
You must be signed in to change notification settings - Fork 9
CLF File Format Rus
Глоссарий
integer - тип данных, целое, положительное число, размер в файле 2 (указывается) или 4 байта (по умолчанию).
float - тип данных, нецелое число, размер в файле 4 байта.
string - тип данных, строка с завершающим нулем на конце (по умолчанию), иногда строка имеет фиксированную длины без нуля на конце (указывается).
-TODO-
Ссылки
- Шаблон формата CLF для программы 010 Editor. Открыть
1. Введение
3. Секции
3.1 Заголовок файла
3.2 Список текстур
3.2 Модель
Этот документ описывает структуру формата файла CLF, используемого в игре Корсары (2000). Формат CLF содержит параметры трехмерных моделей: координаты вершин, данные текстур, параметры анимации и другие.
Все переменные, перечисленные в таблицах, показаны в порядке их следования в файле.
Формат CLF разделен на 3 основные секции (см Табл. 1).
| № | Секция | Ссылки |
|---|---|---|
| 1 | Заголовок файла | См. Таблица 1 |
| 2 | Текстуры | См. Таблица 2 |
| 3 | Модель | См. Таблица 3 |
Файл CLF начинается с секции "Заголовок файла", которая содержит количество текстур, количество мешей и др..
| № | Тип данных | Описание | Значение |
|---|---|---|---|
| 1 | integer | Сигнатура файла | |
| 2 | integer | Неизвестная переменная | |
| 3 | integer | Неизвестная переменная | 0 |
| 4 | integer | Неизвестная переменная | 1 |
| 5 | integer | Количество текстур | |
| 6 | integer | Неизвестная переменная | 0 |
| 7 | integer | Количество мешей | |
| 8 | integer | Неизвестная переменная | 0 |
| 9 | integer | Неизвестная переменная | 886 |
| 10 | integer | Неизвестная переменная | 0 |
| 11 | integer | Неизвестная переменная | 0 |
Список текстур представляет собой последовательно расположенный массив имен файлов, содержащих текстуры объекта.
| № | Тип данных | Описание |
|---|---|---|
| 1 | string | Название файла |
В одном файле формата CLF всегда хранится одна трехмерная модель, разбитая на несколько мешей/объектов.
| № | Описание | Значение |
|---|---|---|
| 1 | Заголовок | См. Таблица 5 |
| 2 | Вершины | См. Таблица 6 |
| 3 | Полигоны | См. Таблица 7 |
| 4 | Параметры анимации | См. Таблица 8 |
| № | Тип данных | Описание | Значение |
|---|---|---|---|
| 1 | string | Имя меша/объекта (32 байта без завершающего нуля на конце) | |
| 2 | integer | Количество кадров анимации | |
| 3 | integer | Индекс текстуры | |
| 4 | integer | Количество вершин | |
| 5 | integer | Количество полигонов (треугольников) | |
| 6 | unknown | Пустое поле (96 байт) |
Вершины хранятся в файле последовательно в виде массива, элемент которого содержит координаты вершины, текстурных координаты, а также цвет вершины.
| № | Тип данных | Описание | Значение |
|---|---|---|---|
| 1 | float | Координата X | |
| 2 | float | Координата Y | |
| 3 | float | Координата Z | |
| 4 | float | - | 0 |
| 5 | float | - | 0 |
| 6 | float | - | 0 |
| 7 | float | - | 0 |
Полигоны хранятся в файле последовательно в виде массива, элемент которого содержит 3 индекса вершин из массива вершин.
| № | Тип данных | Описание | Значение |
|---|---|---|---|
| 1 | integer | Индекс первой вершины | |
| 2 | integer | Индекс второй вершины | |
| 3 | integer | Индекс третьей вершины | |
| 4 | Unknown | 2 байта | 0 |
| 5 | float | Координата U (1ая вершина) | |
| 6 | float | Координата V (1ая вершина) | |
| 7 | float | Координата U (2ая вершина) | |
| 8 | float | Координата V (2ая вершина) | |
| 9 | float | Координата U (3ая вершина) | |
| 10 | float | Координата V (3ая вершина) |
Анимация мешей/объектов хранится в файле последовательно в виде массива, элемент которого соотвествует 1 кадру анимации и содержит координаты и углы поворота меша, а также номер кадра. Первый кадр анимации соотвествует состоянию покоя объекта.
| № | Тип данных | Описание | Значение |
|---|---|---|---|
| 1 | float | Координата X | |
| 2 | float | Координата Y | |
| 3 | float | Координата Z | |
| 4 | float | Поворот X | |
| 5 | float | Поворот Y | |
| 6 | float | Поворот Z | |
| 7 | float | Фрейм |