Age of empires 3 редактор сценариев обучение

Обновлено: 07.07.2024

Одна из сильных сторон Age of Empires III — мощный редактор сценариев. Всем он хорош: и удобен, и функционален. Одно только «но»: редактор не умеет объединять миссии в кампании. Строго говоря, это задача другого редактора (редактора кампаний), но его в игре, к сожалению, нет. Именно этот недостаток мы сегодня устраним, создав собственную уникальную кампанию.

В папке <Каталог игры>\Campaign вы найдете два подкаталога: \Age 3 Tutorial и \Blood Ice Steel. Первый соответствует обучающим миссиям (tutorial), второй — непосредственно кампании. Нас интересуеттолько второй каталог.

Новую кампанию мы будем делать на базе оригинальной. Более того, во время работы нам придется заменить оригинальный набор миссий обновленным. Поэтому перед началом работ обязательно сделайте копию папки Blood Ice Steel. Во-первых, если у вас что-то пойдет наперекосяк, вы всегда сможете вернуться к исходному варианту. Во-вторых, после того как вы сделаете новую кампанию, единственный способ сыграть в старую — это копирование оригинального каталога Blood Ice Steel поверх измененного. Сосуществовать же в игре две кампании одновременно упорно не хотят. Так что и директорию с уже подредактированными файлами после завершения работ желательно скопировать. Тогда вы сможете переключаться между кампаниями путем копирования в каталог Campaign соответствующей папки с именем Blood Ice Steel.

Зайдите в эту директорию. Там находятся файлы двух форматов: .age3scn и .xml. Первые имеют названия вида age3N (N — номер миссии) и представляют собой карты, которые входят в состав кампании. Сценарии могут быть подправлены в редакторе (запускается из меню Help and Tools/Scenario Editor). Для этого скопируйте интересующие вас файлы в папку Documents and Settings\<Имя пользователя>\Мои документы\My Games\Age of Empires 3\Scenario. После завершения преобразований верните файлы на прежнее место. Впрочем, это может и не потребоваться — оригинальные карты нас интересуют только в качестве наглядных примеров.

Местные XML-файлы можно разбить на три группы. Одну из них составляют модули с именами вида HomecityActX_Y, где X — номер акта (части кампании), Y — номер сценария. Такие файлы содержат атрибуты вражеских городов в различных миссиях.

Первая стадия разработки кампании — создание сценариев.

Во вторую группу входят файлы homecitySPCAct1.xml, homecitySPCAct2.xml и homecitySPCAct3.xml, относящиеся к трем актам и содержащие характеристики городов игрока (Home City) и список доступных апгрейдов. Эти поселения вы посещаете между некоторыми миссиями (какими — определяется в файле BloodIceSteel.xml).

Третья группа представлена только одним файлом — BloodIceSteel.xml. Он является основным и отражает последовательность миссий, а также их базовые атрибуты. Структуры этого файла мы коснемся позднее — когда будем связывать между собой сценарии новой кампании.

Все названные XML-файлы можно редактировать в «Блокноте». Они устроены так же, как и модули формата HTML. Используемые в игре файлы состоят из разделов (блоков), которые оформлены следующим образом:

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

И отдельные параметры, и подразделы оформляются так же, как и «родительские» разделы. Единственное отличие: при описании какого-либо атрибута вместо многоточия прописано его значение, причем в одну строчку с названием. Например: <Act>1</Act>. В данном случае Act — это название атрибута, а 1 — его значение.

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

После того как карты будут готовы, их нужно объединить в единое целое. В этом вам поможет файл BloodIceSteel.xml. В нем задается последовательность миссий, каждой из которых посвящен тот или иной подраздел, озаглавленный как CampaignNode. Чем ниже он располагается в файле, тем выше порядковый номер сценария. В каждом подразделе примерно с десяток показателей, характеризующих данный уровень. Если какой-то параметр отсутствует в том или ином подразделе, подразумевается, что его значение равно нулю. Разберемся по порядку.

Filename — имя файла, содержащего данную карту (напомню, что она должна находиться в папке <Каталог игры>\Campaign\Blood Ice Steel и иметь расширение .age3scn).

DisplayName — название миссии, использующееся в файлах игры.

DisplayNameStringID — идентификационный номер строки с названием сценария, которое отображается в игре. Чтобы понять, какое слово содержит данная строчка, обратитесь к файлу stringtable.xml (лежит в директории <Каталог игры>\data). Используя функцию поиска, найдите в файле то же число, что указано в значении данного параметра. В строке вы увидите реальное название уровня. Обратите внимание на то, что игра поддерживает кириллицу.

Cinematic — этот показатель определяет, предшествует ли данному сценарию видеоролик (1 — да, 0 — нет).

Act — номер акта, в который входит миссия.

NoHCAccess — дается ли игроку перед данной миссией доступ к городу (Home City), в котором игрок может проводить глобальные апгрейды (0 — да, 1 — нет). Напомню, что параметры Home City прописаны в файлах homecitySPCAct1.xml, homecitySPCAct2.xml и homecitySPCAct3.xml.

LoadImage — загрузочная картинка уровня. Она должна лежать в папке <Каталог игры>\art\ui\singleplayer.

LoadTextID — идентификационный номер строки (опять же в файле stringtable.xml) с текстом, который вы видите во время загрузки карты.

PostCinematic — эта характеристика определяет, следует ли за прохождением миссии ролик (1 — да, 0 — нет).

В новой кампании может найтись место и новым юнитам, которых мы смастерили в предыдущем вскрытии Age of Empires III.

Работу с файлом BloodIceSteel.xml начните с удаления всего его содержимого за исключением первых двух строк и последней (можете также на первое время оставить один из подразделов — в качестве образца). Теперь создайте в файле новый подраздел — он будет соответствовать начальной карте.Выглядеть этот подраздел должен следующим образом:

<Filename>blood ice steel\X</Filename>

<DisplayName>Y</DisplayName>

<DisplayNameStringID>Z</DisplayNameStringID>

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

Прежде чем присваивать значение третьему параметру, загляните в файл stringtable.xml. Перед последней строкой выставьте строку следующего содержания: <String _locID ='43335'>. </String>. Многоточие замените на название карты, которое вы хотели бы видеть в игре. Вновь обратитесь к файлу stringtable.xml. Число в кавычках (в данном случае — 43335) поместите на место Z.

Что касается значения параметра LoadTextID, то здесь следует указать число 43336, предварительно вставив строку с этим номером и загрузочным текстом миссии в файл stringtable.xml.

Чтобы добавить в кампанию еще несколько сценариев, создайте в файле BloodIceSteel.xml соответствующие им подразделы, организовав их по тому же принципу. Разделов должно быть столько же, сколько миссий в вашей кампании.

Обратите внимание, что значения X, Y, Z и X1 для каждого нового подраздела будут разными. В частности, будьте внимательны при работе с характеристиками DisplayNameStringID и LoadTextID. Вместо Z должен стоять уникальный (!) идентификационный номер строки файла stringtable.xml. В этот файл нужно добавить соответствующую строчку (для каждого из новых сценариев), как и в случае с первой миссией. Обязательно посмотрите, чтобы выбранный вами номер до этого не использовался. Аналогично для параметра LoadTextID.

Кроме того, если в кампании несколько актов, значение атрибута Act также может быть различным. Если говорить о настройке NoHCAccess, то ей можно придать нулевое значение в подразделах, соответствующих ключевым уровням. Но при этом вам придется как следует подредактировать файл, относящийся к данному Home City, чтобы отобрать только нужные апгрейды в соответствии со спецификой миссий (это требует тщательного продумывания). Хотя можно оставить и оригинальные сочетания бонусов и улучшений, но они вряд ли идеально подойдут для вашей кампании.

Лично я посоветовал бы вам на первых порах не заморачиваться с Home City, выставив параметру NoHCAccess значение 1 во всех подразделах. Да и количество актов лучше свести к одному. А когда вы во всем хорошо разберетесь, можете подключать к кампании межсценарные посещения городов, изменять загрузочные картинки миссий.

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

Есть и Бородинское сражение. На создание интересной кампании ушло не более трех часов.

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

По-моему, неплохим вариантом является разработка исторической кампании, в которой игрок, управляя русской армией, противостоит наполеоновским войскам. С точки зрения используемых в то время технологий, она как нельзя лучше впишется в игровые эпохи (тем более что и русские, и французы во главе с Наполеоном в игре есть).

Новых кампаний может быть и несколько. В этом случае вы должны сохранить содержимое папки Blood Ice Steel для каждой из них. Переставлять их вы сможете, копируя в <Каталог игры>\Campaign соответствующие файлы. Делайте больше кампаний и присылайте их нам. Лучшие из них будут размещены на нашем DVD.

Предпосылок

Наиболее важной предпосылкой, если вы хотите работать над сценарием ИИ, является терпение. По своему опыту я знаю, что без достаточного терпения сценарии ИИ довольно разочаровывают. Большая часть времени будет потрачена на тестирование и отладку. Вам нужно терпение.
Кроме того, у вас должны быть базовые знания компьютера, такие как просмотр определенных папок, копирование / вставка, создание новых файлов и т. Д.
Чтобы работать над сценарием, вам необходим текстовый редактор. Если ваша операционная система Windows, у вас уже есть текстовый редактор: «Блокнот» («Пуск»> «Все»> «Блокнот»). Однако я бы порекомендовал более продвинутый текстовый редактор, такой как Notepad ++. Поиск в Google, вы найдете множество текстовых редакторов.
Для тестирования и отладки необходимо установить Age of Empires III и оба его расширения (The WarChiefs и The Asian Dynasties). Ну, так как вы здесь, я предполагаю, что у вас уже есть игра.

Это очень поможет!

Рабочая область

Наконец, я должен сообщить вам, что каждый раз, когда я говорю, откройте XXX (или что-то в этом роде), это означает, что откройте XXX в вашем текстовом редакторе . Просто для вашего сведения, мой текстовый редактор Notepad ++.

Пожалуйста, помните все эти «условности», чтобы мы могли понять друг друга

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

Основами XS.

Вы можете спросить, что такое «XS». XS - это своего рода язык программирования, который используется во многих частях AoE3 для AI, случайных карт, триггеров, пользовательского интерфейса, домашнего города (для управления людьми, которые бродят по домашнему городу). Поскольку вы собираетесь создавать ИИ, вам придется выучить некоторые вещи на языке XS, здесь и сейчас.

Комментарии
Комментарии являются частью сценария, который ничего не делает. Они ничего не влияют на ИИ. Оставлять комментарии - все равно, что ничего не ставить. Для чего нужны комментарии? Вам нужны комментарии, чтобы объяснить те части сценария, которые кажутся трудными для понимания тем, кто будет читать ваш сценарий. Другими словами, комментарии помогают понять коды. Даже вам, автору скрипта, понадобятся комментарии, если вы не откроете скрипт в течение определенного периода. Есть два типа комментариев:
однострочные комментарии: //
Код: выбрать все

/* Commentary on the use of multi-line comments.
Multi-line comments are usually used to write
bigger blocks of text*/

Не пренебрегайте комментариями!

1. Переменные
Переменные - это разновидность именованных блоков, которые могут содержать информацию, которая может быть изменена во время выполнения программы (в нашем случае это скорее выполнение скрипта). Использование переменных просто важно, так как эта информация понадобится во время выполнения скрипта. В XS типизированы переменные, т.е. информация, содержащаяся в этих переменных, имеет тип. Каждая переменная занимает определенную память в ОЗУ, а объем памяти зависит от типа данных. Прежде чем использовать переменную, мы должны сначала определить (создать) ее . Чтобы определить переменную, мы пишем:
type name = value ;
Замените тип на нужный тип (указан ниже)
Замените имя на желаемое имя для переменной (правило именования следует после списка типов)
= (равно) обязательно. Это означает, что мы присваиваем значение переменной.
Замените значение на желаемое значение. Предупреждение: он должен быть того же типа, что и переменная (целочисленная переменная не может содержать десятичное значение)
; (точка с запятой) является обязательным. Это означает, что мы закончили определение переменной.

После определения переменной вам больше не нужно ставить тип перед ее именем

И я настаиваю: прежде чем использовать переменную, мы должны сначала определить (создать) ее .
Правильно:
int myVar = 0;
myVar = 2;

Неверно:
myVar = 0;
int myVar = 2;

Вот наиболее часто используемые типы в XS: Целочисленные

(
целые ) переменные типа Integer содержат числовые, недесятичные значения, например 100, -100, 8463.

Числа с плавающей запятой (с плавающей запятой)
Эти переменные могут содержать числовые значения с десятичной частью, например 3.141592, 2.718281, -1.0

Booleans (bool)
Эти переменные имеют только два возможных значения: true или false .

Логические значения полезны, когда вы хотите сравнить два значения (или значения двух переменных). Вот известные операторы для сравнения:
> больше чем
<меньше чем
> = больше или равно
<= меньше или равно
== равно (Внимание: не путайте это с " bbCodeBlock">

Можно объединить значения:

string name1 = "Edward";
string name2 = "Thatch";
string actualName = name1+" "+name2;

Поскольку name1 и name2 не находятся между двумя кавычками, они рассматриваются как переменные, поэтому вместо «name1 name2» мы получаем «Edward Thatch».

Это все для переменных типов. Теперь давайте посмотрим правила именования переменных:
* Имена переменных содержат только символы от a до z, от A до Z, от 0 до 9 и _ (подчеркивание).
* Имена не могут начинаться с цифры, но могут начинаться с подчеркивания.
* Имена не могут быть зарезервированными словами:
точка останова, точка останова, регистр, константа, продолжение, значение по умолчанию, double, else, extern, float, for, goto, если, int, long, return, static, string, switch, vector, void, while
* Каждая переменная имеет уникальное имя , т.е. вы не можете определить две переменные с одинаковым именем:
int thisIsAnIntVar = 0;
int thisIsAnIntVar = 0; // ОШИБКА. Эта переменная уже была определена.
XS чувствителен к регистру, поэтому A отличается от a, AA не является aa и т. Д. Это тогда правильно:
int thisIsAnIntVar = 0;
int THISISANINTVAR = 0;
int thisisanintvar = 0;
Однако я бы не советовал называть это так.

Теперь вот несколько примеров для определения переменных:


Также возможно сделать некоторые основные математические:

Возможные операции: сложение (+), вычитание (-), умножение (*), деление (/),
приращение: ++, как a ++, что аналогично a = a + 1;
декремент: - как a--, который похож на a = a - 1;
Примечание: отрицание (-) * не * поддерживается при применении к переменным: -a неверно. Таким образом, вы должны сделать так: a = 0 - a;

Константы Константа
- это переменная, значение которой никогда не меняется после определения. Константы похожи на простые выражения, но с именем:

int score = 300;
float distance = 30.0;
const int penalty = 5;
// If distance is bigger than 30.0, decrease the score
score = score - penalty;

Написание счета = оценка - штраф - это то же самое, что написание счета = оценка - 5
Разница в том, что вы хотите изменить штрафную точку. Если вы написали « оценка = оценка - 5» , вы должны изменить все 5 на новое желаемое значение, и это может быть очень раздражающим, в зависимости от количества случаев. Если вы написали счет = оценка - штраф , вам просто нужно изменить значение в определении:
const int penalty = 10

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

Блок инструкций
Блок - это последовательность инструкций, которые сгруппированы и обычно выполняются как одна инструкция. Несколько инструкций, заключенных в фигурные скобки <>, образуют блок.

Условные структуры: если, еще
Помните о логических значениях? Ну, это будет использовано здесь.
Структура условий выглядит следующим образом

если условие является истинным , инструкции А будет выполняться. В противном случае инструкция B будет выполнена.

Существует также другое if , которое позволяет нам проверять различные условия, если первое условие ложно . Мы можем использовать как можно больше :

Итерационные структуры: циклы
Цель циклов - повторять блок инструкций определенное количество раз или при выполнении условия.

В то время как условие является истинным , инструкции будут выполнены. Будьте осторожны, это может привести к проблемам с производительностью и даже к сбоям. Чтобы разорвать цикл, вы можете изменить условия:

int a = 0;
int b = 100;
string chat = "Nothing";


Этот цикл выполняет блок инструкций определенное количество раз.
инициализация : определяет целочисленную переменную, устанавливает начальное значение для счетчика (для подсчета количества итераций).
условие : если это правда , инструкции выполняются, значение переменной при инициализации увеличивается на 1 (увеличивается), и цикл продолжается. Если значение равно false , цикл прерывается и инструкции не выполняются.
Пример:
info = "i is 0"
info = "i is now 1"
info = "i is now 2"
info = "i is now 3"
info = "i is now 4"
info = "i is now 5"
info = "i is now 6"
info = "i is now 7"
info = "i is now 8"
info = "i is now 9"

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

Операторы Jump: break
Иногда нам может потребоваться завершить цикл, даже если условие истинно . Для этого мы используем перерыв .

Операторы перехода: продолжить
Иногда нам может потребоваться пропустить выполнение блока инструкций, даже если условие истинно . Для этого мы используем продолжить .

Ну, это работает так:
switch вычисляет выражение и проверяет, если выражение == constant1 . Если это так, инструкция A выполняется. Когда разрыв обнаружен, структура переключателя заканчивается. Если выражение! = Константа1 , оно проверяет, является ли выражение == константа2 и является ли оно истинным, инструкции B выполняются и т. Д. Если значение выражения не соответствует ни одной из констант, выполняются инструкции по умолчанию . Обратите внимание, что значение по умолчанию не является обязательным - блок инструкций по умолчанию является необязательным. Также обратите внимание, что выражениесравнивается только с константами: вы не можете поместить переменные вместо константы1, константы2, .

3. Функции
Хорошо, до сих пор все, что мы можем сделать, это определить переменные и сделать некоторые вычисления, которые ничего не сделают для ИИ. Тем не менее, мы увидели ключевую структуру XS и теперь готовы увидеть / сделать более конкретные вещи.
Какие функции? Ну, представьте себе кнопку с именем, которая выполняет определенные задачи, когда мы нажимаем на нее. Функции похожи на эту кнопку: функция - это группа инструкций или блок инструкций, которые выполняются при вызове из некоторой точки скрипта. Создание функций может быть чрезвычайно полезным и сокращает сценарий. Пока же мы увидим нативные функции, то есть функции, которые уже являются частью игры.

Определение
В XS определение функции выглядит так:

returnType представляет тип данных, который должна возвращать функция (int, string, . ). Если функции ничего не возвращают, returnType должен быть void .
functionName - это имя функции. Правила именования аналогичны правилам именования переменных.
параметр1, параметр2 . параметры - это переменные, над которыми (или благодаря которым) функция может выполнять операцию. Когда вы вызываете функцию, вы вводите нужные данные в соответствующий параметр - не беспокойтесь, в примерах это будет понятнее. Обратите внимание, что он не ограничен двумя параметрами, а также можно вообще не задавать никаких параметров.
defaultValue1, defaultValue1 . когда мы вызываем функцию, но не указываем значение в параметре, функция использует значение этого параметра по умолчанию.
return - возвращает значение, рассчитанное функцией (returnValue). Если функция пуста, это завершает выполнение функции.
returnValue - это то, что функция возвращает после выполнения своего блока инструкций. Значение должно быть того же типа, что и returnType. Если функция пуста, не помещайте returnValue.

Вызов
Если функция не является пустым , вы должны вызывать функцию следующим образом:
variable = functionName (параметр1, параметр2);

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

Нативные функции в AoE3
В AoE3 есть несколько типов функций:

xs: это что-то вроде элементов XS, которых нет в других языках, или как полезные инструменты, например, для работы с векторами или для работы с массивами.
ai: эти функции напрямую связаны с поведением ИИ во время игры: экономика, вооруженные силы, планы и т. д.
kb: kb означает «базу знаний» и полезны для получения / установки данных из / в игре. Откройте ссылку и узнайте некоторые функции kb. Прочитав их имена, вы сможете понять, что они могут делать. функции т.п.н. работать для игрока , которого вы выбрали, так что , например, если вы используете kbGetPop () , он возвращает общее население контекста игрока , которого вы находитесь.

Функции пользователя
Почти все нативные функции перечислены в справочнике, поэтому я не буду больше тратить на это время (пока). Теперь поговорим о пользовательских функциях.

Ну, мы уже видели, как определить функцию. Вот пример функции с целочисленным типом возврата:

Эта функция вычисляет факториал числа. И вот как мы это используем:
int justAnIntVariable = fact (3); // Возвращает факт функции 6

Помните, ранее я говорил вам, что вы не можете определить две переменные с одинаковым именем, но я не говорил о концепции локальной и глобальной переменной. Я сделаю, прямо сейчас.
Посмотрите на эту часть кода:

int numInfToTrain = 30; // Number of infantry to train

Переменная numInfToTrain определяется вне функции getRemainingInfToTrain () . Поэтому это глобальная переменная. Глобальные переменные могут быть доступны в любом месте всего скрипта, если он определен первым .

Все остальные переменные в этом коде определены внутри функции getRemainingInfToTrain () . Поэтому они являются локальными переменными. Доступ к локальным переменным возможен только в той функции, в которой они определены . Таким образом функция updateInfToTrain () не имеет доступа к переменным currentNumInfantry и остальным, Поэтому вы можете присвоить одно и то же имя двум или более переменным, если они все находятся в разных функциях.

Небольшое примечание, которое вы должны помнить: в AoE3 функция и переменная могут не иметь одинакового имен

Этот код вызовет ошибку, так как функция и переменная имеют одно и то же имя.

Функция main ()
Эта функция является единственной функцией, которая выполняется без вызова в сценарии. Он вызывается самой программой. Да, если нет функции main (), то ни одна из функций и инструкций не будет выполнена, поэтому вам нужно начать с нее.

4. Наш первый AI-скрипт!

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

Наш первый скрипт будет таким:

Иван Новиков

Триггеры создаются во вкладке «триггеры». Триггер задает действие и условие при котором действие совершится. Например, нам надо чтобы у русских с начала игры были открыты все улучшения 5 эпохи (постимпериализм). Для этого в разделе “условия” задается always (всегда). В этом случае действие совершится сразу после начала сценария. В разделе “эффекты” (сами действия), выбираем set tech status (выбрать статус технологии), там открывается список всех возможных улучшений. Выбираем postimperial Russians и игрока. Всё, триггер готов. Теперь после запуска сценария все улучшения русских будут открыты игроку.

AoE III: Scenario Editor — мощный редактор, позволяющий практически полностью изменить мир.

ОПИСАНИЕ ВОЗМОЖНОСТЕЙ: Scenario Editor предназначен для создания новых и редактирования уже существующих сценариев Age of Empires 3. Вы без проблем сможете сделать свой уникальный игровой мир, заселить его различными NPC, разместить на карте строения и тут же сыграть в свежеиспеченный сценарий. Для реализации несложной задумки потребуется не более часа. Плюсы редактора — простота освоения, удобство работы. Каких-либо недочетов и откровенных ляпов нам обнаружить не удалось.

ПРАКТИКА: Интерфейс редактора устроен следующим образом — верхнюю область приложения занимает главное меню, рядом расположена удобная инструментальная панель, на которую вынесено множество различных функций. В нижнем секторе Scenario Editor размещены окна параметров выбранного инструмента. Все оставшееся поле — окно 3D-вида, в котором преобразуется уровень. Перемещение камеры по карте производится посредством курсорных стрелок или с помощью мыши, а масштабирование — колесиком мыши.

Создание нового сценария в AoE3 Scenario Editor можно разделить на несколько последовательных этапов:

— Расстановка различных объектов на карте (NPC, строения, растительность и т.д.);

— Написание различных скриптовых сценок;

— Настройка параметров текущего сценария;

— Тестирование своей разработки.

ВЕРДИКТ: Age of Empires 3: Scenario Editor — мощный редактор, позволяющий практически полностью изменить мир AoE3 или же создать уникальную игровую вселенную с нуля. Средний уровень сложности, простота освоения и не ограниченные ничем, кроме вашей фантазии, возможности!

РЕЙТИНГ «МАНИИ»: 9/10

Где взять: С нашего DVD

ОПИСАНИЕ ВОЗМОЖНОСТЕЙ: New AoE3 Editor 1.1 — обновление для редактора сценариев игры Age of Empires III. Данный пакет включает в себя более 80 нововведений. На перечисление всех ноу-хау ушло бы, по меньшей мере, несколько журнальных страниц, поэтому мы отметим, для примера, лишь два из них — добавлено новое меню Wall, призванное упростить расстановку на карте различных стен, а также возможность загрузки сохраненных игр в редактор. Полный перечень изменений вы сможете увидеть сразу после инсталляции пакета дополнений в подкаталоге N3E.

ВЕРДИКТ: Отличный сборник дополнений для Scenario Editor. Рекомендуем использовать данную разработку всем тем, кто хочет сэкономить свое время при создании нового сценария для Age Of Empires 3.

РЕЙТИНГ «МАНИИ»: 8/10

На нашем DVD (в разделе «Игрострой») вы можете не только взять все утилиты, упомянутые в статье «Игровое редактирование», но и ознакомиться с более детальными описаниями программ, а также прочитать небольшие уроки по работе в самых важных для игростроевца редакторах.

Технические материалы, посвященные 3D-моделированию, конвертации объектов и прочим прикладным вопросам, — публикуются именно на диске, а не в журнале.

Civilization IV plugins for 3DS Max позволяет редактировать модели из Civilization IV.

Где взять: C нашего DVD

ОПИСАНИЕ ВОЗМОЖНОСТЕЙ: Спустя несколько месяцев после выхода четвертой «Цивилизации» разработчики по многочисленным просьбам игростроевцев выпустили ряд плагинов для 3DS Max, позволяющих добавлять в игру свои собственные модели. Утилиты также допускают загрузку в «Макс» оригинальных юнитов Civilization 4. Данные инструменты полностью соответствуют «цивилизационным» стандартам — позволяют присоединять к модели различные виды анимаций, изменять масштаб объекта, записывать вращения. Творением девелоперов смогут воспользоваться обладатели 3DS Max 6-ой и 7-ой версий.

ПРАКТИКА: Чтобы освоить процесс создания и редактирования юнитов «Цивилизации», вы должны в совершенстве владеть современным графическим пакетом — 3DS Max. Всю работу по разработке нового объекта для Civilization 4 можно разделить на несколько последовательных этапов:

Создание модели юнита. Важно не забыть про иерархию объектов, различные даммики (пустышки), наличие которых обязательно для функционирования юнита. Поскольку никакого help-файла вместе с инструментами в комплекте не поставлялось, есть лишь один верный способ разобраться в вышесказанном — импортировать в «Макс» стандартную модель из «Цивилизации» и посмотреть, наличие каких dummy-ков жизненно необходимо и за что они отвечают; как правильно настроить иерархию.

Анимирование созданного объекта. Тема анимации моделей, созданных в «Максе», не раз рассматривалась на страницах журнала, а в апрельском номере «Мании» был опубликован видеоурок от специалистов «К-Д ЛАБ» — создателей «Периметра».

Экспорт модели. Тут все предельно просто — выбираем в 3DS Max пункт меню File/Export и в появившемся окне указываем название объекта и формат. Поскольку речь идет о создании юнита для Civilization 4, выбираем соответствующий тип и жмем Ok. В появившемся окне настраиваем дополнительные параметры экспорта модели и вновь кликаем по кнопке Ok.

Для просмотра оригинальных объектов в базовом комплекте официальных утилит имеется специальный просмотрщик NIF-файлов — SceneViewer. Стоит отметить, что помимо отображения различных форм программа наделена рядом функций, не свойственных стандартным вьюерам. Например, возможность добавления в текущий NIF еще ряда моделей.

ВЕРДИКТ: Отличный набор официальных плагинов, предназначенный для создания/редактирования файлов моделей Civilization 4.

РЕЙТИНГ «МАНИИ»: 9/10

Где взять: C нашего DVD

ОПИСАНИЕ ВОЗМОЖНОСТЕЙ: В поле нашего внимания попал долгожданный Software Development Kit для четвертой «Цивилизации». Он содержит исходный код основных DLL-файлов игры, позволяющий модотворцам изменить или же полностью переписать мир Civilization 4. Разобраться в программном коде довольно несложно — разработчики не поскупились на комментарии, вследствие чего понять предназначение определенной функции, метода или класса сможет даже пользователь, не знакомый с кодингом. Как вам, например, идея переписать систему искусственного интеллекта или полностью сменить интерфейс игры?

И все бы здорово, но одно расстраивает: разработчики так и не выпустили полноценный инструментарий для создания модов.

ВЕРДИКТ: SDK для четвертой «Цивилизации», позволяющий откорректировать все игровые параметры. Рекомендуем данную разработку, прежде всего, пользователям, знакомым с основами программирования.

РЕЙТИНГ «МАНИИ»: 7/10

Civilization IV SDK позволяет откорректировать все игровые параметры. Уникальная в своем роде программа для работы с игровыми моделями формата .NIF.

NifSkope — программа для работы с игровыми моделями формата .NIF.

Где взять: С нашего DVD

ОПИСАНИЕ ВОЗМОЖНОСТЕЙ: Nifscope 0.81 — графическая программа, предназначенная для открытия NIF-файлов (данный формат моделей используется в играх, базирующихся на движке NetImmerse/Gamebryo), их просмотра и редактирования. Утилита в своем роде эксклюзивна и не имеет аналогов. В частности, инструмент Nifscope широко используется для просмотра и редактирования моделей The Elder Scrolls 4: Oblivion.

ПРАКТИКА: Интерфейс программы прост и удобен. Основная область редактирования состоит из окна 3D-вида, в котором отображается загруженная модель, и поля редактирования, содержащего множество характеристик объекта. Нельзя не отметить наличие удобной инструментальной панели, на которую вынесены лишь самые нужные для работы функции.

Главная ценность утилиты — возможность импортирования/экспортирования загруженного объекта в формат .OBJ, который понимают все современные пакеты 3D-графики, например, 3DS Max. Рассмотрим данную функцию программы более подробно.

Загрузите произвольный NIF-файл, например, из TESIV. В поле редактирования выберите пункт NiTriShape и щелкните по нему правой кнопкой мышки. В появившемся меню выберите Mesh/Export .OBJ и сохраните объект с новым расширением. Теперь вы можете спокойно запустить любимую программу 3D-графики, поддерживающую формат .OBJ, и отредактировать данный элемент. Чтобы импортировать измененную модель в NIF-файл, экспортируйте ее в формат .OBJ через 3DS Max. Далее вернитесь к утилите Nifscope, вновь выберите пункт NiTriShape и проделайте повторно все вышеописанные манипуляции с небольшой поправкой — в появившемся меню на сей раз необходимо выбрать пункт Mesh/Import .OBJ.

Программа практически лишена недостатков, да и кто их заметит на фоне множества полезных функций. Разработка может представлять интерес для всех пользователей, сталкивающихся с необходимостью изменения объектов, представленных NIF-файлами.

ВЕРДИКТ: Уникальная в своем роде программа для работы с игровыми моделями формата .NIF.

РЕЙТИНГ «МАНИИ»: 10/10

Где взять: Устанавливается вместе с игрой

ОПИСАНИЕ ВОЗМОЖНОСТЕЙ: QuakeEdit предназначен для редактирования оригинальных и создания новых уровней для Quake 4. Со времен DOOM 3 редактор похорошел — добавлено множество мелких очень полезных функций.

QuakeEdit — качественный редактор уровней для Quake 4.

ПРАКТИКА: Чтобы загрузить редактор, необходимо запустить игру с ключом +editor. Для этого сначала создайте ярлык для запуска Quake 4. Затем кликните по нему правой кнопкой мышки и в появившемся меню выберите пункт Свойства. В открывшемся появившемся окне в поле «объект» добавьте команду +editor. Кликните по кнопке Применить, чтобы изменения вступили в силу. После запуска ярлыка произойдет загрузка игры, а лишь затем приложение перейдет в режим редактора.

Начинка редактора — старый добрый Q3Radiant, поэтому у мододелов, уже знакомых с основами картостроения для «Квейка», особых трудностей возникнуть не должно. Новичкам же настоятельно рекомендуем ознакомиться с материалами по созданию уровней для DOOM III, которые уже публиковались в «Игромании».

Интерфейс QuakeEdit устроен следующим образом: правую область редактора занимает окно 2D-вида, в котором осуществляется разработка карты. Левую половину QuakeEdit занимают небольшое окошко 3D-вида, окно инспектора и линейка, позволяющая редактировать высоту выделенных элементов уровня. Перемещение по карте в окне 3D-вида осуществляется посредством курсорных клавиш. Для изменения угла наклона камеры воспользуйтесь клавишами A и Z. Для изменения высоты положения камеры используйте клавиши D и C.

Разработка любой карты для «Квейка» начинается с создания так называемого браша. После того как «болванка» будет готова, ее преобразуют в игровую комнату посредством выбора пункта меню Selection\CSG\Hollow. Далее уровень-коробку текстурируют, добавляют на карту различные пикапы, монстров, элементы архитектуры и наконец — стартовую позицию игрока. Результатом проделанной работы становится рабочая карта, протестировать которую можно следующим образом: необходимо сохранить уровень через редактор в каталог установленного Quake 4 — q4base\maps, затем — запустить игру, вызвать консоль с помощью комбинации клавиш Ctrl+Alt+

и вбить в появившейся командной строке команду map и название вашей карты, например: map alpha_level.

QuakeEdit — далеко не единственный редактор, поставляющийся вместе с четвертым «Квейком». Существует еще ряд утилит, позволяющих изменять различные игровые ресурсы — звуки, модели, PDA-файлы. Активация программ осуществляется с помощью консоли, вызываемой в игре комбинацией клавиш Ctrl+Alt+

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

— Sound Editor (команда для консоли — editSounDS). Редактор звуков, позволяет изменять оригинальные и добавлять новые файлы формата .OGG;

— Articulated Figure Editor (команда для консоли — editAFs). Несложная программа с интуитивно понятным интерфейсом, предназначенная для редактирования уже существующих и создания новых персонажей. Утилита позволяет изменять такие параметры, как рост NPC, его вес и ряд других атрибутов;

— Script Editor. Название говорит само за себя (команда для консоли — editScripts) — утилита предназначена для написания различных скриптов, в частности, роликов на движке игры.

ВЕРДИКТ: QuakeEdit — неплохой, а главное, единственный редактор уровней для Quake 4. Он позволяет создавать как полноценные одиночные, так и многопользовательские карты. Высокий уровень сложности, но практически безграничные возможности.

РЕЙТИНГ «МАНИИ»: 9/10

Где взять: С нашего DVD

ОПИСАНИЕ ВОЗМОЖНОСТЕЙ: Спустя некоторое время после выхода Quake 4 разработчики создали так называемый SDK (исходный код и множество уже готовых наработок). Изучив ряд примеров, вы сможете разобраться, как делается тот или иной элемент игры, а проанализировав исходный код, создавать свои собственные инструменты для редактирования четвертого «Квейка» (для этого, конечно, нужно хорошо разбираться в программировании).

ВЕРДИКТ: Отличный набор примеров по различным утилитам, поставляющихся вместе с Quake 4, плюс исходный код движка игры, разобравшись в котором можно творить свои собственные редакторы и профессиональные модификации.

РЕЙТИНГ «МАНИИ»: 7/10

Quake 4 SDK — набор примеров и исходного кода для четвертой «Кваки».

Где взять: С нашего DVD

Call of Duty 2 Mod Tools позволяет создать на базе CoD2 совершенно новую игру.

Многие думают, что при скрупулезном подходе можно обнаружить множество ошибок практически в каждом редакторе, а если речь идет о целом инструментарии. Спешим убедить вас в обратном: создатели настолько скрупулезно тестировали Call of Duty 2 Mod, что инструментарий практически лишен багов.

ПРАКТИКА: Рассмотрим основные утилиты:

1. Maya Plugins — ряд плагинов для Maya, одного из популярнейших пакетов 3D-графики, позволяющего создавать модели, присоединять к ним разрешенные виды анимаций и экспортировать полученные элементы в формат объектов, используемых Call of Duty 2. Более подробно данный вопрос рассмотрен в документации, поставляющейся вместе с SDK. Если вы владеете английским языком, то освоить процесс создания моделей для Call of Duty 2 вы сможете за считанные часы.

2. Наибольшего внимания заслуживает редактор CoD2Radiant. Он предназначен для создания одиночных и многопользовательских карт. При первом запуске приложения вам необходимо указать путь к файлу проекта cod2.prj, расположившемуся в папке \bin установленного инструментария. Интерфейс программы интуитивно понятен. Сверху располагается удобная инструментальная панель. Внизу находится поле, представляющее собой своеобразный лог, в который записываются все действия пользователя и предупреждения об ошибках. Посередине расположено поле, состоящее из двух окон: правое представляет собой 3D-вид и библиотеку всевозможных текстур, используемых в оригинальной игре; левое — 2D-вид, в котором происходит разработка нового уровня. Здесь же находится линейка, предназначенная для регулирования высоты выбранного элемента.

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

3. CoD2 Compile Tools — программа для компиляции созданных уровней и их последующей установки в Call of Duty 2. Утилита обладает удобным интерфейсом: левое поле редактора занимает менеджер карт, а правое крыло приложения заполнено различными параметрами компиляции, освещения. При желании вы сможете после завершения процесса компиляции протестировать свою разработку.

4. Редактор EffectsEd предназначен для правки разного рода эффектов, применяемых в игре, например: тряска камеры, свечение, облака, система частиц. Большую область приложения занимает окно 3D-вида, в котором осуществляется просмотр эффектов. Под ним располагается поле, в котором отображаются так называемые сегменты (составляющие каждого эффекта). Всю правую часть редактора занимает окно, содержащее множество вкладок, в которых осуществляется правка параметров — размер, скорость, цвет эффекта. Освоить EffectsEd можно буквально за 15 минут.

ВЕРДИКТ: Набор утилит, позволяющий создать на базе Call of Duty 2 Mod Tools совершенно новую игру.

РЕЙТИНГ «МАНИИ»: 9/10

Где взять: С нашего DVD

ОПИСАНИЕ ВОЗМОЖНОСТЕЙ: TR v1.8a (Texture Replacer for .NIF files) — небольшая утилита, предназначенная для замены текстур в одном или нескольких NIF-файлах TESIV: Oblivion. Программа не обладает графическим интерфейсом — все действия приходится выполнять через командную строку. Несмотря на утверждение автора, что он не любит составлять разного рода документации, утилита снабжена очень полезным и подробным хелпом, в котором изложена необходимая информация об опциях командой строки о синтаксисе и различных действиях: замене текстуры, ее удалении, отображении всех картинок, содержащихся в файле.

ВЕРДИКТ: Простая утилита для замены текстур в NIF-файлах TESIV: Oblivion, работающая через командную строку. Рекомендуем использовать данный инструмент всем модостроителям.

РЕЙТИНГ «МАНИИ»: 7/10

NIF Texture Replacer — утилита для замены текстур в NIF-файлах TESIV: Oblivion.

Читайте также: