Подключение одного уровня

Материал из MODFAQ.RU — моддинг игр серии S.T.A.L.K.E.R., The Elder Scrolls и Fallout
Перейти к: навигация, поиск

Подключение одного уровня

Автор 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. Создайте *.cmd (или *.bat) файл для каждого этапа
  2. Запишите в них команды
  3. Выполните по очереди

Этап 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 в аналогичную в игре, указанные в логе файлы в папках.


Готово!