WRLD — различия между версиями

Материал из GTAModding.ru
Перейти к: навигация, поиск
Строка 12: Строка 12:
 
   0х04 4b: тип WRLD (1 - Master WRLD, 0 - Slave WRLD)
 
   0х04 4b: тип WRLD (1 - Master WRLD, 0 - Slave WRLD)
 
   0х08 4b: размер WRLD
 
   0х08 4b: размер WRLD
   0х0С 4b: переход на начало глобалсекции (таблицы адресов для всех подсекций в WRLD)
+
   0х0С 4b: адрес на начало глобалсекции (таблицы адресов для всех подсекций в WRLD)
   0х10 4b: переход на начало глобалсекции (повторяется)
+
   0х10 4b: адрес на начало глобалсекции (повторяется)
 
   0х14 4b: количество оффсетов в глобалсекции
 
   0х14 4b: количество оффсетов в глобалсекции
 
   0х18 4b: адрес на продолжение подчинённого World в IMG-архиве (для мастера не используется, равно нулю)
 
   0х18 4b: адрес на продолжение подчинённого World в IMG-архиве (для мастера не используется, равно нулю)
Строка 28: Строка 28:
 
   Xb: выравнивание (0хАААА...)
 
   Xb: выравнивание (0хАААА...)
 
   0x320 4b: неизв.
 
   0x320 4b: неизв.
   0x324 4b: переход на таблицу, задающую определённым объектам на карте свойства timeobjects от времени суток или состояния игрового процесса.
+
   0x324 4b: адрес таблицы, задающую определённым объектам на карте свойства timeobjects от времени суток или состояния игрового процесса.
 
   0х328 4b: неизв.
 
   0х328 4b: неизв.
   0х32С 4b: оффсет на большую таблицу с неизвестными данными
+
   0х32С 4b: адрес большой таблицы с неизвестными данными (при её обнулении игрок не грузится на карте)
 
   0х330 4b: неизв.
 
   0х330 4b: неизв.
 
   0х334 4b: оффсет на таблицу с неизвестными данными, связанную с рендерингом карты, каждая строка которой отвечает за определённый интерьер.
 
   0х334 4b: оффсет на таблицу с неизвестными данными, связанную с рендерингом карты, каждая строка которой отвечает за определённый интерьер.
Строка 40: Строка 40:
 
     0х20 4b: адрес на таблицу идентификаторов ресурсов, хранящихся в WRLD.
 
     0х20 4b: адрес на таблицу идентификаторов ресурсов, хранящихся в WRLD.
 
     0х24 2b: количество ресурсов в WRLD
 
     0х24 2b: количество ресурсов в WRLD
     0x26 2b: флаг, назначение неизвестно
+
     0x26 2b: флаг, назначение неизвестно (обычно = 0х12)
     0x28 32b: переходы на таблицу скайлинга и координат моделей, последний оффсет указывает на конец последней таблицы.
+
     0x28 32b: адрес таблицы скайлинга и координат моделей, последний оффсет указывает на конец последней таблицы.
     0х48 2b: флаг, назначение неизвестно
+
     0х48 2b: флаг, сигнализирующий наличие особого 4х байтного массива (0 - отсутствует, 1,2,.. - присутствует)
     0х4A 2b: флаг, назначение неизвестно
+
     0х4A 2b: флаг, назначение неизвестно (обычно = 0х12)
     0х4C 4b: неизвестно (обычно = 0)
+
     0х4C 4b: адрес особого 4х байтного массива
  
 
'''Структура таблицы переходов на скайлинг и координаты моделей'''
 
'''Структура таблицы переходов на скайлинг и координаты моделей'''
Строка 54: Строка 54:
 
Последний оффсет таблицы ссылается на технический сектор '''AAAAAAAA''', необходимый для движка, сигнализирующий об окончании загрузки [[IPL]].
 
Последний оффсет таблицы ссылается на технический сектор '''AAAAAAAA''', необходимый для движка, сигнализирующий об окончании загрузки [[IPL]].
  
'''Структура таблицы скайлинга'''
+
'''Структура таблицы скайлинга и координат моделей (на основе данных Хероманта):'''
  
Один структурный блок = 80b
+
Длинна строки = 80b, количество строк определено в заголовке (см. выше)
{{Заготовка}}
+
  
 +
0х00 2b - ID модели (1 модель может состоять из нескольких ресурсов)
 +
0x02 2b - ID ресурса
 +
0х04 8b - неизвестный набор байтов
 +
0х0С 4b - не используется (всегда = 0)
 +
0х10 4b - множитель масштаба Х
 +
0х14 4b - угол поворота А
 +
0х18 8b - не используется (всегда = 0)
 +
0х20 4b - угол поворота B
 +
0х24 4b - множитель масштаба Y
 +
0х28 16b - не используется (всегда = 0)
 +
0х38 4b - множитель масштаба Z
 +
0x3C 4b - не используется (всегда = 0)
 +
0х40 4b - X координата относительно центра WRLD
 +
0х44 4b - Y координата относительно центра WRLD
 +
0х48 4b - Z координата относительно центра WRLD
 +
0x4C 4b - 1 (конец строки)
  
'''Структура таблицы идентификации моделей и текстур'''
+
'''Структура таблицы идентификации ресурсов'''
  
По данной таблице моделям и текстурам присваивается определенный ID.
+
По данной таблице движок игры, исходя из ID ресурса, находит нужный ресурс в WRLD.
 +
   
 +
Одна строка таблицы занимает 4 байта для мастера, 8 байт для подчинённого, количество ресурсов в WRLD записано в заголовке.
  
Один структурный блок таблицы занимает 8 байт
+
     4b: ID ресурса (только для подчинённого WRLD, для мастера определён счётчиком номера строки)
     4b: ID модели или текстуры
+
     4b: Оффсет на ресурс
     4b: Оффсет на модель или текстуру
+
  
 
'''Структура общего FAT (глобалсекции)'''
 
'''Структура общего FAT (глобалсекции)'''
Строка 72: Строка 88:
 
Общий FAT обычно располагается в самом конце файла и указывает на все оффсеты, которые ссылаются непосредственно на модели/текстуры/IPL.
 
Общий FAT обычно располагается в самом конце файла и указывает на все оффсеты, которые ссылаются непосредственно на модели/текстуры/IPL.
  
Используется для внутренней проверки WRLD.
+
Используется для проверки при загрузке ресурсов игры (есть во всех типизированных движку файлах).
  
 
{{GTA_Stories-navi}}
 
{{GTA_Stories-navi}}
 
[[Категория:GTA LCS]][[Категория:GTA VCS]][[Категория:Моддинг консольных версий]][[Категория:Форматы файлов]]
 
[[Категория:GTA LCS]][[Категория:GTA VCS]][[Категория:Моддинг консольных версий]][[Категория:Форматы файлов]]

Версия 14:32, 15 марта 2013

WRLD - формат, используемый в LCS, VCS и Manhunt2. Хранит все данные для рендеринга игровых локаций - геометрию, текстуры, а так же информацию о размещении объектов. Аналог на Renderware - формат BSP (корневая секция которого так же называется "world").

Структура

Структура заголовка WRLD (на основе данных Хероманта):

глобальный заголовок WRLD [32 байта]

  0х00 4b: сигнатура "DLRW"
  0х04 4b: тип WRLD (1 - Master WRLD, 0 - Slave WRLD)
  0х08 4b: размер WRLD
  0х0С 4b: адрес на начало глобалсекции (таблицы адресов для всех подсекций в WRLD)
  0х10 4b: адрес на начало глобалсекции (повторяется)
  0х14 4b: количество оффсетов в глобалсекции
  0х18 4b: адрес на продолжение подчинённого World в IMG-архиве (для мастера не используется, равно нулю)
  0х1С 4b: не используется (всегда 0)

заголовок Master WRLD [800 байт]

  0х20 4b: адрес на таблицу идентификаторов ресурсов, хранящихся в WRLD.
  цикл, читающий каждую группу Slave WRLD из IMG-архива {
  4b: адрес на массив начал Slave WRLD
  4b: флаг, назначение неизвестно
  } конец цикла
  4b: количество всех ресурсов в уровне (один master WRLD + все подчинённые ему slave WRLD)
  Xb: выравнивание (0хАААА...)
  0x320 4b: неизв.
  0x324 4b: адрес таблицы, задающую определённым объектам на карте свойства timeobjects от времени суток или состояния игрового процесса.
  0х328 4b: неизв.
  0х32С 4b: адрес большой таблицы с неизвестными данными (при её обнулении игрок не грузится на карте)
  0х330 4b: неизв.
  0х334 4b: оффсет на таблицу с неизвестными данными, связанную с рендерингом карты, каждая строка которой отвечает за определённый интерьер.
  0х338 4b: количество радар-прикреплённых текстур (только для ЛСС)
  0х33С 4b: адрес на массив начал радар-прикреплённых текстур (только для ЛСС)
  

заголовок Slave WRLD [48 байт]

   0х20 4b: адрес на таблицу идентификаторов ресурсов, хранящихся в WRLD.
   0х24 2b: количество ресурсов в WRLD
   0x26 2b: флаг, назначение неизвестно (обычно = 0х12)
   0x28 32b: адрес таблицы скайлинга и координат моделей, последний оффсет указывает на конец последней таблицы.
   0х48 2b: флаг, сигнализирующий наличие особого 4х байтного массива (0 - отсутствует, 1,2,.. - присутствует)
   0х4A 2b: флаг, назначение неизвестно (обычно = 0х12)
   0х4C 4b: адрес особого 4х байтного массива

Структура таблицы переходов на скайлинг и координаты моделей

Данная таблица располагается сразу после заголовка Slave WRLD и имеет фиксированное число оффсетов.

Каждый оффсет имеет тип Longint и ссылается на определенное место во внутренней бинарной таблице скайлинга и IPL

Последний оффсет таблицы ссылается на технический сектор AAAAAAAA, необходимый для движка, сигнализирующий об окончании загрузки IPL.

Структура таблицы скайлинга и координат моделей (на основе данных Хероманта):

Длинна строки = 80b, количество строк определено в заголовке (см. выше)

0х00 2b - ID модели (1 модель может состоять из нескольких ресурсов)
0x02 2b - ID ресурса
0х04 8b - неизвестный набор байтов
0х0С 4b - не используется (всегда = 0)
0х10 4b - множитель масштаба Х
0х14 4b - угол поворота А
0х18 8b - не используется (всегда = 0)
0х20 4b - угол поворота B
0х24 4b - множитель масштаба Y
0х28 16b - не используется (всегда = 0)
0х38 4b - множитель масштаба Z
0x3C 4b - не используется (всегда = 0)
0х40 4b - X координата относительно центра WRLD
0х44 4b - Y координата относительно центра WRLD
0х48 4b - Z координата относительно центра WRLD
0x4C 4b - 1 (конец строки)

Структура таблицы идентификации ресурсов

По данной таблице движок игры, исходя из ID ресурса, находит нужный ресурс в WRLD.

Одна строка таблицы занимает 4 байта для мастера, 8 байт для подчинённого, количество ресурсов в WRLD записано в заголовке.

   4b: ID ресурса (только для подчинённого WRLD, для мастера определён счётчиком номера строки)
   4b: Оффсет на ресурс

Структура общего FAT (глобалсекции)

Общий FAT обычно располагается в самом конце файла и указывает на все оффсеты, которые ссылаются непосредственно на модели/текстуры/IPL.

Используется для проверки при загрузке ресурсов игры (есть во всех типизированных движку файлах).

п · о · р
Lcs.png GTA Liberty City Stories Vcs.png GTA Vice City Stories
Форматы файлов.anim.at3.cam.chk/.xtx.col2.cut.dtz.ifp.img/.dir.irx.gxt.lvz.mdl.pss.raw/.sdt.scm.vb.wrld
ИнструментыApacheConsole Texture Explorer (PSP/PS2)GTA Stories IMG ToolGTA Stories Texture ViewerGTA Stories Texture Explorer
GTA Stories RAW EditorGXT EditorJPCSPMDL importerMF AudioPCSX2PPSSPPStories WRLD ToolGTA Stories Map Converter v1.0UMD GenYAIE
ТуториалыМоддинг VCS и LCS (PSP/PS2)Аудио на PSPАудио на PS2Спецификация версий PS2Конфигурирование PCSX2
ПК-версииVice City StoriesLiberty City Stories