Модостроение. Создание и редактирование локаций
|
|
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 за это полезное сообщение: |
|
|
Karma | Дата: Вт, 12.03.2013, 17:45 | Сообщение # 121 |
Удаленные
| Сколько примерно времени CoP SDK должен собирать свет для небольшой тествой локации. А то я уже пять минут жду и компилятор уже пять минут собирает свет для локации 50х50.
|
|
|
Эти 0 пользователя(ей) поблагодарили Karma за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 12.03.2013, 20:57 | Сообщение # 122 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Karma, Вы уж определитесь кто вам свет собирает SDK или компилятор - это разные программы. Все сильно зависит от размера локации, мощности ПК и качества компиляции. У меня например локация на High при размере 50х50 будет собираться около часа.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Sandwich | Дата: Чт, 14.03.2013, 16:44 | Сообщение # 123 |
Зам. Лидера «Свободы»
Свобода
Сообщений: 4340
| Здравствуйте,нашел локацию складов для зп,но на ней осталась вот эта аномалия [cut=Скрин][/cut]как её можно убрать?
А колбасу и батоны нынче хреновые стали делать! (Умнейший неизвестный сталкер)
|
|
|
Эти 0 пользователя(ей) поблагодарили Sandwich за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 19.03.2013, 00:29 | Сообщение # 124 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Sandwich, Если аномалия то убрать можно удалив ее секцию из all.spawn, а если это статический партикл - то только редактированием в SDK.
Цитата (sergej5500) Можно ли перенести элементы из alife_zaton версии 2.1 в распакованную локацию. Другой способ - конвертировать all.spawn в набор level.spawn при помощи universal_acdc.
sergej5500, Сегодня мне пришлось решать приведенную вами задачу: как перенести в декомпилированную локацию настройки сделанные прямым редактированием all.spawn. Для работы использовал universal acdc версии 1.27 Дата последних правок: 15 января 2011 [cut] 1. Скопировал мод-источник в отдельную папку (чтобы не запароть исходный)
2. Распаковал в папку spawns архив с universal acdc.
3. Первое что нужно сделать, настроить программу на распознание неизвестных ей секций, для этого декомпилируем all.spawn коммандой: Код universal_acdc.pl -d all.spawn -out all и внимательно смотрим лог, там будут сообщения типа "unknown class for section stalker_outfit_anom", что значит что программа не знает к какому классу объектов отнести объект с именем секции stalker_outfit_anom. Из редми к программе мне стало известно, что нужно в файл clsids.ini добавить секции путем добавления строк, одна беда как я ни пытался программа не видела внесенные изменения в этот файл (если у кого получиться - сообщите как удалось). Поэтому я пошел другим путем - прямое редактирование скрипта stkutils\scan.pm, там после строки: Код 'zone_mine_steam_weak' => 'ZS_MBALD', я добавил: Код 'stalker_outfit_anom' => 'E_STLK', Почему E_STLK? Потому что объект с именем секции stalker_outfit_anom вероятнее всего бронежилет, а он имеет идентификатор clsid равный E_STLK, что соответствует классу cse_alife_item_custom_outfit. Если после добавления строки декомпиляция не проходит до конца и вылет отличается от unknown class for section, то вероятнее всего класс определен не верно и нужно пытаться выбрать другой. Итак определяя классы недостающих секций добираемся до момента когда all.spawn будет полностью декомпилирован.
4. Итак секции настроены пора приступить к разбивке all.spawn на группу файлов level.spawn (спавн объекты) и level.game (точки путей), это делается командой: Код universal_acdc.pl -split all.spawn -out levels -way -use Тут вероятна ситуация как у меня, файлы появились при этом level.game сформированы нормально (еще бы формат точек путей не менялся со времен древних билдов), а вот при формировании level.spawn программа вылетела с ошибкой. Что делать? Вероятно формат all.spawn не совсем подходит universal acdc, но он же его декомпилировал! Вот и выход: в третьем шаге файл all.spawn был полностью декомпилирован, вот теперь мы его скомпилируем снова командой: Код universal_acdc.pl -compile all -out all.spawn И разделяем полученный файл по новой командой: Код universal_acdc.pl -split all.spawn -out levels -way -use На этот раз разбивка на файлы прошла без ошибок и можно заменить файлы в папке gamedata\levels\<имя уровня> на полученные файлы level.spawn и level.game.
5. Декомпилируем локацию программой converter.exe (тут подробно не останавливаюсь благо есть много инструкций), но возможна опять "назадача" и программа при декомпиляции уровня споткнется как раз на файле level.spawn! Что-же остается? Лечить!
6. Если level.spawn не подошел декомпилятору converter.exe, то попробуем получить его другим путем, благо universal acdc предоставляет последнюю возможность. Переименуем файл alife_<имя локации>.ltx в level_spawn.ltx и запустим компиляцию файла level.spawn из файла level_spawn.ltx командой: Код universal_acdc.pl -compile all -l Полученный файл level.spawn поместим в папку уровня и снова пробуем декомпиляцию уровня в формат SDK, на этот раз все проходит успешно (по крайней мере у меня).
7. С замиранием сердца открываем нашу локацию в SDK (надеюсь без вылетов) и видим все спавн-элементы и пути теперь доступны для редактирования в более удобной форме. Удачи в модостроении.[/cut]
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Вт, 19.03.2013, 17:58 | Сообщение # 125 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| denis2000, Еще раз спасибо за информацию о добавлении в СДК информации из all.spawn модов. Декомпилировал Затон по Вашему сценарию. Нашёл добавленные сейфы на своих местах. Возник такой вопрос. Добавил в СДК на Затон какой-нибудь спавн-элемент. Сохранил локацию в СДК под названием zaton 2, например. В папке C:\Program Files (x86)\X-Ray CoP SDK\editors\rawdata\levels\zaton 2 появились файлы spawn.part и way.part. Данные о спавн-элементах хранятся в них. Можно-ли конвертировать эти файлы в alife_zaton и way_zaton соответственно?
Я расставлял квестовые сейфы на Затоне так. Загружал СГМ 2.1, отыскивал подходящее место, снимал координаты. (Нужны были гейм- и левел-вертекс). Загружал локацию в СДК, точно подгонял сейф по месту, называл его test_object. Сохранял локацию, затем из spaw.part брал точные координаты для прописывания в alife_zaton.
Сообщение отредактировал sergej5500 - Вт, 19.03.2013, 18:12 |
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 19.03.2013, 23:06 | Сообщение # 126 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата (sergej5500) Сохранил локацию в СДК под названием zaton 2, например Этого делать абсолютно не нужно, ведь локации zaton и zaton 2, разные локации.
Цитата (sergej5500) Можно-ли конвертировать эти файлы в alife_zaton и way_zaton соответственно Я начал писать программу которая это делает, но там есть существенно препятствие - эти файлы в принципе не содержат вертексов! Более того эта программа не нужна поскольку SDK и компиляторы сделают это лучше: Билд правленной локации - сборка аи-сетки этой локации - сборка спавна всех локаций - на выходе all.spawn со всеми правками.
Как вы я тоже делал и в принципе все работало. Так что метод на ваш выбор.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
gamer | Дата: Вт, 19.03.2013, 23:06 | Сообщение # 127 |
Новичок
Пользователи
Сообщений: 82
| Way .....ltx-файлы нужно ли переносить в розобраниый алл спавн ?Надо ли удалять какието формули из етих файлов как в alife файлах?
А нужны ли вам эти пути? denis2000
Спс понял.где можно почитать про обозначение формул в файлах ltx?
Например в КМБ. denis2000
Сообщение отредактировал gamer - Чт, 21.03.2013, 12:59 |
|
|
Эти 0 пользователя(ей) поблагодарили gamer за это полезное сообщение: |
|
|
Valet41RUS | Дата: Чт, 21.03.2013, 04:15 | Сообщение # 128 |
Удаленные
| Приветствую всех! Ребят, подскажите пожалуйста, в чем заключается данная ошибка: ERROR: Scene has '225615' non associated face!, а после этой ошибки пишет ещё: ERROR: Validation failed. Invalid scene., и все это в процессе компилирования с помощью СДК 0.7 локации Припять из ТЧ (l11_pripyat)? Дело в том что я неопытен в использовании этой программы, и эта моя первая локация которую я редактирую в СДК. Я добавил на нее различные объекты в том числе и аномалии и хочу присоеденить к ЗП. И еще, я неуверен что это первая и единственная ошибка при компилировании локации, кто с этим сталкивался расскажите подробней как исправить вышенаписанную ошибку и какие ошибки могут еще появиться, буду очень признателен!
Вы добавили в сцену дополнительные объекты, в результате в ней появились полигоны не связанные ни с одним из секторов. Самый простой выход переключиться в режим редактирования секторов - удалить дефолтный сектор и создать заново. denis2000Добавлено (21.03.2013, 04:15) --------------------------------------------- denis2000 спасибо! Попробую решить эту проблему с помощью вашего совета!
|
|
|
Эти 0 пользователя(ей) поблагодарили Valet41RUS за это полезное сообщение: |
|
|
gamer | Дата: Вс, 24.03.2013, 01:21 | Сообщение # 129 |
Новичок
Пользователи
Сообщений: 82
| Можете подвказать как называютса 4 лаборатории ТЧ в левел файлах?Или подсказать где про ето можно почитать .Спс
|
|
|
Эти 0 пользователя(ей) поблагодарили gamer за это полезное сообщение: |
|
|
Пpизpак | Дата: Вс, 24.03.2013, 06:31 | Сообщение # 130 |
Новичок
Пользователи
Сообщений: 64
| gamer, ["l03u_agr_undergroun"] = "Подземелье НИИ Агропром", ["l04u_labx18"] = "Лаборатория X-18", ["l08u_brainlab"] = "Лаборатория X-16", ["l10u_bunker"] = "Лаборатория X-10", Это можно было легко в интернете найти.
Комп: Intel Core i5 2400 3.1GHz, 8gb RAM, GeForce GTX 570 1gb, Win 7 64bit Stalker 1.0004 + НС от 03.09.10 + DMX 1.3.5 + фикс 1.3.5 + свои правки Stalker 1.6.02 + SGM 1.7 + свои правки
|
|
|
Эти 0 пользователя(ей) поблагодарили Пpизpак за это полезное сообщение: |
|
|
Довакин | Дата: Пн, 25.03.2013, 00:01 | Сообщение # 131 |
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
| Добрый вечер.Я хочу узнать,как подключить локации из ЧН со всеми картами(в КПК).
КМБ Урок 8? denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили Довакин за это полезное сообщение: |
|
|
gamer | Дата: Пн, 25.03.2013, 01:16 | Сообщение # 132 |
Новичок
Пользователи
Сообщений: 82
| Как зделать загрузочний екран? Следовал ответу Сообщения # 12 но он грузитса пустой Спс за помощ
Нашол уроки по фотошопу ,но ещё не ясно куда и как подключать дополнительный файли что б видны были при загрузке....
Просто следуйте совету из 12 поста и все получиться. denis2000
Сообщение отредактировал gamer - Пн, 25.03.2013, 12:37 |
|
|
Эти 0 пользователя(ей) поблагодарили gamer за это полезное сообщение: |
|
|
last_man_on_earth | Дата: Пн, 25.03.2013, 11:49 | Сообщение # 133 |
Начальник охраны «Свободы»
Свобода
Сообщений: 318
| Всем здрасте. В посту http://sigerous.ru/forum/17-208-3494-16-1288723175 написано что нужна прога на амк сайте, но там не чего нету, при переходе. Выложите плз прогу. Или локацию радар для ЗП
Ссылка обновлена. denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили last_man_on_earth за это полезное сообщение: |
|
|
Довакин | Дата: Пн, 25.03.2013, 23:12 | Сообщение # 134 |
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
| 1.Не запаковывается all.spawn после того,как перенес Болота из ЧН в ЗП. 2.[cut=Скрин][/cut] 3.Перенос локации из ЧН в ЗП следовал инструкции на этом сайте.
Картинки размещайте под спойлером или в виде превью - увеличение по клику, текст на скриншоте не читаем. denis2000
Сообщение отредактировал ___ToRReNT___ - Пн, 25.03.2013, 23:14 |
|
|
Эти 0 пользователя(ей) поблагодарили Довакин за это полезное сообщение: |
|
|
gamer | Дата: Ср, 27.03.2013, 02:32 | Сообщение # 135 |
Новичок
Пользователи
Сообщений: 82
| Помогите с етим логом разобратса . [cut noguest=Лог]* WARNING: player not logged in
FATAL ERROR
[error]Expression : pGameIni->section_exist(map_name) [error]Function : CUIMapWnd::Init [error]File : D:\prog_repository\sources\trunk\xrGame\ui\UIMapWnd.cpp [error]Line : 158 [error]Description : agroprom_underground
stack trace:
0023:69737365 atiumdag.dll[/cut] Спс за помощ
уже разобрался спс
Сообщение отредактировал gamer - Чт, 28.03.2013, 15:27 |
|
|
Эти 0 пользователя(ей) поблагодарили gamer за это полезное сообщение: |
|
|
|