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

Первая миссия по шагам

Здесь простая миссия собирается целиком и по порядку: аддон, мир, персонажи, группы, техника, зоны, маркеры, описание. В конце получится рабочая TvT-миссия на две стороны — без выбора спавнов и сложного мапинга, но её уже можно запустить и играть. Если нужен короткий список шагов без подробностей — он на странице Быстрый старт.

В примере: Cain (карта Колгуев), две стороны — США (Delta Force) и СССР, задача США — захватить советскую базу. Готовый результат опубликован в Workshop — ECHOLobby SupercoolMissions: его можно скачать и посмотреть, как всё собрано.

В лаунчере Workbench создайте проект и отметьте EchoLobby в зависимостях. Без этого в Resource Browser не будет ни гейммода, ни зон, ни инструментов лобби.

Новый проект с зависимостью EchoLobby

Миссия — это подсцена над миром террейна: сам террейн вы не меняете, а всё своё кладёте в отдельный файл.

  1. Найдите в Resource Browser мир нужного террейна, например ArmaReforger/worlds/Cain/Cain.ent — это карта Колгуев, и откройте его в World Editor.

    Поиск базового мира в Resource Browser

  2. Create new World (Ctrl+N).

    Кнопка Create new World

  3. Выберите Sub-scene (of current world).

    Выбор типа мира: Sub-scene

  4. Сохраните подсцену в свой аддон — создайте в нём папку worlds/ и дайте файлу имя миссии.

    Сохранение подсцены в worlds своего аддона

Дальше всё складывается в эту подсцену.

Поставьте в мир префаб Prefabs/MP/Modes/EH_GameMode_Lobby.et. На нём лежат все настройки лобби — см. Настройки гейммода; пока их можно не трогать.

Гейммод лобби в мире и его параметры

Рядом поставьте Prefabs/AI/SCR_AIWorld.et или вариант для вашего террейна — например SCR_AIWorld_Cain.et. Без него группы не появятся в лобби.

SCR_AIWorld в мире

Слот в лобби — это персонаж, поставленный в мир. Проще всего взять ванильных, уже одетых и вооружённых, и продублировать их в свой аддон.

Персонажи фракции лежат в ArmaReforger/Prefabs/Characters/Factions/…, например BLUFOR/US_Army/GreenBerets/Suppressed.

Ванильные персонажи фракции в Resource Browser

Выделите нужные роли, правой кнопкой — Duplicate to → ваш аддон.

Контекстное меню префаба: Duplicate to

Дайте копиям свой префикс, чтобы не путать их с ванильными.

Диалог Duplicate File с новым именем

Продублированные персонажи в своём аддоне

Откройте префаб персонажа и нажмите Edit Prefab — он откроется в режиме редактирования префаба.

Кнопка Edit Prefab у префаба персонажа

Добавьте компонент EH_LobbyCharacterComponent, включите Is Playable и впишите Name — название роли, которое игрок увидит в слоттинге.

EH_LobbyCharacterComponent с Is Playable и названием роли

Повторите для всех ролей обеих сторон.

То же самое для персонажей СССР

Подробнее о полях — Группы и слоты.

Группа — это SCR_AIGroup со списком персонажей. Возьмите базовую группу фракции (Group_US_Base.et) и Inherit in → ваш аддон: так группа унаследует настройки фракции, а вы поменяете только состав.

Контекстное меню префаба группы: Inherit in

В унаследованной группе:

  • в списке персонажей укажите свои префабы — порядок в списке задаёт порядок слотов в лобби;
  • в категории Lobby заполните Group Name — название отряда в слоттинге.

Состав группы и Group Name в категории Lobby

Рекомендация: в AIFormationComponent поставьте Default Formation = Row. Тогда в редакторе персонажи стоят шеренгой, и группу удобно расставлять и осматривать.

Default Formation = Row в AIFormationComponent

То же самое сделайте для второй стороны.

Группа СССР настраивается так же

Всё своё лучше раскладывать по слоям — по слою на вид объектов для каждой стороны. Правой кнопкой по миссии в Hierarchy — Create layer.

Создание слоя US_G

Сделайте слой активным (двойным кликом) — новые объекты попадут именно в него.

Активный слой US_G

Расставьте группы по миру.

Группы, расставленные в мире

Создайте слои под маркеры и технику, сделайте активным слой техники.

Слои US_M и US_V

Расставьте технику.

Техника, расставленная рядом с группами

Схема слоёв, которой придерживаются миссии ECHO: US_G — группы, US_M — маркеры, US_V — техника, US_Z — зоны, Mapping — объекты в мире. И так же для второй стороны.

Позывной группы состоит из роты, взвода и отделения. Его задают каждой группе отдельно, одним из двух способов:

  • в компоненте SCR_CallsignGroupComponent группы — поля Company, Platoon и Squad Callsign Custom;
  • в ECHO Missions Tool на верхней панели World Editor: выделите группу, впишите те же три числа в поля Callsigns и нажмите Assign callsigns.

Позывной группы в SCR_CallsignGroupComponent

Это уже делается сразу для всех групп стороны. Выделите их и откройте инструмент.

ECHO Missions Tool с выделенными группами

Нажмите Rename groups — группы получат имена сущностей по позывному, вида US_0_0_0. Затем сделайте активным слой маркеров и, не снимая выделения с групп, нажмите Spawn Marker.

Переименованные группы и созданные маркеры

Имена сущностей дальше нужны технике и спавнам, поэтому переименовывать группы лучше до всего остального.

Закрепите машину за группой: поле Assigned Group Entity Name — имя сущности группы. Тогда техника отряда видна в слоттинге, а при выборе спавна переезжает вместе с группой.

Assigned Group Entity Name у машины

Выделите технику и нажмите Spawn Marker — на карте появятся её значки.

Маркеры техники, созданные инструментом

Повторите шаги 6–9 для второй стороны.

Группы, техника и маркеры стороны СССР

Все зоны — полилинии: поставьте префаб, выберите Vector Tool на верхней панели и, зажав Alt, кликайте по миру — каждый клик добавляет точку контура.

Поставьте Prefabs/Zones/EH_Polyline_FreezeZone.et и обведите район старта стороны.

Зона фризтайма в мире

В EH_FreezeZoneComponent укажите Target Factions — свою сторону, Countdown Seconds — длительность фризтайма, при желании запретите стрельбу и технику внутри.

Настройки EH_FreezeZoneComponent

На той же сущности есть EH_MapOverlayComponent — это то, как зона выглядит на карте: заливка, штриховка, контур, кому и на каких этапах её видно.

Настройки отображения зоны фризтайма на карте

Подробно: Фризтайм и Зоны.

Чтобы просто нарисовать что-то на карте — например, базу противника как цель, — поставьте EH_Polyline_Zone.et и обведите район.

Полизона вокруг базы СССР

В EH_MapOverlayComponent задайте цвет заливки и контура и то, кому зона видна.

Настройки полизоны цели

Границу, за которую нельзя выходить, делает EH_Polyline_KillZone.et. Обведите весь район боевых действий и в EH_KillZoneComponent укажите обе стороны в Target Factions.

Киллзона по границе района

В её EH_MapOverlayComponent включите Fill Outside — тогда на карте затемнится всё, что снаружи района.

Fill Outside у границы района

Поставьте два Prefabs/Editor/MapMarker/MapMarkerDefault.et — по маркеру на сторону.

Два маркера в мире

Иконки удобно взять из ванильного набора UI/Imagesets/Conflict/ConflictIconsSet.imageset: Task_Attack для атакующих и Task_Defend для обороны.

Набор иконок ConflictIconsSet и имена квадов

В EH_MapIconComponent укажите imageset в Icon Texture, имя иконки в Icon Name, подпись в Marker Text, свою сторону в Target Factions и этапы, на которых маркер видно.

Маркер задачи США

Маркер задачи СССР

Подробно: Иконки на карте.

На гейммоде заполните список Mission Descriptions: общий раздел для всех и по разделу задач на каждую сторону — через Target Factions.

Разделы описания миссии на гейммоде

Подробно: Описание миссии.

Последний шаг — файл миссии. Он задаёт название, автора и количество игроков, и именно его запускает сервер.

Создайте в аддоне папку Missions/, щёлкните в ней правой кнопкой и выберите Create Resource → Config file. В диалоге укажите класс SCR_MissionHeader.

Создание конфига миссии в папке Missions

Заполните поля: World — ваша подсцена, Name и Author — они попадут в шапку лобби, Game Mode и Player Count — подпись режима и число игроков. Имя файла обычно содержит число слотов, например helloworldmission_48.conf.

Заполненный mission header миссии

Поле Systems Config относится к восстановлению миссии после перезапуска сервера — эта возможность пока в разработке, см. Mission header.

Запустите миссию и пройдите её этапы: ожидание, слоттинг, брифинг, игру.

Этап ожидания: карта и описание миссии

Слоттинг: отряды и слоты стороны США

Брифинг США: задача и район

Брифинг США: зоны и маркеры на карте

Брифинг СССР

Брифинг СССР: зоны и маркеры

Начало игры

Что должно совпасть: отряды и слоты на месте, техника видна в строке отряда, зоны и маркеры показываются нужной стороне на нужном этапе, фризтайм заканчивается. Как это выглядит целиком — Этапы миссии.

Перед выпуском миссии прогоните World Editor → Plugins → ECHO Mission Validator и исправьте всё, что помечено ERROR.