Игрострой
Под властью дракона
Создание модулей для Dragon Age: Origins
Довольно скоро после выхода Dragon Age: Origins разработчики выпустили мощнейший инструментарий для создания новых и модифицирования уже существующих модулей, имя которому — Dragon Age Toolset. К сожалению, опробовать тогда редактор удалось далеко не всем. У одних он банально не загружался, другие жаловались на частые вылеты, третьи наблюдали синий экран смерти после окончания установки.
И лишь недавно была, наконец, выпущена стабильная, рабочая версия редактора. Сегодня мы расскажем вам, как создать заготовку модуля в Dragon Age Toolset, сделаем простенькую шаблонную локацию, наполним ее различными объектами и в заключение поучимся создавать новых игровых персонажей на базе уже существующих.
Основы основ
Перед установкой инструментария советуем, во-первых, проинсталлировать последние обновления для ОС, а в случае с Windows XP проинсталлировать третий сервис-пак (если вы, конечно, хотите уберечь себя от экрана смерти). А во-вторых, создать в системе учетную запись, в названии которой не будут фигурировать русские символы. Дело в том, что Dragon Age Toolset не дружит с кириллицей: редактор физически не может открыть для записи файлы, в путях до которых встречаются русские знаки. При этом с чтением этих же самых файлов программа отлично справляется.
Давайте разберемся, что собой представляет модуль в Dragon Age: Origins. Это совокупность различных игровых ресурсов (карт, моделей, скриптов, анимационных сценок, звуков и т.п.), расположенных в изолированном рабочем пространстве. Независимо от того, имеем мы дело с простенькой модификацией, оформленной в виде модуля, или комплексным дополнением, добавляющем в игру массу новых локаций и квестов, стандартные ресурсы затронуты не будут.
Модули — своеобразные насадки, которые в любой момент можно как прикрутить к игре, так и безболезненно удалить, не нарушив при этом целостность исходных файлов. Модуль может включать в себя только те компоненты, которые вы в него поместите. Если вы, скажем, сделаете несколько новых предметов и добавите их в инвентарь героя — только они и будут в аддоне. То есть в сравнении с простыми модами модули еще и очень компактны.
Подготовительный этап
Чтобы создать новый модуль, выполните команду File\Manage Modules и в появившемся окошке щелкните по кнопке New. Затем в новом окне с заголовком Object Inspector загляните в свиток General , отыщите в нем поля Name (имя модуля, отображается в игре) и UID (уникальный идентификатор, используемый редактором) и введите в них произвольные ключевые слова на английском языке — например, Igromania_Module и IM_MOD. Все остальные свойства модуля вы сможете задать позже. Когда определитесь с названиями, нажмите кнопку OK. Вы увидите, что созданная заготовка тут же отобразится в окне менеджера модулей. Выберите ее из списка и нажмите Open.
Попрактикуемся в создании несложных дополнений для игры. И начнем с формирования базовой локации. Выберите пункт меню File\New Area или кликните правой кнопкой мыши по главному полю на панели Palette Window в правой части редактора и в контекстном меню выберите пункт New\Area. В открывшемся окне Create New Resource в поле Resource Name введите название территории, а в Folder — путь к папке, где будет храниться карта (скажем, \areas или \locations ). Как только вы нажмете кнопку OK , локация-пустышка появится на панели Palette Window во вкладке Areas.
На панели Object Inspector в правой части инструментария перейдите в свиток General и щелкните по кнопке cо знаком многоточия напротив пункта Area Layout. В появившемся диалоговом окне выберите любую заготовку окружения, например hrt000d , и нажмите OK. Выбранный макет автоматически подгрузится в окно 3D-вида.
Перемещение камеры в окне 3D-вида производится при помощи мышки с зажатой левой кнопкой и клавиши Ctrl. Масштабируется картинка колесиком мыши. А поворот и изменение угла наклона камеры выполняется с помощью все той же мышки, но уже с зажатой средней кнопкой.
Если выбранная вами шаблонная локация окажется слишком темной, кликните левой кнопкой мыши по иконке с изображением солнца на панели инструментов в верхней части редактора для осветления территории.
Заселение локации
Можно приступать к наполнению локации различными объектами, начиная от элементов декора и заканчивая живыми существами. Начнем с добавления стартовой позиции для игрока.
Щелкните правой кнопкой мышки по любому месту в окне перспективы и в выпадающем меню выберите пункт Insert Waypoint. Вы увидите, что на сцене появится вейпойнт — специфический служебный объект зеленого цвета (флажок на платформе в виде стрелки), который будет следовать за курсором до тех пор, пока вы не кликните левой кнопкой мышки по участку игровой территории (в этом случае позиция элемента закрепится).
Чтобы изменить местоположение базового вейпойнта по оси абсцисс ( X ) или ординат ( Y ), ухватитесь за него левой кнопкой мыши и, не отпуская ее, передвиньте манипулятор. Для переопределения высоты или Z -координаты объекта активируйте режим редактирования 3 Axis Movement (кнопка с изображением двух пересекающихся стрелок на главной инструментальной панели, пятая с конца), наведите курсор на нужную координатную ось (в нашем случае — аппликат) и переместите мышь с зажатой левой кнопкой на новое место.
Вернуться к стандартному режиму редактирования ( Standard Selection ) вы можете в любой момент, кликнув по пиктограмме курсора на панели инструментов в верхней части программы (пятая кнопка с конца). Изменить ориентацию элемента в пространстве тоже несложно. Все, что от вас требуется, — задействовать режим поворота объектов (кнопка с изображением двух закругленных стрелок, огибающих круг, на панели инструментов, четвертая с конца), выделить нужный объект, выбрать ось вращения, зажать левую кнопку мыши и передвинуть мышь в любом направлении.
Если вы хотите повернуть объект на заданный угол исключительно в горизонтальной плоскости (угол наклона элемента остается неизменным), то проще всего и гораздо логичнее сделать это в режиме по умолчанию Standard Selection. Зажимаете клавишу Shift на клавиатуре, выделяете объект на карте и начинаете елозить мышкой с зажатой правой кнопкой по коврику, пока не добьетесь желаемого результата. Чтобы создать точную копию какого-либо элемента, выделите его и скопируйте в буфер обмена при помощи комбинации клавиш Ctrl+C , а затем подгрузите клон на карту ( Ctrl+V ). Для удаления выделенного объекта со сцены воспользуйтесь клавишей Delete.
Возвращаемся непосредственно к нашей стартовой отметке. Присвоим ей название и идентификатор, явно указывающий на наш объект. Выделите вейпойнт в окне 3D-вида, на панели Object Inspector в правой части редактора перейдите в свиток General и введите в поле Name имя стартовой позиции на английском языке. Затем в поле Tag введите имя так называемого тега или кодового названия, по которому можно будет легко найти элемент, а также обращаться к нему, скажем, из различных скриптовых сценариев.
Во избежание путаницы советуем задать атрибутам Name и Tag идентичные короткие запоминающиеся имена вроде start или main. Когда закончите, сохраните изменения (комбинация клавиш Ctrl+S ), вызовите менеджер модулей командой File\Manage Modules , выберите из списка запись с названием нашего дополнения и щелкните по кнопке Properties. В открывшемся окне в свитке General отыщите пункт Starting Area и кликните по символу многоточия напротив данного поля. В диалоговом окне Resource Open/Save укажите путь к стартовой локации (той карте из состава модуля, с которой по вашему замыслу должно начаться приключение). После этого в том же блоке параметров (General) выберите из списка Starting Waypoint ранее обозначенную на карте стартовую позицию для игрока.
Объекты
Займемся украшением и оживлением нашей локации. Проще всего воспользоваться уже готовыми объектами из стандартной библиотеки (панель Palette Window в правой части редактора). Правда, здесь есть одно но — далеко не все игровые ресурсы предназначены для размещения на карте. Например, скрипты не существуют сами по себе, а закрепляются за конкретными персонажами (или объектами сцены), оружие, броня и другие предметы заносятся главным образом в инвентарь героя и так далее.
Поэтому перед тем, как приступить к расстановке объектов на уровне, рассмотрим вкратце содержимое основных категорий, которые представляют для нас интерес. Наибольшего внимания заслуживает большая группа Creatures (ей соответствует иконка с изображением головы огнедышащего дракона на панели Palette Window), в которой содержатся разномастные монстры и гуманоидные персонажи, управляемые компьютером. За ней в порядке важности следует блок Placeables (пиктограмма стола). Здесь представлены как статические и динамические конструкции, носящие декоративный характер (это всевозможные контейнеры, клетки, мебель, статуи и т.п.), так и часто используемые служебные и информационные элементы (триггеры, ловушки, двери для перехода между территориями). Замыкает цепочку категория Sounds (нотная иконка), где собраны используемые в игре звуки и музыка.
Чтобы добавить объект на карту, активируете кнопку-вкладку на панели Palette Window, например Creatures, выбираете любой элемент из списка (за вычетом записей, заключенных в неприкасаемые директории с грозными названиями вроде _DO_NOT_TOUCH ) — допустим, _Core_Creatures\Animals\bear_great (Great Bear) (бурый медведь), после чего переходите в окно 3D-вида и единожды щелкаете левой кнопкой мыши по тому месту на карте, куда хотите добавить объект. Проще некуда.
Манипуляции с библиотечными элементами не отличаются от разобранных ранее действий над вейпойнтами, так что никаких сложностей с позиционированием элементов у вас возникнуть не должно. Поместив на уровень определенный объект, вы можете изменить некоторые его характеристики на панели Object Inspector. В случае с персонажами это Importance (важность), Rank (ранг NPC), Treasure Category (тип сокровищ, которые будут высыпаться из персонажа после его убийства), WeaponsDrawn (дроп оружия) и некоторые другие.
Творцы невиданных существ
Ограничиваться одной только правкой базовых атрибутов стандартных объектов вовсе не обязательно: никто не запрещает вам создать абсолютно нового персонажа или предмет с чистого листа или же на базе одного из существующих шаблонов. Давайте для начала потренируемся в создании существ с уникальными характеристиками.
На панели Palette Window перейдите в категорию Creatures, выберите любого NPC в качестве подопытного (например, _Core_Creatures\Humanoid\bandit_human_archer (Bandit) ), щелкните правой кнопкой мыши по элементу и в выпадающем меню выберите пункт Duplicate. Появится окно, в котором требуется определить базовые параметры создания копии.
В поле Resource Name введите название игрового ресурса (существа) на английском языке — скажем, mania_bandito. Далее кликните по кнопке с символом многоточия напротив атрибута Folder и в открывшемся диалоговом окне укажите путь к папке (относительно корневого каталога с модулем), где будет храниться файл со всеми данными о новом персонаже: к примеру, \new_creatures. Затем выберите из раскрывающегося списка Module модуль, к которому будет привязан наш объект. Чтобы создать дубль исходного ресурса, нажмите OK.
Вы увидите, что в основной рабочей области приложения появится панель свойств редактируемого элемента и окно предварительного просмотра 3D-модели. Создание нового NPC в редакторе сводится к банальному редактированию параметров (в основном путем выбора нужных пунктов из раскрывающихся списков) из представленных блоков. Начнем с основной категории General.
Параметр Class определяет класс персонажа, атрибут Gender — половую принадлежность NPC, а Group — отношение персонажа ко всем обитателям мира Dragon Age. Следующая интересная характеристика — Inventory — указывает на то, какие предметы (оружие, броня, драгоценности, бутылочки с лечебными снадобьями и т.п.) входят в инвентарь персонажа. Чтобы пополнить походный мешок NPC, щелкните по кнопке с символом многоточия напротив данного пункта, в открывшемся окне выберите нужные вещицы из так называемой палитры (занимает левую часть формы Inventory) и нажмите кнопку Add для переноса элементов в группу используемых объектов.
Параметр Name задает имя персонажа, которое будет отображаться в игре, а Tag — кодовое название, по которому можно обращаться ко всем объектам данного типа. Далее по курсу — свиток Abilities. Здесь расположены три характеристики, отвечающие за различные способности персонажа: Skills (навыки), Spells (используемые NPC заклинания) и Talents (особые таланты персонажа — например, стрелковые). Редактирование значений этих атрибутов в точности повторяет процесс добавления новых предметов в инвентарь персонажа. В блоке Appearance представлены атрибуты, отвечающие за внешний облик персонажа. Самый значимый из них — Appearance — определяет 3D-модель существа.
Заслуживают внимания и некоторые настройки из секции Package/Scaling. Параметры Max Level и Min Level из этой группы задают максимальный и минимальный уровень развития персонажа. Характеристики General Package Type , Package и Package AI отвечают за поведение того или иного создания. Атрибут Rank явно указывает на ранг NPC. Наконец, параметр Treasure Category передает игровому движку информацию о том, вещицы какого типа (броня, драгоценности, оружие и т.п.) могут выпадать из персонажа после его смерти. Последний пункт назначения — категория Special. В ней нас главным образом интересуют два параметра: Creature Type и Immortal. Первый указывает на то, может ли NPC вообще сражаться, а второй — является ли создание бессмертным.
По окончании редактирования сохраните изменения с помощью комбинации клавиш Ctrl+S. Чтобы добавить новоиспеченное существо на уровень, загляните в категорию Creatures на панели Palette Window, выберите соответствующую запись из списка и единожды щелкните левой кнопкой мыши по любому месту на карте.
Чтобы экспортировать тот или иной ресурс (или даже целую папку с таковыми) в формат, понятный игре, щелкните по нужному файлу (или каталогу) на панели Palette Window в правой части редактора правой кнопкой мышки и в выпадающем меню выберите пункт Export\Export Without Dependent Resources. Для экспорта всех представленных в модуле составляющих кликните по рабочему полю на панели Palette Window и в контекстном меню выберите команду Export\Full export.