Декомпиляция уровней в формат СДК — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
RedPython (обсуждение | вклад) м (Защищена страница «Декомпиляция уровней в формат СДК» ([edit=autoconfirmed] (бессрочно) [move=autoconfirmed] (бессрочно))) |
Dasehak (обсуждение | вклад) (→Декомпиляция.) |
||
(не показаны 2 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
− | Для декомпиляции игровых карт в формат LevelEditor'a | + | Для декомпиляции игровых карт в формат LevelEditor'a используется консольная утилита '''converter.exe''', входящая в пакет '''X-ray Game asset tools pack''' или ''' X-ray Engine Tools (converter)'''. Последнюю версию искать на [http://stalkerin.gameru.net сайте] |
− | |||
− | |||
== Настройка Конвертера. == | == Настройка Конвертера. == | ||
Строка 32: | Строка 30: | ||
Конвертер полностью настроен, теперь нужно создать '''.bat-файл''' для конвертирования в формат SDK. Для этого создаем текстовой файл, пишем внутри команду и меняем формат файла с .txt на .bat: | Конвертер полностью настроен, теперь нужно создать '''.bat-файл''' для конвертирования в формат SDK. Для этого создаем текстовой файл, пишем внутри команду и меняем формат файла с .txt на .bat: | ||
<ini> | <ini> | ||
− | converter -level <имя_карты> -out <имя_сцены> -mode maya|le|le2 -with_lods | + | converter -level <номер_сборки>:<имя_карты> -out <имя_сцены> -mode maya|le|le2 -with_lods |
pause | pause | ||
</ini> | </ini> | ||
− | Здесь ''<имя_карты>'' - имя папки с картой в каталоге ''gamedata\levels\'', например ''l08_yantar'' (локация Янтарь из ТЧ), ''<имя_сцены>'' - имя карты после декомпиляции, можно не писать, в этом случае имя карты после декомпиляции не изменится. | + | Здесь ''<имя_карты>'' - имя папки с картой в каталоге ''gamedata\levels\'', например ''l08_yantar'' (локация Янтарь из ТЧ), ''<имя_сцены>'' - имя карты после декомпиляции, можно не писать, в этом случае имя карты после декомпиляции не изменится, ''<номер_сборки>'' - имя профиля в converter.ini. |
<br/> | <br/> | ||
Далее выдержка из ''docs\converter.txt'': | Далее выдержка из ''docs\converter.txt'': | ||
Строка 55: | Строка 53: | ||
То есть команда для декомпиляции в формат SDK, например, уровня ''l08_yantar'' будет выглядеть так: | То есть команда для декомпиляции в формат SDK, например, уровня ''l08_yantar'' будет выглядеть так: | ||
<ini> | <ini> | ||
− | converter -level l08_yantar -out l08_yantar_decompiled -mode le -with_lods | + | converter -level 2947:l08_yantar -out l08_yantar_decompiled -mode le -with_lods |
</ini> | </ini> | ||
Текущая версия на 12:54, 26 июля 2020
Для декомпиляции игровых карт в формат LevelEditor'a используется консольная утилита converter.exe, входящая в пакет X-ray Game asset tools pack или X-ray Engine Tools (converter). Последнюю версию искать на сайте
Настройка Конвертера.
Открываем любым текстовым редакором файл converter.ini, в нем находим строки:
; 2947+ (финалка включая обновления) [2947_config]:2945_config $game_data$ = c:\temp\1\gamedata.3312\ $game_levels$ = c:\temp\1\gamedata.3312\levels\
; 3456+ (Clear Sky включая обновления) [3456_config]:2947_config $game_data$ = c:\temp\1\gamedata.3502\ $game_levels$ = c:\temp\1\gamedata.3502\levels\ fake_mu_gamemtls = 34xx_fake_mu_gamemtls fake_gamemtls = 34xx_fake_gamemtls
Здесь $game_data$ - путь до папки gamedata с распаковаными ресурсами игры, $game_levels$ - до папки levels в gamedata соответственно. Необходимо указать полные пути.
В файле fsconverter.ltx находим следующую строку:
$sdk_root$ = false| false| c:\program files\x-ray sdk\level_editor\
Здесь $sdk_root$ - путь до полного SDK (русифицированный не работает нормально с converter.exe). Правим путь на свой, не забывая поставить слэш в конце.
Более конкретная настройка СДК см. Ссылки.
Декомпиляция.
Конвертер полностью настроен, теперь нужно создать .bat-файл для конвертирования в формат SDK. Для этого создаем текстовой файл, пишем внутри команду и меняем формат файла с .txt на .bat:
converter -level <номер_сборки>:<имя_карты> -out <имя_сцены> -mode maya|le|le2 -with_lods pause
Здесь <имя_карты> - имя папки с картой в каталоге gamedata\levels\, например l08_yantar (локация Янтарь из ТЧ), <имя_сцены> - имя карты после декомпиляции, можно не писать, в этом случае имя карты после декомпиляции не изменится, <номер_сборки> - имя профиля в converter.ini.
Далее выдержка из docs\converter.txt:
Ключ -mode задаёт режим работы:
maya - декомпилировать только геометрию карты.
le - декомпилировать в формат LE.
le2 - декомпилировать в формат LE (для l12_stancia_2).
raw - декомпилировать в формат LE (отладочный режим).
Ключ -with_lods обрабатывается в зависимости от значения -mode. Если он
задан совместно с -mode maya, программа выдаст ещё и MU-модели. С остальными
режимами его наличие заставляет converter разбивать LOD-текстуры, что
необходимо для полной пересборки. Также ключ ''-with_lods'' следует использовать
если планируется дальнейшая перекомпиляция уровня.
Отладочные параметры: -dbgcfrm, -dbgmrg.
То есть команда для декомпиляции в формат SDK, например, уровня l08_yantar будет выглядеть так:
converter -level 2947:l08_yantar -out l08_yantar_decompiled -mode le -with_lods
Если все сделано правильно, то после запуска батника пойдет процесс декомпиляции.
5. Найти декомпилированную карту можно будет в каталоге $sdk_root$\maps (файл, читаемый SDK) и $sdk_root$\rawdata\objects\levels (обьекты, используемые данным уровнем). Ну а далее думаю всё и так понятно - в ЛЕ жмём File -> Open и открываем нашу карту.