Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: 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 по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
denis2000Дата: Вс, 03.08.2014, 13:11 | Сообщение # 406
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата alex_xp_77 ()
как отредактировать локацию в максе, и акуратно поменять её же в sdk

Именно так и сделать взять объект из SDK отредактировать в Максе и вернуть в SDK, ничего сверхсекретного или сверхсложного.

PS: НПС не дышат воздухом и не ходят по земле (террейну).


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
alex_xp_77Дата: Ср, 06.08.2014, 14:15 | Сообщение # 407
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Цитата denis2000 ()
взять объект из SDK отредактировать в Максе и вернуть в SDK

При импорте в sdk, обьекты не экспортируются, а у меня на террейне полный дом, проясните пожалуйста Денис как это возможно, хотя бы короткое видео или скрины, надеюсь немногое у вас прошу, и не отберу много времени, заранее огромное спасибо Артур!!


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

alex_xp_77, Вот урок от Андрея Непряхина, в котором он редактирует Invalid faces.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
alex_xp_77Дата: Вс, 17.08.2014, 15:12 | Сообщение # 409
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Добрый день всем !!Хотелось бы прояснить для себя один ньюанс, как правильно назначить шейдеры, металу, бетону, и дереву, если не сложно то пожалуста поподробней, например шейдеры воде:
Shader
effects\water
Compile def_shaders\def_vertex
Game Mtl materials\water
2 Sided no
Заранее большое спасибо


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

alex_xp_77, Вот эта таблица вас семь лет дожидается.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
alex_xp_77Дата: Вс, 24.08.2014, 16:55 | Сообщение # 411
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Доброго дня всем , у меня вопрос касаем граф-поинтов, как пологается поставил графпоинты, и при работе авапером получил вылет, уже второй раз , почему то он отключает графы в смысле авапер, уже голову изломал, столько спавна, очень жалко было бы потерять столько работы, помогите пожалуста, это вылет по городу, ничего не делал ни спавна , ни нпс, чистый террейн только много работы было по бордюрам по статитке, и по динамике, вот лог http://SSMaker.ru/db248f73/ помогите плз люди добрые!! вот настроики графпоинтов http://SSMaker.ru/06888151/
Удалил графы, заного поставил, все пошло....странно, но вот интересно, при переходе на заставку в начале игры происходит вылет такого рода http://SSMaker.ru/226608ab/ , непонятно даже в связи с чем,делать город слишком сложная работа!!




Сообщение отредактировал alex_xp_77 - Вс, 24.08.2014, 20:18
 
denis2000Дата: Вс, 24.08.2014, 18:30 | Сообщение # 412
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

alex_xp_77, Выложите лог, а не скриншоты.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
alex_xp_77Дата: Пн, 25.08.2014, 22:01 | Сообщение # 413
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Добрый вечер уважаемой публике!У меня небольшой вопрос, перед проигрышем первой видеозаставки, сразу после синхронизации, ну как бы происходит вылет без лога, вот что пишет сам лог перед вылетом:

[cut=Лог]Клиент: Синхронизация...
* phase time: 12 ms
* phase cmem: 201665 K
* [win32]: free[1450148 K], reserved[186200 K], committed[460740 K]
* [ D3D ]: textures[68042 K]
* [x-ray]: crt heap[201665 K], process heap[148157 K], game lua[4911 K], engine lua[209 K], render[607 K]
* [x-ray]: economy: strings[1462 K], smem[28207 K]
* MEMORY USAGE: 205534 K
! Invalid ogg-comment version, file: d:\сталкер тени чернобыля для теста\s.t.a.l.k.e.r. - shadow of chernobyl\gamedata\sounds\music\wasteland7_l.ogg
! Invalid ogg-comment version, file: d:\сталкер тени чернобыля для теста\s.t.a.l.k.e.r. - shadow of chernobyl\gamedata\sounds\music\wasteland7_r.ogg
- Disconnect
- Destroying level
DestroySingleton::RefCounter: 0
DestroySingleton::RefCounter: 0
DestroySingleton::RefCounter: 0
Input: 1
Config-file [d:\сталкер тени чернобыля для теста\s.t.a.l.k.e.r. - shadow of chernobyl\userdata\user.ltx] saved successfully
Destroying Direct3D...
* RM_Dump: textures : 0
* RM_Dump: rtargets : 0
* RM_Dump: rtargetsc : 0
* RM_Dump: vs : 0
* RM_Dump: ps : 0
* RM_Dump: dcl : 0
* RM_Dump: states : 0
* RM_Dump: tex_list : 0
* RM_Dump: matrices : 0
* RM_Dump: lst_constants: 0
* RM_Dump: v_passes : 0
* RM_Dump: v_elements: 0
* RM_Dump: v_shaders : 0
refCount:pBaseZB 1
refCount:pBaseRT 1
DeviceREF: 1
[/cut]

вот и все просьба обьяснить с чем может быть связан этот вылет , ошибок критических при компиляции не было, на что можно было бы пожаловаться, да винду снес, но sdk, был на другом диске, может кто нибудь сможет прояснить ситуацию?? Заранее большое спасибо!! Да перед самой игрой выскакивает сообщение критичной ошибки,там где написанно найдена ошибка, отправит в майкрософт, не отправить, два раза уже редактировал террейн, ничего не помогло((




Сообщение отредактировал alex_xp_77 - Пн, 25.08.2014, 22:08
 
denis2000Дата: Вт, 26.08.2014, 09:16 | Сообщение # 414
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

alex_xp_77, А влоге вполне валидное завершение работы движка, отконнектился, левел закрыл, конфиг сохранил, директХ закрыл и тд. и тп. Отсюда советы:
1. Прежде всего!!! Разберитесь с ошибкой винды.
2. Без гемдаты номально стартует? Значит ищите проблему далее в своих правках.
3. По логу левел загрузился и рендер заработал, значит проблема уже скорее всего не в нем, а также в текстурах, партиклах или шейдерах
4. Проблема врятли в скриптах, так как она наверняка отразилась бы в логе.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
alex_xp_77Дата: Вт, 26.08.2014, 20:59 | Сообщение # 415
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Цитата denis2000 ()
2. Без гемдаты номально стартует?

Поменял террейн, поставил тестовый, ВСЕ ПОШЛО, теперь немного я в ступоре Денис, попробую террейн без ничего(пустой) откампилить, если все оке отпишусь, вобщем пустой тоже не пошел, вылет с просьбой отправить проблему в майкрософт, незнаю, наверно придется новую карту делать начиная с макса, экспотировать заного с нуля, что то не так, мне этого уважаемый Денис не понять(((




Сообщение отредактировал alex_xp_77 - Вт, 26.08.2014, 22:05
 
denis2000Дата: Ср, 27.08.2014, 08:20 | Сообщение # 416
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

alex_xp_77, Хм... Странно.
Что за ошибку выдает винда озвучите? Насколько "пустой" террейн? Рекомендую оставить только статическую геометрию, убрать весь спавн, свет, динамические объекты, пути и графпоинты (чтобы не потерять наработки сохраните эти настройки в отдельной папке), сделать сетку на автомате, поставить пару графпоинтов и скомпилировать на драфте - если сработает, нужно пробовать компиляцию с минимальными настройками (тоже пройдет довольно быстро) и снова попробовать на движке - если работает идти дальше: сетка, свет, динобъекты и спавн.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
alex_xp_77Дата: Пт, 29.08.2014, 21:08 | Сообщение # 417
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Ну понял одно не прет из за железа, хотя карта вот такаЯ вид с боку http://SSMaker.ru/8422d6e8/ , но видать слабенький комп дорогой Денис, видать не судьба, хотя я делал билд на драфте, хотя 4 гб опративы, видео 440 гт, атлон 2 ядра, что странно у меня больше карта шла, а тут видимо много динамики, бордюров полно, буду карту урезать, два тоннеля, карта конечно интересная, много работал над ней, ниче надеюсь обрежу пойдет, может из за модификатора "субвиде" он как бы крайне не желателен при создания сталкера, тем что дробит полигоны и делает невозможным работу в sdk, много жрет ресурсов, но без него не будет так все плавно, наверно из за него и не прет, карта 1100м на 900м Спасибо Денис за помощь, как уменьшу откампилю напишу))

Добавлено (29.08.2014, 21:08)
---------------------------------------------
Доброго вечера уважаемой публике, у меня вопрос по вылету, в последний раз мы с Денисом общались, я начал делать новый террейн "пригород Лиманска", но вот он голый я его закомпилил, ну посадил пару деревьев, постелил аи_сетку, свет, и все так далее, и вот при загрузке игры произошел вылет с таким логом FATAL ERROR

[error]Expression : m_tpCrossTableVFS
[error]Function : CGameLevelCrossTable::CGameLevelCrossTable
[error]File : e:\stalker\patch_1_0004\xr_3da\xrgame\game_level_cross_table_inline.h
[error]Line : 24
[error]Description : Can't open cross table!

Понимаю что, то то элементарно, но не могу понять, почему просит какую то динамику, или что то я пропустил, помогите кто знает в чем дело, графов на террейне всего 2, но он тестовый, думаю достаточно!!!!


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

alex_xp_77, Сross table находиться в файле game.graph. Где-то косяк с его компиляцией.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ДизельДата: Вс, 05.10.2014, 01:41 | Сообщение # 419
Сталкер
Разработчики
Сообщений: 260
Награды: 1
Репутация: [ 136 ]



Почему в ЗП СДК 1.6 fake Nosun не работает? Как сделать подземелье тёмным, не нарушая освещение на поверхности?


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

Цитата Дизель ()
Почему в ЗП СДК 1.6 fake Nosun не работает?

Видимо потому, что настроен не верно.


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