Подключение одного уровня — различия между версиями

Материал из MODFAQ.RU — моддинг классического S.T.A.L.K.E.R., TES и Fallout
Перейти к: навигация, поиск
м
м
 
(не показаны 3 промежуточные версии этого же участника)
Строка 43: Строка 43:
 
* wallmark.part
 
* wallmark.part
 
* way.part
 
* way.part
 
  
 
2) Запустите '''Level Editor''', и откройте уровень: ''File -> Open... -> '''tir.level'''''
 
2) Запустите '''Level Editor''', и откройте уровень: ''File -> Open... -> '''tir.level'''''
Строка 54: Строка 53:
  
 
Без замены файлов в: ''editors\gamedata''
 
Без замены файлов в: ''editors\gamedata''
 
  
 
3) Останется только одна уникальная для уровня ошибка:
 
3) Останется только одна уникальная для уровня ошибка:
Строка 64: Строка 62:
  
 
В папку: ''editors\gamedata\textures\terrain''
 
В папку: ''editors\gamedata\textures\terrain''
 
  
 
== Прописка свойств сцены ==
 
== Прописка свойств сцены ==
 
Ознакомьтесь со статьёй: [[Свойства сцены в Level Editor]]
 
Ознакомьтесь со статьёй: [[Свойства сцены в Level Editor]]
 
  
 
1) В '''Level Editor''', откройте свойства сцены: ''Scene -> Options''
 
1) В '''Level Editor''', откройте свойства сцены: ''Scene -> Options''
Строка 79: Строка 75:
  
 
5) Сохраните изменения: ''File -> Save''
 
5) Сохраните изменения: ''File -> Save''
 
  
 
== Прописка в конфиги ==
 
== Прописка в конфиги ==
 
Прописывая тестовый уровень в игру, нужно отключить оригинальные уровни.
 
Прописывая тестовый уровень в игру, нужно отключить оригинальные уровни.
 
  
 
1) Перейдите в папку ''editors\gamedata\configs''
 
1) Перейдите в папку ''editors\gamedata\configs''
Строка 126: Строка 120:
  
 
Игра не вылетит. В этой секции, вы лишь задаёте уровню уникальные координаты расположения на карте в КПК, фоновую музыку и погоду.
 
Игра не вылетит. В этой секции, вы лишь задаёте уровню уникальные координаты расположения на карте в КПК, фоновую музыку и погоду.
 
  
 
== Генерация AI-сетки ==
 
== Генерация AI-сетки ==
Строка 150: Строка 143:
  
 
AI-сетка готова!
 
AI-сетка готова!
 
  
 
== Минимальное наполнение ==
 
== Минимальное наполнение ==
Строка 183: Строка 175:
  
 
Найдите '''ai\graph point''' в ''Current Spawn/Spawns'', и добавьте на уровень кнопкой '''Add'''.
 
Найдите '''ai\graph point''' в ''Current Spawn/Spawns'', и добавьте на уровень кнопкой '''Add'''.
 
  
 
== Генерация сектора ==
 
== Генерация сектора ==
Строка 193: Строка 184:
  
 
Чтобы сцена не была красного цвета, кликните ПКМ (правой кнопкой мыши), и выполните: ''Visibility -> Hide All''
 
Чтобы сцена не была красного цвета, кликните ПКМ (правой кнопкой мыши), и выполните: ''Visibility -> Hide All''
 
  
 
== Генерация текстур LOD'ов ==
 
== Генерация текстур LOD'ов ==
Строка 211: Строка 201:
  
 
Нажмите кнопку '''Make LOD (Low Quality)''', и дождитесь окончания генерации.
 
Нажмите кнопку '''Make LOD (Low Quality)''', и дождитесь окончания генерации.
 
  
 
== Билд ==
 
== Билд ==
Строка 222: Строка 211:
 
* [[Process Wallmark - failed]]
 
* [[Process Wallmark - failed]]
 
* [[Object has invalid face(s)]]
 
* [[Object has invalid face(s)]]
 
  
 
== Компиляция ==
 
== Компиляция ==
Строка 230: Строка 218:
 
# Запишите в них команды
 
# Запишите в них команды
 
# Выполните по очереди
 
# Выполните по очереди
 
  
 
=== Этап 1 — компиляция геометрии ===
 
=== Этап 1 — компиляция геометрии ===
Строка 237: Строка 224:
 
</source>
 
</source>
  
На этом этапе возникнет 2 вариант вылета: [[xrLC:Build_Load.cpp]]
+
На этом этапе возникнет 2 или 6 варианты вылета: [[xrLC:Build_Load.cpp]]
  
 
Нужно 38 [[*.dds]] текстур по очереди конвертировать в [[*.tga]] и импортировать в SDK.
 
Нужно 38 [[*.dds]] текстур по очереди конвертировать в [[*.tga]] и импортировать в SDK.
  
 
+
=== Этап 2 — компиляция травы и детейлов ===
=== Этап 2 — компиляция детальных текстур ===
 
 
<source lang=bat>
 
<source lang=bat>
 
start bin\designer\release\xrDO_light.exe -f tir
 
start bin\designer\release\xrDO_light.exe -f tir
 
</source>
 
</source>
 
  
 
=== Этап 3 — компиляция AI-сетки ===
 
=== Этап 3 — компиляция AI-сетки ===
Строка 252: Строка 237:
 
start bin\designer\release\xrAI.exe -f tir -keep_temp_files
 
start bin\designer\release\xrAI.exe -f tir -keep_temp_files
 
</source>
 
</source>
 
  
 
=== Этап 4 — верификация AI-сетки ===
 
=== Этап 4 — верификация AI-сетки ===
Строка 258: Строка 242:
 
start bin\designer\release\xrAI.exe -verify tir
 
start bin\designer\release\xrAI.exe -verify tir
 
</source>
 
</source>
 
  
 
=== Этап 5 — компиляция спавна ===
 
=== Этап 5 — компиляция спавна ===
Строка 264: Строка 247:
 
start bin\designer\release\xrAI.exe -no_separator_check -s tir -out all
 
start bin\designer\release\xrAI.exe -no_separator_check -s tir -out all
 
</source>
 
</source>
 
  
 
== Перенос файлов в игру ==
 
== Перенос файлов в игру ==
Строка 302: Строка 284:
  
  
[[Категория:X-Ray_SDK]][[Категория:Level_Editor]]
+
[[Категория:X-Ray_SDK]][[Категория:Level_Editor]][[Категория:Конфиги]][[Категория:Текстуры]]

Текущая версия на 00:19, 27 июня 2022

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

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


Готово!