Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Создание и редактирование локаций
denis2000Дата: Пн, 10.10.2011, 21:29 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Создание, редактирование, перенос локаций и добавление в игру

Работа с SDK и дополнительными программами для создания, редактирования и добовления локаций

Если у вас появились вопросы по созданию, редактированию, переносу локаций, а так же по добавлению их в игру. Задавайте их в этой теме - умные головы,
модосторители и просто разбирающиеся в программировании люди вам ответят.


Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7

Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML
[cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл:
1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R])
2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx"
3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо)
Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#"
Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut]

[cut=Декомпиляция уровней в формат SDK. Спасибо VERvolF]Для декомпиляции игровых карт в формат LevelEditor'a используется консольная утилита converter.exe, входящая в пакет X-ray Game asset tools pack или X-ray Engine Tools (converter). Последнюю версию искать на сайте

Настройка Конвертера.

Открываем любым текстовым редакором файл converter.ini, в нем находим строки:
Code
; 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 находим следующую строку:
Code
$sdk_root$ = false| false| c:\program files\x-ray sdk\level_editor\

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

Более конкретная настройка СДК см. Ссылки.

Декомпиляция.

Конвертер полностью настроен, теперь нужно создать .bat-файл для конвертирования в формат SDK. Для этого создаем текстовой файл, пишем внутри команду и меняем формат файла с .txt на .bat:
Code
converter -level <имя_карты> -out <имя_сцены> -mode maya|le|le2 -with_lods
pause

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

Quote
Ключ -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 будет выглядеть так:
Code
converter -level l08_yantar -out l08_yantar_decompiled -mode le -with_lods

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

Найти декомпилированную карту можно будет в каталоге $sdk_root$\maps (файл, читаемый SDK) и $sdk_root$\rawdata\objects\levels (обьекты, используемые данным уровнем). Ну а далее думаю всё и так понятно - в ЛЕ жмём File -> Open и открываем нашу карту. [/cut][cut=Создание LOD-текстур]Изначально в пакете SDK отсутствуют LOD'ы. Их придется создать самостоятельно.
В свитке Scene Level Editor'a кликаем Objects-->Library Editor (Объекты-->Библиотека объектов). В открывшемся диалоговом окне выбираем нужный объект, ставим флажок Preview (Предпросмотр). Нажатием кнопки Make LOD (High Quality) или Make LOD (Low Quality) запускаем процесс создания LOD-текстур соответственно в высоком или низком качестве. Созданные LOD'ы можно найти в \rawdata\textures\lod\ (.tga) и \gamedata\textures\lod\ (.dds и .thm).

Если у объекта отсутствует .thm-файл с картинкой-превьюшкой, то можно создать его нажатием кнопки Make Thumbnail (Создать миниатюру), выбрав перед этим удобный ракурс для "съемки". [/cut]

[cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти?
Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда.
Для того чтоб найти LOG необходимо зайти вот сюда:

В Win хр лог находится:

C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs

Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.

В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs

Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка:
...
$app_data_root$ = true | false| $fs_root$| users\
(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx)
...
$logs$ = true| false| $app_data_root$| logs\
(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи)
...
[/cut][cut=Получение более подробной информации о вылете (ХОВАН)]
Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...)
Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так:
Code
function abort(fmt, ...)
                         local reason = string.format(fmt, ...)
                         error_log(reason)
end

Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией

Первый:
Code
Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil)

Второй:
Code
Expression    : 0
Function      : ErrorLog
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp
Line          : 49
Description   : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic'

[/cut]


Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы,
статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки.
Помните чем подробнее вопрос, тем точнее ответ.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
daniyar17Дата: Сб, 30.03.2013, 17:27 | Сообщение # 151
Удаленные



всем привет сталкеры ветераны новички!!! вопрос у мя такой сложился короче добавил новые локации для зова припяти немного покалдавал так для разнообразия вот хотел спросить поставил я себе переходы но они тихом режиме так вот как добавить отрисовки панеля типа"перейти на другую локацию" то есть ДА или НЕТ ребят токо подробно пжл я уже весь SGM перекопал не нашел тоесть сам мод(((
 
ДовакинДата: Сб, 30.03.2013, 20:20 | Сообщение # 152
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
Награды: 14
Репутация: [ 552 ]

Добрый вечер.Создал рестриктор.Все по инструкции делал.Но не заходит в игру.Вылетает.В логе сказано что проблема с ui_st_pda.xml .Понял что с переводом.Файл показывает.Вопрос - в какой файл надо вставлять эти строки?[cut noguest=Строки]<string id=" st_new_selo_name ">
<text>Деревня новичков</text>
</string>[/cut]


 
FantomICWДата: Сб, 30.03.2013, 20:31 | Сообщение # 153
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

___ToRReNT___, я думаю, надо прописать в configs/text/rus/st_land_names.xml. Хотя, насколько я знаю, можно и в любой другой файл.


 
denis2000Дата: Вс, 31.03.2013, 00:53 | Сообщение # 154
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

daniyar17, На сколько я помню в секции левел ченджера параметр silent_mode = 0

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
daniyar17Дата: Вс, 31.03.2013, 03:03 | Сообщение # 155
Удаленные



Цитата (denis2000)
silent_mode = 0

да я в курсе но должно появится окошко с предупреждением ДА или НЕТ! я догадываюсь что разроботчики урезали эту фичу на ЗП извеняюсь народ за тупость свою хотел спросить на ЗП так как ТЧ и ЧН таких траблов не возникало!

Если silent_mode не помогает, значит фича вырезана. denis2000
 
ДовакинДата: Вс, 31.03.2013, 12:19 | Сообщение # 156
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
Награды: 14
Репутация: [ 552 ]

1.Ищу ответ - как создать отметки на ПДА(рестрикторы,Скадовск и т.д).
2.Посиделки у костра,как создать?
3.Как переименовать escape на Кордон?


 
Earth2SpaceДата: Вс, 31.03.2013, 12:36 | Сообщение # 157
Механик-водитель 6-го моторизованного квада
Долг
Сообщений: 344
Награды: 5
Репутация: [ 103 ]

___ToRReNT___, изучи это.


Стол заказов | Правки движка | O.G.S.E. 0.6.9.3
 
ДовакинДата: Вс, 31.03.2013, 23:25 | Сообщение # 158
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
Награды: 14
Репутация: [ 552 ]

Добрый вечер.Ищу создание посиделок у костра на новой локации.На Inside Wiki не нашел.Плиз расскажите все подробно.

Все давным давно описано в КМБ Урок 18. denis2000

В том то и дело,что после того как я запаковываю all.spawn выкидывает вот такую фигню -
Код
dead at stkulis/ini_file.pm line 30,<GEN6> line 347


Значит вы сделали что-то неправильно. denis2000


 
by_gangsterДата: Сб, 13.04.2013, 20:30 | Сообщение # 159
Научный сотрудник Бункера
Ученые сталкеры
Сообщений: 233
Награды: 6
Репутация: [ 171 ]

Здравствуйте, подскажите программу которая декомпилирует .level в обычный игровой формат...

SDK плюс компиляторы в комплекте с ним. denis2000

В Level Editor компиляция есть, согласен, я редактирую карту Кордон, при компиляции не хватае LOD текстур, но опять же они не создаются в папке textures/lod


Сообщение отредактировал by_gangster - Сб, 13.04.2013, 21:48
 
denis2000Дата: Сб, 13.04.2013, 21:59 | Сообщение # 160
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

by_gangster,
Во первых вы сначала спросили компилятор, а теперь оказывается проблема то совсем в другом? Нет лод-текстур?
Во вторых, а не соизволите прочитать наконец шапку темы в которой описано как их создавать.
В третьих уж если декомпилируете уровень, то может сразу включить опцию разбивка текстур на лод-текстуры?


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
by_gangsterДата: Сб, 13.04.2013, 22:03 | Сообщение # 161
Научный сотрудник Бункера
Ученые сталкеры
Сообщений: 233
Награды: 6
Репутация: [ 171 ]

Цитата (denis2000)
прочитать наконец шапку темы в которой описано как их создавать.

читал и делал так как написано но
Цитата (by_gangster)
они не создаются в папке textures/lod
 
denis2000Дата: Сб, 13.04.2013, 23:22 | Сообщение # 162
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата (by_gangster)
они не создаются в папке textures/lod

Ожидаю подробнейшего рассказа об этом пренеприятнейшем событии.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
by_gangsterДата: Вс, 14.04.2013, 10:32 | Сообщение # 163
Научный сотрудник Бункера
Ученые сталкеры
Сообщений: 233
Награды: 6
Репутация: [ 171 ]

Цитата (denis2000)
Ожидаю подробнейшего рассказа об этом пренеприятнейшем событии.

Статические объекты > Библиотека объектов > Levels > escape, потом создаю то что надо. Пишет чтоDONE, а в окошке с логами Can't create LOD texture from non 'Multiple Usage object' (красным). А дальше чёто создаёт но не в папке Lod.


Сообщение отредактировал by_gangster - Вс, 14.04.2013, 10:33
 
SandwichДата: Вс, 14.04.2013, 12:13 | Сообщение # 164
Зам. Лидера «Свободы»
Свобода
Сообщений: 4340
Награды: 16
Репутация: [ 431 ]

Как узнать с какого номера начинаются и заканчиваются геймвертексы у локации?

А колбасу и батоны нынче хреновые стали делать! (Умнейший неизвестный сталкер)
 
denis2000Дата: Вс, 14.04.2013, 15:07 | Сообщение # 165
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата (by_gangster)
а в окошке с логами Can't create LOD texture from non 'Multiple Usage object' (красным)

Вот с этого и надо было начинать, товарищ разведчик! Вы пытаетесь создать LOD текстуру не для LOD объекта! Поскольку у вас декомпилированная локация то лод объекты содержат в имени своего файла такое:
***_lod***.object
А вот если бы вы создавали локацию с нуля, то ваши лод-объекты имели бы глобальное свойство: Multiple Usage object

Цитата (Sandwich)
Как узнать с какого номера начинаются и заканчиваются геймвертексы у локации?

В готовой структуре локаций (которая уже имеет файл all.spawn), нужно декомпилировать его чтобы получить бинарный файл гейм граф (файл section4.bin или game.graph или game_graf.bin - все зависит от версии декомпилятора). Затем использовать программу на перле ggtool.pl для определения диапазонов идентификаторов гейм графа. Либо использовать unuversal acdc, который сам умеет все делать. Как пользоваться есть пост, из которого вы можете подчерпнуть некоторые моменты.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Поиск: