WPL — различия между версиями
Материал из GTAModding.ru
Dageron (обсуждение | вклад) |
|||
(не показаны 32 промежуточные версии 4 участников) | |||
Строка 1: | Строка 1: | ||
− | Файлы '''W'''indows '''PL'''acement выполняют такую же роль, как и файлы [[IPL]] из предыдущих частей. | + | Файлы '''W'''indows '''PL'''acement выполняют такую же роль, как и файлы [[IPL]] из предыдущих частей. |
− | + | ||
==Формат файла== | ==Формат файла== | ||
− | + | Любой WPL файл начинается с заголовка размером 68 байт. Каждый параметр отвечает за количество блоков в соответствующей секции. В большинстве секций находятся блоки с данными о расположении объектов. | |
+ | |||
+ | 4b - UINT32 - (Версия) - Всегда равна "3" | ||
+ | 4b - UINT32 - (секция 0) - inst | ||
+ | 4b - UINT32 - (секция 1) - 0 (unused) | ||
+ | 4b - UINT32 - (секция 2) - grge | ||
+ | 4b - UINT32 - (секция 3) - cars (только в файлах *_stream*.wpl) | ||
+ | 4b - UINT32 - (секция 4) - tcyc | ||
+ | 4b - UINT32 - (секция 5) - 0 (unused) | ||
+ | 4b - UINT32 - (секция 6) - 0 (unused) | ||
+ | 4b - UINT32 - (секция 7) - 0 (unused) | ||
+ | 4b - UINT32 - (секция 8) - mlop (только в файлах *_strbig*.wpl) | ||
+ | 4b - UINT32 - (секция 9) - lodm (только в файлах lodcull_*.wpl) | ||
+ | 4b - UINT32 - (секция 10) - slow | ||
+ | 4b - UINT32 - (секция 11) - 0 (unused) | ||
+ | 4b - UINT32 - (секция 12) - 0 (unused) | ||
+ | 4b - UINT32 - (секция 13) - 0 (unused) | ||
+ | 4b - UINT32 - (секция 14) - 0 (unused) | ||
+ | 4b - UINT32 - (секция 15) - blok | ||
+ | |||
+ | Примечание: порядок секций в файле немного отличается от порядка в заголовке, записи из секции 15 (если они есть) идут следующими за секцией 4. | ||
+ | |||
+ | ===inst=== | ||
+ | |||
+ | Информация размещения объектов соответствует секции [[IPL#INST|instance]] <code>.ipl</code> файлов. Здесь схожая структура как у [[Бинарные_IPL|бинарных IPL]] файлов (введенные с [[:Категория:GTA_SA|San Andreas]]). | ||
+ | |||
+ | Размер: 48 байт | ||
+ | 4b - float - Позиция X | ||
+ | 4b - float - Позиция Y | ||
+ | 4b - float - Позиция Z | ||
+ | 4b - float - Вращение X | ||
+ | 4b - float - Вращение Y | ||
+ | 4b - float - Вращение Z | ||
+ | 4b - float - Вращение W | ||
+ | 4b - UINT32 - Хеш названия модели | ||
+ | 4b - UINT32 - Flags | ||
+ | 4b - INT32 - [[LOD]]-Индекс | ||
+ | 4b - INT32 - Unknown | ||
+ | 4b - float - Unknown | ||
+ | |||
+ | ''Информация вращения в виде [[Wikipedia:Quarternion|кватерниона]]'' | ||
+ | |||
+ | ===grge=== | ||
+ | |||
+ | Размер: 48 байт | ||
+ | 4b - float - X1 | ||
+ | 4b - float - Y1 | ||
+ | 4b - float - Z1 | ||
+ | 4b - float - frontX | ||
+ | 4b - float - frontY | ||
+ | 4b - float - X2 | ||
+ | 4b - float - Y2 | ||
+ | 4b - float - Z2 | ||
+ | 4b - UINT32 - DoorType | ||
+ | 4b - UINT32 - GarageType | ||
+ | 8b - char - GarageName | ||
+ | |||
+ | ;X1, Y1, Z1: нижний левый передний угол | ||
+ | ;frontX, frontY: нижний правый передний угол | ||
+ | ;X2, Y2, Z2: верхний левый задний | ||
+ | ;DoorType: тип дверей | ||
+ | ;GarageType: тип гаража (1=гараж с дверью, 2=pay'n'spray, 5=место парковки) | ||
+ | ;GarageName: идентификатор из [[GXT_(GTA_4)|GXT файла]] | ||
+ | |||
+ | ===cars=== | ||
+ | Используется только в (*_stream*.wpl) файлах. | ||
+ | |||
+ | Размер: 56 байт | ||
+ | 4b - float - X | ||
+ | 4b - float - Y | ||
+ | 4b - float - Z | ||
+ | 4b - float - Unknown | ||
+ | 4b - float - Rotation | ||
+ | 4b - float - Rotation | ||
+ | 4b - UINT32 - Model name hash | ||
+ | 4b - int32 - Car color 1 | ||
+ | 4b - int32 - Car color 2 | ||
+ | 4b - int32 - Car color 3 | ||
+ | 4b - int32 - Specular color | ||
+ | 4b - UINT32 - Flags | ||
+ | 4b - int32 - Alarm | ||
+ | 4b - int32 - Unknown | ||
+ | |||
+ | ;X, Y, Z: Координаты расположения. | ||
+ | ;Rotation: Поворот автомобиля | ||
+ | ;Model name hash: Хеш имени модели. | ||
+ | ;Car color 1-3: Параметр задаёт цвета автомобилю | ||
+ | ;Specular Color: Цвет спекуляра | ||
+ | ;Flags: Флаги | ||
+ | ;Alarm: Сигнализация | ||
+ | |||
+ | ===tcyc=== | ||
+ | |||
+ | Секция управляет некоторыми изменениями в графическом плане, или эффектами. Имена берутся из файлов timecycmodifiers№.dat. | ||
+ | |||
+ | Размер: 44 байт | ||
+ | 4b - float - X1 | ||
+ | 4b - float - Y1 | ||
+ | 4b - float - Z1 | ||
+ | 4b - float - X2 | ||
+ | 4b - float - Y2 | ||
+ | 4b - float - Z2 | ||
+ | 4b - UINT32 - Unknown1 | ||
+ | 4b - UINT32 - Unknown2 | ||
+ | 4b - UINT32 - Unknown3 | ||
+ | 4b - UINT32 - Unknown4 | ||
+ | 4b - UINT32 - Hash | ||
+ | |||
+ | ;X1, Y1, Z1: нижний левый передний угол | ||
+ | ;X2, Y2, Z2: верхний правый задний угол | ||
+ | ;Hash - Хэш имени бокса. | ||
+ | |||
+ | ===mlop=== | ||
+ | Используется только в (*_strbig*.wpl) файлах. | ||
+ | |||
+ | Через эту секцию, разработчики расставляли двери к домам, а также некоторые вывески в метро и др. | ||
+ | |||
+ | Размер: 64 байт | ||
+ | 24b - char - modelname | ||
+ | 4b - UINT32 - flags | ||
+ | 4b - UINT32 - interior index // interior inst index | ||
+ | 4b - UINT32 - Unknown | ||
+ | 4b - float - Pos X | ||
+ | 4b - float - Pos Y | ||
+ | 4b - float - Pos Z | ||
+ | 4b - float - Rot X | ||
+ | 4b - float - Rot Y | ||
+ | 4b - float - Rot Z | ||
+ | 4b - float - Rot W | ||
+ | |||
+ | ;modelname: название модели | ||
+ | ;Pos X, Pos Y, Pos Z: координаты объекта | ||
+ | ;Rot X, Rot Y, Rot Z, Rot W: вращение объекта (в виде [[Wikipedia:Quarternion|кватерниона]]) | ||
+ | |||
+ | ===lodm=== | ||
+ | Присутствие секции lodm наблюдается файлах, имена которых начинаются с "lodcull_**.wpl" (см. папку pc\data\maps\generic) | ||
+ | |||
+ | Размер: 388 байт | ||
+ | 4b - float - X1 | ||
+ | 4b - float - Y1 | ||
+ | 4b - float - Z1 | ||
+ | 4b - float - X2 | ||
+ | 4b - float - Y2 | ||
+ | 4b - float - Z2 | ||
+ | 4b - UINT32 - Unknown | ||
+ | 4b - UINT32 - hash1 | ||
+ | 4b - UINT32 - hash2 | ||
+ | 4b - UINT32 - hash3 | ||
+ | 4b - UINT32 - hash4 | ||
+ | 4b - UINT32 - hash5 | ||
+ | 4b - UINT32 - hash6 | ||
+ | 4b - UINT32 - hash7 | ||
+ | 4b - UINT32 - hash8 | ||
+ | 4b - UINT32 - hash9 | ||
+ | 4b - UINT32 - hash10 | ||
+ | 32b - char - modelname1 | ||
+ | 32b - char - modelname2 | ||
+ | 32b - char - modelname3 | ||
+ | 32b - char - modelname4 | ||
+ | 32b - char - modelname5 | ||
+ | 32b - char - modelname6 | ||
+ | 32b - char - modelname7 | ||
+ | 32b - char - modelname8 | ||
+ | 32b - char - modelname9 | ||
+ | 32b - char - modelname10 | ||
+ | |||
+ | ;X1, Y1, Z1: нижний левый передний угол | ||
+ | ;X2, Y2, Z2: верхний правый задний | ||
+ | ;hash[i]: хеш имени модели modelname[i] | ||
+ | ;modelname[i]: имя модели, которое соответствует хешу hash[i] | ||
− | 4b - | + | ===slow=== |
− | 4b - | + | |
+ | Размер: 24 байт | ||
+ | 4b - float - X1 | ||
+ | 4b - float - Y1 | ||
+ | 4b - float - Z1 | ||
+ | 4b - float - X2 | ||
+ | 4b - float - Y2 | ||
+ | 4b - float - Z2 | ||
− | + | ;X1, Y1, Z1: нижний левый передний угол | |
+ | ;X2, Y2, Z2: верхний левый задний | ||
− | + | ===blok=== | |
− | + | Секция "blok" использовалась разработчиками для указания различных заметок на карте игры. Секция игнорируется игрой. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Размер: 132 байт | |
+ | 4b - UINT32 - Zone | ||
+ | 92b - char - Author | Time | ||
+ | 4b - UINT32 - Unknown | ||
+ | 4b - float - X1 | ||
+ | 4b - float - Y1 | ||
+ | 4b - float - X2 | ||
+ | 4b - float - Y2 | ||
+ | 4b - float - X3 | ||
+ | 4b - float - Y3 | ||
+ | 4b - float - X4 | ||
+ | 4b - float - Y4 | ||
+ | ;Zone: имя зоны | ||
+ | ;Author | Time: Здесь указывается автор и время | ||
+ | ;X1, Y1, X2, Y2, X3, Y3, X4, Y4: плоскость | ||
==Ссылки== | ==Ссылки== | ||
Строка 31: | Строка 211: | ||
[[Категория:Форматы файлов]][[Категория:GTA 4]] | [[Категория:Форматы файлов]][[Категория:GTA 4]] | ||
+ | {{GTA4-navi}} | ||
+ | [[Category:Форматы файлов]] |
Текущая версия на 13:19, 8 мая 2013
Файлы Windows PLacement выполняют такую же роль, как и файлы IPL из предыдущих частей.
Содержание |
Формат файла
Любой WPL файл начинается с заголовка размером 68 байт. Каждый параметр отвечает за количество блоков в соответствующей секции. В большинстве секций находятся блоки с данными о расположении объектов.
4b - UINT32 - (Версия) - Всегда равна "3" 4b - UINT32 - (секция 0) - inst 4b - UINT32 - (секция 1) - 0 (unused) 4b - UINT32 - (секция 2) - grge 4b - UINT32 - (секция 3) - cars (только в файлах *_stream*.wpl) 4b - UINT32 - (секция 4) - tcyc 4b - UINT32 - (секция 5) - 0 (unused) 4b - UINT32 - (секция 6) - 0 (unused) 4b - UINT32 - (секция 7) - 0 (unused) 4b - UINT32 - (секция 8) - mlop (только в файлах *_strbig*.wpl) 4b - UINT32 - (секция 9) - lodm (только в файлах lodcull_*.wpl) 4b - UINT32 - (секция 10) - slow 4b - UINT32 - (секция 11) - 0 (unused) 4b - UINT32 - (секция 12) - 0 (unused) 4b - UINT32 - (секция 13) - 0 (unused) 4b - UINT32 - (секция 14) - 0 (unused) 4b - UINT32 - (секция 15) - blok
Примечание: порядок секций в файле немного отличается от порядка в заголовке, записи из секции 15 (если они есть) идут следующими за секцией 4.
inst
Информация размещения объектов соответствует секции instance .ipl
файлов. Здесь схожая структура как у бинарных IPL файлов (введенные с San Andreas).
Размер: 48 байт 4b - float - Позиция X 4b - float - Позиция Y 4b - float - Позиция Z 4b - float - Вращение X 4b - float - Вращение Y 4b - float - Вращение Z 4b - float - Вращение W 4b - UINT32 - Хеш названия модели 4b - UINT32 - Flags 4b - INT32 - LOD-Индекс 4b - INT32 - Unknown 4b - float - Unknown
Информация вращения в виде кватерниона
grge
Размер: 48 байт 4b - float - X1 4b - float - Y1 4b - float - Z1 4b - float - frontX 4b - float - frontY 4b - float - X2 4b - float - Y2 4b - float - Z2 4b - UINT32 - DoorType 4b - UINT32 - GarageType 8b - char - GarageName
- X1, Y1, Z1
- нижний левый передний угол
- frontX, frontY
- нижний правый передний угол
- X2, Y2, Z2
- верхний левый задний
- DoorType
- тип дверей
- GarageType
- тип гаража (1=гараж с дверью, 2=pay'n'spray, 5=место парковки)
- GarageName
- идентификатор из GXT файла
cars
Используется только в (*_stream*.wpl) файлах.
Размер: 56 байт 4b - float - X 4b - float - Y 4b - float - Z 4b - float - Unknown 4b - float - Rotation 4b - float - Rotation 4b - UINT32 - Model name hash 4b - int32 - Car color 1 4b - int32 - Car color 2 4b - int32 - Car color 3 4b - int32 - Specular color 4b - UINT32 - Flags 4b - int32 - Alarm 4b - int32 - Unknown
- X, Y, Z
- Координаты расположения.
- Rotation
- Поворот автомобиля
- Model name hash
- Хеш имени модели.
- Car color 1-3
- Параметр задаёт цвета автомобилю
- Specular Color
- Цвет спекуляра
- Flags
- Флаги
- Alarm
- Сигнализация
tcyc
Секция управляет некоторыми изменениями в графическом плане, или эффектами. Имена берутся из файлов timecycmodifiers№.dat.
Размер: 44 байт 4b - float - X1 4b - float - Y1 4b - float - Z1 4b - float - X2 4b - float - Y2 4b - float - Z2 4b - UINT32 - Unknown1 4b - UINT32 - Unknown2 4b - UINT32 - Unknown3 4b - UINT32 - Unknown4 4b - UINT32 - Hash
- X1, Y1, Z1
- нижний левый передний угол
- X2, Y2, Z2
- верхний правый задний угол
- Hash - Хэш имени бокса.
mlop
Используется только в (*_strbig*.wpl) файлах.
Через эту секцию, разработчики расставляли двери к домам, а также некоторые вывески в метро и др.
Размер: 64 байт 24b - char - modelname 4b - UINT32 - flags 4b - UINT32 - interior index // interior inst index 4b - UINT32 - Unknown 4b - float - Pos X 4b - float - Pos Y 4b - float - Pos Z 4b - float - Rot X 4b - float - Rot Y 4b - float - Rot Z 4b - float - Rot W
- modelname
- название модели
- Pos X, Pos Y, Pos Z
- координаты объекта
- Rot X, Rot Y, Rot Z, Rot W
- вращение объекта (в виде кватерниона)
lodm
Присутствие секции lodm наблюдается файлах, имена которых начинаются с "lodcull_**.wpl" (см. папку pc\data\maps\generic)
Размер: 388 байт 4b - float - X1 4b - float - Y1 4b - float - Z1 4b - float - X2 4b - float - Y2 4b - float - Z2 4b - UINT32 - Unknown 4b - UINT32 - hash1 4b - UINT32 - hash2 4b - UINT32 - hash3 4b - UINT32 - hash4 4b - UINT32 - hash5 4b - UINT32 - hash6 4b - UINT32 - hash7 4b - UINT32 - hash8 4b - UINT32 - hash9 4b - UINT32 - hash10 32b - char - modelname1 32b - char - modelname2 32b - char - modelname3 32b - char - modelname4 32b - char - modelname5 32b - char - modelname6 32b - char - modelname7 32b - char - modelname8 32b - char - modelname9 32b - char - modelname10
- X1, Y1, Z1
- нижний левый передний угол
- X2, Y2, Z2
- верхний правый задний
- hash[i]
- хеш имени модели modelname[i]
- modelname[i]
- имя модели, которое соответствует хешу hash[i]
slow
Размер: 24 байт 4b - float - X1 4b - float - Y1 4b - float - Z1 4b - float - X2 4b - float - Y2 4b - float - Z2
- X1, Y1, Z1
- нижний левый передний угол
- X2, Y2, Z2
- верхний левый задний
blok
Секция "blok" использовалась разработчиками для указания различных заметок на карте игры. Секция игнорируется игрой.
Размер: 132 байт 4b - UINT32 - Zone 92b - char - Author | Time 4b - UINT32 - Unknown 4b - float - X1 4b - float - Y1 4b - float - X2 4b - float - Y2 4b - float - X3 4b - float - Y3 4b - float - X4 4b - float - Y4
- Zone
- имя зоны
- Author | Time
- Здесь указывается автор и время
- X1, Y1, X2, Y2, X3, Y3, X4, Y4
- плоскость