Декомпільований рівень не працюватиме у грі відразу. Насамперед необхідно його налаштувати та скомпілювати.
Підготовка геометрії
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) Залишиться лише одна унікальна для рівня помилка:
Cant 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
Білд повинен пройти успішно, у лозі можуть бути лише критичні помилки:
- Level doesn't contain HOM objects
- Process Wallmark - failed
- Object has invalid face(s)
Компіляція
Компіляція рівня в ігровий формат складається з кількох етапів.
- Створіть файл *.cmd (або *.bat ) для кожного етапу
- Запишіть у них команди
- Виконайте по черзі
Етап 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) Щоб зрозуміти, яких саме текстур не вистачає, можна запустити гру, а потім подивитися в її лозі рядки виду:
! Cant find texture 'crete\crete_roof2'
Де знайти лог, див. Пошук рішення вильоту # Гра
Благо STALKER - Поклик Прип'яті не вилітає, якщо текстури відсутні.
Скопіюйте з gamedata/textures в аналогічну у грі, вказані у лозі файли у папках.
Готово!