B3D (формат файлов)

Материал из RnR Wiki
Версия от 15:11, 8 сентября 2025; Aleko 2144 (обсуждение | вклад) (Новая страница: «Категория:Дальнобойщики_2 Категория:Моддинг (Дальнобойщики 2) Описание формата *.b3d и…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Описание формата *.b3d игр Дальнобойщики: Путь к победе и Дальнобойщики 2. Данный формат представляет собой трёхмерную сцену с различными типами объектов: контейнерами, переключателями, триггерами, источниками освещения, геометрией и т.п.[1]. Инструменты для работы с B3D представлены на странице с утилитами. Сам формат, предположительно, создан в первой половине 90-х годов ХХ века.

Общее описание структуры файла

Формат b3d разделен на 3 основные секции:

<заголовок>
<список материалов>
<блоки данных>

Общее описание блока данных

тип данных описание
int32 Идентификатор начала блока
char[32] Имя блока
int32 Тип блока
<данные> Данные блока
int32 Идентификатор конца блока

Числовые идентификаторы

Располагаются в начале и конце каждого экземпляра блока, а также в начале и конце блока данных b3d-файла (см. общее описание структуры файла). Представляют собой int32.

значение int32 описание
111 Начало секции с блоками данных
222 Конец секции с блоками данных
333 Начало одного блока
444 Разделитель переключаемых блоков (маркер окончания переключаемой группы)
555 Конец одного блока

Заголовок

тип данных описание значение по умолчанию
char[4] сигнатура файла "b3d"
int32 [ Размер файла в байтах ] / 4
int32 [ Смещение секции со списком используемых материалов ] / 4 6
int32 [ Размер секции со списком материалов (1ая секция) ] / 4
int32 [ Смещение секции с блоками данных (третья секция) ] / 4
int32 [ Размер секции с блоками данных (третья секция) в байтах ] / 4

Список материалов

Представляет собой массив имён материалов из RES-файла. Порядок и имена должны соответствовать RES.

тип данных описание
int32 количество материалов
массив char[32] имя материала

Структуры и описания объектов

Структуры даны в синтаксисе C++.

Некоторые используемые структуры

struct Vector3{
    float x;
    float y;
    float z;
};
struct Vector4{
    float x;
    float y;
    float z;
    float w;
};

Блок 00

char[32] some_name
Vector3  some_position

Назначение неизвестно. Обычно расположен сразу после списка материалов в любом b3d-файле.

Блок 01

char[32] start_space //имя локатора типа 24, задаёт начальную позицию обозревателя
char[32] start_room  //имя комнаты типа 19

Обозреватель (Viewer).

Контейнер 02

Vector4 position;
Vector4 unknown;
int     childCount;
<блоки[childCount]>

Контейнер с неизвестными параметрами.

Контейнер 03

Vector4 position;
int     childCount;
<блоки[childCount]>

Простой контейнер.

Контейнер 04

Vector4  position;
char[32] parentObject;
char[32] linkedObject;
int      childCount;
<блоки[childCount]>

Контейнер с возможностью его прямой привязки к другому объекту: в parentObject можно задать имя локатора типа 24, и тогда данный контейнер будет привязан к позиции локатора.

Контейнер 05

Vector4  position;
char[32] linkedObject;
int      childCount;
<блоки[childCount]>

Контейнер.

Блок типа 06

Блок типа 07

Блок типа 08

Блок типа 09

Блок типа 10

Блок типа 11

Блок типа 12

Блок типа 13

Блок типа 14

Блок типа 15

Блок типа 16

Блок типа 17

Блок типа 18

Блок типа 19

Блок типа 20

Блок типа 21

Блок типа 22

Блок типа 23

Блок типа 24

Блок типа 25

Блок типа 26

Блок типа 27

Блок типа 28

Блок типа 29

Блок типа 30

Блок типа 31

Блок типа 32

Блок типа 33

Блок типа 34

Блок типа 35

Блок типа 36

Блок типа 37

Блок типа 38

Блок типа 39

Блок типа 40

Дальнобойщики 2
Игровое наполнение Игровой регионАвтопаркСаундтрекВступительный роликРацияМилицияВертолёт
Дб2t.jpg
Моддинг МодификацииУтилитыgame.cnfsch-файлыvehicle.techtruck.ini
Разное История версийСоветы и секретыБонусный дискУправлениеАвторы


Примечания