Декомпиляция уровней в формат СДК — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Декомпиляция уровней в формат СДК — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
(Пошаговое руководство по декомпиляции)
Строка 34: Строка 34:
 
'''4.''' Конвертер полностью настроен, теперь нужно создать '''.bat-файл''' для конвертирования в формат SDK. Для этого создаем текстовой файл, пишем внутри команду и меняем формат файла с .txt на .bat:
 
'''4.''' Конвертер полностью настроен, теперь нужно создать '''.bat-файл''' для конвертирования в формат SDK. Для этого создаем текстовой файл, пишем внутри команду и меняем формат файла с .txt на .bat:
 
<ini>
 
<ini>
converter -level <имя_карты> [-out <имя_сцены>] [-mode maya|le|le2]
+
converter -level <имя_карты> [-out <имя_сцены>] [-mode maya|le|le2] -with_lods
pause -with_lods
+
pause
 
</ini>
 
</ini>
 
Здесь ''<имя_карты>'' - имя папки с картой в каталоге ''gamedata\levels\'', например ''l08_yantar'' (локация Янтарь из ТЧ), ''<имя_сцены>'' -  имя карты после декомпиляции, можно не писать, в этом случае имя карты после декомпиляции не изменится.
 
Здесь ''<имя_карты>'' - имя папки с картой в каталоге ''gamedata\levels\'', например ''l08_yantar'' (локация Янтарь из ТЧ), ''<имя_сцены>'' -  имя карты после декомпиляции, можно не писать, в этом случае имя карты после декомпиляции не изменится.

Версия 04:29, 29 сентября 2010

Для декомпиляции игровых карт в формат LevelEditor'a SDK 0.4 используется консольная утилита converter.exe от bardak'а, входящая в пакет X-ray Game asset tools pack.

Пошаговое руководство по декомпиляции

1. Распаковываем X-ray Game asset tools pack, обязательно ставим обновление поверх.


2. Открываем любым текстовым редакором файл 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 соответственно. Необходимо указать полные пути.


3. В файле fsconverter.ltx находим следующую строку:

 
$sdk_root$ = false| false| c:\program files\x-ray sdk\level_editor\
 

Здесь $sdk_root$ - путь до полного SDK (русифицированный не работает нормально с converter.exe). Правим путь на свой, не забывая поставить слэш в конце.


4. Конвертер полностью настроен, теперь нужно создать .bat-файл для конвертирования в формат SDK. Для этого создаем текстовой файл, пишем внутри команду и меняем формат файла с .txt на .bat:

 
converter -level <имя_карты> [-out <имя_сцены>] [-mode maya|le|le2] -with_lods
pause
 

Здесь <имя_карты> - имя папки с картой в каталоге gamedata\levels\, например l08_yantar (локация Янтарь из ТЧ), <имя_сцены> - имя карты после декомпиляции, можно не писать, в этом случае имя карты после декомпиляции не изменится.
Далее выдержка из docs\converter.txt:

Ключ -mode задаёт режим работы:
maya - декомпилировать только геометрию карты.
le - декомпилировать в формат LE.
le2 - декомпилировать в формат LE (для l12_stancia_2).
raw - декомпилировать в формат LE (отладочный режим).
 
Ключ -with_lods обрабатывается в зависимости от значения -mode. Если он
задан совместно с -mode maya, программа выдаст ещё и MU-модели. С остальными
режимами его наличие заставляет converter разбивать LOD-текстуры, что
необходимо для полной пересборки.
 
Отладочные параметры: -dbgcfrm, -dbgmrg.

То есть команда для декомпиляции в формат SDK, например, уровня l08_yantar будет выглядеть так:

 
converter -level l08_yantar -out l08_yantar_decompiled -mode le
 

Если планируется дальнейшая перекомпиляция, то следует использовать ключ -with_lods.


5. Если все сделано правильно, то после запуска батника пойдет процесс декомпиляции.


6. Найти декомпилированную карту можно будет в каталоге $sdk_root$\maps (файл, читаемый SDK) и $sdk_root$\rawdata\objects\levels (обьекты, используемые данным уровнем).

Другие места
LANGUAGE