Модостроение. Создание и редактирование локаций
|
|
denis2000 | Дата: Пн, 10.10.2011, 21:29 | Сообщение # 1 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Создание, редактирование, перенос локаций и добавление в игру Работа с 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 по ссылке из шапки и соседнюю тему "Курс молодого бойца", возможно Ваш вопрос уже рассматривался.
Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки. Помните чем подробнее вопрос, тем точнее ответ.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Sandwich | Дата: Сб, 20.04.2013, 11:56 | Сообщение # 181 |
Зам. Лидера «Свободы»
Свобода
Сообщений: 4340
| gamer,Почитай урок КМБ урок №8 подробную инструкцию,там написано как прикрутить локацию,сделать её видимой на карте и т.д.
А колбасу и батоны нынче хреновые стали делать! (Умнейший неизвестный сталкер)
Сообщение отредактировал Sandwich - Сб, 20.04.2013, 12:04 |
|
|
Эти 0 пользователя(ей) поблагодарили Sandwich за это полезное сообщение: |
|
|
gamer | Дата: Сб, 20.04.2013, 21:06 | Сообщение # 182 |
Новичок
Пользователи
Сообщений: 82
| Получилось и подключить и на карте видно взялся за другие локи и вылет.дайте совет что может быть
[cut noguest=лог]* [prefetch] time: 16784 ms * [prefetch] memory: 77944Kb ! Unable to find Software\GSC Game World\STALKER-COP\ in registry ! Player name registry key (InstallUserName) not found ! * phase time: 17412 ms * phase cmem: 188364 K * phase time: 9 ms * phase cmem: 188364 K * Creating new game... * Loading spawn registry... * 6877 spawn points are successfully loaded
FATAL ERROR
Expression : ai().game_graph().header().levels().end() != I Function : CALifeGraphRegistry::setup_current_level File : D:\prog_repository\sources\trunk\xrGame\alife_graph_registry.cpp Line : 87 Description : Graph point level ID not found![/cut]
[cut noguest=лог2]* 6876 spawn points are successfully loaded * New game is successfully created! * phase time: 3416 ms * phase cmem: 233098 K FATAL ERROR [error]Expression : !object->used_ai_locations() || ai().level_graph().valid_vertex_id(object->m_tNodeID) [error]Function : CALifeSwitchManager::add_online [error]File : D:\prog_repository\sources\trunk\xrGame\alife_switch_manager.cpp [error]Line : 64 [error]Description : Invalid vertex for object [error]Arguments : zaton_actor[/cut]
Всё пересмотрел ошибок не нашол (
Сообщение отредактировал gamer - Сб, 20.04.2013, 21:38 |
|
|
Эти 0 пользователя(ей) поблагодарили gamer за это полезное сообщение: |
|
|
denis2000 | Дата: Сб, 20.04.2013, 21:42 | Сообщение # 183 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| gamer, В спавне указан неуществующий game_vertex_id
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
gamer | Дата: Сб, 20.04.2013, 21:49 | Сообщение # 184 |
Новичок
Пользователи
Сообщений: 82
| ggtools мне выдал ети вертексы bar-1096,escape-1116 и 1120 я добавил так { gvid0 => 1116, name => 'level_escape' }, { gvid0 => 1096, name => 'level_bar' }, плюс дописал в алиф лтх -что не правильно?
Какое отношение имеет приведенная информация к вышестоящему посту? Ищите game_vertex_id вне диапазона вертексов. denis2000
тяжело доходит из фонаря дописать ветекс?
Это как раз и заканчивается: Graph point level ID not found! и Invalid vertex for object. Проверяйте свой спавн на корректность гейм вертексов. denis2000
Спс за подсказку
Сообщение отредактировал gamer - Вс, 21.04.2013, 22:11 |
|
|
Эти 0 пользователя(ей) поблагодарили gamer за это полезное сообщение: |
|
|
FREEM@N | Дата: Вс, 21.04.2013, 15:07 | Сообщение # 185 |
Легенда Зоны
Свобода
Сообщений: 1031
| Добавил локу Припять из ЗП в ТЧ, только не могу открыть файл section2.bin, чтобы её туда вписать. Как это можно сделать? Ответьте пожалуйста
Геймграф в файле section4.bin или graph.bin или game.graph, но никак не в section2.bin. Каждый третий пост в этой теме рекомендует КМБ урок №8. denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили FREEM@N за это полезное сообщение: |
|
|
daniyar17 | Дата: Пт, 03.05.2013, 10:41 | Сообщение # 186 |
Удаленные
| Цитата (denis2000) silent_mode = 0 - будет вызвано диалоговое окно подтверждения перехода (как это было в ТЧ\ЧН), но текстур сего диалогового окна в ЗП нет. так и никто не подскажет наверно этот способ нормально вост, можно конечно рестикор поставить на отрисовку окна вокруг левел ченд но это муторно... на счет отобразить иконки перехода ни знаю я вот например вот так вот вост берем два файла из распакованого gamedata от ЧН "game_story_ids.ltx" в папке "configs" берем еще один файл "level_tasks.scripts" в папке "scripts" надо этот level_task привязать bind_stalker
function actor_binder:info_callback(npc, info_id) printf("*INFO*: npc='%s' id='%s'", npc:name(), info_id) --' Сюжет -- Отметки на карте "после вставить" level_tasks.process_info_portion(info_id) end
и наконец находим еще вот такие строчки
if self.bCheckStart then printf("SET DEFAULT INFOS") if not has_alife_info("global_dialogs") then self.object:give_info_portion("global_dialogs") end if not has_alife_info("level_changer_icons") then self.object:give_info_portion("level_changer_icons") end self.bCheckStart = false "после вставить" level_tasks.add_lchanger_location() удачи!!! з.ы. строчки "после вставить" не пищем)
|
|
|
Эти 0 пользователя(ей) поблагодарили daniyar17 за это полезное сообщение: |
|
|
dendjdnk2010 | Дата: Сб, 04.05.2013, 07:49 | Сообщение # 187 |
Гражданский
Пользователи
Сообщений: 21
| Ребята, доброго времени суток. Вот в чем вопрос: Я cоздал карту в СДК, скомпилировал Build. Теперь надо скомпилировать саму локацию. Я использую компилятор от бардака. Запускаю и на этапе Light:Lmaps компилятор очень долго висит, вот на таком месте: http://floomby.ru/s1/QaDHu9 Так вот вопрос, это нормально, что он не сдвигается с места уже часа 4? Компилю на качестве High.
Абсолютно нормально если процесс при этом потребляет много памяти и вычислительного времени процессора. Для быстрой проверки локации используйте компиляцию на уровне Draft. denis2000
Спасибо. denis2000, а вот ещё такой вопрос: Вы не знаете сколько примерно времени требуется, чтобы скомпилировать карту на качестве High, например локацию Кордон?
Измененный кордон, на моей системе 9,5 часов геометрия, 3,5 часа детал-объекты, 5 минут аи-сетка. denis2000
Сообщение отредактировал dendjdnk2010 - Сб, 04.05.2013, 18:50 |
|
|
Эти 0 пользователя(ей) поблагодарили dendjdnk2010 за это полезное сообщение: |
|
|
Довакин | Дата: Вт, 07.05.2013, 22:30 | Сообщение # 188 |
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
| Добрый вечер.Вопрос такой : Как смоделированную локацию в 3DS Max вставить в ЗП?Заранее спасибо.
|
|
|
Эти 0 пользователя(ей) поблагодарили Довакин за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 07.05.2013, 23:22 | Сообщение # 189 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| ___ToRReNT___, 1. Импортировать меши в формат *.object 2. Собрать и настроить уровень в SDK 3. Скомпилировать в формат движка 4. Вставить
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
kvant | Дата: Ср, 08.05.2013, 21:53 | Сообщение # 190 |
Удаленные
| Всем доброго времени суток,занимаюсь созданием модификации на сталкер чистое небо.и не могу добавить локации из теней чернобыля. Прошу помочь,а то бился над этим много времени,а результата 0.может кто поможет хоть ссылкой.а то много материала в и-нете перелопатил.и нечего,заранее спасибо и извините если пишу не туда(((
Для начала читаем КМБ Урок 8. denis2000Добавлено (08.05.2013, 21:53) --------------------------------------------- Спасибо)занимаюсь)
|
|
|
Эти 0 пользователя(ей) поблагодарили kvant за это полезное сообщение: |
|
|
gamer | Дата: Вт, 04.06.2013, 11:54 | Сообщение # 191 |
Новичок
Пользователи
Сообщений: 82
| У меня конвертер выдаёт такой лог [cut noguest=Лог]item without section at embedded:3 (bug) unexpected code path at ..\xr_ini_.cxx:301
this application has requested the runtime to terminate it in an usually way[/cut]
кто встречался с таким и как сним розобратса?
|
|
|
Эти 0 пользователя(ей) поблагодарили gamer за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 04.06.2013, 18:04 | Сообщение # 192 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| gamer, Что написано в файле level.ltx декомпилируемого уровня.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Niafa | Дата: Ср, 05.06.2013, 10:59 | Сообщение # 193 |
Отмычка
Вольные сталкеры
Сообщений: 42
| День добрый, форумчане. Помогите, пожалуйста, советом.
Ситуация: есть декомпилированный Кардон из оригинала. Цель: Запихнуть террейн в Макс для редактирования геометрии. Что делал: искал террейн в Левел Едиторе. Нашёл (l01_escape_decompiled_part0003.object). В Актор Едиторе открыл и экспортнул в obj. Здесь заметил неприятный факт. Файл весит 40 почти мегов. И в нём вообще вся геометрия уровня кроме деревьев и камней - дома, вагоны и пр.
Далее: 1. Пытался импортировать obj в макс. Падает ошибка (out of memory) на 60000+ фейсе для 2011 макса и 170000+ фейсе для 2009 макса. 2. Пытался открыть милкой. Вообще никакой реакции. 3. Пытался скриптом Den Stash`a конвертнуть собственно object файл. Вроде экспорт прошёл, но тут сразу две проблемы. а. Сбиты все группы сглаживания. Геометия выглядит покорёженной и нуждается в доработке вручную, на которую уйдёт уйма времени. б. Макс часто падает при работе с таким большим файлом.
Собственно вопрос: как нормально экспортировать террейн в макс? Ведь как-то же это делают в модах. Посмотрел вики, КМБ. Вроде ничего не нашёл стоящего.
|
|
|
Эти 0 пользователя(ей) поблагодарили Niafa за это полезное сообщение: |
|
|
gamer | Дата: Ср, 05.06.2013, 12:47 | Сообщение # 194 |
Новичок
Пользователи
Сообщений: 82
| denis2000 разобрался причина была в прописаном 2раза ; level script file(level.ltx)
Да это вроде типичной проблемы. [b]denis2000[/b]
Niafa, yuo tube запиши вот ето Создание игровой локации и Настройка 3d max для Сталкера.
Сообщение отредактировал gamer - Ср, 05.06.2013, 12:57 |
|
|
Эти 0 пользователя(ей) поблагодарили gamer за это полезное сообщение: |
|
|
mizabrik | Дата: Ср, 05.06.2013, 12:50 | Сообщение # 195 |
Почетный инженер «Свободы»
Свобода
Сообщений: 360
| Niafa, AFAIK, разработчики Сталкера использовали Maya, попробуй её. Или проблема в нехватке оперативной памяти, тогда проверь работает ли у тебя файл подкачки.
Сообщение отредактировал VlAleVas - Ср, 05.06.2013, 13:08 |
|
|
Эти 0 пользователя(ей) поблагодарили mizabrik за это полезное сообщение: |
|
|
|