В прошлой статье, посвященной модифицированию Titan Quest мы создали новый уровень, заселили его монстрами, застроили городами, посадили растительность и добавили несколько украшательств. Но даже самая красивая карта неинтересна, если на ней нельзя выполнять какие-нибудь задания. Просто шинковать монстров в капусту надоедает очень быстро. Сегодня мы расскажем, как писать квесты и добавлять их в игру.
Базовая концепция
Любой квест в Titan Quest представляет собой совокупность триггеров, контролирующих игровые события. Для создания новых заданий мы воспользуемся приложением QuestEditor.exe, которое находится в корневом каталоге игры.
Под шапкой главного меню находится панель инструментов. Рабочая область редактора поделена на пять полей: Files — список файлов, Script Data — поле, на которое добавляются ключевые точки квестов, триггеры, условия и действия, Properties — здесь отображаются свойства выбранного элемента, Comments — поле для комментариев, Asset Chooser — своеобразный проводник, в котором можно очень быстро выбрать необходимое условие или действие.
Прежде чем начать работу в программе, выберите пункт меню FileSelect Mod, выделите строку c названием вашей модификации и нажмите кнопку Ok. Пора приступать к работе. Воспользуйтесь комбинацией горячих клавиш Ctrl+N и создайте новый квестовый документ. Основа готова, приступим к «нанизыванию» на нее различных элементов.
Новые миссии пишутся поэтапно. Сначала нужно сформировать так называемый квестовый шаг — для этого выберите в меню Add пункт Quest Step или щелкните по кнопке с изображением зеленой шестеренки на инструментальной панели. После этого необходимо добавить триггер, состоящий из различных условий и действий, которые игроку необходимо выполнить. Создать новый триггер можно, щелкнув левой кнопкой мышки по кнопке New Trigger на панели инструментов.
Если вы все сделали правильно, в поле Script Data появится основа — базовый элемент New Quest Step и дочерний по отношению к нему New Trigger. От триггера должны отходить две ветви — Conditions (условия) и Actions (действия). В первую категорию нам предстоит добавить одно из стандартных условий, после успешного выполнения которого осуществятся действия, прописанные в блоке Actions. Для этого выделите компонент Conditions и выберите пункт меню AddCondition. В открывшемся окне укажите необходимо условие, например, Kill Creature X (убить существо Х, сам Х в данном случае — переменная) и нажмите Ok. Условие определено, но игра пока не знает, какого монстра должен уничтожить игрок! Перейдите на панель Asset Chooser и выберите монстра из директории Database
ecordscreaturemonster. Обратите внимание, что существо должно обязательно присутствовать на вашем игровом уровне: если его нет, триггер выдаст ошибку.
Когда определитесь с монстром, выделите условие Kill Creature X [empty] в поле Script Data. В окне Properties щелкните по кнопке со значком ... (многоточие) напротив метки CreatureDataBaseRecord. Информация о монстре будет занесена в поставленное условие.
Создадим действие, которое активируется, если игрок успешно справится с поставленной задачей. Выделите компонент триггера Actions и щелкните по кнопке с изображением синей стрелки на панели инструментов. Перед вами появится новое окно, содержащее список различных действий. Давайте, например, добавим игроку некоторое количество скилл-пойнтов — Give Player N, N, N skillpoints. Выберите созданный компонент и настройте ряд параметров в окне свойств — например, измените базовые значения в строках SkillPointsEpic, SkillPointsLegendary, SkillPointsNormal на 15.
Теперь, если игрок убьет определенного монстра на нашем уровне, то получит заветные 15 очков умений. Заметьте, что в квесте вы можете использовать не одно, а несколько различных условий и действий. Также вы можете создать задание, состоящее из двух и более шагов. Главное — не забывать, что каждый новый Quest Step должен содержать триггер, блок условий и действий. Если в процессе работы вы решите удалить какой-нибудь элемент квеста, воспользуйтесь кнопкой с изображением корзины на панели инструментов.
Сохраните квестовый документ в директорию sourceQuests с вашим модом под любым названием, например: Мои ДокументыWorkingCustomMapsIgromania_TQsourceQuestsIgromania_1.qst
Подключение квеста
Первый этап работы завершен. Осталось лишь подключить новую миссию к уровню, скомпилировать файлы модификации и опробовать в игре.
Запустите утилиту ArtManager.exe из корневого каталога Titan Quest. Кликните на пункт меню ModSelect и выберите из выпадающего списка строку, содержащую название вашей модификации. Раскройте папку с вашим уровнем в дереве каталогов и щелкните мышкой по директории Quests. В окне напротив (в правой части приложения) выделите файл квеста с расширением .qst, который мы сохранили через Quest Editor. Щелкните по элементу правой кнопкой мышки и в контекстном меню выберите пункт Auto-Create Asset. В появившемся окне, не изменяя никаких параметров, нажмите Ok. Выберите пункт меню BuildBuild для обновления данных о вашем проекте в базе данных. Менеджер создаст новую запись и добавит в список квестов новый элемент — созданный нами квест.
Теперь можно подключать квест к уровню. Запустите редактор карт — файл Editor.exe из корневой директории. Из списка Mod Name выберите строчку, содержащую название вашего проекта. В древе каталогов редактора раскройте папку sourceMaps, выделите wrl-файл карты и нажмите кнопочку Ok. Не переходя в режим редактирования локации, кликните на пункт меню QuestSelect Files для подключения к уровню созданного нами квеста. В открывшемся окне кликните по кнопке Add и выберите новую миссию из общего списка заданий. Подтвердите выбор квеста нажатием кнопки Ok в окне Quests. Сохраните изменения (FileSave All) и выйдите из редактора.
Вновь запустите утилиту ArtManager.exe, выберите новый квест и нажмите клавишу F7 для компиляции уровня. Можете загружать игру и тестировать свою разработку.
Практика объединения
В первой статье по редактированию Titan Quest мы рассказали о том, как создавать новые уровни, формировать ландшафт, добавлять монстров, но не рассмотрели один довольно важный момент — как объединить несколько уровней в кампанию. Решить данную проблему можно с помощью все того же редактора уровней.
Помните, в самом начале нам приходилось работать в режиме макета (вкладка Layout Mode)? Именно в этом режиме мы создали базовый элемент уровня — плоский ландшафт. Если вы в очередной раз обратитесь к пункту меню RegionAdd New Terrain, то сможете добавить на уровень новую локацию. Созданную территорию разрешено совмещать с базовым ландшафтом. Для этого выделите новый элемент, щелкните по одной из направляющих стрелок и мышкой совместите обе территории. После этого переключитесь в режим редактирования и измените форму объединенной локации, добавьте на нее необходимые объекты.
Для перемещения между локациями используются так называемые телепорты — специальные объекты, позволяющие перебрасывать игрока с одного уровня на другой. Найти такого рода порталы вы можете в категории
ecordsunderground
aturalcavegreece
aturalcave, например, greecedngentrance_c01_ext.dbr.
Добавьте два портала на обе локации уровня. Выберите на инструментальной панели инструмент для работы с порталами (17-й слева). В поле параметров портала кликните по кнопке, содержащей символ многоточия (верхняя строка). Затем кликните по входу в телепорт. Поле заполнится различными значениями. Проделайте эту же операцию со вторым порталом и нажмите кнопку Link, чтобы активировать элементы. Теперь, когда игрок зайдет в портал, то будет успешно перемещен в подземелье или в новый регион.
При сохранении не забудьте перестроить все карты для мини-радара и пути движения персонажей (BuildRebuild All Maps, BuildRebuild All Pathing).
Начинающим картостроителям
Несколько советов начинающим картостроителям:
• Как можно чаще сохраняйтесь. Редактор уровней часто сбоит, в результате все несохраненные изменения могут быть потеряны. Нередко редактор вылетает и при сохранении уровня, но в этом случае можно не беспокоиться: все изменения будут сохранены даже при критической ошибке.
• Тестируйте карты и квесты в самой игре. В этом случае вы сразу же обнаружите ошибки, возникшие при разработке уровня.
• Не забывайте добавлять на свою карту звуковые эффекты: уровни без звука ужасны.
• Пользуйтесь свойством прозрачности текстур при раскрашивании ландшафта. Например, вы можете покрыть какой-либо участок текстурой песка, а поверх нее нанести трехмерную траву (прозрачность по умолчанию 30%).
* * *
В двух статьях цикла мы рассмотрели основные принципы работы в редакторах Titan Quest — изучили ландшафтно-дизайнерское дело, научились манипулировать различными объектами сцены и узнали, как делать квесты.
Теперь вы можете самостоятельно создавать дополнения практически любой сложности. По нашим прикидкам, для подготовки качественного мода, рассчитанного на час непрерывной игры, уходит две-три недели.