Что уже сделали модеры и как
Страница основана на модах, которые уже опубликованы на 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.*. - Удалите тестовые ассеты из мода перед упаковкой.
Дальше: Своя кампания, туториал по скинам, Упаковка и публикация.