Гайд по созданию миссий
Алгоритм создания МП-миссий для WOG3 в 3D редакторе EDEN
Необходимые программы:
игра Arma 3 с набором аддонов для WOG текстовый редактор - Notepad++ или другой по вкусу любимый интернет-браузер графический редактор - Paint, Gimp или другой по вкусу программа для распаковки/запаковки файлов игры - PBO Manager (для продвинутых - Poseidon Tools или Mikero's Dos Tools)
ИДЕЯ МИССИИ
Первое и, наверное, самое сложное, что необходимо сделать - это придумать собственно идею интересной миссии, о чём она будет, на каком острове, тип миссии (захват/оборона зоны, доставка техники/объектов/ВИПа, охрана/уничтожение техники/ объектов/ ВИПа и т.п.), её сюжет и примерный сценарий, какие ключевые локации будут использованы в миссии и т.п.
При этом необходимо учитывать, для какого количества игроков создается миссия. Нужно стремиться к соблюдению баланса играбельности, фана и реализма. Важно помнить, что от этого зависит, как на больших играх проведут свои полтора-два часа жизни 150-200 игроков. Тут, конечно, сложно будет всем угодить, но стремиться к этому нужно. Все должны получить свой кусок пирога. Большим разочарованием будет, например, ситуация, когда на составление плана и брифинг уйдёт больше времени, чем продлится сама миссия, которая завершится поражением по чьей-либо невнимательности, из-за бага или вылета важного персонажа. Поэтому, задумывая миссию, необходимо предусматривать и "защиту от дурака".
ПОДГОТОВИТЕЛЬНЫЕ ДЕЙСТВИЯ
Составляем некое подобие "Технического задания" на создание миссии (инструментарий тут индивидуален: кто-то предпочитает классику и ему привычны бумага и карандаш, а другой спит с планшетом и ему подавай Google Docs). Прикидываем/считаем, сколько юнитов персонажей и техники будет в миссии и в техзадании указываем все отделения и приписанную к ним технику. Расписываем, какие именно отделения и где стартуют, в каком порядке они будут отображаться в лобби. Определяемся, будут ли использоваться какие-либо ключевые для миссии объекты.
Делаем наброски текстов для брифинга (вводная, задачи сторон, дополнительная информация, разведданные, условности и т.п.). Не забываем, что по форме судят о содержании и небрежно составленные тексты могут вызвать у игроков чувство отторжения к миссии еще на этапе брифинга.
Создаем картинку для экрана загрузки миссии loadscreen (в формате *.paa или *.jpg) с соотношением сторон 2:1 (рекомендованный размер изображения 1024x512 пикселей, размер файла до 80KB). При желании можно конвертировать файлы из формата *.jpg в формат *.paa утилитой TexView 2 из состава пакета Arma 3 Tools (Steam-Библиотека-Инструменты), но это не обязательно, т.к. движок Arma 3 научился понимать формат *.jpg и для экрана загрузки его достаточно.
Всё, теперь можно приступать к собственно созданию миссии. Запускаем Arma 3 с набором аддонов для WOG, т.е. также как и при заходе на сервер для очередной игры. Также в строку запуска можно добавить параметр -showScriptErrors для отображения ошибок скриптов.
Перед созданием своей миссии в порядке самообразования можно скачать и изучить любую миссию из полигона WOG. Распаковываем (например, программой PBO Manager) необходимую миссию в папку missions (или mpmissions) в своем профиле и открываем её в редакторе. Если во время игр нам понравилась какая-то использованная картоделом фишка, которую мы хотели бы использовать в своей миссии, делаем пометку у себя на рукаве, чтобы позже её скачать и изучить. Поначалу изучать, конечно, нужно миссии попроще.
Дальнейший порядок действий может быть произвольным, но логичным представляется следующий.
СОЗДАНИЕ, СОХРАНЕНИЕ, ПЕРВОНАЧАЛЬНАЯ НАСТРОЙКА МИССИИ
1) Из главного меню игры заходим в редактор (SINGLEPLAYER > EDITOR), выбираем остров и запускаем 3D редактор нажатием кнопки CONTINUE.
Скрыть контент
SUDZJLL.jpg
С выходом обновления APEX старый 2D редактор был скрыт и не будет поддерживаться разработчиками, но его всё еще можно запустить сочетанием клавиш CTRL+O из меню выбора острова. Это может понадобиться, например, для редактирования старых миссий, сделанных в 2D редакторе, перед импортом их в новый 3D редактор, т.к. импорт возможен только, если в миссии есть юнит со статусом Player (Игрок).
Тем, кто впервые заходит в 3D редактор, стоит сразу произвести его первоначальную настройку (Settings > Preferences) по своему усмотрению, например, так:
Скрыть контент
WfhC3SO.jpg
Рекомендуется также просмотреть встроенный туториал (Help > Tutorials…) и почитать официальную документацию по редактору.
Скрыть контент
Те, кто привык к старому 2D редактору, могут переключаться между режимами отображения 2D (карта) и 3D (сцена) горячей клавишей M.
Свернуть/развернуть окошко Entity List в левой части экрана можно клавишей E, а окошко Asset Browser в правой части экрана - клавишей R.
Выбор режима редактирования осуществляется горячими клавишами F1 - Objects, F2 - Compositions, F3 - Triggers, F4 - Waypoints, F5 - Systems, F6 - Markers, либо щелчком ЛКМ по соответствующей иконке в окошке Asset Browser в правой части экрана.
При наведении курсора на поставленный на карту объект в правом нижнем углу экрана появляется всплывающая подсказка, какие действия доступны для данного объекта.
YQbxySD.jpg
Щелчок ПКМ по объекту вызывает его контекстное меню. Двойной щелчок ЛКМ по объекту открывает окно его свойств.
2) Сразу сохраняем файл миссии (Scenario > Save As…) в формате wog_mission_for_dummies_1a_190 в папке MPMissions (мы ведь создаём мультиплеерную миссию). Проверяем, что снята галочка с бинаризации файла (бинаризировать файл мы будем уже в самом конце, когда миссия будет готова, при её экспорте в мультиплеер).
Скрыть контент
Ihu8T4S.jpg
Все дальнейшие действия будут демонстрироваться на примере гипотетической миссии "Миссия для чайников", в которой присутствуют 2 стороны: FIA (атака, 100 слотов) и CSAT (оборона, 90 слотов), задача FIA захватить базу CSAT, используется только транспортная техника.
Подробнее о правилах оформления миссии для WOG3 внимательно читаем в соответствующей теме на форуме.
В дальнейшем после существенных правок в миссии не забываем периодически сохраняться (сочетание клавиш Ctrl+S). В редакторе также есть функция автосохранения, частота которого настраивается в Settings > Preferences. Доступ к сохранённым миссиям осуществляется подобным же образом (Scenario > Open...).
После первого сохранения будет создана папка миссии, которая будет находиться в папке того профиля, под которым мы зашли в редактор и сохранили миссию, например: C:\Users\имя_пользователя\Documents\Arma 3 - Other Profiles\имя_профиля\MPMissions\wog_mission_for_dummies_1a_190.Название_Острова
В этой папке должны храниться все файлы миссии. Каждый раз при создании/переименовании миссии средствами редактора создаётся новая папка миссии с новым названием. Во вновь созданной папке изначально присутствует только основной файл миссии mission.sqm, который генерируется редактором. Остальные файлы необходимо добавлять/создавать вручную.
3) Подключаем и настраиваем модули WMT/Main и WMT/Time (для чего эти модули нужны и как их настроить читаем в документации по WMT - тема на форуме, тема на форуме 2, github). Для этого, находясь в редакторе, переключаемся в режим редактирования модулей (клавиша F5 - Systems > Modules), и щелчком ЛКМ выбираем из списка необходимые модули и перетаскиваем их на любое пустое место на карте.
Двойной щелчок ЛКМ по поставленному на карту модулю открывает диалоговое окно его настроек. Не забываем пройтись по всем параметрам модулей, т.к. настройки по умолчанию в настоящее время, как правило, не соответствуют требованиям к миссиям для WOG3.
Скрыть контент
XA9hOQN.jpg
Скрыть контент
lQOetPx.jpg
Для удобства редактирования миссии параметр модуля WMT/Time - Prepare time (min) можно временно выставить в ноль, чтобы при прогрузке в игру для проверки миссии не было фризтайма, но перед окончательным сохранением не забываем вернуть стандартное значение - 3 минуты.
4) Настраиваем основные параметры миссии.
В старом 2D редакторе почти все эти параметры настраивались(ются) во внешних файлах, таких как description.ext, init.sqf и др. Теперь часть настроек в новом 3D редакторе перенесли в раздел Attributes. Тем не менее, кому удобнее по старинке использовать внешние файлы, могут продолжать это делать, т.к. параметры миссии, указанные во внешних файлах, имеют приоритет на параметрами, заданными в 3D редакторе. Однако необходимо иметь в виду, что по новым требованиям к миссиям использование внешнего файла description.ext имеет ограничения.
a) Редактируем раздел Общие настройки (Attributes > General...)
BDmZK5R.jpg
Заполняем и настраиваем поля как на скриншоте:
Скрыть контент
Q9edsgR.jpg
Jdt5HKA.jpg
Название миссии для меню выбора миссий и лобби мультиплеера, в формате: wog Миссия для чайников 1a 190 Автор миссии Картинка для меню выбора миссий Текст описания миссии для меню выбора миссий Картинка для экрана загрузки Краткий текст или слоган для экрана загрузки Снимаем галочку “Enable Saving” (обязательно) Консоль отладки “Available only in editor” (обязательно) Если в миссии присутствует сторона RESISTANCE/INDEPENDENT (зелёные), определяем их дружественность/враждебность со сторонами BLUFOR (синие) и/или OPFOR (красные). По новым требованиям сторона зелёных должна быть враждебна всем. Снимаем галочку “Binarize the Scenario File” (но не забываем, что её нужно будет поставить обратно перед экспортом миссии в мультиплеер)
b) Редактируем раздел Настройки Мультиплеера (Attributes > Multiplayer...)
8FzjIm4.jpg
Заполняем и настраиваем поля как на скриншоте:
Скрыть контент
7bD37Lv.png
Подраздел Type не трогаем и оставляем всё по умолчанию Краткое описание миссии для лобби мультиплеера (по шаблону: <фракция атаки> vs <фракция обороны>) Поставить галочку “Enable AI” Тип респауна изменить на “Switch to Spectator”, поставить галочку “Spectator”
c) Редактируем раздел Окружение (Attributes > Environment...)
rihjx7K.jpg
Заполняем и настраиваем поля:
Скрыть контент
YgNj5IB.jpg
указываем внутриигровые дату и время начала миссии настраиваем погоду по своему усмотрению
d) Раздел Уборка мусора (удаление тел и обломков техники) (Attributes > Garbage Collection...) не трогаем и оставляем всё по умолчанию.
iFy0I71.jpg
После этого останется только указать название миссии для экрана загрузки в файле description.ext и первоначальную настройку миссии можно считать завершённой.
//файл description.ext onLoadName = "Миссия для чайников"; //Название миссии для экрана загрузки
Как всё должно выглядеть в меню выбора миссий
Скрыть контент
dBsIxQT.jpg
Как всё должно выглядеть лобби мультиплеера
Скрыть контент
Sz1UB0x.jpg
Как всё должно выглядеть на экране загрузки миссии
Скрыть контент
2z9QRmR.jpg
РЕДАКТИРОВАНИЕ ФАЙЛОВ
В корневом каталоге миссии создаем/копируем/редактируем файлы description.ext, init.sqf, briefing.sqf (скачать примеры файлов). Туда же помещаем картинку loadscreen.jpg (назвать её можно и как-то иначе).
Для брифинга используем те самые тексты, о подготовке которых мы позаботились заранее. Не забываем, что разделы брифинга в игре будут отображаться в обратном порядке, в отличие от того, в котором они указаны в файле брифинга. Для корректного отображения кириллицы файлы брифинга необходимо сохранять в кодировке UTF-8. В брифинге можно использовать теги гипертекстовой разметки html, например:
Для перевода строки используется тег
Ссылка на маркер на карте оформляется тегом <marker name='имя_маркера'>где-то здесь</marker> Цвет шрифта меняется тегом важный текст , где #FFCC33 - hex-код нужного цвета Картинки вставляются при помощи тега <img image='my_cat.jpg' /> Размер картинки можно подогнать внутри тега <img> атрибутами ширины и высоты, например, <img image='my_cat.jpg' width='300' height='100' />
Если планируется кастомизация экипировки и снаряжения персонажей и/или техники, для упорядочивания кучи скриптов имеет смысл создать отдельные папки, где будут храниться эти самые скрипты (например, tpl\nato_at.sqf или tmplt\fia_sl.sqf). Если есть картинки для брифинга и их больше одной, их тоже можно закинуть в отдельную папку (например, pics\vip_csat.jpg).
РАССТАНОВКА ЮНИТОВ
1) Расставляем юниты (в режиме F1 - Objects) персонажей и техники. Отделения желательно сразу создавать в том порядке, в котором они будут отображаться в лобби (если в процессе редактирования мы нафакапили с порядком отделений, есть способы это исправить).
Окно редактирования свойств объектов в 3D редакторе вызывается двойным щелчком ЛКМ по объекту или выбором пункта Attributes... из контекстного меню объекта, которое в свою очередь открывается по щелчку ПКМ по объекту.
Редактируем параметры персонажей.
Первый поставленный на карту персонаж будет иметь параметр Object: Control / Player (checked, активно), Playable (checked, неактивно) - его менять не обязательно. Всем остальным персонажам необходимо прописывать в свойствах параметр Object: Control / Playable. Отличить, кем контролируется персонаж, можно по цвету обрамления вокруг иконки персонажа: красный - Player, лиловый - Playable, без обрамления - AI.
Командирам отделений в параметре Role Description указываем их роль и приписанную технику (в круглых скобках), а при необходимости и место старта или другую важную информацию (в квадратных скобках), например, 1: Командир отделения (Мотострелки, MSE-3 Marid) [база Пиргос]. При необходимости подобные настройки можно делать и у других членов отделения, так как этот параметр помогает определиться игрокам при выборе слотов в лобби мультиплеера.
Если отделение формируется из одиночных юнитов, их необходимо группировать в одно отделение.
Скрыть контент
95KwyVE.gif
Стандартные отделения из пресетов выбираются в режиме редактирования композиций (F2 - Compositions).
Если отделения одинаковые, то настроив полностью одно отделение, можно его скопировать и вставить еще одно такое же на карту без утомительного редактирования свойств каждого юнита.
Не забываем, что технику на карту, как правило, необходимо ставить пустой (без ботов). Для этого перетаскивать объект из Assets браузера необходимо с зажатой клавишей Alt (иконка объекта при этом изменится с цвета фракции на желтую). Кстати, в Виртуальном Гараже можно заранее проверить вместимость любой техники, чтобы потом не было неудобных ситуаций, когда кому-то из отделения не хватает места в приписанной технике.
Отделения и технику необходимо расставлять на разумном расстоянии друг от друга.
2) При необходимости редактируем инвентарь, внешний вид и другие параметры юнитов персонажей и техники.
Экипировку персонажей можно редактировать непосредственно из 3D редактора. Для этого по щелчку ПКМ по объекту в контекстном меню выбираем пункт Edit Loadout... и, сделав необходимые изменения, подтверждаем их нажатием кнопки ОК.
Кастомизацию персонажей можно также делать и по старинке - через внешний файл в формате *.sqf. Для этого, находясь в Арсенале, проводим необходимую кастомизацию персонажа. Экспортируем результат в буфер обмена нажатием кнопки WOG:EXPORT и выходим из Арсенала без сохранения изменений нажатием кнопки CANCEL (или ESC). Из буфера обмена сохраняем всё в файл формате *.sqf, например, tpl\nato_at.sqf в папку с миссией. В инит персонажа прописываем строку
this call compile preprocessFileLineNumbers "tpl\nato_at.sqf";
Подобные действия можно произвести и с техникой (или любым другим объектом), правда уже без помощи Арсенала. Например, если нужно убрать содержимое инвентаря, сделать ретекстур, добавить конкретные предметы в инвентарь, урезать/модифицировать вооружение, задать уровень урона или топлива, или любые другие настройки, то необходимый код прописывается в скрипте *.sqf, файл которого подключается в ините конкретного объекта таким же образом. Необходимые класс-неймы и функции ищем в документации Arma 3 Assets, RHS или ACE3.
Инвентарь техники можно также редактировать непосредственно из 3D редактора. Для этого двойным щелчком ЛКМ по объекту открываем окно его свойств (или по щелчку ПКМ по объекту в контекстном меню выбираем пункт Attributes...) и изменяем необходимые позиции в разделе Object: Equipment Storage.
Скрыть контент
W6zpfwc.gif
В любом случае не забываем, что в инвентаре техники желательно очищать дефолтное наполнение и помещать туда только необходимое.
Моды также добавляют и другие настраиваемые параметры для техники. Например, в разделе Object: ACE Options можно назначить любую технику ремонтной (что позволяет выполнять полный ремонт инженерам) или медицинской. А некоторые виды техники из RHS в разделе Object Specific - Object: имеют настраиваемый камфуляж или вид боеприпасов.
Скрыть контент
gs0mNhx.jpg
3) При необходимости расставляем дополнительные объекты (дома, бункеры, укрепления, мебель, мусор, неподвижную технику и т.п.). Благо теперь в 3D редакторе это можно делать простым перетаскиванием. При этом, если объекты ставятся друг на друга (например, ноутбук на стол) либо не в дефолтной ориентации по осям (при использовании виджетов трансформации), рекомендуется в свойствах этих объектов отключать симуляцию, иначе при прогрузке в игровой мир эти объекты могут проваливаться, отскакивать друг от друга или менять своё положение по "законам физикса".
Если планируется серьезное строительство с использованием большого количества объектов, например, при постройке укреплённой базы, то имеет смысл вынести все эти объекты, разумеется кроме ботов, техники и ящиков с экипировкой, в отдельный файл (например, base.sqf) в папке с миссией, скрипт которого потом вызывать через init.sqf командой [] execVM "base.sqf"; (для экспорта объектов в скрипт можно использовать Runtime 3D Editor by [STELS]Zealot ).
МАРКЕРЫ И МОДУЛИ ЗАДАЧ
Расставляем и синхронизируем необходимые маркеры (F6) и модули платформы WMT (F5) в зависимости от задач (захват зоны WMT/Task:Point + WMT/Task:Capture Points, доставка объектов WMT/Task:Arrive, уничтожение ВИПа WMT/Task:VIP, уничтожение объекта WMT/Task:Destroy и т.п.).
Например, для нашей миссии по захвату зоны необходимы:
1) Маркеры-флаги (F6 - Markers > Icons) места старта сторон, назовём их wmt_fia1_del и wmt_csat1_del. Префикс wmt_ и окончание _del в имени маркеров необходимы, чтобы эти маркеры исчезали сразу после фризтайма.
Скрыть контент
71jm6r8.jpg
2) Маркер зоны (F6 - Markers > Areas), назовём его zone1
Скрыть контент
YEOdivt.jpg
3) Модули (F5 - Systems > Modules) задач WMT/Task:Point (в нашем случае один, т.к. зона всего одна, а так нужен по одному на каждую зону) и WMT/Task:Capture Points (для подсчёта захваченных зон и завершения миссии).
Скрыть контент
s3HLGhE.jpg
Скрыть контент
ypj7HQQ.jpg
Синхронизируем модули. Для этого вызываем контекстное меню модуля WMT/Task:Point щелчком ПКМ, выбираем Connect > Sync To и протягиваем появившуюся линию связи к модулю WMT/Task:Capture Points. Синхронизация конкретно этих модулей более не является обязательной и её наличие или отсутствие ни на что не влияет, т.к. условие не проверяется в коде модуля.
Скрыть контент
v0N1SD3.gif
В миссию по необходимости можно ставить и другие модули (например, ACE3), но прежде сверяемся со списком разрешённых модулей, указанным в требованиях к миссиям.
ПОЛЕЗНЫЕ ТРЮКИ
Пустая техника
Скрыть контент
Если на карту ставится пустая техника только для антуража, имеет смысл делать её неактивным объектом, например, прописав следующий код в поле инициализации:
this lock true; this allowdamage false; this enableSimulation false; this setVariable ["WMT_Side", sideLogic];
Данный код закрывает технику, делает её неуничтожаемой, отключает симуляцию, убирает принадлежность техники какой-либо стороне.
Принадлежность техники
Скрыть контент
Если по какой-либо причине какой-либо стороне выдается техника другой фракции, то для корректного отображения информации о ней в брифинге и на карте необходимо прописать следующий код в строке инициализации:
this setVariable ["WMT_Side",east];
где east/west/resistance/civilian - это сторона, для которой информация о технике должна отображаться.
Техника противника в брифинге
Скрыть контент
Чтобы в брифинге не отображалась техника противника, можно в файле description.ext прописать код:
class WMT_Param {CampaignBriefingMode=1;};
Маркеры для определенной стороны
Скрыть контент
Если по какой-либо причине маркеры должны быть видимы только для определенной стороны, имя маркерам можно создавать с префиксом, содержащим указание необходимой стороны:
wmt_east_ //для красных
wmt_west_ //для синих
wmt_res_ //для зелёных
wmt_civ_ //для гражданских
ДВ-рация в гражданской технике
Скрыть контент
Чтобы включить ДВ-рацию в гражданской технике или технике, где её нет по умолчанию, можно прописать следующий код:
this setVariable ["tf_hasRadio", true, true];
Шифрование ДВ в технике
Скрыть контент
Изменить шифрование в ДВ-рации в технике (например, чтобы ДВ красных в Мариде заменить на ДВ синих) можно прописав следующий код в поле инициализации:
this setVariable ["tf_side","west"];
где west/east/guer - это необходимая сторона
ПРОВЕРКА И ЭКСПОРТ МИССИИ В МУЛЬТИПЛЕЕР
Проверяем работу миссии в мультиплеере. Для этого, находясь в 3D редакторе, в панели меню выбираем Play > Play in Multiplayer (MP). Далее всё как обычно - создаем сервер, становимся на слот и запускаем миссию.
Ищем ошибки, начиная от порядка отделений в лобби и текста брифинга для всех сторон и заканчивая проверкой корректности работы скриптов (например, выдачи экипировки) и срабатывания триггеров выполнения задач. Такой способ называется проверка миссии на "локальном сервере". В большинстве случаев этого достаточно.
Но если в миссии используются скрипты и триггеры помимо стандартных модулей WMT, проверку миссии рекомендуется осуществлять на т.н. "выделенном сервере", который можно также запускать на своем ПК. Однако описание процесса установки и настройки выделенного сервера выходят за рамки данной статьи (желающие могут ознакомиться с гайдом на официальном форуме или wiki разработчиков).
Если миссия проверена и готова, снова заходим в раздел Общих настроек миссии (Attributes > General…), ставим галочку "Binarize the Scenario File", в последний раз сохраняемся (Ctrl+S) и экспортируем её в мультиплеер (Scenario > Export > Export to Multiplayer).
5vWcFNP.jpg
Редактор запакует миссию в формате *.pbo и сохранит её в папке MPMissions в корневой папке игры, например по адресу: C:\Programs (x86)\Steam\steamapps\common\Arma 3\MPMissions\.
ПРОФИТ
Загружаем файл миссии *.pbo на файлообменник (желательно с неограниченным временем хранения, например, Dropbox или Яндекс.Диск), создаем тему на форуме ВОГа в разделе для А3 и ждём, когда миссию проверят и поставят в ротацию.
Полезные ссылки:
Руководство по редактору Arma 3 для начинающих Справочник BI wiki - редактор миссий (F1 юниты, F2 группы, F3 триггеры, F5 синхронизация, F6 маркеры, F7 модули) Миссии из полигона WOG3 Требования к миссиям для ВОГа Справочник wiki BIStudio - файл Description.ext Справочники по WMT (тема на форуме, тема на форуме 2, github) Сохранение результата кастомизации инвентаря в Арсенале Справочник wiki BIStudio - класс-неймы доступных объектов Arma 3 Assets Раздел на форуме по документации ACE3 Модули ACE3 Класс-неймы ACE3 Класс-неймы RHS Аддон 3-d редактора @3d_editor by [FRWL] Ezhuk Runtime 3D Editor by [STELS]Zealot Гайд по настройке выделенного сервера