SDK для 4A Engine своими руками |
Здравствуйте, гость ( Авторизация | Регистрация )
SDK для 4A Engine своими руками |
01.03.2019, 00:36
Сообщение
#641
|
|
. Репутация: 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 |
 
|
|
|
|
26.11.2020, 21:01
Сообщение
#642
|
|
Геймер Репутация: 7 Группа: Участник Сообщений: 110 Регистрация: 08.08.2019 |
|
 
|
|
28.11.2020, 20:01
Сообщение
#643
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Короче тестовая версия с анимациями:
Они включаются через меню Show -> Animations С подергиванием я разобрался, это оказывается была всего-лишь моя ошибка. Ещё я добавил импорт анимации из сталкеровского формата OMF, кстати. |
 
|
|
28.11.2020, 22:53
Сообщение
#644
|
|
Игрок Репутация: 7 Группа: Участник Сообщений: 46 Регистрация: 10.10.2018 |
Це фантастично, пасиба.
А для чего порт анимаций из сталкера, если кости портануть нельзя? -------------------- |
 
|
|
28.11.2020, 23:23
Сообщение
#645
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Berkut107, в качестве альтернативы FBX для импорта анимаций из блендера. Мне Vladimiov говорил что криво импортируется самодельная анимация из блендера, я в конечном счёте выяснил что анимация портится где-то между блендером и моим редактором. То есть либо при экспорте в FBX из блендера, либо при импорте FBX библиотечкой assimp.
Исследовать что там сломалось в чужом коде я конечно не хочу, мне проще выкинуть FBX и заменить на другой формат, тем более что плагин для экспорта OMF из блендера напрямую есть, и таких багов как экспорт в FBX он не даёт, а написать читалку OMF мне и самому не сложно. |
 
|
|
28.11.2020, 23:34
Сообщение
#646
|
|
Игрок Репутация: 7 Группа: Участник Сообщений: 46 Регистрация: 10.10.2018 |
Berkut107, в качестве альтернативы FBX для импорта анимаций из блендера. Мне Vladimiov говорил что криво импортируется самодельная анимация из блендера, я в конечном счёте выяснил что анимация портится где-то между блендером и моим редактором. То есть либо при экспорте в FBX из блендера, либо при импорте FBX библиотечкой assimp. Исследовать что там сломалось в чужом коде я конечно не хочу, мне проще выкинуть FBX и заменить на другой формат, тем более что плагин для экспорта OMF из блендера напрямую есть, и таких багов как экспорт в FBX он не даёт, а написать читалку OMF мне и самому не сложно. Понял! -------------------- |
 
|
|
28.03.2021, 20:43
Сообщение
#647
|
|
Опытный Игрок Репутация: 3 Группа: Участник Сообщений: 67 Регистрация: 06.02.2016 |
Tron, да, передали. К сожалению ни 5.25, ни даже 5.19 не пишут в совместимом формате. Пришлось использовать нужную версию прямо из Exe-шника игры. Только вот не знаю как бы это в виде готового инструмента оформить. Сейчас это делается через подмену dll-ки, потом игра запускается как обычно но при этом в отдельном потоке создаваемом в подменённой DLL генерируется nav_map.pe. Чё-то дичь какая-то. В общем ничего лучше я так и не придумал, выложу как есть. Для того чтобы использовать это понадобится Дальше. Как с помощью этого получить nav_map.pe. nav_map.pe получается из специального .raw формата моделей. Получить модель в этом формате можно с помощью конвертера уровней ( Код model.exe -model2raw nav_map.model nav_map.raw Когда модель сконвертирована в .raw можно попытаться сконвертировать её уже в nav_map.pe. Для этого кладём dinput8.dll и developer.ini в папку с игрой, в которой должен быть exe-шник обозначенный выше, туда же кладём .raw файл, сверяемся с настройками в developer.ini Код [log] enabled = yes -- включить лог (yes / no) filename = uengine.log -- имя файла с логом [nav_map] enabled = no -- включить генерацию nav_map.pe (yes / no) format = raw -- формат исходного файла, не трогаем filename = nav_map.raw -- имя исходного файла result = nav_map.pe -- имя файла в который запишется результат exitwhendone = yes -- прибить процесс игры по завершению (yes / no) И пробуем запустить игру как обычно. Если всё прошло хорошо то должен появится файл с именем указанным в параметре result, который можно подсунуть в свой уровень и спаунить там монстров. Остальные файлы (nav_map.connections.pc, nav_map.human_combat_covers.pc, nav_map.obstacles.pc) лучше взять от уровня 000. В качестве доказательства что оно вообще работает - тестовый уровень. Как инструмент для создания навмеша это конечно едва юзабельно, но хотябы даёт возможность посмотреть лог движка. Не могли-бы вы дать исходники этой длл и этот exe-шник в лс? Все сайты и все репаки перерыл, но так и не нашел именно этот exe. Я-бы хотел написать поиск адресов с помощью сканера сигнатур, чтобы он работал на стим версии и на любом репаке. Или есть более свежий инструмент для генерации nav_mesh? |
 
|
|
28.03.2021, 23:44
Сообщение
#648
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Не могли-бы вы дать исходники этой длл и этот exe-шник в лс? Исходники DLL: EXEщник скинул в ЛС. Или есть более свежий инструмент для генерации nav_mesh? Нету. Хотя можешь попробовать создать, pathengine.dll как-раз нужной версии в интернете валяется. У меня не получилось его инициализировать правда. |
 
|
|
29.03.2021, 08:37
Сообщение
#649
|
|
Опытный Игрок Репутация: 3 Группа: Участник Сообщений: 67 Регистрация: 06.02.2016 |
Не могли-бы вы дать исходники этой длл и этот exe-шник в лс? Исходники DLL: EXEщник скинул в ЛС. Или есть более свежий инструмент для генерации nav_mesh? Нету. Хотя можешь попробовать создать, pathengine.dll как-раз нужной версии в интернете валяется. У меня не получилось его инициализировать правда. Благодарю |
 
|
|
01.04.2021, 08:49
Сообщение
#650
|
|
Опытный Игрок Репутация: 3 Группа: Участник Сообщений: 67 Регистрация: 06.02.2016 |
Не могли-бы вы дать исходники этой длл и этот exe-шник в лс? Исходники DLL: EXEщник скинул в ЛС. Или есть более свежий инструмент для генерации nav_mesh? Нету. Хотя можешь попробовать создать, pathengine.dll как-раз нужной версии в интернете валяется. У меня не получилось его инициализировать правда. Публикую внутри-игровой генератор nav_mesh с моими правками. Теперь дллка работает на любом репаке и на лицензионной версии игры. Дллка теперь является самостоятельным asi плагином, загружаемым в игру с помощью Ultimate-ASI-Loader от ThirteenAG. Что по поводу самостоятельного генератора на основе pathengine.dll, то у меня получилось его инициализировать и даже вывести версию в консоль. Там используется свой игровой аллокатор памяти. Поставив хуки и восстановив оригинальный код аллокации из слитых исходников PathEngine 5.10, оно инициализировалось, однако хедер, с этой дллкой, не совместим (например пришлось закомментировать метод loadMeshFromStream в хедере). Я даже сомневался в несовместимости хедера, и скачал игру Just Cause 2, откуда эта дллка и была взята, и попытался использовать генератор в ней, однако и там удалось вывести только версию, и получить ту-же ошибку с крашем игры, что и в самостоятельном генераторе, тем самым, подтвердив несовместимость хедера. Исходники этой недоделки публикую: Я думаю, проще будет найти другой билд этой версии длл, в других играх, чем пытаться переписать хедер под этот билд дллки. Сообщение отредактировал TheStalkerNest - 01.04.2021, 08:55 |
 
|
|
01.04.2021, 14:37
Сообщение
#651
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Я думаю, проще будет найти другой билд этой версии длл, в других играх, чем пытаться переписать хедер под этот билд дллки. Судя по всему ничего лучше чем использовать pathengine из exe-шника игры не остаётся, т.к. каждая студия его переделывала под свои нужны и даже одинаковые версии оказываются нифига не совместимы. Вон в метро добавили loadMeshFromStream, в том pathengine который встроен в exe этот метод есть, а в длл из just cause 2 такого нет, зато есть куча других изменений. |
 
|
|
07.04.2021, 20:02
Сообщение
#652
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Чёт скучно, качайте новую тестовую версию:
Из нового я добавил отображение путей (в меню Scene -> Show ways), а так же их автоматическое связывание и отвязывание. Работает оно так, что если при создании новой точки patrol_point или o_aipoint уже была выделена одна точка такого же класса, то выделенная точка привязывается к свежесозданной, а при удалении точка отвязывается от всех путей у которым былая привязана. В слепую и вручную лепить пути было как-то не очень удобно. А ещё я добавил перемещение камеры мышкой как в X-Ray SDK, с той лишь разницей что оно срабатывает при нажатом Alt, а не Shift как там. Плюс возможность настраивать скорость камеры в меню (Settings -> Customize camera), вроде атанда сто лет назад просил меня что-то такое сделать из за того что рывками перемещаться не всегда удобно. |
 
|
|
07.04.2021, 22:15
Сообщение
#653
|
|
Pro gamer
Почти Игроман Репутация: 72 Группа: Участник Сообщений: 622 Регистрация: 05.11.2017 |
|
 
|
|
07.04.2021, 23:05
Сообщение
#654
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
|
 
|
|
28.04.2021, 20:40
Сообщение
#655
|
|
Опытный Игрок Репутация: 3 Группа: Участник Сообщений: 67 Регистрация: 06.02.2016 |
Публикую новую версию генератора navmesh от Modera с моими правками.
Внимание! В данном релизе, добавлены новые параметры в конфиг developer.ini. Теперь генерация navmesh включается не в конфиге, а при запуске игры с ключом -navmap (в архиве лежит готовый батник для запуска) Добавлена возможность автоматического сброса предыдущего неудачного запуска игры (при включенной генерации navmesh и включенном параметре exitwhendone, функция выполняется вне зависимости от того, включена она, или нет). Добавлена возможность не выводить сообщение о неподдерживаемой видеокарте и обновлении драйвера (так-же позволяет обойти принудительный краш на версии без dlc). Добавлена возможность отключения стартовых intro роликов. Прочие правки кода. |
 
|
|
29.04.2021, 19:48
Сообщение
#656
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
TheStalkerNest, а добавь на гитхаб инструкцию как с помошью этой штуки превратить .model в nav_map.pe, я тогда внесу в спойлер "Сторонние утилиты" в шапке.
Сообщение отредактировал Modera - 29.04.2021, 19:49 |
 
|
|
30.04.2021, 11:05
Сообщение
#657
|
|
Опытный Игрок Репутация: 3 Группа: Участник Сообщений: 67 Регистрация: 06.02.2016 |
TheStalkerNest, а добавь на гитхаб инструкцию как с помошью этой штуки превратить .model в nav_map.pe, я тогда внесу в спойлер "Сторонние утилиты" в шапке. Добавил в архив. Цитата Инструкция по генерации навигационной карты nav_map.pe для Metro 2033 (не Redux!). Сначала нужно смоделировать на основе 3D модели уровня, 3D модель навигационной карты (убрать ненужные части модели, оставив только те, по которым будет происходить навигация). Т.к. плагинов для прямого экспорта в игровой формат .model, не существует, для того, чтобы получить модель в подходящем формате, можно экспортировать модель в сталкерский формат .ogf, далее скачиваем пак консольных утилит от Modera и с помощью утилиты model.exe можно будет сконвертировать .ogf в .model, и далее из .model в нужный нам .raw, из которого будет сгенерирована навигационная карта .pe Команды (при необходимости, названия файлов меняем на свои): model.exe -ogf2model nav_map.ogf nav_map.model model.exe -model2raw nav_map.model nav_map.raw Далее, распаковываем содержимое архива MetroDeveloper в папку с игрой, рядом с metro2033.exe. Полученный файл .raw, так-же кладём в папку с игрой, при необходимости меняем названия файлов в конфиге developer.ini, и запускаем файл gen-navmap.cmd. Важно: Если игра установлена в папке ProgramFiles, или в любой другой папке, где нет прав на запись, заходим в свойства файла metro2033.exe, переходим в раздел "Совместимость", и ставим галочку на "Выполнять эту программу от имени администратора". Если всё правильно, то после запуска gen-navmap.cmd, запустится игра, и через 5 секунд автоматически закроется (при условии, что в конфиге не выключен параметр exitwhendone, иначе сами выходим из игры), и в папке с игрой появится готовый навигационный .pe файл, который нужно положить в папку с вашим уровнем и назвать его nav_map.pe. Всё Modera, заметил в исходниках model.exe ключи -lmap и -lmap_soc. Конвертация лайтмапов из ЧН/ЗП теперь поддерживается? Не видел сообщений в теме, о добавлении поддержки ЧН/ЗП лайтов, случайно заметил в исходниках. Сообщение отредактировал TheStalkerNest - 30.04.2021, 11:14 |
 
|
|
30.04.2021, 14:48
Сообщение
#658
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Добавил в архив. Ага, хорошо. Modera, заметил в исходниках model.exe ключи -lmap и -lmap_soc. Конвертация лайтмапов из ЧН/ЗП теперь поддерживается? Не видел сообщений в теме, о добавлении поддержки ЧН/ЗП лайтов, случайно заметил в исходниках. Да, поддерживается и уже давно. Я почти сразу добавил. https://www.gameru.net/forum/index.php?show...t&p=1680826 У ТЧ и ЧН/ЗП лайтмапов небольшая разница, всего-то хеми и солнце местами поменяны зачем-то. |
 
|
|
01.05.2021, 12:39
Сообщение
#659
|
|
Опытный Игрок Репутация: 3 Группа: Участник Сообщений: 67 Регистрация: 06.02.2016 |
Modera, у вас есть конвертер уровня билда 375 в формат xray или в формат релизного метро?
Сообщение отредактировал TheStalkerNest - 01.05.2021, 13:19 |
 
|
|
01.05.2021, 13:09
Сообщение
#660
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
TheStalkerNest, у билда 375 и сталкера отличается только level.cform, так что конвертироваться в формат релизного метро должно без проблем.
Если конвертировать в формат сталкера, то щас глянул исходники своего старого конвертера из 2015 года, вроде он умеет и в ту и в другую сторону. https://www.gameru.net/forum/index.php?showtopic=60406 |
 
|
|
01.05.2021, 13:20
Сообщение
#661
|
|
Опытный Игрок Репутация: 3 Группа: Участник Сообщений: 67 Регистрация: 06.02.2016 |
TheStalkerNest, у билда 375 и сталкера отличается только level.cform, так что конвертироваться в формат релизного метро должно без проблем. Если конвертировать в формат сталкера, то щас глянул исходники своего старого конвертера из 2015 года, вроде он умеет и в ту и в другую сторону. https://www.gameru.net/forum/index.php?showtopic=60406 Конвертер model.exe из архива binunp13, не берёт как оригинальную локу из билда, так и уже сконвертированную конвертером выше, на xray. Вылетает в обоих случаях с этой ошибкой: UPD: Удалось декомпилировать в формат sdk xray. Попробую перекомпилировать и заново скормить конвертеру. Сообщение отредактировал TheStalkerNest - 01.05.2021, 13:26 |
 
|
|
Текстовая версия | Сейчас: 20.04.2024, 11:09 |