Перейти к основному содержимому

Что уже сделали модеры и как

Страница основана на модах, которые уже опубликованы на mod.io. В каждом разделе: как мод выглядит в игре, из каких блоков он собран и где читать подробности. Используйте её, чтобы понять, что возможно, до того как начнёте.

Косметика посетителей​

В игре. Monsters in Disguise: Cosmetic Kit от Dendro Studios добавляет посетителям в каждой кампании новые случайные предметы: ведьмину шляпу, крылья демона, пластиковые клыки и «монстрические» оттенки кожи. Выпадают редко (примерно 1 из 20), поэтому воспринимаются как находка. Мод ищите на странице игры на mod.io.

Как это устроено

  • Шляпы, аксессуары и оттенки кожи — дата-ассеты соответствующих классов внешности посетителя (шляпа, прочий аксессуар, оттенок кожи).
  • Новые ключи объявлены в tags ini мода как Generator.DataKey.<Section>.<AssetName>.
  • Крылья и клыки — акторы-Blueprint с родителем QzNPCAttachment и тегом актора NPC.Accessory.*, объявленным в tags ini. Без этого тега предмет выбирается, но не появляется.
  • Низкий шанс — просто вес выбора в ассете.

Подробнее: Внешность посетителей, Свои GameplayTags.

Симптомы со своей логикой​

В игре. Monsters in Disguise: Toolkit (Dendro Studios, mod.io) добавляет вампирские симптомы: Укус вампира, видимый на рентгене, Клыки вампира на посетителе и Страх перед распятием — посетитель шипит, когда применяешь инструмент.

Как это устроено

  • Каждый симптом — дата-ассет симптома с тегом в Symptom.Virus.*, поэтому он достаётся только заражённым посетителям. Симптомы автоматически входят в каждую кампанию.
  • Правило заполнения определяет, как симптом находят: «Worms» показывает его на рентгене, «Electroshock» заставляет реагировать на инструмент.
  • Способность симптома — Blueprint с родителем SGameplayAbility. При активации берёт Get Current Source Object, приводит к персонажу посетителя и делает работу:
    • Укус вампира рисует след укуса динамическими параметрами материала.
    • Клыки вампира через Add Component By Class, Set Static Mesh и Attach To Component крепят меш к посетителю.
  • Маркеры рентгена — Blueprint с родителем QzXRayWormSymptom.
  • Раздел планшета для новых симптомов — свой дата-ассет секции симптомов плюс тег UI.Game.Tablet.Symptoms.*.

Подробнее: Симптомы, Запуск своей логики.

Инструменты со своим поведением​

В игре. Тот же Toolkit добавляет Фонарик (в его свете посетители скалят зубы) и Распятие (посетители на него реагируют).

Как это устроено

  • Каждый инструмент — дочерний Blueprint базового: Фонарик от базового УФ-фонарика, Распятие от базового электрошокера (использует его кривую, свои звуки и монтажи).
  • Фонарик при включении и выключении делает sphere trace от камеры, находит посетителя и проигрывает монтаж «показать зубы».
  • Инструменты — дата-ассеты предметов с ручной выдачей: кампания выдаёт их модификатором дня Give Tools.

Подробнее: Инструменты, Чтение состояния игры.

Своя кампания на своей карте​

В игре. Dendro's SafeHouse и Halloween in the Neighborhood (Dendro Studios, mod.io) — полноценные кампании со своей карточкой в списке кампаний, своей картой, днями и правилами.

Как это устроено

  • Кампания: дата-ассет компании с вашим тегом Company.<Prefix>.<Name>. Включайте только нужные секции симптомов и здания базы.
  • Дни и модификаторы: дата-ассеты дней с модификаторами Give Tools, Add available symptom, Open symptoms, OpenFeatures, веса количества симптомов, Set Symptom Weight.
  • Погода: модификатор Weather на день. В Halloween для каждой ночи свой пресет погоды.
  • Карта: дата-ассет уровня (с тегом Level.*), указывающий на копию базового уровня блокпоста. Копия сохраняет геймплейные акторы (игровой поток, менеджер NPC, менеджер базы, точки осмотра, точки спавна очереди), а окружение заменяется через под-уровни и Packed Level Actors.
  • Правила поражения: свой ассет условий поражения.
  • Акторы-правила: акторы на карте следят за посетителями (Get All Actors Of Class, Get NPC Data BP, Get Final Goal) и реагируют, например пропускают заражённого посетителя.
  • Интерактивные объекты: двери (родитель SDoorCurveAuto) с фокусом и подсветкой, контекстные действия (Открыть / Закрыть), набор способностей и gameplay ability. Кровать и кот — дочерние Blueprint базового контента.

Подробнее: Своя кампания, погода по дням, свои правила поражения, Карты, Интерактивные объекты.

Кампания на базовом уровне​

В игре. Кампанию можно запустить и на готовой карте игры, не делая новую.

Как это устроено

  • Один из вышедших модов берёт копию уровня Chicago и переиспользует базовые дни и квесты.
  • Заменён только день 1 (например, без вступления). Всё остальное берётся из базовой игры.

Это самый лёгкий способ сделать кампанию: пишете только то, что меняете.

Подробнее: Своя кампания.

Моды на основе других модов​

В игре. Halloween in the Neighborhood использует у своих посетителей фальшивые клыки из Cosmetic Kit и требует Toolkit ради инструментов и симптомов.

Как это устроено

  • Зависимости объявлены на mod.io: Halloween зависит от Toolkit, который, в свою очередь, строится на Cosmetic Kit.
  • Ссылки между модами идут только по тегу и ключу. Профили посетителей Halloween используют ключ фальшивых клыков из Cosmetic Kit, ассеты не копируются.

Подробнее: Моды, использующие другие моды, Упаковка и публикация.

Большой оверхол​

В игре. Jurassic Contagion (Castox, mod.io) — большая кампания на копии геймплейного уровня Miami: динозавры, танк-раптор, собака-компаньон, магазин, видео, своя музыка и титры.

Как это устроено

  • Свой game mode (родитель QzGameMode) и свой player controller (родитель QzPlayerController). Его HUD-компонент использует собственный реестр виджетов, поэтому виджеты планшета и HUD заменены копиями базовых.
  • Свой персонаж игрока (родитель QzCharacter).
  • Существа: динозавры (родитель QzZombieCharacter, AI perception), танк-раптор (родитель QzSharkTank), компаньон (родитель QzDog с AI-контроллером, behaviour tree и EQS) и любовное взаимодействие (родитель QzLoveInteract).
  • Прочий геймплей: жильё и магазин как обычные акторы, ежедневные цели (родитель QzDailyTarget), видео через MediaPlayer, свой дата-ассет музыки, виджеты полоски здоровья и экрана смерти, свой game mode титров.
  • Новый инструмент (родитель QzToolBase) и новые симптомы.
  • Level Blueprint с большой логикой (спавн, шлюзы, видео, проверки дня) и стриминговые под-уровни, включая карту магазина.

Подробнее: Запуск своей логики, Своя кампания.

Свой интерфейс и ввод​

В игре. Вышедший мод добавляет окно диалога, которое открывается по клавише, пока вы смотрите на посетителя.

Как это устроено

  • Виджет диалога: Border, ScrollBox, RichTextBlock (с базовым стилем текста) и EditableTextBox.
  • Ввод: свои Input Action и Input Mapping Context на свободной клавише (T), включается через Add Mapping Context.
  • Чтение посетителя в фокусе: Get Actor In Focus, приведение к персонажу посетителя, затем Get State и Get NPC Data BP.
  • Продвинутое: менеджер в каждой кампании. Мод использует скин персонала блокпоста (NPC.Skin.Military), у меша которого есть Post Process Anim Blueprint. Он пропускает позу без изменений и один раз создаёт актор-менеджер. Это приём, а не официальный хук: применяйте, только если логика нужна везде. О скинах персонала см. туториал по скинам.

Подробнее: Ввод, Чтение состояния игры, Запуск своей логики.

О чём помнить​

предупреждение
  • Дочерние Blueprint базового контента и правки базовых виджетов в рантайме могут сломаться после обновления игры. Правки планшета в некоторых модах не поддерживаются и хрупки. Где можно, лучше используйте свои виджеты и дата-ассеты.
  • Симптомы, инструменты и скины персонала подключаются автоматически и влияют в том числе на официальные кампании. Убедитесь, что это то, что вам нужно.
  • Используйте свой префикс для тегов, ключей и имён ассетов. Никогда не кладите свои теги в Company.Main.*.
  • Удалите тестовые ассеты из мода перед упаковкой.

Дальше: Своя кампания, туториал по скинам, Упаковка и публикация.