![]() SDK для 4A Engine своими руками |
![]() SDK для 4A Engine своими руками |
![]()
Сообщение
#641
|
|
. ********************** Куратор темы Сообщений: 6456 Регистрация: 30.07.2010 Пользователь №: 13969 ![]() |
Мне тут предложили создать отдельную тему по поводу редактора уровней который я показывал в теме "Вскрытие ресурсов Метро 2033", так что теперь все новости и прочее будет здесь.
Скачать актуальную версию можно тут: Скачать последнюю тестовую версию можно тут: Скриншоты Уровни из арктики: (IMG:https://images.gameru.net/thumb/8c2014b9b69b1de.jpg) (IMG:https://images.gameru.net/thumb/4abdeb76ac78a35.jpg) (IMG:https://images.gameru.net/thumb/4c74375e8fa7b72.jpg) (IMG:https://images.gameru.net/thumb/9e6d8c32bdde63d.jpg) (IMG:https://images.gameru.net/thumb/423344eb7d9c3b2.jpg) (IMG:https://images.gameru.net/thumb/2ea19c5d5a5acbd.jpg) (IMG:https://images.gameru.net/thumb/c7faf0f016a4d01.jpg) (IMG:https://images.gameru.net/thumb/5a3170eb172e0b5.jpg) (IMG:https://images.gameru.net/thumb/720b5455f69cfe3.jpg) (IMG:https://images.gameru.net/thumb/b95f41f7f4d1415.jpg) (IMG:https://images.gameru.net/thumb/5f822b5e17b3df3.jpg) Уровни из исхода: (IMG:https://images.gameru.net/thumb/92526b1f60481ea.jpg) (IMG:https://images.gameru.net/thumb/9dee10a51971e09.jpg) (IMG:https://images.gameru.net/thumb/005dccd3d062581.jpg) (IMG:https://images.gameru.net/thumb/d968829c0ffd4a3.jpg) (IMG:https://images.gameru.net/thumb/ab2a1d7821be7e8.jpg) Чейнджлог Версия от 28 февраля 2019:
Версия от 17 марта 2019:
Версия от 23 марта 2019:
Версия от 30 апреля 2019:
Версия от 18 августа 2019:
Версия от 25 августа 2019:
Версия от 20 января 2020:
Версия от 30 марта 2020:
Консольные утилиты Полноценный распаковщик и запаковщик для 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 - 07.04.2021, 19:45 |
|
|
![]()
Сообщение
#642
|
|
Геймер ****** Группа: Участник Сообщений: 110 Регистрация: 08.08.2019 Пользователь №: 31745 ![]() |
|
|
|
![]()
Сообщение
#643
|
|
. ********************** Куратор темы Сообщений: 6456 Регистрация: 30.07.2010 Пользователь №: 13969 ![]() |
Короче тестовая версия с анимациями:
Они включаются через меню Show -> Animations С подергиванием я разобрался, это оказывается была всего-лишь моя ошибка. Ещё я добавил импорт анимации из сталкеровского формата OMF, кстати. |
|
|
![]()
Сообщение
#644
|
|
Почти Игрок ** Группа: Участник Сообщений: 23 Регистрация: 10.10.2018 Из: Липецк Пользователь №: 29803 ![]() |
Це фантастично, пасиба.
А для чего порт анимаций из сталкера, если кости портануть нельзя? |
|
|
![]()
Сообщение
#645
|
|
. ********************** Куратор темы Сообщений: 6456 Регистрация: 30.07.2010 Пользователь №: 13969 ![]() |
Berkut107, в качестве альтернативы FBX для импорта анимаций из блендера. Мне Vladimiov говорил что криво импортируется самодельная анимация из блендера, я в конечном счёте выяснил что анимация портится где-то между блендером и моим редактором. То есть либо при экспорте в FBX из блендера, либо при импорте FBX библиотечкой assimp.
Исследовать что там сломалось в чужом коде я конечно не хочу, мне проще выкинуть FBX и заменить на другой формат, тем более что плагин для экспорта OMF из блендера напрямую есть, и таких багов как экспорт в FBX он не даёт, а написать читалку OMF мне и самому не сложно. |
|
|
![]()
Сообщение
#646
|
|
Почти Игрок ** Группа: Участник Сообщений: 23 Регистрация: 10.10.2018 Из: Липецк Пользователь №: 29803 ![]() |
Berkut107, в качестве альтернативы FBX для импорта анимаций из блендера. Мне Vladimiov говорил что криво импортируется самодельная анимация из блендера, я в конечном счёте выяснил что анимация портится где-то между блендером и моим редактором. То есть либо при экспорте в FBX из блендера, либо при импорте FBX библиотечкой assimp. Исследовать что там сломалось в чужом коде я конечно не хочу, мне проще выкинуть FBX и заменить на другой формат, тем более что плагин для экспорта OMF из блендера напрямую есть, и таких багов как экспорт в FBX он не даёт, а написать читалку OMF мне и самому не сложно. Понял! |
|
|
![]()
Сообщение
#647
|
|
Новичок * Группа: Участник Сообщений: 8 Регистрация: 06.02.2016 Пользователь №: 23713 ![]() |
Tron, да, передали. К сожалению ни 5.25, ни даже 5.19 не пишут в совместимом формате. Пришлось использовать нужную версию прямо из Exe-шника игры. (IMG:style_emoticons/default/biggrin.gif) Только вот не знаю как бы это в виде готового инструмента оформить. Сейчас это делается через подмену dll-ки, потом игра запускается как обычно но при этом в отдельном потоке создаваемом в подменённой DLL генерируется nav_map.pe. Чё-то дичь какая-то. В общем ничего лучше я так и не придумал, выложу как есть. Для того чтобы использовать это понадобится (IMG:https://images.gameru.net/thumb/9161b403a2f3b4f.png) Дальше. Как с помощью этого получить 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. В качестве доказательства что оно вообще работает - тестовый уровень. Как инструмент для создания навмеша это конечно едва юзабельно, но хотябы даёт возможность посмотреть лог движка. (IMG:style_emoticons/default/biggrin.gif) Не могли-бы вы дать исходники этой длл и этот exe-шник в лс? Все сайты и все репаки перерыл, но так и не нашел именно этот exe. Я-бы хотел написать поиск адресов с помощью сканера сигнатур, чтобы он работал на стим версии и на любом репаке. Или есть более свежий инструмент для генерации nav_mesh? |
|
|
![]()
Сообщение
#648
|
|
. ********************** Куратор темы Сообщений: 6456 Регистрация: 30.07.2010 Пользователь №: 13969 ![]() |
Не могли-бы вы дать исходники этой длл и этот exe-шник в лс? Исходники DLL: EXEщник скинул в ЛС. Или есть более свежий инструмент для генерации nav_mesh? Нету. Хотя можешь попробовать создать, pathengine.dll как-раз нужной версии в интернете валяется. У меня не получилось его инициализировать правда. |
|
|
![]()
Сообщение
#649
|
|
Новичок * Группа: Участник Сообщений: 8 Регистрация: 06.02.2016 Пользователь №: 23713 ![]() |
Не могли-бы вы дать исходники этой длл и этот exe-шник в лс? Исходники DLL: EXEщник скинул в ЛС. Или есть более свежий инструмент для генерации nav_mesh? Нету. Хотя можешь попробовать создать, pathengine.dll как-раз нужной версии в интернете валяется. У меня не получилось его инициализировать правда. Благодарю (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Сообщение
#650
|
|
Новичок * Группа: Участник Сообщений: 8 Регистрация: 06.02.2016 Пользователь №: 23713 ![]() |
Не могли-бы вы дать исходники этой длл и этот 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 |
|
|
![]()
Сообщение
#651
|
|
. ********************** Куратор темы Сообщений: 6456 Регистрация: 30.07.2010 Пользователь №: 13969 ![]() |
Я думаю, проще будет найти другой билд этой версии длл, в других играх, чем пытаться переписать хедер под этот билд дллки. Судя по всему ничего лучше чем использовать pathengine из exe-шника игры не остаётся, т.к. каждая студия его переделывала под свои нужны и даже одинаковые версии оказываются нифига не совместимы. Вон в метро добавили loadMeshFromStream, в том pathengine который встроен в exe этот метод есть, а в длл из just cause 2 такого нет, зато есть куча других изменений. |
|
|
![]()
Сообщение
#652
|
|
. ********************** Куратор темы Сообщений: 6456 Регистрация: 30.07.2010 Пользователь №: 13969 ![]() |
Чёт скучно, качайте новую тестовую версию:
Из нового я добавил отображение путей (в меню Scene -> Show ways), а так же их автоматическое связывание и отвязывание. Работает оно так, что если при создании новой точки patrol_point или o_aipoint уже была выделена одна точка такого же класса, то выделенная точка привязывается к свежесозданной, а при удалении точка отвязывается от всех путей у которым былая привязана. В слепую и вручную лепить пути было как-то не очень удобно. (IMG:https://images.gameru.net/thumb/b5c127e2c6814c6.jpg) А ещё я добавил перемещение камеры мышкой как в X-Ray SDK, с той лишь разницей что оно срабатывает при нажатом Alt, а не Shift как там. Плюс возможность настраивать скорость камеры в меню (Settings -> Customize camera), вроде атанда сто лет назад просил меня что-то такое сделать из за того что рывками перемещаться не всегда удобно. |
|
|
![]()
Сообщение
#653
|
|
Почти Игроман ********* Группа: Участник Сообщений: 586 Регистрация: 05.11.2017 Из: Далеко в Сибири Пользователь №: 28310 ![]() |
вроде атанда сто лет назад просил меня что-то такое сделать из за того что рывками перемещаться не всегда удобно (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
Сообщение
#654
|
|
. ********************** Куратор темы Сообщений: 6456 Регистрация: 30.07.2010 Пользователь №: 13969 ![]() |
|
|
|
Текстовая версия | Сейчас: 11.04.2021, 01:51 |