Подключение одного уровня
Подключение одного уровня | |
Автор | aka_sektor |
Тип статьи | руководство |
Актуальность | ЗП |
Необходимый софт | Текстовый редактор, X-Ray SDK 0.7 |
Связанные статьи | |
Декомпиляция уровня Подключение одного уровня |
Декомпилированный уровень не будет работать в игре сразу. Прежде необходимо его настроить и скомпилировать.
Подготовка геометрии
1) Поскольку тестовый уровень из билдов, достаточно будет только геометрии и детальных объектов.
- detail_object.part
- scene_object.part
Из папки editors\rawdata\levels\tir, удалите следующие файлы:
- ai_map.part
- glow.part
- group.part
- light.part
- portal.part
- ps.part
- sector.part
- shape.part
- sound_env.part
- sound_src.part
- spawn.part
- wallmark.part
- way.part
2) Запустите Level Editor, и откройте уровень: File -> Open... -> tir.level
В логе появится множество ошибок: Can't find texture
Отсутствуют текстуры из ТЧ. Их можно быстро вернуть, если использовать: Пак текстур из ТЧ для ЗП
Распакуйте архив, и переместите папку textures из SoC Textures for CoP\Level
Без замены файлов в: editors\gamedata
3) Останется только одна уникальная для уровня ошибка:
Can't find texture 'terrain\terrain_tir_lex'
Отсутствует текстура террейна. Скопируйте её из папки: xrCore build 1844 - Feb 19 2004\gamedata\levels\tir3\terrain
В папку: editors\gamedata\textures\terrain
Прописка свойств сцены
Ознакомьтесь со статьёй: Свойства сцены в Level Editor
1) В Level Editor, откройте свойства сцены: Scene -> Options
2) Измените значение ключей Name prefix и Level path с tir3 на tir
3) Ключу Quality установите пресет Draft
4) Проверьте чтобы значение ключа Game Type было только Single
5) Сохраните изменения: File -> Save
Прописка в конфиги
Прописывая тестовый уровень в игру, нужно отключить оригинальные уровни.
1) Перейдите в папку editors\gamedata\configs
2) С помощью любого текстового редактора, откройте файлы game_levels.ltx и game_maps_single.ltx
3) Удалите содержимое файла game_levels.ltx, и впишите в него следующее:
[levels]
level01
[level01]
name = tir
caption = "tir"
offset = 10000.0, 1000.0, 10000.0
weathers = [default]
id = 01
4) Удалите содержимое файла game_maps_single.ltx, и впишите в него следующее:
[def_map]
bound_rect = -10000.0f, -10000.0f, 10000.0f, 10000.0f
texture = ui\ui_nomap2
[global_map]
bound_rect = 0.0, 0.0, 1024, 1024.0
max_zoom = 6.0
texture = ui\ui_global_map
[level_maps_single]
tir
[tir]
global_rect = 307.0, 90.0, 717.0, 500.000000
music_tracks = zaton_musics
weathers = dynamic_default
На самом деле, прописывать уровень в секцию [level_maps_single]
— необязательно.
Игра не вылетит. В этой секции, вы лишь задаёте уровню уникальные координаты расположения на карте в КПК, фоновую музыку и погоду.
Генерация AI-сетки
Перед тем как делать наполнение, требуется добавить AI-сетку.
Ознакомьтесь со статьёй: Интерфейс Level Editor
1) Выберите: Edit Mode -> Object
Нажмите Ctrl + A на клавиатуре, чтобы выделить все объекты геометрии на уровне.
2) Выберите: Edit Mode -> AI Map
Выполните: Snap List -> Commands -> Add Selected To List
Создастся список объектов, игнорируемых при генерации AI-сетки.
3) Добавьте 1 "node" на террейн кнопкой Add (Добавить новый объект) в панели инструментов.
4) Выполните: AI Map Commands -> Generate Full
AI-сетка готова!
Минимальное наполнение
1) Чтобы игрок появился на уровне, его нужно добавить.
В Level Editor, выберите: Edit Mode -> Spawn Element
Найдите actor в Current Spawn/Spawns, и добавьте на уровень кнопкой Add.
Выделите спавн-элемент actor, и нажмите на клавиатуре Enter (чтобы перейти в Properties).
Ключу npc profile измените значение с default на actor.
2) Обязательно нужно добавить Light-объект, иначе ошибка: Can't find any Light Object
Выберите: Edit Mode -> Light, и добавьте на уровень кнопкой Add, можно за пределы уровня.
3) Обязательно нужно добавить Glow-объект, иначе ошибка: Can't find any Glow Object
Выберите: Edit Mode -> Light, и добавьте на уровень кнопкой Add, можно за пределы уровня.
Выделите Glow-объект, и нажмите на клавиатуре Enter (чтобы перейти в Properties).
Ключу Texture задайте любую текстуру из папки glow (например, glow_04).
4) Обязательно нужно добавить graph point, иначе на этапе компиляции спавна произойдёт вылет: XrAI:Вылет на стадии Building level game graph
Выберите: Edit Mode -> Spawn Element
Найдите ai\graph point в Current Spawn/Spawns, и добавьте на уровень кнопкой Add.
Генерация сектора
Дабы избежать ошибки Scene has non associated face, создайте сектор.
Выберите: Edit Mode -> Sector
Выполните: Command -> Create Default
Чтобы сцена не была красного цвета, кликните ПКМ (правой кнопкой мыши), и выполните: Visibility -> Hide All
Генерация текстур LOD'ов
Сделать билд уровня не выйдет, пока не сгенерированы LOD'ы.
Произойдёт ошибка: There is no texture
1) Запустите Level editor не открывая уровень.
Выполните: Scene -> Objects -> Library Editor
2) В окне Object Library, перейдите в папку levels\tir
Зажмите Ctrl на клавиатуре, выберите все файлы начинающиеся на tir_lod, и поставьте галочку Preview.
Нажмите кнопку Make LOD (Low Quality), и дождитесь окончания генерации.
Билд
Закончив работу над уровнем в SDK, остается его сбилдить.
Выполните: Compile -> Build
Билд должен пройти успешно, в логе могут быть лишь не критические ошибки:
Компиляция
Компиляция уровня в игровой формат состоит их нескольких этапов.
Этап 1 — компиляция геометрии
start bin\designer\release\xrLC.exe -f tir -keep_temp_files
На этом этапе возникнет 2 или 6 варианты вылета: xrLC:Build_Load.cpp
Нужно 38 *.dds текстур по очереди конвертировать в *.tga и импортировать в SDK.
Этап 2 — компиляция травы и детейлов
start bin\designer\release\xrDO_light.exe -f tir
Этап 3 — компиляция AI-сетки
start bin\designer\release\xrAI.exe -f tir -keep_temp_files
Этап 4 — верификация AI-сетки
start bin\designer\release\xrAI.exe -verify tir
Этап 5 — компиляция спавна
start bin\designer\release\xrAI.exe -no_separator_check -s tir -out all
Перенос файлов в игру
Уровень готов, осталось его перенести в игру.
1) В папке с игрой, создайте папку gamedata, а в ней папки:
- configs
- levels
- spawns
- textures
2) Скопируйте из папки gamedata/configs в аналогичную в игре, следующие файлы:
- game_levels.ltx
- game_maps_single.ltx
3) Скопируйте из папки gamedata/levels в аналогичную в игре, папку tir.
4) Скопируйте из папки gamedata/spawns в аналогичную в игре, файл all.spawn.
5) Чтобы понять, каких именно текстур не хватает, можно запустить игру, а потом посмотреть в её логе строчки вида:
! Can't find texture 'crete\crete_roof2'
Где найти лог, см. Поиск решения вылета#Игра
Благо S.T.A.L.K.E.R. - Зов Припяти не вылетает, если отсутствуют текстуры.
Скопируйте из gamedata/textures в аналогичную в игре, указанные в логе файлы в папках.
Готово!