Documentation

Сборка исходного кода

1. Клонируем проект рекурсивно

git clone https://github.com/RedPandaProjects/Stalker2UE --recursive
...

2. Сборка X-Ray Engine

X-Ray находится по данному пути:

{Папка с репозиторием}/Source/XRayEngine/Source/Engine.sln

Данный проект нужно открыть и скомпилировать с нужной конфигурацией.
(Таблица соответствий конфигураций UnrealEngine с XRayEngine)

2.1. Пример сборки

Сборка "DebugGame Editor" в проекте Unreal
Для этого мне нужно собрать все решение с конфигурацией Debug. Все как в той таблицы иначе не запуститься!

...

3. После сборки X-Ray Engine

После успешной сборки X-Ray Engine, следует вернуться в корневую папку репозитория, и сгенерировать проект.

Примечания.
* Если нет пунктов "Generate Visual Studio project files", можно исправить по этому видео.
* Перед генерацией проекта, в избежании ошибок при компиляции, нужно оставить только последнюю версию MSVC в Visual Studio Installer

...

3.1. Компиляция файлов для запуска проекта Unreal Engine

После генерации проекта Visual Studio, нужно открыть его и выбрал нужную конфигурацию собрать.

Примечания.
* После сборки возможно запустить редактор, но вы не сможете играть пока не поставите полный контент.
* Актуальную сборку контента для последнего билда вы можете найти в дискоде, в канале #last-build

...
Соответствия конфигураций решений
Unreal Engine 5 X-RAY Engine
Debug Debug
Debug Client Debug
Debug Editor Debug
Debug Server Debug
DebugGame Debug
DebugGame Client Debug
DebugGame Editor Debug
DebugGame Server Debug
Development Release
Development Client Release
Development Editor Release
Development Server Release
Shipping Shipping
Shipping Client Shipping
Shipping Server Shipping
Test Shipping
Test Client Shipping
Test Server Shipping
Смена игры в Unreal Engine

1. Подготовка

Для начала убедитесь, что у вас не загружен уровень со спавном, иначе это может привезти к вылету.
Также желательно создать пустой уровень.

...

2. Смена игры и перезагрузка XrGame

Выбираем нужную игру и ждём пока перезагрузится нужный XrGame

Примечание.
* Спавн автоматически обновляется после смены игры.

...
Импорт контента из gamedata/rawdata

1. Подготовка ресурсов

Если вы решили импортировать контент из gamedata, то вам сначала надо поставить полную версию gamedata и rawdata в корневую папку проекта

Игра Название gamedata Название rawdata
S.T.A.L.K.E.R.: Shadow of Chernobyl gamedata_soc rawdata_soc
S.T.A.L.K.E.R.: Clear Sky gamedata_cs rawdata_cs
S.T.A.L.K.E.R.: Call of Pripyat gamedata rawdata

Таблица с названием папок, куда следует поместить ресурсы в зависимости от нужной игры.

Примечание.
* Изначально папки gamedata для всех трёх частей есть в git'е, но в них только скрипты и конфиги ИХ УДАЛЯТЬ ИЛИ ЗАМЕНЯТЬ НЕЛЬЗЯ

...

2. Импорт в Unreal Engine

После того как вы поставили gamedata в редакторе вам надо сделать минимальный импорт нужного контакта для запуска PIE(Play In Editor).

Для начало откройте меню "Stalker"

...


По очерёдности вызовете три команды импорта такие как "Import UI Textures", "Import Physical Materials", "Import Meshes".
После этого можно создать тестовую локу и запустить PIE

Примечание.
* Проект позволяет импортировать следующие форматы в UE5:
- dds(с сжатием)
- ogf
- object
- level(XRay SDK)
- gamemtl.xr

Как работать с WayObject

1. WayObjects

Для начало его нужно создать. Ищем в "Place Actors" Stalker Way Object.

...


Далее нужно перейти в режим редактирования "Way Points Editor".

...


Описания режима редактирования. Он полностью аналогичен оригинальному редактору.

...



Пример работы.

2. Дополнительная информация

Way Object'ы являются частью спавна, следовательно, при их редактирование спавн устаревает и требует пересборку.
Она также может быть автоматической или ручной все как вы настроите.
Про то как работать со спавном прочтите "Как работать с Spawn Object'ами"

Рендер Way points можно включить и выключить в "show"

...
Как работать с AI Map

1. Создание

Редактирования AIMap схоже с оригинальным редактором GSC
Для начало надо выбрать режим редактирования AIMap в редакторе.

...


Описания окна редактора AIMap.

...



Примечание.
* Генерация работает только в зоне StalkerAIMapBoundsVolume:

...


* Генерация не будет работать за зоной StalkerAIMapBoundsVolume. Также их может быть несколько.

2. Пример работы с AIMap

Генерация AIMap.

3. Дополнительная информация

UnrealEditor автоматически помечает что AI стека требует пересборку

...


Сборка может быть автоматический при необходимости перед запуском PIE(Play In Editor)

...


Рендер AIMap можно включить и без режима редактирования AIMap в меню "show"

...
Как работать с SpawnObject

1. Создание

Редактирования Spawn Objects схоже с оригинальным редактором GSC
В "Place Actors" создан отдельный список объектов, он заполняется автоматически как в оригинальном SDK GSC.

...


Они также работают через SE_Factory.

...


Свойства почти идентичны GSC свойствам спавна Shape (Box, Sphere). Добавляются как компонент.

...


Пример заполнения Shapes SpawnObject.

...


Их отображение можно отключить.

...

2. Сборка Spawn для игры

Также UnrealEditor автоматически помечает, что LevelSpawn требует пересборку.

...


Сборка спавна как и у пыс делится на два типа:
1. LevelSpawn - Спавн уровня (Спавн уровня можно собрать только на самом уровне)
2. GameSpawn - Спавн всей игры (Собирается из спавнов уровней как настроите)

Она также может быть автоматической при необходимости для PIE(Play In Editor).

...


Для PIE есть режимы сборки GameSpawn

...


Настройка списка уровней которые используется для сборки GameSpawn находится в настройках проекта. Для каждой игры свой список

...


Тут настраивается ссылка на уровень также и "Include In Build Spawn"

...


При отключенном "Include In Build Spawn" и в PIE "Ignore "Include In Build Spawn"" уровень при автоматической сборке "Build full spawn" не будет включен в список

Также сборку можно вызвать в ручную

...

Сборка GameSpawn из бара или меню будет собирать весь GameSpawn целиком с игнорированием "Include In Build Spawn"(то есть все уровне которые есть в списке для данной игры)

Как выглядит лог сборки LevelSpawn

...

Как выглядит лог сборки GameSpawn

...


Для корректной сборки GameSpawn нужно чтобы все пункты были выполнены:
1. Хотя бы один GraphPoint на каждом уровне
2. только один "actor" он single_player
3. наличие у уровня собранного LevelSpawn,AIMap



Собранный файл выглядит как в оригинале:

...

При ошибке при сборке спавна, подробная информация указывается в логе

...
Примечания по CForm
...


CForm -- это геометрия для коллизии и физики GSC

В отличие от AIMap или Spawn она не может проверяться на необходимость пересборки


Можно настроить её сборку автоматически перед началом PIE(Play In Editor)

...


Также её можно собрать вручную

...
Перезагрузка XrGame и XrSE_Factory


Перезагрузка XrGame и XrSE_Factory делается одной кнопкой

...

Если есть потребность перезагрузить, обновить список объектов или обновить конфиги, то эта кнопка для вас.
Она полностью перезагружает system.ltx, game.ltx

Также перезагружает se_factory включая его скрипты.
У XrGame скрипты перезагружаются каждый запуск PIE!

Создание простого уровня