К.ОЗ.Л.И.К. - руководство по редактору миссий для начинающих

 

 

 

Изображение

Версия 1.0


Вашему вниманию представляется руководство по редактору АрмА 3 для начинающих или, иными словами, "Краткий ознакомительный ликбез игрового конструирования". Немного позднее, будет добавлена оффлайновая версия данного руководства и файл с примером миссии.


Условия распространения

Данный текст является литературным произведением и охраняемым объектом авторского права. Использование данного текста (в том числе, его локальной версии) на других интернет-ресурсах, в том числе, в переводе на другие языки - разрешено при условии указания автора и ссылки на ресурс www.flashpoint.ru, а так же - указания настоящих Условий в неизменном виде. В этом случае, согласия автора не требуется. Иное тиражирование данного произведения допустимо только с согласия автора.

 

О чем это руководство?

Данный туториал рассчитан на первое знакомство с редактором ArmA 3, но, в отличие от большинства подобных руководств, мы начнем не с изучения интерфейса или написания «Hello, world!» на местном скриптовом языке. В этом Ликбезе мы будем работать непосредственно над созданием нашей первой собственной миссии, и в результате обязательно получим законченный готовый сюжет для одиночной игры (а с небольшими доработками - для кооперативной игры в компании). Мы на практике изучим все основные аспекты редактора — расстановку юнитов, раздачу им указаний к действию, обработчики игровых событий (триггеры) и создание простейших задач в брифинге.

На момент написания первой главы данного Ликбеза, с момента релиза ArmA 3 Alpha прошел всего один день, и данная версия игры поддерживает всего один язык — английский. Поэтому, будем ориентироваться на то, что видим в английской версии редактора, а в скобочках будут указаны приблизительные русские эквиваленты (из редактора ArmA 2).


Часть 1. Дислокация.

Откроем, наконец, редактор, щелкнув на кнопке EDITOR в главном меню игры и выбрав остров Stratis! Со времен предыдущих игр серии, редактор миссий претерпел небольшие косметические изменения — старые добрые текстовые меню заменены на зеленые пиктограммки. На момент Альфы, данные пиктограммки не имеют четкого текстового пояснения — поэтому, чтобы не путаться, предлагаю сразу переключиться в более классический вид. Для этого, нажмем кнопку Shoose editor's layout (крайняя правая в верхнем ряду), выберем Traditional и нажмем RESTART NOW, чтобы перезапустить интерфейс.





Изображение Изображение



Итак, справа мы имеем выбор инструментов, сверху — стандартное меню сохранения-загрузки. Нажав на кнопку ADVANCED INTEL, мы сможем заняться настройкой погоды, но пока нас это не интересует. Навигация по карте происходит с зажатой правой клавишей мыши, масштаб изменяется колесиком.

Действия нашей первой миссии развернутся на Северо-Восточной оконечности острова — вблизи бухты Камино (Kamino bay), квадрат 065-049. Как видим, в бухте стоит небольшая постройка, а от нее к Северу в сторону маяка ведет грунтовая дорога. Здесь мы и расположим наш отряд!

Конечно, можно выставить всех бойцов по одному и потом объединить в группу, но иногда проще поставить сразу целое отделение. Выберите правом меню Groups (Группы) или просто нажмите F2. Затем, кликните два раза на пустом месте там, где начинается дорога, и вы увидите интерфейс создания групп -



Изображение

 

В появившемся окне выберем SIDE – OPFOR (Сторона — Красные), FACTION – Red (Фракция — Красные), CLASS – Infantry (Класс — пехота) и UNIT – Infantry squad (Подразделение — Стрелковое отделение). А затем, нажмем ОК. Суть понятна — мы выбрали среди заранее заготовленных групп стрелковое отделение иранцев и поставили его на карту. Сейчас у нас не выбран игрок, и редактор нам об этом напомнит.


Изображение

 

Скажем ему «CLOSE» (Закрыть) и сделаем двойной клик по третьему справа бойцу, именуемому Grenadier (Стрелок с ГП) перед нами откроется меню редактирования отдельного юнита. В нем нас интересует, прежде всего, пункт CONTROL (Контроль) в панели слева. Он имеет три опции — None (нет, бойцом будет управлять AI), Player (Этим юнитом будет управлять игрок) и Playable («Играет» Этим юнитом игрок может управлять. Все слоты в сетевой игре представляют собой юнитов с параметром Playable, а в одиночной — игрок имеет возможность переключаться в таких юнитов через меню выбора). Еще одно важное поле, которое мы заполним — это поле NAME (Имя). Это не то имя, которое отображается в игре, а условное имя, по которому к этому юниту смогут обращаться триггеры и скрипты. Зададим нашему протагонисту имя aP.


Изображение Изображение

 

После этого, откроем аналогичным образом командира нашей группы и зададим ему имя Com. И прежде, чем нажать ОК, давайте окинем взором меню редактирования юнита.

SIDE (Сторона) — тут все очевидно. Может представлять собой BLUFOR (синие), они же НАТО, REDFOR (Красные), в их роли Иран. Independence (Независимые) — благородные греки, отважно отсутствующие в альфа-версии, Civilian (Гражданские) и Ambient life (Животные). На этом, список играбельных сторон закончен, а дальше идут Game Logic (о них - в свое время) и Empty (Пусто). Последняя сторона позволяет ставить на карту пустую технику, боеприпасы и прочие объекты.

CLASS – это класс юнита. Пехотинцы, бронетехника, авиация и так далее собраны по разным классам, а UNIT (Юнит) — это, собственно, тип самого персонажа или машины.

SPECIAL (Особенности) — здесь можно выбрать, появится юнит на карте в строю (In Formation) или будет стоять свободно (None). Для воздушных юнитов можно выбрать Flying (В полете), и тогда они появятся прямо в воздухе. А если в группе есть грузовой транспорт — можно выбрать In Cargo (В грузовом отсеке), тогда боец появится прямо в машине.

Назначение поля CONTROL мы уже поняли — здесь мы выбираем, кто будет игроком, а VEHICLE LOCK (Доступ) нужен для техники — позволяет поставить ее на карту закрытой. RANK – это Звание юнита. Юнит с более высоким званием автоматически становится командиром группы. AZIMUTH и ELEVATION – это направление и высота, на которой юнит появится. Справа есть колесо азимута, а в главном меню редактора можно крутить объекты, зажимая Shift.

В правом меню мы видим знакомое поле NAME, а ниже его INITIALIZATION – это очень важное поле, в него пишутся скриптовые команды. Если нам надо поменять юниту оружие, задать какие-то параметры, а то — и просто установить здоровье в ноль, чтобы создать на карте заведомый труп — все это обычно пишется в ините. SKILL (Уровень) — это уровень интеллекта AI, чем выше — тем умнее. PROBABILITY OF PRESENCE (вероятность присутствия) по умолчанию выставлена на 100%, но если мы захотим внести в миссию элемент случайности — можно его уменьшить.

А теперь, закроем меню игрока и укажем нашему отряду путь!

Одиночным щелчком по любому члену отряда, сделаем его активным, а затем — в правом меню выберем Waypoints (Вейпоинты) или просто нажмем F4. К северу от места нашей высадки расположен маяк — туда и назначим первую точку, два раза щелкнув.


Изображение Изображение

 

В появившемся окне мы можем гибко редактировать поведение группы в движении. Оставим все поля по умолчанию кроме поля FORMATION (Построение) — там выберем Column (compact), в колонне нашему отряду будет проще подниматься в горку. Ах, да! Не лишним будет также поставить скорость движения на полную (SPEED – Full), чтобы маневр был более решительным.

Поле ON ACT. (По активации) позволяет нам выполнить разные скриптовые команды, когда группа достигнет этой точки. Пусть в нашем случае командир отряда (которого мы назвали Com, помните?) доложит на базу о занятии позиции для атаки. Впишем в это поле com sideChat "Base, this is Viper-1. We have reached the lighthouse! Over."; Поскольку в Альфа-версии игры поддержки русского языка и кирилицы нет — мы не сможем написать ничего по-русски, поэтому, давайте пока условимся на простых английских фразах. В данном случае, все должно быть понятно. Com – это мы обращаемся к соответствующему юниту, SideChat – это команда, заставляющая юнита сказать в синий чат фразу в кавычках «База, это Гадюка-1. Мы достигли маяка! Прием.»

Ну что же, если хотите — можно закрыть окно вейпоинта, нажать PREVIEW (Предпросмотр) и убедиться, что группа иранцев побежала в горку плотным строем, а по прибытии на место командир об этом доложил.

Давайте прямо сейчас сохраним нашу миссию, нажав в верхней панели Save (Сохранить) или просто Ctrl+S, если вы еще этого не сделали. Зададим ей имя, скажем — dk_tutor.

Часть 2. Противник.

Следующая маршрутная точка будет указывать на Kamino firing range, что под горой к Северу. В отличие от первого вейпоинта, тип этой точки будет SEEK AND DESTROY (Найти и уничтожить), а построение установим в Line (Цепь), чтобы наше отделение развернулось для атаки.


Изображение Изображение

 

Установим на базе первую группу противников. Для начала, войдем в меню Units (F1), кликнем дважды неподалеку от центра базы. Юнит будет иметь сторону BLUFOR (Синие)Class – Men, юнит — Riffleman (Light). Звание (Rank) установим в Sergeant, чтобы он автоматически стал командиром группы. Рядом с ним разместим еще двоих-троих аналогичных бойцов, но в звании рядового (Private). Если эти бойцы помещены достаточно близко от сержанта — они автоматически свяжутся с ним голубыми линиями. Этой группе мы поставим вейпоинт прямо рядом, практически под ноги. Но тип (SELECT TYPE) выберем не MOVE (Перемещение), а SENTRY (Защищать). Это «умный» вейпоинт — с ним группа будет не просто стоять в указанной точке, а станет атаковать любого противника, замеченного союзниками, даже если сама его еще не видела.


Изображение

 

Вокруг базы мы пустим патрули! Создадим пару синих бойцов слева от базы и добавим им вейпоинт MOVE (Перемещение) с параметрами SPEED – Limited (Скорость — ограничено), BEHAVIOUR – Safe (Поведение — Безопасно). Примерно в трех сотнях метров. Еще два аналогичных вейпоинта создадим в другой точке патрулирования и в начальной точке, образовав, таким образом, треугольник. А потом, недалеко от самого первого вейпоинта добавим точку с типом CYCLE (Зациклить). Обратите внимание, как она автоматически свяжется с первым вейпоинтом, если расположена достаточно близко.


Изображение Изображение

 

Таким образом, патруль будет ходить по трем точкам по кругу. Скопируйте патруль вместе со всеми вейпоинтами клавишей Ctrl+C и клавишей Ctrl+V разместите на противоположной стороне базы. Так у нас будет выглядеть оборона базы в конечном итоге.


Изображение

 

Итак, задача на бой у нас сформулирована, теперь надо как-то определить его результаты, чтобы миссия могла закончиться или идти дальше. Поэтому, теперь мы познакомимся с триггерами!

Триггер — это обработчик игровых событий, который при наступлении определенного условия запускает какое-то действие. Чтобы установить, что база захвачена, нам надо, чтобы выполнились два условия -

  • В зоне базы нет вражеских юнитов.
  • Территория базы занята своими войсками.

Каждое из этих условий включит по одному триггеру, которые сделают истинными две соответствующих переменных. В третьем триггере мы будем ожидать, пока истинными станут обе переменные — тогда мы и определим, что база зачищена. Сложно? Нет, ни капли.

Создадим первый триггер (кнопка F3, меню Triggers) в центре атакуемого военного лагеря. Размеры зоны задаются параметрами Axis X и Axis Y – установим их по 150 метров. Имя триггера установим как BAZA_BLUE и для удобства введем то же самое в поле TEXT, чтобы легко опознавать его на карте. Условием активации данного триггера будет отсутствие в его зоне солдат Синих. Поэтому, в поле ACTIVATION (Активация) выберем сторону BLUFOR (Синие), а ниже выберем Not present (Отсутствуют). Теперь определим, что произойдет, когда он активируется — нам нужно, чтобы истинной стала одна из переменных, назовем ее BaseIsClear. В поле ON ACT. (По активации) так и напишем BaseIsClear=true;


Изображение Изображение

 

Второй триггер сработает, когда в зону войдет кто-нибудь из Красных. Создадим триггер такого же размера, назовем его BAZA_RED, в поле ACTIVATION (Активация) выберем OPFOR (Красные) и на этот раз — Present. В поле ON ACT. напишем WeAreHere=true; Ну, то-есть, «мы здесь».


Изображение Изображение

 

Теперь нам нужен третий триггер, который увидит, что оба события состоялись, и заставит командира сказать об этом.

Разместим его где-нибудь рядом и назовем BAZA_CLEAR. Радиус ему можно поставить нулевой — реагировать он будет не на юнитов, а на условия, написанные в строке CONDITION. Туда вписываем BaseIsClear and WeAreHere . А в поле ON ACT. Напишем следующее Leader aP sideChat "Ok! Now we must defend this place."; То-есть «Ок! Теперь нам необходимо защищать это место.» Почему в этот раз мы пишем «Leader aP», а не просто Com? Элементарно, в бою первоначального командира по имени Comмогли убить, а выражение Leader aP находит текущего командира игрока, и кто бы ни был в данный момент лидером — именно он и скажет эту фразу.

Наверное, самое время запустить превью и посмотреть, все ли работает.


Часть 3. Подкрепление.

 

Ну что же, нам удалось сделать выполнимой первую задачу, но давайте разовьем ход миссии дальше. Противник успел доложить о нападении, и теперь к базе выдвинулось подкрепление на броневике!

Западнее атакуемой нами базы в квадрате 055-047 расположена постройка, а от нее ведет дорога к самому лагерю. Здесь и расположим группу подкрепления и ее машину. Установим здесь четверых бойцов команды Синих — на этот раз не раздетых стрелков с карабинами, а кого-нибудь посерьезнее, вроде пулеметчиков или солдат с ГП. Мы сформируем эту группу аналогично предыдущей — один из юнитов будет сержантом, а все поставленные возле него рядовые автоматически соединятся с ним линией. Если вы поставили солдата слишком далеко — не беда, вы можете нажать F2 (Группы) и провести тонкую голубую линию между ними вручную.

Рядом мы поставим пустой автомобиль, в который они по тревоге заберутся. Сделав двойной клик на дороге в режиме F1, выберем SIDE - Empty (Сторона — пусто), Class – Cars (Класс — автомобили), Unit – Hunter (blue) (Юнит — Охотник (Синие)).


Изображение Изображение

 

Теперь нам надо сделать, чтобы группа начала движение не сразу, а только тогда, когда база будет нами захвачена. Поставим стандартный вейпоинт движения (MOVE) со скоростью «Полная» (Speed – Full) «под ноги» новой группе. Тепь выберем в меню (F5) Syncronization (Синхронизация), щелкнем на этом вейпоинте и протянем темно-синюю линию к недавно созданному триггеру BAZA_CLEAR.


Изображение Изображение

 

Как уже, наверное, понятно — группа не двинется дальше этого вейпоинта, пока не сработает связанный с ним триггер. Вейпоинты полезно временно блокировать, и делать это можно не только с помощью триггера, можно синхронизировать вейпоинты нескольких групп друг с другом — например, чтобы они подходили на позиции с разных сторон, но атаковали одновременно.

Продолжим устанавливать маршрутные точки группе подкрепления! Следующий вейпоинт поставим непосредственно на машину, а тип его установим GET IN (Войти). Заметьте, что точка поставилась поверх машины, и если нам впоследствии понадобится «залезть под» путевую линию и открыть меню самого броневика — надо удерживать Shift.

Итак, когда триггер сработает — группа сядет в броневик. В дальнейшем, нам достаточно только указать точку высадки неподалеку от базы, а как туда добраться, боты решат самостоятельно. Поставим вейпоинт GET OUT (Выйти) на дороге неподалеку от базы, а следующую точку для подкрепления поставим уже на самой базе и зададим ей тип SEEK AND DESTROY (Найти и уничтожить), чтобы бойцы попытались атаковать нашу группу. Поведение на последней точке (Behaviour) логичным будет поставить «В бою» (Combat), так как по нашей задумке, подкрепление уже знает, что их ждет контакт с противником.


Изображение Изображение

 

Кстати, в триггеры и вейпоинты мы можем добавлять эффекты, в частности — можно включить музыку в момент высадки подкрепления. Для этого, надо войти в соответствующий вейпоинт, нажать EFFECTS (Эффекты) внизу и выбрать трек. Кроме того, можно добавить кое-какого текста. Давайте сделаем это!


Изображение



Окей! Теперь добавим условие, которое окончит миссию, когда подкрепление будет уничтожено, а контратака — отбита. Для этого мы поставим триггер, который сработает, когда число юнитов в группе подкрепления будет равно нулю.

Часть 4. Победа.

Вернемся к лидеру группы подкрепления и откроем его меню. В строке инициализации (INITIALIZATION) дадим название группе этого персонажа. Podkrep = Group this;А триггер, который будет считать количество юнитов, расположим рядом и назовем его END1. Условие активации (CONDITION) (count units Podkrep) == 0 . Но самое главное — это тип (TYPE) триггера! Тут мы выбираем End #1 (Конец # 1).


Изображение Изображение

 

Таким образом, когда количество юнитов группы Podkrep будет равно нулю — триггер сработает, и наступит финал миссии.

Ну что ж, мы задумали сюжет миссии, создали ее логику и последовательность событий, поставили обрабатывающие эти события триггеры и создали финальный триггер — который завершает миссию.

Часть 5. Боевой приказ.

Наша группа выходит на позицию, атакует лагерь противника, отражает контратаку — понятно. Но это нам понятно, а для игрока необходимо поставить условие, ведь сюжет он будет воспринимать из поставленных задач и заметок в дневнике!

Редактор ArmA 3позволяет создавать брифинги относительно легко и непринужденно. Относительно предыдущих игр серии, конечно — там для этого необходимо было осваивать html и скриптовый язык. Теперь — нет, для создания обычного задания это не обязательно. Теперь нам помогают в этом Модули! Они доступны по горячей клавише F7.

Модули устанавливаются на карте точно так же, двойным кликом. Некоторые из них можно и нужно синхронизировать клавишей F5с юнитами и другими модулями, как правило, эта логика интуитивно понятна.

В целях создания брифинга, нас интересует несколько модулей, все они находятся в категории Intel (Разведка, сведения).

  • Create Task (Создать задачу) – создает саму задачу. Ей нужно задать название, внутриигровое имя и описание.
  • Set Task Destination (Установить точку назначения) – будучи синхронизирован с предыдущим, отмечает задачу на карте в месте своего нахождения (опция Module position). Либо его можно синхронизировать еще и с объектом — тогда на карте задача будет помечена там (опция Synchronized object).
  • Set Task State (Установить статус задачи) – устанавливает изначальный статус задания. По умолчанию, все имеющиеся задания имеют статус Created (создано), и в начале миссии имеет смысл сделать активным одно из них. Перечень статусов таков - Created (создано), Assigned (Назначено, задача отмечена галочкой), Succeeded (Выполнено успешно, отмечается зеленой галочкой), Failed (Провалено), Canceled (Отменено).

 

Поместим на карту модуль Create Task рядом со стартовой точкой, и заполним его так. Task ID (ID задачи) — Zadacha1, это имя задачи, которое мы будем обрабатывать командами. Title (Название) - Reach the lighthouse («Достигнуть маяка»), Description – Take position («Занять позицию» - это краткое описание). Apply to – Synchronized object only (Применить к — только к синхронизированному объекту). Заполнив поля таким образом, синхронизируем этот модуль с игроком. Рядом поставим модуль Set Task State (Установить статус задачи) и синхронизируем его кнопкой F5 с предыдущим модулем. State (Статус) выберем Assigned (Назначено), поскольку это первое задание, и оно должно быть активно с самого начала. Дадим ему имя (NAME) – ASSIGNED, чтобы было наглядно.

Рядом поставим такой же модуль, но со статусом Succeeded (Выполнено успешно) и так же свяжем его с модулем первой задачи. «Вторым концом» мы в последствии свяжем этот модуль с триггером, который будет отслеживать, что игрок забрался на маяк. Этому модулю тоже желательно дать имя, чтобы его было видно на карте.


Изображение Изображение

 

Как мы помним, о том, что отряд забрался на гору, нам сигнализирует команда в вейпоинте группы. К сожалению, синхронизировать модуль Succeeded с вейпоинтом нельзя, поэтому, создадим небольшой триггер диаметром 20 и с условием активации на присутствие Красных, а затем, свяжем его с нашим модулем.


Изображение Изображение

 

Должно быть понятно — по умолчанию у нас включится статус Assigned, а статус Succeeded связан с триггером и включится только тогда, когда и он.

Вторая задача у нас состоит в том, чтобы зачистить базу от противника. Создадим еще один модуль Create Task, дадим ему имя и Task ID – Zadacha2. А в задании так и напишем — Attack base and kill em all. Эту задачу мы так же соединим с игроком и создадим для нее три модуля Set Task State (Установить статус задачи), синхронизировав их все, как и в прошлый раз, с основным.

  • Первый модуль будет задавать статус Created (Создано), ведь активной в начале миссии должна быть только первая задача.
  • Второй модуль будет задавать статус Assigned (Назначено), и привязан он будет к триггеру на маяке — ведь когда группа дойдет до точки, первое задание отметится выполненным, а второе нужно сделать текущим.
  • Третий модуль со статусом Succeeded (Выполнено успешно) свяжем с триггером BAZA_CLEAR. Помните, это тот, который включается при полностью зачищенной базе и запускает подкрепление?

 

Изображение Изображение

 

Наконец, третье задание — отразить контратаку.

Создаем третий модуль Create Task, дадим ему имя и Task ID – Zadacha3. В названии и описании задачи так и напишем - Defend base, то-есть, «защитить базу». К нему так же три статуса.

  • Created (Создано)
  • Assigned (Назначено) – синхронизируем на триггер BAZA_CLEAR, ведь третье задание становится активным тогда, когда выполняется второе.
  • Succeeded (Выполнено успешно) — на триггер END1.

 

Изображение Изображение

 

Само собой, надо еще разок пробежать всю миссию и посмотреть, все ли срабатывает. Должно быть следующее.


Изображение

Начало миссии — активна первая задача, остальные неактивны.

Изображение

Группа достигла маяка — первая задача выполнена, вторая активна.

 

Изображение

 

База захвачена, готовимся к обороне.



На этом, можно сказать, что наша первая миссия практически готова — теперь не только мы сами знаем, что в ней надо делать, а любой, кто способен прочитать пару строчек немудреного текста в нашем брифинге.

Часть 6. Безобразие и единообразие.

Однако, наша миссия — это все еще не один окончательный файл, который можно выложить в интернет и показать миру, а заготовка. Сейчас наша миссия представляет собой папку в каталоге «Мои документы»/Arma 3 Alpha/missions – именно здесь хранятся все пользовательские заготовки, еще не запакованные для одиночной игры.

В папку с миссией нам надо положить картинку, которая будет отображаться в меню при выборе, а так же два файла — overview.html, в котором эта самая картинка должна быть вписана, а так же — briefing.html. Последний представляет собой рудимент со времен Operation Flashpoint, нам нужен он для того, чтобы брифинг отображался перед запуском миссии. Если его не будет — к сожалению, миссия будет запускаться сразу.

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


Изображение



Как говорилось выше, briefing.html оставим пустым, а, вот, overview.html будет иметь следующее содержание.

<html>
<head>
<title>Overview</title>
</head>
<body bgcolor="#FFFFFF">
<p align="center"><img src="my_first_preview.jpg" width="460" height="230"></p>
<p align="center">
<br><font size="14">My first ArmA 3 mission!</font><br>
</p>
</body>
</html>


Здесь мы видим ссылку на картинку my_first_preview.jpg, именно это изображение будет в меню. Взять его можно прямо здесь и положить в папку с миссией, назвав соответствующим образом. Либо можно использовать свое jpg или paa изображение размером 460х230.


Изображение

 

Теперь вернемся к редактору. Пока наша миссия никак не называется, и будет отображаться в меню и на карте просто как название папки. Это надо исправить! Для этого зайдем в ADVANCED INTEL («Разведка», «сведения») и заполним поле NAME (Имя) — так и напишем «My first ArmA 3 mission!». Далее, чтобы миссия отобразилась в главном меню игры, надо нажать в панели сверху Save As (Сохранить как) и вместо User mission (Пользовательская миссия) выбрать Export to single missions (Экспортировать в одиночные миссии) — в этом случае, наше задание сохранится как файл .pbo в папке Arma 3 Alpha/missions.

Сохраниться-то она там — сохранится. А самого меню одиночных миссий в Альфа-версии почему-то нет. Поэтому, пока будем довольствоваться запуском в редакторе, а чтобы перед миссией отображался созданный нами брифинг — кликать мышью по кнопке PREVIEW будем с зажатой клавишей Shift.

Часть 7. После боя.

Итак, пройдя данный Курс до конца, мы создали полноценную одиночную миссию для ArmA 3! Да, в ней нет грандиозных баталий, зрелищных роликов и умопомрачительной сложности скриптовых систем, но лиха беда начало, верно? Главное — перед нами от начала и до конца созданная своими руками полностью работоспособная (мы, ведь, все делали правильно и не пропускали глав, да?) миссия. А расставить в следующий раз побольше войск и устроить битву поэпичнее — это дело техники.

Теперь, давайте переведем дух, окинем взглядом проделанную работу и постараемся обобщить, а каким же этапам мы следовали, пока создавали свой шедевр.

  • Первое, что мы сделали — это уяснили некий замысел сюжета. Группа иранцев высаживается на берегу и внезапно атакует гарнизон лагеря. Отсюда — из этой внезапности — мы выбрали укромную бухту, где можно было спокойно высадиться, по этой же причине — охрана базы была так легко экипирована и малочисленна.
  • Второе — мы разбили миссию на задачи. Игрок выходит на позицию, затем атакует, в этот момент выдвигается подкрепление, игрок отбивает контратаку, конец. Это называется логикой миссии. Мы еще не расставили вейпоинтов и не создали триггеры, а уже прикинули, кто куда в какой момент пойдет.
  • Третье — мы, собственно, воплотили второй пункт, расставив на карте юниты, указав им точки маршрута и поставив между ними триггеры для реакции на события.
  • Мы сделали нашу миссию понятной для всех, установив модули с заданиями.
  • Мы окончательно причесали нашу миссию, добавив овервью, написав назваине и сохранив в отдельный файл.

В общем-то, следуя этим пяти нехитрым пунктам, можно реализовать абсолютно любой сюжет. Но давайте условимся! Первые несколько творений пусть будут легкими в исполнении. Возможности скриптового языка ArmA 3 огромны. Используя редактор и вооружившись хорошим знанием скриптов, можно сделать миссию буквально про черта лысого — от задачи из учебника «Батальонная тактическая группа в наступлении» до симулятора фермера или, скажем, торговца рыбой.

Не бойтесь добавлять что-то новое в каждую миссию, но помните одно — одна законченная от и до, причесанная и облагороженная миссия, даже технически простая, развивает ваш навык гораздо больше, чем десять высокотехничных долгостроев. Многим хочется, лишь освоив основы, сразу сделать сюжет своей мечты, очень многим. Многие из них периодически приходят на форум, делятся своими захватывающими идеями и просят советов невероятной простоты на вопросы невероятной сложности. Имен этих многих никто не знает, потому что почти никто из них так и не довел свои мега-идеи до конца.

Давайте не будем уподобляться им. Давайте будем создавать легко, так, чтобы было интересно, в первую очередь, себе! А миссия вашей мечты — она никуда не денется, однажды вы сядете и просто напишете ее так же легко, как десяток миссий до этого. По тому, что законченный маленький проект дает гораздо больше опыта, чем брошенный грандиозный.

Спасибо за внимание!

 

Обсудить статью можно ниже в комментариях и в спецйиальной теме на форуме.