Перейти к содержимому


Фотография
* * * * * 2 Голосов

WPL


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 40

#1 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 18 February 2009 - 10:14

Это тема для обсуждения статьи: WPL

#2 GooD-NTS

GooD-NTS

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 494 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород


Отправлено 18 February 2009 - 20:14

На самом деле это не "World PLacement" как написано в статье.
Здесь буква W от слова Windows (также как и в WTD и других платформо зависимых ресурсах).

В версии для xbox360 этот формат называется XPL, здесь Х от Xenon (название процессора х360 и кодовое имя всей консоли).

Файлы WPL и XPL по структуре ничем не отличаются, единственное их различие это порядок байт.
В WPL это little-endian в XPL это big-endian.

Сообщение отредактировал GooD-NTS: 18 February 2009 - 20:15

Изображение

RAGE research project, public side: OpenIV (Журнал изменений План развития) | openFormats


#3 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 20 February 2009 - 19:05

Начал делать утилитку для просмотра/редактирования WPL файлов (в будущем может и XPL если разберусь с порядком байтов). В WPL Manager-е есть таблица хешей hashtbl, я ее задействую чтобы имена объектов отображались корректно.

Прикрепленные файлы


в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#4 Seemann

Seemann

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 266 сообщений
  • Пол:Мужчина
  • Город:Россия, Иркутск/СПб

Отправлено 20 February 2009 - 19:34

В WPL Manager-е есть таблица хешей hashtbl, я ее задействую чтобы имена объектов отображались корректно.


Не уверен, что правильно тебя понял, но списки хэшей можно посмотреть здесь
http://www.gtamoddin...f_models_hashes
http://www.gtamoddin...ic_Model_Hashes

#5 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 21 February 2009 - 16:59

теоретически, если смотреть hex workshopом, то видно, что заголовок занимает 68 байт, т.е. 17 значений типа UINT32. Первое - всегда 3, второе - количество instance-объектов, и т.д. Я так понял, что в wpl-файле всего может быть 16 секций, ну и каждое из значений заголовка содержит количество объектов(строк) в каждой из них. почти в каждом wpl-файле (кроме тех что в img), есть 16я секция..

#6 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 21 February 2009 - 18:22

Seemann
Да, это те хеши, которые во второй ссылке. Просто они все уже в одном файле.

Chipsman
Интереснее всего то, что содержится в конце *.wpl-файлов.
Какие-то непонятные данные, названия и строки, похожие на тип дата:время.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#7 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 21 February 2009 - 19:39

там тип не дата/время, там тупо строка с именем и какой-то датой, точную длинну я еще не определил, но кажись 80 байт, а вот с другими значениями.. как-то они не по порядку..

#8 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 22 February 2009 - 10:46

А в принципе, игрой читается эта секция-окончание файла? Попробуй удалить все эти "лишние" байты в конце (сам я не могу протестировать, на том компе где сейчас работаю четверка очень плохо идет), посмотрим как игра отреагирует.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#9 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 22 February 2009 - 11:09

думаю что читается, так как в заголовке последнее значение (UINT32, смотри offset:64) какраз таки указывает на количество записей в этой секции (например в bronx_e2.wpl их 18 штук, в bronx_w2.wpl - 3, и т.д.)

#10 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 22 February 2009 - 12:02

Получается, можно разделить каждый WPL файл на три области: 1)Секция1 :Заголовок 2)Секция2: Расположения объектов 3)Секция3: Unknown P.S. Есть желающие поучаствовать в бета-тестировании GTA IV Placement Tool? :) Уже есть основные функции, включая возможность редактирования. Единственная проблема остается с моделями - вместо названий пока что отображается их хеши. Функцию дублирования/добавления объектов сделаю после того как третья секция будет расшифрованна.

Прикрепленные файлы


в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#11 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 22 February 2009 - 12:48

ээ.. ты не спеши так, вобще заголовок есть заголовок это не секция, секции идут после него, и их не только 2, теотетически их аж 16 может быть) например в bronx_e.wpl есть помимо тех секций, что мы уже знаем, по одной записи еще с двух секций - третьей и пятой (смотри в заголовке оффсеты 12 и 20) (п.с. поскольку я еще не знаю что это за секции буду называть их по порядку как они идут в заголовке) а еще мне кажется что то, что думают что это лод это совсем не лод) я тут тоже, кстати, прогу пишу)

Прикрепленные файлы

  • Прикрепленный файл  wpl003.jpg   133.82К   19 загрузок


#12 BiDi

BiDi

    Активный участник

  • Пользователи
  • PipPipPip
  • 155 сообщений
  • Пол:Мужчина
  • Город:Россия

Отправлено 22 February 2009 - 15:19

При открытии wpl, wpl manager выдаёт ошибку типа: Unhadled exception has occurred in your application. (там ещё 3 строчки текста). Там 3 кнопки появились: Details, Continue, Quit. При нажатии на кнопку Details вылазиет текст и там что то про ошибку написанно.
.1

#13 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 23 February 2009 - 12:28

BiDi, очевидно, проблема во .NET Framework. Нужна последняя версия 3.5.

Доделал версию 0.2 своей программы. Теперь есть возможности:
- Отображение данных в виде таблицы
- Быстрая навигация между текущей моделью и сопряженным с ней LOD-ом
- Возможность копирования нужных данных (в том числе и возможность копирования всей строки).
- Редактирование любых параметров (в том числе и неизвестных).
- Просмотр подробной информации о модели, соответствующего хешу названия.

Изображение

Есть функция экспорта данных из таблицы в текстовый файл. Не знаю насколько она будет удобной и целесообразной, но я планирую сделать возможность импорта. Полученный экспортированием файл представляет собой текстовый документ со строками типа
0; 58281433; 1347,172; 1884,865; 6,695; 0; 0; -0,062; 0,998; 384; 99; 13; -1082130432;
1; -836410294; 1395,066; 1708,287; 12,473; 0; 0; -1; 0; 384; 98; 17; -1082130432;
2; -1235086656; 1084,202; 1813,322; 10,799; 0; 0; 0,707; 0,707; 384; 104; 6; -1082130432;

(это bronx_w2.wpl)
Ну и просто для удобства есть совместимость с OpenIV , т.е. можно сделать эту программу подключаемым модулем на все файлы *.wpl.

И все-таки, есть желающие все это протестить? Не хочется релизить программу с недоделками и глюками которые сразу не заметишь, а исправить надо

Сообщение отредактировал Dageron: 23 February 2009 - 12:41

в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#14 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 23 February 2009 - 13:05

5я секция состоит из записей по 44 байта:
Изображение
на счет unkn11.. возможно там другой тип..

16я секция состоит из записей по 132 байта, но пока еще не разобрался..


и ище я все же думаю что 11й столбик это не лод, имхо чисто из логических соображений значение лод должно быть уникально, а еще если посмотреть по таблице то выходит что у каждого лода есть еще лод как-то не клеится.. но это чисто мое предположение..

#15 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 23 February 2009 - 13:20

Не думаю, если "сместиться" к этому лоду то в поле лод у него будет "-1".
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#16 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 23 February 2009 - 13:27

ты хорошо посмотри, открой bronx_e2.wpl, с самого начала там идут лоды и значения в поле ЛОД у них явно не -1, если в 4ке такая же система как и в са то тут явно что-то не клеится, хотя опять же я ничего не утверждаю.. это так.. мысли вслух.

#17 Seemann

Seemann

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 266 сообщений
  • Пол:Мужчина
  • Город:Россия, Иркутск/СПб

Отправлено 23 February 2009 - 15:00

Dageron,
SysUtils.DecimalSeparator установи в '.', чтобы дробные числа показывались с точкой

Для Model Hash должно использоваться LongWord по идее, чтобы минусы не отображались

#18 BiDi

BiDi

    Активный участник

  • Пользователи
  • PipPipPip
  • 155 сообщений
  • Пол:Мужчина
  • Город:Россия

Отправлено 23 February 2009 - 15:06

Dageron, я могу потестить твою прогу. Всё равно у меня wpl manager не запускается.
.1

#19 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 23 February 2009 - 15:55

есть приблизительная структура 3й секции:
Изображение

#20 BiDi

BiDi

    Активный участник

  • Пользователи
  • PipPipPip
  • 155 сообщений
  • Пол:Мужчина
  • Город:Россия

Отправлено 23 February 2009 - 18:24

Dageron, в твоей программе нет имён моделей. Полазив в хексе я не нашёл названия ни одной модели, они шифрованы, как и названия объектов в rpf? А вот с каких сторон находятся Bronx и Jersey, всмысле что справа, если смотреть на карту? Манхэттэн я знаю находится посередине. Я так понял Бронкс справа ( т.е. где начинается игра). ЭДИТ: Нашёл я где узнать имя модели. Можно бы добавить ещё 1 столбец и там имя модели будет отображаться. Так же неудобно редактировать, можешь сделать по экселю, чтоб выбрал ячейку и сразу же редактируешь?

Сообщение отредактировал BiDi: 23 February 2009 - 18:33

.1




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных