Подключение одного уровня — различия между версиями
м |
м |
||
(не показаны 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 | + | На этом этапе возникнет 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 — компиляция геометрии
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 в аналогичную в игре, указанные в логе файлы в папках.
Готово!