Пошаговый гайд по созданию новых предметов в S.T.A.L.K.E.R. 2

S.T.A.L.K.E.R. 2: Сердце Чернобыля — это продолжение культовой серии, где игроки погружаются в постапокалиптический мир Зоны. Эта игра славится своей глубокой атмосферой, системой выживания и взаимодействия с окружающим миром. В неё заложены элементы исследования, боя и RPG, которые объединяются в захватывающий мир возможностей. Разнообразить его можно собственными силами с помощью модификаций, добавляющих новые предметы в игре. Здесь мы подробно расскажем о создании подобных модов.

Данный гайд представляет собой подробное руководство по созданию уникальных предметов и их текстур для S.T.A.L.K.E.R. 2. Он будет полезен как начинающим, так и опытным моддерам, стремящимся освоить основы работы с игровыми файлами. Учитывая сложность процесса, важно следовать каждому шагу внимательно, чтобы избежать ошибок.

Создание модов для S.T.A.L.K.E.R. 2: подробное руководство для новичков

Необходимые инструменты

Прежде чем начать, убедитесь, что у вас есть следующие программы:

  • FModel (для работы с игровыми файлами).
  • Unreal Engine 5.1 (для редактирования и импорта новых данных).
  • Notepad++ (или аналогичный текстовый редактор для редактирования конфигурационных файлов).
  • Графический редактор (например, Photoshop или GIMP для создания текстур).

Шаг 1. Определитесь с концепцией

Перед началом важно понять, какой предмет вы хотите создать. Например, вы можете вдохновиться существующими объектами, как, например, «Вазелиновая мазь» из Escape from Tarkov. Это может быть расходник, предмет для продажи или особый квестовый объект.

Для расходуемых предметов откройте файл:

Stalker2/Content/GameLite/GameData/ItemPrototypes/ConsumablePrototypes.cfg

Для квестовых предметов:

Stalker2/Content/GameLite/GameData/ItemPrototypes/QuestItemPrototypes.cfg

Шаг 2. Найдите базовый объект

Выберите предмет, наиболее близкий по функциям к вашему будущему объекту. Например, для «Вазелиновой мази» подойдёт аптечка, так как оба предмета являются расходниками. Откройте файл ConsumablePrototypes.cfg, найдите нужный объект и экспортируйте его данные с помощью функции Export Raw Data (.uasset).

Для квестовых предметов повторите процесс с файлом QuestItemPrototypes.cfg.

Шаг 3: Извлеките настройки генератора

Далее потребуется файл:

Stalker2/Content/GameLite/GameData/ItemGeneratorPrototypes.cfg

Экспортируйте его аналогично предыдущим.

Шаг 4: Редактирование .cfg-файлов

Откройте экспортированные файлы в Notepad++. Найдите описание базового объекта и скопируйте его, начиная с его имени и заканчивая строкой: struct.end

Вставьте этот фрагмент после предыдущей записи, заменив значения следующих параметров:

  • SID: укажите уникальное имя предмета без пробелов.
  • Cost: задайте стоимость предмета.
  • Weight: вес в инвентаре.
  • ItemGridHeight/Width: размеры предмета в ячейках инвентаря.

Код-заготовка предмета:

$ITEMNAME$ : struct.begin {refkey=[0]}
SID = $ITEMNAME$
IsQuestItemProtoype = false
// Flag marking item as quest item in terms of logical operations, eg can not be Dropped, Used or Sold
IsQuestItem = false
ShouldTriggerAnomalies = false
Type = EItemType::Other
RequireWeight = false
Icon = Texture2D'/Game/GameLite/FPS_Game/UIRemaster/UITextures/Inventory/$TEXTUREPATH$
MeshProtoypeSID = Sausage
ItemGridWidth = 1
ItemGridHeight = 1
Cost = $COST$
Weight = $WEIGHT$
struct.end

  • "MeshProtoype" указывает на "Stalker2/Content/GameLite/GameData/MeshPrototypes.cfg" и содержит SID для всех сеток в игре, та, что в примере выше, указывает на SID, который относится к Sausage, это означает, что если вы загрузите этот предмет в свою игру, он будет выглядеть как Sausage в 3D-мире, но когда он будет у вас в инвентаре, он будет выглядеть так, как выглядит ваша вновь созданная текстура.
  • Cost — это стоимость предмета.
  • Weight — это вес предмета.
  • ItemGridHeight/Width — это количество плиток, которые предмет занимает в вашем инвентаре.
  • $ITEMNAME$ — имя вашего предмета
  • $TEXTUREPATH$ — путь к созданной вами текстуре.

Шаг 5: Настройка текстур

Для создания текстуры предмета выполните следующие действия:

  1. Поиск базовой текстуры:
    Перейдите в FModel, измените режим загрузки на Multiple и выполните поиск по пути:
    UITextures/Inventory
    Найдите текстуру, подходящую по размеру, например:
    1x1: аптечка (128x128 пикселей).
    1x2: бутылка воды (200x400 пикселей).
  2. Редактирование:
    Экспортируйте текстуру, измените её в графическом редакторе, сохранив размеры.

Шаг 6: Импорт в Unreal Engine

Создайте новый проект в Unreal Engine 5.1:

  • Перейдите в Edit > Project Settings > Packaging.
  • Активируйте опции: Use pak file, Use io store, Generate chunks.
  • Убедитесь, что отмечена опция Cook everything in the project content directory.

Создайте структуру папок:

Content/GameLite/FPS_Game/UIRemaster/UITextures/Inventory/Consumable

Импортируйте созданную текстуру, настройте её параметры (Texture Group = UI) и упакуйте проект.

После упаковки вернитесь в .cfg-файлы и укажите путь к вашей текстуре:

Icon = Texture2D'/Game/GameLite/FPS_Game/UIRemaster/UITextures/Inventory/Consumable/Название_вашего_файла'

Шаг 7: Редактирование .cfg-файлов

После упаковки текстур (этот процесс может занять некоторое время, особенно в первый раз) вернитесь к .cfg-файлу вашего предмета. Помните строку Texture Path, которую мы временно пропустили? Сейчас мы заполним ее, и если вы следовали инструкции, это будет сделать очень просто.

Пример пути текстур в оригинальной игре:

Icon = Texture2D'/Game/GameLite/FPS_Game/UIRemaster/UITextures/Inventory/Consumable/T_cns_sausage_02.T_cns_sausage_02'

Чтобы указать путь к вашей текстуре, замените его на:

Icon = Texture2D'/Game/GameLite/FPS_Game/UIRemaster/UITextures/Inventory/Consumable/T_cns_ItemNameHere_01.T_cns_ItemNameHere_01'

Замените ItemNameHere на имя вашей текстуры, строго соблюдая регистр символов и следя за тем, чтобы символ ' присутствовал в конце строки. Повторите процесс для всех созданных предметов, если их несколько.

Шаг 9: Добавление предметов в таблицу генерации лута

После успешного создания предмета в файле ConsumablePrototypes.cfg перейдите к редактированию файла ItemGeneratorPrototypes.cfg.

Если вы хотите, чтобы предмет продавался у торговца:

Важно: В Notepad++ включите режим отображения символов: View > Show Symbol > Show Space and Tab, чтобы видеть пробелы и табуляции.

  1. Найдите генератор предметов, используемый данным NPC. Например, если вы создали лечебный предмет, добавьте его в SimpleMedkitGenerator.
  2. В ItemGeneratorPrototypes.cfg найдите запись SimpleMedkitGenerator.
  3. Убедитесь, что вы редактируете SID этого генератора, а не запись торговца, использующего данный SID.
  4. Найдите строку struct.end, кликните на нее и нажмите Enter, чтобы создать новую строку под ней.
  5. Убедитесь, что отступы в новой строке выполнены только с помощью пробелов, так как использование табуляции нарушит форматирование.
  6. Скопируйте последнюю запись перед struct.end и вставьте ее в новую строку. Измените:
    1. Номер в квадратных скобках на следующий по порядку (например, с [1] на [2]).
    2. Параметр ItemPrototypeSID на SID вашего предмета, избегая пробелов.

Основные параметры генерации:

  • Weight — вероятность появления предмета.
  • MinCount — минимальное количество предметов в ассортименте.
  • MaxCount — максимальное количество предметов в ассортименте.

Шаг 10: Сохранение и подготовка файлов мода

  1. Сохраните отредактированные файлы ConsumablePrototypes.cfg и ItemGeneratorPrototypes.cfg.
  2. Создайте структуру папок для вашего мода, начиная с Stalker2 и заканчивая полным путем до каждого редактируемого файла. Пример:
    1. ...\$MODNAME$\Stalker2\Content\GameLite\GameData\ItemPrototypes\ConsumablePrototypes.cfg
    2. ...\$MODNAME$\Stalker2\Content\GameLite\GameData\ItemGeneratorPrototypes.cfg
  3. Упакуйте папку с помощью repack или аналогичного инструмента. Назовите архив в формате $MODNAME$_1_P, где $MODNAME$ — имя вашего мода без символов $.

Шаг 11: Настройка текстур

  1. Перейдите в папку, где экспортированы текстуры через UE5. Найдите файлы:
    1. pakchunkxxxx-Windows.pak
    2. Соответствующие .utoc и .ucas.
  2. Переименуйте их в формате $MODNAME$_2_P, где $MODNAME$ — имя мода.

Шаг 12: Установка мода

  1. Переместите оба файла: $MODNAME$_1_P и $MODNAME$_2_P в папку ~mods.
  2. Если все шаги выполнены корректно, мод будет работать.

Примечание:

Название предмета может отображаться как, например, sid_items_NorkaVaseline_Name. Для изменения названия потребуется редактировать файл глобальной локализации с помощью другого инструмента моддинга. Вы можете протестировать предмет с помощью консольной команды:

XSpawnItemNearPlayerBySID ItemPrototypeSID

Например: XSpawnItemNearPlayerBySID NorkaVaseline

5
0
Комментарии:  0
Ваш комментарий