SDK для 4A Engine своими руками |
Здравствуйте, гость ( Авторизация | Регистрация )
SDK для 4A Engine своими руками |
01.03.2019, 00:36
Сообщение
#741
|
|
. Репутация: 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 |
 
|
|
|
|
31.08.2021, 22:33
Сообщение
#742
|
|
Опытный Игрок Репутация: 3 Группа: Участник Сообщений: 67 Регистрация: 06.02.2016 |
TheStalkerNest, твоя версия ДЛЛки с сохранением в формат ласт лайта: Параметры надо указывать как-то так: Код [nav_map] enabled = yes format = raw output_version = ll filename = nav_map.raw result = nav_map.bin exitwhendone = yes Один момент я только там не разобрал, в circuit иногда вместе атрибутом line появляется атрибут intersect. На моих новых картах я его не встречал, хотя в оригинальных есть. Я его просто пропускаю, не знаю какие последствия может иметь если он вдруг появится. Ура! Я уже не думал, что получится реализовать возможность генерации навмеша для ll. Завтра займусь добавлением сигнатур для ll в дллку. ЛЛ умеет читать кастомные архивы как и 2033? |
 
|
|
31.08.2021, 22:44
Сообщение
#743
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
|
 
|
|
06.09.2021, 16:01
Сообщение
#744
|
|
Ветеран Репутация: 10 Группа: Участник Сообщений: 99 Регистрация: 28.11.2018 |
Я научился делать навмешы для ласт лайта, теперь можно делать карты с противниками. Что я могу отметить: 1. Люди во время боя могут перемещаться в отличии от 2033, даже без укрытий. Но как-то вяло. 2. Возможно nav_map.bin от ластлайта подойдёт и для редакса, номер версии у них одинаковый. Но проверить я не могу, т.к. для редакса нет запаковщика и изобретать его никто не хочет. С хаком для чтения файлов прямо из папки nav_map.bin НЕ загружается. 3. АИ сетка в сталкере не так уж и плоха на самом деле. Она хотя-бы создаётся автоматически, а вручную моделить навмеш не очень то приятно. Слов нет, шикарно. Не терпится это дело протестировать уже. Уровень с дождем сделаю, чтоб повсюду были отражения и мокрая поверхность. Графоон ^^ -------------------- |
 
|
|
06.09.2021, 17:24
Сообщение
#745
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Надо наверно ещё в девелоперскую длл добавить загрузчик обычных моделей .model, чтобы в .raw не конвертировать.
|
 
|
|
06.09.2021, 23:38
Сообщение
#746
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
Привет. Приятно видеть, что тема модифицирования метро еще жива. Если понадобится помощь, можете пинать
-------------------- nop
|
 
|
|
07.09.2021, 01:44
Сообщение
#747
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
autistic, у вас таки есть желание кодить на паскале?
|
 
|
|
07.09.2021, 18:59
Сообщение
#748
|
|
Игрок Репутация: 7 Группа: Участник Сообщений: 46 Регистрация: 10.10.2018 |
Привет. Приятно видеть, что тема модифицирования метро еще жива. Если понадобится помощь, можете пинать А вы хто? И шо умеете?) -------------------- |
 
|
|
07.09.2021, 20:11
Сообщение
#749
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Мама, я в телевизоре.
|
 
|
|
09.09.2021, 01:07
Сообщение
#750
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
autistic, у вас таки есть желание кодить на паскале? Желание есть, времени нет Но если есть мысли что еще можно пореверсить, постараюсь найти время -------------------- nop
|
 
|
|
09.09.2021, 02:00
Сообщение
#751
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
autistic, ну, ещё есть идея всё-таки доделать загрузчик с хаком движка для чтения модов из папки content без всяких архивов, который задумывался в 2019. Особенно для Redux версии это нужно, там совсем плохо, ибо у него нет патчей, и хотя код их загрузки в движке остался создать рабочий патч архив у меня не получилось, моды ставятся только модификацией основного content.vfx, что удобно и аккуратно ну просто пипец.
Подсказка как это сделать: в движке функция для чтения не запакованных в архив файлов уже есть (vfs::ropen_os), ей грузятся user.cfg и content.vfx. Достаточно поставить хук на функцию открытия файла из архива(vfs::ropen), проверить если файл существует в папке, и если существует то перенаправить вызов в vfs::ropen_os, иначе вызвать оригинальный vfs::ropen. У меня даже получилось это реализовать, правда не загрузчиком, а DLLкой, в принципе работает, но косяков много вылезло, не все файлы грузятся, видимо vfs::ropen не единственная функция для открытия файла из архива. Как минимум ещё не работает перебор файлов, что не даёт добавлять новые текстуры. Ещё подсказка: на торрентах можно скачать Арктику.1 с PDBшкой, что значительно упростит копание в движке. |
 
|
|
20.09.2021, 04:03
Сообщение
#752
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Вышла новая версия, изменения такие:
К редактору текстур надо бы инструкцию написать, но у меня сейчас 3 часа ночи, поэтому коротко опишу что к чему. При первом запуске он у вас попросит указать путь к папке content, который потом можно изменять в настройках. Так же в настройках можно указать папку импорта и папку патча. В папку импорта нужно класть .dds файлы, сохраняя вложенность, потом жать Check new textures, редактор скопирует текстуры в игру и добавит настройки в textures.bin. Для того чтобы работал стриминг, т.е. вместо .dds появились файлы .512/.1024/.2048 текстура должна обладать определёнными параметрами: быть в разрешении 512х512 1024х1024 или 2048х2048, быть в формате DXT1 или DXT5, содержать полную цепочку мипмапов и не быть кубомапой. Если это условие не выполнено будет просто скопирован ддс. Изменение галки streamable также автоматически конвертирует текстуры в нужный формат. Папка патча нужна в виду того что при моддинге метро мы работаем не с цельной папкой ресурсов, а с патч-архивами содержащими только изменённые файлы. ВСЕ изменения файлов в папке content будут продублированы в папку патча. Хотел ещё предпросмотр материалов на 3д модели сделать, с бампами, деталями и т.п., но так у меня доделка этого редактора ещё на месяц затянется, если не больше. А вообще этот редактор толком не тестировался, чувствую придётся скоро ещё одну баг-фикс версию выпускать. Ссылка как всегда та же самая: |
 
|
|
20.09.2021, 12:48
Сообщение
#753
|
|
Ветеран Репутация: 10 Группа: Участник Сообщений: 99 Регистрация: 28.11.2018 |
Красотища.
А как там дела с конвертером уровней и navmesh? Могу у себя протестировать, если нужно. -------------------- |
 
|
|
20.09.2021, 13:02
Сообщение
#754
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
JackieR, конвертером уже давно можно конвертировать уровни для ласт лайта и даже редакса, с ключами -ll или -redux.
А с навмеш, я попробовал собрать те сорцы которые недавно выкладывал, там была пара ошибок из за несовместимости моей кодобазы и tsnest, я их исправил но чё-то у меня эта ДЛЛка не завелась, рабочий билд есть только с моей старой версией только для непатченной пиратки. Да, возможность создавать навмеш сразу из .model, без конвертирования в .raw я доделал |
 
|
|
21.09.2021, 20:25
Сообщение
#755
|
|
Опытный Игрок Репутация: 3 Группа: Участник Сообщений: 67 Регистрация: 06.02.2016 |
JackieR, конвертером уже давно можно конвертировать уровни для ласт лайта и даже редакса, с ключами -ll или -redux. А с навмеш, я попробовал собрать те сорцы которые недавно выкладывал, там была пара ошибок из за несовместимости моей кодобазы и tsnest, я их исправил но чё-то у меня эта ДЛЛка не завелась, рабочий билд есть только с моей старой версией только для непатченной пиратки. Да, возможность создавать навмеш сразу из .model, без конвертирования в .raw я доделал Моя дллка не заведётся, т.к. сигнатуры в ll другие. Пока к сожалению нет возможности заняться сигнатурами для ll, поэтому добавление его поддержки, затянулось. |
 
|
|
21.09.2021, 20:29
Сообщение
#756
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
TheStalkerNest, так я на 2033 и запускал. Навмеш то сначала генерируется для 2033 как обычно, на исключением других шейпов, потом конвертируется в формат ЛЛ.
У меня при запуске вышибает исключение 0xC000007B. Наверно из за того что я 2008-ой студией собрал вместо нужной версии. |
 
|
|
26.09.2021, 15:47
Сообщение
#757
|
|
Ветеран Репутация: 10 Группа: Участник Сообщений: 99 Регистрация: 28.11.2018 |
Обратил тут внимание на файлики в папках с оригинальными уровнями - "level.portals". Смею предположить что это что-то связанное с порталами и секторами, штука для отрисовки только видимой игроком геометрии. Никто не пробовал разобрать эти файлы?
У нас в "Наследии" довольно увесистые уровни получаются, особенно связанные с поверхностью. Было бы не лишним там порталов натыкать. -------------------- |
 
|
|
27.09.2021, 15:56
Сообщение
#758
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
JackieR, вот в этом просмотрщике разбирали:
Но как я понял там не полностью файл читается. Файл с порталами ещё как-то на звук влияет, если подсунуть файл от одного уровня к другому то движок в консоли ругается на Invalid sound occlusion version из за несовпадения контрольной суммы, и звук при этом пропадает. |
 
|
|
28.09.2021, 21:17
Сообщение
#759
|
|
Продвинутый геймер Репутация: 9 Группа: Участник Сообщений: 201 Регистрация: 22.02.2020 |
Можно ли сделать чтобы визуал скрипты выглядели, как рестрикторы(кубы или шейпы), потому что как флажок они теряются среди других вещей с такими же флажками.
Сообщение отредактировал Билдомассон - 28.09.2021, 22:25 |
 
|
|
28.09.2021, 21:57
Сообщение
#760
|
|
Игрок Репутация: 7 Группа: Участник Сообщений: 46 Регистрация: 10.10.2018 |
Можно ли сделать чтобы визуалы скрипты выглядели, как рестрикторы(кубы или шейпы), потому что как флажок они теряются среди других вещей с такими же флажками. поддерживаю, либо хотя бы цвет флажков заменить -------------------- |
 
|
|
21.10.2021, 00:45
Сообщение
#761
|
|
Опытный Игрок Репутация: 3 Группа: Участник Сообщений: 67 Регистрация: 06.02.2016 |
JackieR, конвертером уже давно можно конвертировать уровни для ласт лайта и даже редакса, с ключами -ll или -redux. А с навмеш, я попробовал собрать те сорцы которые недавно выкладывал, там была пара ошибок из за несовместимости моей кодобазы и tsnest, я их исправил но чё-то у меня эта ДЛЛка не завелась, рабочий билд есть только с моей старой версией только для непатченной пиратки. Да, возможность создавать навмеш сразу из .model, без конвертирования в .raw я доделал Можете скинуть исходники генератора навмеша не на базе моих исходников? Я в своей дллке уже почти завершил полную поддержку ll, осталось только генерацию навмеша перенести. С ней проблемы возникли. |
 
|
|
Текстовая версия | Сейчас: 29.03.2024, 17:01 |