Модостроение. Создание и редактирование локаций
|
|
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 за это полезное сообщение: |
|
|
denis2000 | Дата: Сб, 08.10.2016, 12:30 | Сообщение # 601 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| sergej5500, Я знаю две причины по которым может не гореть lights_hanging_lamp: отключение объекта скриптом или нанесение хита.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Сб, 08.10.2016, 13:23 | Сообщение # 602 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата denis2000 ( ) нанесение хита.
Причина оказалась в этом. Выяснил экспериментально, стреляя по прожекторам из РПГ. Возник вопрос. Можно ли лампочке прописать "бессмертие"? Как это сделать?
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Сб, 08.10.2016, 13:54 | Сообщение # 603 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| sergej5500, Возможно получиться в конфиге прописать имунитеты...
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
progkuchumov | Дата: Сб, 08.10.2016, 14:29 | Сообщение # 604 |
Отмычка
Пользователи
Сообщений: 38
| Всем здравствуйте! Подскажите пожалуйста - чтобы на локации поменять текстуры земли, её надо в 3D Max редактировать, или есть какой то способ по проще?
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
Sergeant_Fox | Дата: Сб, 08.10.2016, 14:52 | Сообщение # 605 |
Разработчик вооружения
Военные сталкеры
Сообщений: 10668
| progkuchumov, можно редактировать саму текстуру земли, которая расположена в папке текстур
|
|
|
Эти 0 пользователя(ей) поблагодарили Sergeant_Fox за это полезное сообщение: |
|
|
sergej5500 | Дата: Сб, 08.10.2016, 14:53 | Сообщение # 606 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата denis2000 ( ) Возможно получиться в конфиге прописать имунитеты...
Попробовал в секцию lights_hanging_lamp добавить:
[cut=Код][lights_hanging_lamp] GroupControlSection = spawn_group $spawn = "physics\hanging lamp" class = SO_HLAMP script_binding = bind_physic_object.init
immunities_sect = lamp_immunities
[lamp_immunities] burn_immunity = 1 ;коэффициенты иммунитета самого костюма strike_immunity = 1 shock_immunity = 1 wound_immunity = 1 radiation_immunity = 1 telepatic_immunity = 1 chemical_burn_immunity = 1 explosion_immunity = 1 fire_wound_immunity = 1[/cut]
Результат нулевой. Пробовал ставить 1 и 0.
Затем попробовал такой вариант.
2 лампы заспавнил обычным способом. Согласно Непряхину.
[cut=Скрины] [/cut]
Третью лампу сделал так. Поставил физический объект, изображающий лампу. Саму лампу сделал без визуала. Наложил лампу на объект. Получилась как настоящая. Почти.
[cut=Скрин][/cut]
Заложим под лампы динамит и взорвал его.
Первые две лампы погасли.
[cut=Скрины] [/cut]
С лампой без визуала ничего не случилось. Горит, как горела. Взрыв своротил с места физический объект, изображающий лампу.
[cut=Скрин]
[/cut]
Можно предположить, что причина в визуале моделей ламп. Лампа без визуала биться не будет. Минус в том, что вместо одного объекта (лампы) понадобится два: лампа и физ. объект.
Сообщение отредактировал sergej5500 - Сб, 08.10.2016, 15:00 |
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
progkuchumov | Дата: Сб, 08.10.2016, 14:57 | Сообщение # 607 |
Отмычка
Пользователи
Сообщений: 38
| keilin, А как найти, какую текстуру у меня локация загружает? Я подключил предбанник к Зову Припяти. У меня на родных локациях нормальная земля, а в предбаннике как будто из пластмассы. Пробовал просто текстуры земли новые в папку с текстурами закидывать - естественно ничего не поменялось.
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
Sergeant_Fox | Дата: Сб, 08.10.2016, 15:03 | Сообщение # 608 |
Разработчик вооружения
Военные сталкеры
Сообщений: 10668
| progkuchumov, на счет этого не ко мне. я не силен в текстурах.
|
|
|
Эти 0 пользователя(ей) поблагодарили Sergeant_Fox за это полезное сообщение: |
|
|
denis2000 | Дата: Сб, 08.10.2016, 15:30 | Сообщение # 609 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата sergej5500 ( ) Третью лампу сделал так. Поставил физический объект, изображающий лампу. Саму лампу сделал без визуала. Наложил лампу на объект. Получилась как настоящая. Почти. Ну если так то можно сделать статический объект лампа, плюс статический источник света. Тогда его вообще бульдозером не снести.
Цитата progkuchumov ( ) А как найти, какую текстуру у меня локация загружает? Обычно она в папке levels\уровень\terrain
Цитата progkuchumov ( ) в предбаннике как будто из пластмассы Скорее всего отсутствуют сопутствующие thm файлы и маска террейна.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
progkuchumov | Дата: Сб, 08.10.2016, 15:47 | Сообщение # 610 |
Отмычка
Пользователи
Сообщений: 38
| denis2000, У меня там два файла - terrain_predbannik.dds и terrain_predbannik_lm.dds. thm файлов в папке левела никаких нет. У меня есть текстуры земли. Не совсем понимаю, как я могу её привязать к тем двум файлам.
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
denis2000 | Дата: Сб, 08.10.2016, 17:00 | Сообщение # 611 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата progkuchumov ( ) terrain_predbannik.dds Вот это и есть текстура террейна.
Цитата progkuchumov ( ) terrain_predbannik_lm.dds Текстура лайт мапа террейна
Код terrain_predbannik_mask.dds Текстура маски террейна находиться в textures\terrain, где и лежат thm. Но до версии 1.0005 thm не использовались, а до версии 1,500 они не совместимы с ЗП (их нужно создавать заново в SDK Image Editor).
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
progkuchumov | Дата: Пн, 10.10.2016, 14:38 | Сообщение # 612 |
Отмычка
Пользователи
Сообщений: 38
| denis2000, так мне текстуру террейна как то надо править, чтобы землю исправить? С самой локацией надо какие либо манипуляции проводить? Добавлено (08.10.2016, 20:17) --------------------------------------------- Разобрался дальше сам - благодарю! Добавлено (10.10.2016, 14:38) --------------------------------------------- Всем здравствуйте еще раз!
Возникла новая проблема. Понадобилось добавить траву на локацию. Сделал все как надо по урокам Греза. В Level Editor трава появилась. Сделал Make Game, Make Details. В командном файле "Компиляция травы" прописал локацию свою. Запускаю - вылет. В логе только stack trace: и все. В чем может быть причина?
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
denis2000 | Дата: Пн, 10.10.2016, 18:48 | Сообщение # 613 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата progkuchumov ( ) В чем может быть причина? Лог полностью приводим.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
progkuchumov | Дата: Пн, 10.10.2016, 19:04 | Сообщение # 614 |
Отмычка
Пользователи
Сообщений: 38
| denis2000,
[cut noguest=Лог] * Detected CPU: Intel® Core i3-2120 CPU @ 3.30GHz [GenuineIntel], F6/M42/S7, 3293.00 mhz, 28-clk 'rdtsc' * CPU features: RDTSC, MMX, SSE, SSE2, SSE3, SSE4.1, SSE4.2 * CPU threads: 4
Initializing File System... using fs-ltx fsgame.ltx FS: 27338 files cached 0 archives, 5114Kb memory used. Init FileSystem 0.779142 sec 'xrCore' build 0, (null)
"X-Ray Detail Objects Light Compiler" Compilation date: Sep 22 2014
Startup time: 16:40:49 * New phase started: Loading level... stack trace:
stack trace:
[/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
denis2000 | Дата: Пн, 10.10.2016, 19:39 | Сообщение # 615 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| progkuchumov, А компиляцию геометрии делали? Как минимум build.details, build.cform, build.prj, build.lights нужны...
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
|