Skip to content

CLF File Format Rus

Alexander Evdokimov edited this page Sep 15, 2018 · 2 revisions

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

Date: 2018.07 | Version: 0.1 | Авторы: Александр Евдокимов

Глоссарий

integer - тип данных, целое, положительное число, размер в файле 2 (указывается) или 4 байта (по умолчанию).

float - тип данных, нецелое число, размер в файле 4 байта.

string - тип данных, строка с завершающим нулем на конце (по умолчанию), иногда строка имеет фиксированную длины без нуля на конце (указывается).

-TODO-

Ссылки

  1. Шаблон формата CLF для программы 010 Editor. Открыть

Оглавление

1. Введение

2. Общая структура формата

3. Секции

  3.1 Заголовок файла

  3.2 Список текстур

  3.2 Модель

1. Введение

Этот документ описывает структуру формата файла CLF, используемого в игре Корсары (2000). Формат CLF содержит параметры трехмерных моделей: координаты вершин, данные текстур, параметры анимации и другие.

Все переменные, перечисленные в таблицах, показаны в порядке их следования в файле.

2. Общая структура формата

Формат CLF разделен на 3 основные секции (см Табл. 1).

Таблица 1. Общая структура

Секция Ссылки
1 Заголовок файла См. Таблица 1
2 Текстуры См. Таблица 2
3 Модель См. Таблица 3

3. Секции

3.1 Заголовок файла

Файл CLF начинается с секции "Заголовок файла", которая содержит количество текстур, количество мешей и др..

Таблица 2. Структура заголовка файла

Тип данных Описание Значение
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

3.2 Список текстур

Список текстур представляет собой последовательно расположенный массив имен файлов, содержащих текстуры объекта.

Таблица 3. Структура элемента списка текстур

Тип данных Описание
1 string Название файла

3.3 Модель

В одном файле формата CLF всегда хранится одна трехмерная модель, разбитая на несколько мешей/объектов.

Таблица 4. Структура параметров меша

Описание Значение
1 Заголовок См. Таблица 5
2 Вершины См. Таблица 6
3 Полигоны См. Таблица 7
4 Параметры анимации См. Таблица 8

3.3.1 Заголовок

Таблица 5. Структура заголовка

Тип данных Описание Значение
1 string Имя меша/объекта (32 байта без завершающего нуля на конце)
2 integer Количество кадров анимации
3 integer Индекс текстуры
4 integer Количество вершин
5 integer Количество полигонов (треугольников)
6 unknown Пустое поле (96 байт)

3.3.2 Вершины

Вершины хранятся в файле последовательно в виде массива, элемент которого содержит координаты вершины, текстурных координаты, а также цвет вершины.

Таблица 6. Структура секции вершин

Тип данных Описание Значение
1 float Координата X
2 float Координата Y
3 float Координата Z
4 float - 0
5 float - 0
6 float - 0
7 float - 0

3.3.3 Полигоны

Полигоны хранятся в файле последовательно в виде массива, элемент которого содержит 3 индекса вершин из массива вершин.

Таблица 7. Структура секции полигонов

Тип данных Описание Значение
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ая вершина)

3.3.4 Анимация

Анимация мешей/объектов хранится в файле последовательно в виде массива, элемент которого соотвествует 1 кадру анимации и содержит координаты и углы поворота меша, а также номер кадра. Первый кадр анимации соотвествует состоянию покоя объекта.

Таблица 8. Структура cекции параметров анимации

Тип данных Описание Значение
1 float Координата X
2 float Координата Y
3 float Координата Z
4 float Поворот X
5 float Поворот Y
6 float Поворот Z
7 float Фрейм