SDK для 4A Engine своими руками |
Здравствуйте, гость ( Авторизация | Регистрация )
SDK для 4A Engine своими руками |
01.03.2019, 00:36
Сообщение
#581
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Мне тут предложили создать отдельную тему по поводу редактора уровней который я показывал в теме "Вскрытие ресурсов Метро 2033", так что теперь все новости и прочее будет здесь.
Скачать актуальную версию можно тут: Скачать последнюю тестовую версию можно тут: Чейнджлог Версия от 28 февраля 2019:
Версия от 17 марта 2019:
Версия от 23 марта 2019:
Версия от 30 апреля 2019:
Версия от 18 августа 2019:
Версия от 25 августа 2019:
Версия от 20 января 2020:
Версия от 30 марта 2020:
Версия от 28 июня 2021:
Версия от 20 сентября 2021:
Версия от 4 ноября 2021:
Версия от 18 ноября 2021:
Версия от 6 февраля 2022:
Консольные утилиты Полноценный распаковщик и запаковщик для Last Light, readme в архиве Программы для работы с конфигами и конвертер моделей Исходники можно найти в исходниках level_editor'а. В архиве содержится три программы: split.exe, binunp.exe и model.exe. Первая split.exe, предназначена для разбития scripts.bin на отдельные файлы и сборки обратно. Для разбития поместить файл scripts.bin в рабочей папке и запустить без параметров или с одним параметром -d(без разницы). Код split.exe Если всё прошло хорошо должна появится папка scripts с большим количеством .bin файлов в ней. Для обратной сборки запустить с ключом -c: Код split.exe -c Скрипты при сборке опять таки берутся из папки scripts в рабочей папке. Вторая binunp.exe, предназначена для конвертирования .bin конфигов(файлы добытые из scripts.bin, level.bin и некоторые другие) в человеко-читаемый формат и обратно. Именно на её основе строится редактор уровней. Что умеет:
Распаковка level.bin осуществляется следующим образом: Код binunp.exe -l -d level.bin level.txt Где level.bin - имя файла для распаковки. Где level.txt - имя распакованного текстового файла. Запаковка level.bin: Код binunp.exe -l [-k N] -c level.txt level.bin Где level.txt - имя текстового файла для запаковки. Где level.bin - имя нового двоичного файла. Параметр -k необязательный, на месте N указывается тип .bin файла, по умолчанию 5. В 2033 используется 5, в last light 4, в следующих играх 36. Распаковка конфигов с отладочной инфой: Код binunp.exe -l -d file.bin file.txt Где file.bin - имя файла для распаковки. Где file.txt - имя распакованного текстового файла. При попытке распаковать таким образом конфиг без отладочной информации будет выведено сообщение об ошибке следующего вида: Код Exception: Cannot decompile config with kind=4 Распаковка конфигов без отладочной инфы(при помощи скрипта): Код binunp [-v] -s js\script.js file.bin file.txt Где js\script.js - имя скрипта в папке js используемого для разбора конфига. Где file.bin - имя файла для распаковки. Где file.txt - имя распакованного текстового файла. Параметр -v необязательный, если указать то будет выводиться предупреждение в том случае если данные были прочитаны не до конца. Есть специальный случай, если имя файла для распаковки textures.bin, то скрипт не используется, вместо него нужно указать пустую строчку. Код binunp -s "" textures.bin textures.txt Запаковка конфигов: Код binunp.exe [-k N] -c file.txt file.bin Где file.txt - имя текстового файла для запаковки. Где file.bin - имя нового двоичного файла. Параметр -k необязательный, на месте N указывается тип .bin файла, по умолчанию 5. Желательно указывать такой же какой был показан при распаковке. Последняя model.exe, конвертер моделей. Умеет следующее:
Краткая справка доступна при запуске без параметров. Эта инструкция будет дописываться. Сторонние утилиты Сообщение отредактировал Modera - 06.02.2022, 08:21 |
 
|
|
|
|
05.05.2020, 00:38
Сообщение
#582
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Добавил скриптов для распаковки конфигов оружия от версии с DLC, они в папке js\2033\static_data. Выбирать нужно по имени класса. Есть для всех видов оружия кроме рельсы. + доработал утиль split.exe, теперь все имена конфигов оружия знает. На всякий случай напомню, распаковка конфигов скриптами осуществляется вот так, на примере АК-2012: Код binunp.exe -s js\2033\static_data\weapon_2012.js weapon_2012__g.config.entity.wpn_2012.bin weapon_2012__g.config.entity.wpn_2012.txt Запаковка как обычно, ещё можно ключик -k 4 добавить на всякий. Код binunp.exe -k 4 -с weapon_2012__g.config.entity.wpn_2012.txt weapon_2012__g.config.entity.wpn_2012.bin И тут ещё выяснилось. РЯЯЯ ВЫРЕЗАННОЕ ОРУЖИЕ МЕТРО 2033 |
 
|
|
05.05.2020, 01:27
Сообщение
#583
|
|
Заслуженный Мастер Игры Репутация: 267 Группа: Участник Сообщений: 1524 Награды: 4 Регистрация: 10.11.2013 |
светошумовые гранаты Думаю, они бы в Metro Exodus всяко лучше консервных банок смотрелись -------------------- |
 
|
|
05.05.2020, 02:55
Сообщение
#584
|
|
Геймер Репутация: 7 Группа: Участник Сообщений: 110 Регистрация: 08.08.2019 |
Добавил скриптов для распаковки конфигов оружия от версии с DLC, они в папке js\2033\static_data. Выбирать нужно по имени класса. Есть для всех видов оружия кроме рельсы. + доработал утиль split.exe, теперь все имена конфигов оружия знает. На всякий случай напомню, распаковка конфигов скриптами осуществляется вот так, на примере АК-2012: Код binunp.exe -s js\2033\static_data\weapon_2012.js weapon_2012__g.config.entity.wpn_2012.bin weapon_2012__g.config.entity.wpn_2012.txt Запаковка как обычно, ещё можно ключик -k 4 добавить на всякий. Код binunp.exe -k 4 -с weapon_2012__g.config.entity.wpn_2012.txt weapon_2012__g.config.entity.wpn_2012.bin И тут ещё выяснилось. РЯЯЯ ВЫРЕЗАННОЕ ОРУЖИЕ МЕТРО 2033 О провёрю в будуюших модах пригодится спасибо=3 Было бы прикольно допилить светошумовую. |
 
|
|
06.05.2020, 21:44
Сообщение
#585
|
|
Геймер Репутация: 7 Группа: Участник Сообщений: 110 Регистрация: 08.08.2019 |
Ссылка на скачивание мода
|
 
|
|
07.05.2020, 02:35
Сообщение
#586
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Цитата(atanda sent you a message) Привет! Слушай, а сложно заменить флажки на какие-нибудь другие изображения? Те же невизуальные энтити хорошо было бы обозначать соответствующими иконками. Если проблема в них, я помогу найти Какое другое изображение с иконками ты хочешь? Квадратные флажки с текстурой как в сталкерском ЛЕ? Нет, это не сложно, а даже очень просто. В классе TEntity есть метод DrawFlag, где отрисовывается флажок, вместо него можно написать что угодно. Только если делать всё как в сталкерском ЛЕ, мой редактор может со временем превратиться в сталкерский ЛЕ, что не есть хорошо. Надо идею посвежее какую-нибудь. |
 
|
|
07.05.2020, 18:05
Сообщение
#587
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
По поводу вылета из темы про мод проводник. Оказывается для худовых моделей имеются специальные настройки в scripts.bin, с именами файлов вида путь\к\модели_skeleton_sequence_value.bin. Добавил в split.exe распознавание этих файлов, поэтому очередное обновление консольных утилит:
Для новых моделей такие файлы нужно добавлять, тогда всё будет работать. Уже проверил на стим версии и на пиратке без патчей. |
 
|
|
08.05.2020, 02:02
Сообщение
#588
|
|
Геймер Репутация: 7 Группа: Участник Сообщений: 110 Регистрация: 08.08.2019 |
По поводу вылета из темы про мод проводник. Оказывается для худовых моделей имеются специальные настройки в scripts.bin, с именами файлов вида путь\к\модели_skeleton_sequence_value.bin. Добавил в split.exe распознавание этих файлов, поэтому очередное обновление консольных утилит: Для новых моделей такие файлы нужно добавлять, тогда всё будет работать. Уже проверил на стим версии и на пиратке без патчей. Ооо ну вроде работает спасиб=3 Тока при большем кол ве патров в абойме летит я так понимаю дело в скелете да? |
 
|
|
08.05.2020, 03:49
Сообщение
#589
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Ооо ну вроде работает спасиб=3 Тока при большем кол ве патров в абойме летит я так понимаю дело в скелете да? Возможно. Скелет даже можно попробовать импортировать новый, с ним всё ясно кроме контрольной суммы, но её 2033 версия вроде-бы не проверяет. Только вот анимации не подойдутт.. |
 
|
|
08.05.2020, 05:17
Сообщение
#590
|
|
Геймер Репутация: 7 Группа: Участник Сообщений: 110 Регистрация: 08.08.2019 |
Ооо ну вроде работает спасиб=3 Тока при большем кол ве патров в абойме летит я так понимаю дело в скелете да? Возможно. Скелет даже можно попробовать импортировать новый, с ним всё ясно кроме контрольной суммы, но её 2033 версия вроде-бы не проверяет. Только вот анимации не подойдутт.. Ну не знаю даже ну папробуй сделать импорт скелета может получится привязать кости паронов можт прокатит ,а если не ну фиг с ним тада то что модельки можно менять уже хорошо=3 |
 
|
|
08.05.2020, 05:28
Сообщение
#591
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Без анимаций точно не покатит. От старого скелета к новому не подойдут.
|
 
|
|
09.05.2020, 23:29
Сообщение
#592
|
|
Геймер Репутация: 7 Группа: Участник Сообщений: 110 Регистрация: 08.08.2019 |
Модера если будет время дораспакуй конфиги пожалуста ну там патронов, противогаза , оружие там рельса нам не к спеху мы ещё тока карту начали пилить.Кстати хотел спросить а почему у версии без патчей распаковшик универсальный а тут как то вручную?
|
 
|
|
09.05.2020, 23:55
Сообщение
#593
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Кстати хотел спросить а почему у версии без патчей распаковшик универсальный а тут как то вручную? Потому что там есть информация о именах параметров и их типах, а патчах эту информацию убрали, остались только значения. Вот у нас в файлах куча записей вида: parameter : u32 = 12345; Это текстовое отражение того что хранится в .bin'ах. То что выделено зелёным не является критичным для работоспособности игры, но является критичным для создания распаковщика. В патчах эту информацию убрали, осталось только то что выделено синим. Приходится выковыривать эту недостающую информацию из движка или откуда-то ещё и совмещать со значениями из .bin файла, чтобы получить распаковынный конфиг для редактирования в блокноте. конфиги пожалуста ну там патронов, противогаза Пробуй бери из непатченной версии. Там даже оружие не всё отличается, только автоматы и револьвер несовместим был. Сообщение отредактировал Modera - 09.05.2020, 23:55 |
 
|
|
14.05.2020, 00:46
Сообщение
#594
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Модера если будет время дораспакуй конфиги пожалуста ну там патронов, противогаза , оружие там рельса нам не к спеху мы ещё тока карту начали пилить. Доделал распаковку всей static_data что есть + добавил скрипт js\2033\map_params.js для распаковки тех файлов где описываются загрузочные экраны. |
 
|
|
16.05.2020, 02:40
Сообщение
#595
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
По поводу анимаций, я несколько дней посмотрел на них в хекс редакторе, чуть-чуть вник, потом взял объект с простым скелетом из 1 кости, а конкретно гермозатвор, и поэкспериментировал с ним. Короче вот что удалось выяснить о формате анимаций:
Техническая лабуда Код чанк 0х00000000, размер всегда 26 байт 4 байта - версия (?) 4 байта - контрольная сумма скелета 2 байта - количество костей в скелете 16 байт - маска использованных костей чанк 0х00000001, размер всегда 54 байта 2 байта - неизвестно 4 байта - скорость анимации, float 4 байта - неизвестно, float (?) 4 байта - неизвестно, float (?) 4 байта - количество фреймов 4 байта - неизвестно 32 байта - маска чего-то там (?) чанк 0х00000002 тут сами данные анимации, в количестве равном количеству использванных костей. Формат может быть разлиным, определяется первым байтом. Кватернионы записываются как первые три их компонента умноженные на 32767, в виде трёх знаковых 16-битных чиселок. 9 байт - заголовок 1 байт - флаги 4 байта - неизвестно 1 4 байта - неизвестно 2 если установлен флаг 0x02 6*количество_фреймов байт - поворот, кватернион иначе 6 байт - поворот, кватернион если установлен флаг 0x01 4 байта - незвестно 3 4 байта - незвестно 4 6*количество_фреймов байт - квантованная позиция, 3 знаковых числа 12 байт - scale, 3 флоата, на него умножается позиция 12 байт - origin, 3 флоата, центр относительно которого указывается позиция иначе 12 байт - позиция, вектор из трёх флоатов флаги 0x04, 0x08, 0x10 никакого визуального эффекта не приносят. В игре 0x04 встречается. флаг 0x20 влияет на вращение, если установлен кости вращаются непонятным образом. В игре много где встречается. чанк 0х00000005 тут что-то связанное с локаторами, ещё не разобрал чанк 0х00000007, события (events) 4 байта - количество записей вида: 4 байта - float, время события строка - имя события 4 байта - неизвестно Вчера весь день не мог понять как квантуются углы в 16-битное число, если 0 соответствует повороту на 0 градусов, 32768 на 180 градусов, но при этом точно известно поворот на 90 градусов соответствует числу 23170. Потом оказалось что это кватернионы. Ну и мне не совсем понятно как считается позиция, неизвестно3 и неизвестно4 на неё влияют. Абы что туда записывать скорее всего не получится. Первая тестовая анимация из 3 фреймов, сделанная в хексе А вот так оно выглядит с флажком 0x20: |
 
|
|
31.05.2020, 06:37
Сообщение
#596
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
|
 
|
|
31.05.2020, 18:11
Сообщение
#597
|
|
Геймер Репутация: 7 Группа: Участник Сообщений: 110 Регистрация: 08.08.2019 |
|
 
|
|
31.05.2020, 18:19
Сообщение
#598
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Лови.
content.zip ( 1,78 килобайт )
Кол-во скачиваний: 62
У меня правда есть опасения что руки не в том месте расположены где должны быть. |
 
|
|
31.05.2020, 18:22
Сообщение
#599
|
|
Продвинутый геймер Репутация: 48 Группа: Участник Сообщений: 275 Награды: 3 Регистрация: 30.11.2010 |
|
 
|
|
31.05.2020, 18:28
Сообщение
#600
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Modera, а уже можно из какого-нибудь 3d редактора анимацию экспортить? Анимацию как таковую ещё нельзя, я пока только чтение одного кадра-позы из FBX файла на скорую руку набросал. а это артефакт какой-то? или что-то шейдерное? Там зеркало стоит. Из водной зоны. |
 
|
|
31.05.2020, 18:30
Сообщение
#601
|
|
Игрок Репутация: 7 Группа: Участник Сообщений: 46 Регистрация: 10.10.2018 |
Лови.
content.zip ( 1,78 килобайт )
Кол-во скачиваний: 62 У меня правда есть опасения что руки не в том месте расположены где должны быть. Протестили, работает всё, всё норм в том месте расположены вроде как))) -------------------- |
 
|
|
Текстовая версия | Сейчас: 20.04.2024, 10:35 |