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


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ОрланДата: Ср, 15.01.2014, 17:49 | Сообщение # 316
Отмычка
Пользователи
Сообщений: 26
Награды: 0
Репутация: [ 0 ]

Цитата denis2000 ()
настроен так: ggTool.pl section4.bin > parse_lvids.ltx. По сути он должен работать но не работает.Поздравляю команда ggTool.pl section4.bin > parse_lvids.ltx означает запустить ggTool.pl дать ему на обработку файл section4.bin и результат работы вместо консоли отправить в файл parse_lvids.ltx. Есть только одно НО в Win 7 и вероятно в Vista этот метод не работает из-за каких-то глюков командного процессора. Выход убрать > parse_lvids.ltx и читать вывод с консоли, а не из файла.

Цитата denis2000 ()
dmitry778, Консоль - это то черное окно (точнее виртуальная консоль - но это не важно) которое откроется после запуска программы, чтобы оно не закрылось после отработки программы в новой строке батника добавь pause

когда то это помогало , но вот сейчас поставил ACDC декомпилировал  все нормально ,но вот  что смешно в этот раз не как не работает  ggTool и ggEditor ,  первый ничего не ищет постоянно ошибка   http://SSMaker.ru/bb2475e3/

Что еще можно предпринять ?

Можно попытаться получить не битый файл section4.bin. denis2000


Сообщение отредактировал Орлан - Чт, 16.01.2014, 16:06
 
gamerДата: Пт, 17.01.2014, 22:04 | Сообщение # 317
Новичок
Пользователи
Сообщений: 82
Награды: 0
Репутация: [ 0 ]

Как правильно розчитать game vertex если записую результат ggeditor-а вылет Invalid vertex for object



А где исходные данные? А где постановка задачи? denis2000

Добавлено (17.01.2014, 22:04)
---------------------------------------------
Исходное значение 472   ну если 934-472 =462   ну тогда спавн на Янове

Имеем 3 значения:
[1] Начальный GVID подключаемой локации - допустим, 1000
[2] Конечный GVID из старого section4.bin - допустим, 6000
[3] GVID какого-то объекта на подключаемой локации - допустим, 1021
Тогда, к третьему значению ([3]) добавляем разницу между вторым ([2]) и первым значением ([1]), то есть:
GVID какого-то объекта на ПОДКЛЮЧЕННОЙ локации будет уже: 1021 + (6000 - 1000) = 6021
Не забудьте проверить section4.bin - возможно вы используете старый, стандартный.

XOBAH

Спасибо.Перенёс так много чего рпботает ))
Ещё один вопросик  гейм вертексы way_локация СЧитаетсЯ точно также?
L

Пожалуйста. Да. XOBAH


Сообщение отредактировал gamer - Сб, 18.01.2014, 08:25
 
ОрланДата: Сб, 18.01.2014, 05:29 | Сообщение # 318
Отмычка
Пользователи
Сообщений: 26
Награды: 0
Репутация: [ 0 ]

denis2000  там я разобрался битый Был Эдитор , скачал другой  все работает , но вот почему то скачиваю новые версии ACDC 1,35  и 1,36  и они как не кручу не хотят декомпилировать  те рекомендации что прописаны у вас я уже испробовал ?

1. Проверьте версию stkutils, последняя: http://yadi.sk/d/l6osH5PQF9ynj
2. Перед декомпиляцией проведите сканирование конфигов, для этого, сначала удалите sections.ini, иначе сканирования не будет. Далее выполняйте следующий батник:

Код
universal_acdc.pl -d all.spawn -out output -scan ../config/ -sort complex
pause

Где "../config/" является путем до ваших конфигов относительно батника. Т.е. запускаем батник из папки gamedata/spawns/ - читаться конфиги будут из папки gamedata/config/ (../ - переход на уровень выше, в gamedata/; /config/ - переход в папку config/ (gamedata/config/))
XOBAH
 
gamerДата: Пн, 20.01.2014, 14:53 | Сообщение # 319
Новичок
Пользователи
Сообщений: 82
Награды: 0
Репутация: [ 0 ]

при компиляции all.spawn  выдаёт лог Argument "" isn't numeric in pack at stkutils/data_packet.pm line 34 -какието не числовые обновления (all.spawn-при етом работает вылетов нету) .что означает етот лог?

интересно ошибка сама по себе пропала

Аргумент какого-то значения был пустым (""), хотя должен быть числовым. ACDC сам, скорее всего, привел его к нужному виду, подставив стандартное значение или 0. XOBAH


Сообщение отредактировал gamer - Пн, 20.01.2014, 15:57
 
alex_xp_77Дата: Пт, 24.01.2014, 14:04 | Сообщение # 320
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Люди добрые помогите пожалуста понять что просит у меня компилятор, при hiqh, это средняя по качеству компиляция, на драфте, без проблем, все работает, но как только ставлю на средние, билд проходит без ошибок, а как только компилирую, не доходя до финиша происходит вылет вот на этом месте :
* New phase started: Resolving materials...    |    | model 'trees\new_trees\bush_2_01' - 2 subdivisions
    | Calculating materials/subdivs...
    | Perfroming subdivisions...
    | Removing empty subdivs...
    | Detaching subdivs...
    |    | 218 subdivisions.
    | Isolating vertices...
    |    | ::compact:: 394402 verts removed
 
* New phase started: Build UV mapping...
    | Processing...
    |    | ::compact:: 1407 verts removed
подскажите люди добрые , уж не на ноды ли вылез лог??Это личное мнение, не знаю на что думать, заранее большое спасибо!!
PS В сполер не смог засунуть лог, строчки путаются !!




Сообщение отредактировал alex_xp_77 - Пт, 24.01.2014, 14:07
 
denis2000Дата: Пт, 24.01.2014, 22:14 | Сообщение # 321
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

alex_xp_77, Все-же хотелось бы увидеть в логе сообщение об ошибке, раз имеет место вылет. А он происходит, если это конечно последняя фаза в логе, на этапе построения карты развертки текстуры.

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

Да именно последняя фраза, опять сделал на драфте Денис, и опять все пошло, почему не хочет делаться на средних не понятно, вылета и лога нет, просто прекращение компиляции без сохранений данных, если понимаешь о чем я, ( в конце компиляции время конпиляции--клик оке---сохранение параметров!!)Этого нету, без лога, если продолжать далее делать уже авапером работу, то все пойдет до конца на средних, только игра не запуститься, причем опять же без лога!!хотел уже карту выпустить, она готова, только осталось сделать переход на другую локацию!!И вот столкнулся с непонятной проблемой??Может в компиляторе нужно прописать слово -hiqh,costom, в авапере прописываю на пример -draft!! МОжет компилятор не тот??вот сам компилятор http://SSMaker.ru/8bf0ea6c/ !! Помогите пожалуста, направьте на путь истинный, сам террейн просто на -drafte без шейдеров, сама текстура террейна http://SSMaker.ru/186794a9/



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

alex_xp_77, Может просто памяти не хватает, вот и вылет без конкретного лога. Какая ось? Сколько физической памяти? Сколько свободно на момент запуска компилятора?

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

Вот общие параметры моего железа http://SSMaker.ru/1c2d670b/

Добавлено (25.01.2014, 15:41)
---------------------------------------------
делаю на хр что бы на всех компах игра шла. Да для средних должна идти компиляция


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

alex_xp_77, С такой конфигурацией можно компилировать на High карты либо совсем не большие* или только на Draft.
* - Понятие "не большие", довольно не определенное: например на похожей конфигурации Агропром компилиться, а вот Кордон нет, хотя размеры карт отличаются не значительно.

Я бы рекомендовал 8Gb ОЗУ как минимум! А процессор - лучше меньше ядер, но каждое ядро как можно более производительное. Например я тестировал скорость компиляции на двух процессорах AMD и выиграл процессор с двумя быстрыми ядрами, а не с четырьмя более медленными (хотя совокупная производительность ядер этих процессоров была в пользу четырехядерного). Все потому что не на всех этапах компилятор грузит все ядра, на некоторых работает только один поток и как следствие одно ядро. Винда же должна быть естественно 64 битная (я рекомендую 7-ку, висту или ХР не предлагать), во первых потому что в 64 битной системе процесс может запросить у системы более 2 ГБ (то есть 2 в 16 степени страниц памяти по 64кБ), во вторых потому что 64 битная система способна адресовать более 3,24 ГБ физической памяти (у вас ведь физической наверняка 4 ГБ)


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

Хотя один раз сообщение было что не хватает физической памяти, Выделил еще в файл подкачки, думаю сейчас все будет оке!!Оно понятно, что игры создавать нужно железо что надо. И, да ты прав у меня 4 гб оперативы!! Но что тут сделать попробую еще раз !!
Сама локация чуть больше Агропрома, возможно такая же !! 1.5км на 1.5 км

Добавлено (25.01.2014, 22:25)
---------------------------------------------
Да, вылетает при разных ситуациях но на одной и той же теме, с этими словами:
* New phase started: Build UV mapping...
| Processing...
ЛИбо вот так:

* New phase started: Build UV mapping...
| Processing...
|    | ::compact:: 1407 verts removed

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




Сообщение отредактировал alex_xp_77 - Сб, 25.01.2014, 22:31
 
denis2000Дата: Сб, 25.01.2014, 22:46 | Сообщение # 327
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата alex_xp_77 ()
И еще Денис такой вопрос, сам террейн на драфте он без шейдеров правильно?? некая серозеленная непонятная гладь, меня все же беспокоит что на -драфте, а террейн какой то бесцветный

Да на драфте террейн должен быть без шейдеров, но с детал-текстурой (если прописали в textures.ltx). Серозеленая гладь? Но ведь совпадает с текстурой террейна.


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

Цитата denis2000 ()
Но ведь совпадает с текстурой террейна.
Делал в фотошопе, с применением альфа-канала
Цитата denis2000 ()
если прописали в textures.ltx
я не прописывал ничего, единственно что я сделал это трогал скрипты 
game_maps_single,game_levels,game_graphs, сделал по урокам geniora, все пашет работает, без лагов и глюков!!Только смущает текстура самого террейна без шейдеров!! А по рисунку не глядел, когда експортировал с макса в ае все подошло, сработало как говорится на 10 из 10!!


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

Цитата alex_xp_77 ()
смущает текстура самого террейна без шейдеров!

На драфте их нет!!! Весь террейн залит подложкой из детал-текстуры, которая назначена в файле textures.ltx (ТЧ) или *.thm (ЧН, ЗП), а если и этого нет, то получается нечтомутно-пятнистое на террейне.


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

Именно так Денис!!Я просто не сталкивался с этим скриптом, по этому как править не знаю!!Если вы знаете как, хоть как то исправит (нечто мутно-пятнистое), поделитесь пожалуста опытом!!Буду очень благодарен!!

 
Поиск: