Свой среди чужих, чужой среди хищников. Создание уровней для AlienS versus Predator 2
Редактор: DEdit Где взять: С диска "Мании" Возможности: 100% игровых Сложность освоения: Выше средней Документация: Устанавливается вместе с редактором
Коридор. Темнота. Я — бравый морпех, непонятно, что я делаю на инопланетной базе, где нет моря. Ползу в коридоре, в сумраке. Нам не привыкать. Кто это стучит когтями по металлу? Чужой? Хищник? Где мой фонарик... Батарейка села... А-а-а!!! Нет, так нечестно. Почему это всякая инопланетная нелюдь в темноте видит, а я даже прибора ночного видения не имею! Вот если бы расставить там в каждом закоулке по лампе... Я бы им всем показал, как с морпехами связываться! Так думал "молодой повеса", приканчивая вторую пачку валидола после очередного сеанса игры в Aliens versus Predator 2. На его счастье, Monolith буквально через пару месяцев после выхода игры выпустила набор утилит для ее редактирования. Утилиты были немедленно скачаны, проинсталлированы и подробно изучены. И чтобы у читателей Мании не возникало ситуаций, подобных описанной выше, одну из этих утилит, редактор уровней DEdit, мы сейчас рассмотрим в работе.
К истокам Установка утилит не вызывает особых трудностей, за исключением момента, когда инсталлятор требует игру версии 1.0.9.3 или выше. Соответствующий патч вы можете так же, как и сам редактор, взять снашего компакта. После установки в корневой директории игры появится папка Tools, в которой и обосновались все утилиты. Запустите файл unrez.bat (запускает программу lithrez) — так вы распакуете все ресурсы игры, кроме уровней (исключение составляют уровни-примеры). После распаковки все файлы будут лежать в каталоге AVP2 в корневой директории игры. Затем запускайте DEdit. На картинке, которая выскакивает во время загрузки программы, красуется большая красная надпись BETA. Дело в том, что по умолчанию в редакторе отключены две очень важные панели инструментов. Чтобы включить их, зайдите в меню View и установите галочки на пункты Main Toolbar и WorldEdit Toolbar. Вот теперь можно приступать к ознакомлению с интерфейсом.
Интерфейс DEdit не совершает революций в плане интерфейса, расположение основных элементов
управления — стандартно. Вверху окна находятся панели инструментов. Справа, занимая большую часть окна, располагаются окна обзора уровня. Проекции окон написаны на картинке. В левой части, отъедая оставшееся пространство, расположилось несколько закладок, большая часть которых содержит списки ресурсов игры. Так, на закладке Worlds располагаются уровни проекта, над которым ведется работа. На закладке Textures — текстуры. На закладке Nodes — структурированный список всех объектов, находящихся на уровне. Закладка Classes содержит в себе список всех объектов, которые можно добавить на уровень (враги, амуниция и все остальное). Свойства же этих объектов можно изменять на закладке Properties. Закладки Sprites, Prefabs, Models и Sounds пока не представляют для нас интереса, так что оставим их в покое. Заметьте, сейчас закладки пусты, так как не установлена директория, откуда редактор мог бы брать игровые ресурсы. Поэтому создайте новый проект (меню File\New Project) и, когда вас попросят указать рабочий каталог этого проекта, укажите директорию, в которую вы распаковали игровые ресурсы (обычно это AVP2 в корневой папке игры). После этого вы можете создать новый уровень (меню File\New World).
Навигация Теперь рассмотрим навигацию в окнах обзора, в первую очередь — в окне Perspective. Переместив курсор на это окно, нажмите и держите клавишу I. Двигая мышь вверх-вниз, вы перемещаете камеру вперед-назад. При движениях мыши влево-вправо камера будет "стрейфиться" в соответствующем направлении. Если, удерживая I, вы нажмете правую кнопку мыши, то камера будет двигаться только вверх-вниз. Также, если при выполнении этих действий вы будете удерживать левую кнопку мыши, камера будет двигаться быстрее. Если же вы будете удерживать нажатой клавишу O, то движения мыши будут изменять поворот камеры, левая кнопка мыши будет двигать камеру вперед, правая кнопка — назад. Удерживая кнопку C и двигая мышь вверх или вниз, вы сможете изменять расстояние, ограничивающее дальность прорисовки окна Perspective (полезно для уровней с большими открытыми пространствами). В остальных окнах (Top, Left, Front) кнопка I также отвечает за передвижение камеры вверх-вниз и влево-вправо, а кнопка O — уже за изменение масштаба. Каждое из окон обзора имеет координатную сетку, для того чтобы было легче совмещать и передвигать объекты уровня. Размер клеток этой сетки можно изменять (отдельно для каждого окна) кнопками Shrink Grid (уменьшение) и Expand Grid (увеличение) на панели инструментов. Либо, соответственно, клавишами "Плюс" и "Минус" на цифровой клавиатуре. Выделение всех объектов в редакторе производится обычным щелчком левой кнопки мыши (LMB, т.е. left mouse button). Нажав кнопку и растянув рамку, можно выделить сразу несколько объектов — те, которые коснулись рамки хоть краем. Чтобы выделить несколько далеко отстоящих друг от друга объектов, используйте комбинацию Shift+LMB. Отменить выделение можно комбинацией Ctrl+LMB.
Остальное Редактор имеет четыре режима работы, это Brush Editing Mode (включается кнопками Ctrl+B, либо в меню Mode), Geometry Editing Mode (Ctrl+G), Object Editing Mode (Ctrl+H) и Light Editing Mode (Ctrl+L). Разница между режимами невелика, так как главным они лишь ограничивают возможность выделения объектов, которые содержит уровень. Например, в Brush Editing Mode вы не сможете выделять источники света. Важная деталь — при включенном Brush Editing Mode в главном меню программы появляется дополнительный пункт — Brush. Перед тем, как начинать строительство, зайдите в настройки программы (меню Edit\Options) и на закладке Direct3D включите параметр Use D3D as default renderer и установите параметр Mode на Hardware Acceleration (как вариант — щелкните правой кнопкой мыши по окну Perspective и включите аналогичные пункты в появившемся меню). Так графика в окне Perspective будет меньше тормозить.
Геометрия В DEdit'е уровни используют архитектуру, сходную с Q3-шным BSP, а основным строительным
Изображенные на скрине фигуры — обычные браши в виде сверху. Но отрисовываются они некорректно даже в редакторе. Это — пример того, какими можно — но не нужно — делать браши. материалом, как и в большинстве других редакторов, служат браши. Сам редактор не запрещает делать браши вогнутыми (как известно, BSP-архитектура требует, чтобы все браши были только выпуклыми), но лучше этим не злоупотреблять. Также убедитесь, что включен режим Brush Editing (Ctrl+B). Создаются браши несколько необычным образом. Давайте рассмотрим это на практике. Наведите курсор на окно Top, а затем нажмите на пробел. После этого там, где вы указали, появится красная точка. Протянув курсор в сторону, вы растяните отрезок между первой точкой и курсором. Опять, выберите нужное положение второй точке и снова надавите пробел, и так далее, пока не достигнете желаемого результата. Завершить создание браша можно, замкнув проводимую вами линию. После этого появится окно, где нужно указать высоту получившейся фигуры (либо ширину, либо длину — в зависимости от проекции окна, в котором вы работали). Не бойтесь ошибиться — потом вы легко сможете подкорректировать высоту. Если поставите какую-то точку не там, где хотелось, то можете отменить действие Backspace'ом. Готовый браш можно масштабировать и перемещать, потянув за черные точки, которые видны, когда браш выделен. Удаляются браши (да и все остальные объекты в редакторе) клавишей Del. Теперь постройте небольшую комнату, которая станет вашим первым уровнем. Это можно сделать двумя разными путями — либо создать отдельно пол, потолок и каждую стену, либо создать один браш, а затем как бы вырезать его изнутри (это делается через меню Brush\Hollow). При этом вас попросят указать желаемую толщину стен. Заметьте, что при этом объем получившейся в браше полости будет точно соответствовать первоначальному брашу, тогда как, например, в Q3Radiant'е внутренний объем был бы меньше первоначального. Это происходит из-за того, что Радиант вычислял форму стен, вдавливая грани браша внутрь, а DEdit вытягивает грани наружу. Имейте в виду, что края получившихся после вырезания стен будут скошенными — чтобы не было пересечений между брашами (их следует избегать). Вполне возможна такая ситуация, когда вам будет мешать подобная форма брашей, поэтому каждый из двух описанных выше способов создания комнат имеет равные права на жизнь. Вы можете вырезать один браш из другого, например, чтобы создать дверной проем. Просто создайте браш той формы, которую вы хотите вырезать из другого браша, поместите вырезаемую фигуру так, чтобы она пересекала изменяемый браш, и нажмите кнопку H. В качестве тренировки попытайтесь сделать дополнительные комнаты на уровне, соединенные коридором. Все вышеописанные действия выполнялись в режиме редактирования брашей. Но браши можно также редактировать, изменяя положение каждого отдельного вертекса или полигона. Для этого включите режим Geometry Editing (Ctrl+G). Чтобы передвигать полигон, сначала выделите его щелчком левой кнопки мыши, а уже затем, удерживая нажатыми Shift и правую кнопку, передвигайте с помощью движений мыши вверх-вниз. Полигон будет перемещаться только в том направлении, куда он обращен. Чтобы изменять положение вертексов, просто наведите курсор на подопытный вертекс (он должен стать зеленым), а затем, удерживая нажатой кнопку V, передвигайте его. Нежелательно редактировать вертексы в окне Perspective — точки сразу убегают в такие дали, что их довольно сложно вернуть. Вдобавок, поставьте клетки на координатной сетке помельче, так как вертекс двигается именно по сетке, а не произвольно.
Граффити на стенах Теперь рассмотрим текстурирование. DEdit накладывает текстуры на браши подобно тому,
как накладываются текстуры на трехмерные модели (модели игрока, например). То есть, если вы создадите шар и присвоите ему какую-либо текстуру, то она будет задана не каждой грани отдельно, а "натянута" на браш (с соответствующими искажениями). Откройте закладку Textures, расположенную в левой части окна редактора. Закладка разделена на три части: верхняя — каталоги, по которым раскиданы текстуры, средняя — список
Мой вариант текстурирования. текстур в выделенном каталоге, нижняя — предварительный просмотр выделенной текстуры. Чтобы нанести текстуру на какой-либо браш, надо выделить этот браш и желаемую текстуру, а потом нажать кнопку Apply Texture на панели инструментов. После этого браш будет покрыт выбранной текстурой, как пол в душевой — кафельной плиткой, особенно если браш большой, а текстура маленькая. Если вам хочется изменить масштаб текстуры либо повернуть ее, щелкните правой кнопкой мыши по любому из окон обзора (при этом покрытый текстурой браш должен быть выделен) и из появившегося меню выберите пункт Map Texture Coordinates. Появится окно, которое изображено на картинке — в нем задаются немногочисленные параметры маппинга. В полях U Offset и V Offset вы можете корректировать положение текстуры на браше, в полях Scale (также U и V) — масштабировать. Поле Rotation регулирует поворот текстуры. Если же вам надо перевернуть текстуру (как зеркальное отражение), используйте кнопки Flip X и Flip Y. Те же самые действия можно выполнять непосредственно из окна обзора, причем для каждого полигона отдельно. Для этого сначала перейдите в режим Geometry Editing, затем наведите курсор на желаемый полигон. Нажимая на стрелки на клавиатуре, вы сможете корректировать положение текстуры с шагом в 32 пикселя. Если при этом держать нажатой клавишу Shift, то текстура будет смещаться на один пиксель. Удерживая нажатым Ctrl, вы сможете масштабировать текстуру. Если держать нажатыми одновременно Ctrl и Shift, то текстура будет переворачиваться, как если бы вы использовали кнопки Flip в окне маппинга. Подберите текстуры для комнаты на свой вкус. Объекты Уровень мы сделали. Но играть на нем пока нельзя. Есть три типа объектов, которые обязательно должны присутствовать на уровне, чтобы его можно было загрузить. Сам редактор содержит гораздо больше объектов, но нам пока нужны только три. Это: Light — источник света, без которого разглядеть свой уровень у вас просто не получится; GameStartPoint — стартовая отметка для игрока; WorldProperties — объект, определяющий свойства уровня — элемент рудиментарный, так как вы почти не оказываете влияние на уровень, изменяя параметры этого объекта, но его наличия требует движок. Для работы с объектами нужно перейти в режим Object Editing (Ctrl+H). Теперь посмотрите в окна обзора — видите три скрещивающихся зеленых линии? Это маркер, который указывает место, где появится объект после добавления на уровень. Задать ему позицию можно, указав мышью желаемое положение и нажав кнопку X. Установите маркер в центре комнаты, а затем откройте меню World\Add Object. Здесь в длинном списке перечислены все объекты, которые вы можете добавить на уровень. Похожий список, только не структурированный, есть на закладке Classes окна редактора. Объекты из него добавляются двойным щелчком. Найдите объект Light, выделите его и нажмите кнопку OK. Если все сделано правильно, то объект должен появиться в указанной маркером позиции. Если по какой-то причине вас не устраивает расположение объекта, вы можете передвигать его стрелками на клавиатуре, при этом выделенный объект будет двигаться по клеткам координатной сетки. Если при передвижении держать нажатым Shift, то объект будет сдвигаться на одну единицу расстояния в редакторе. Аналогичным образом добавьте объекты GameStartPoint и WorldProperties. Чтобы не скучать на уровне в гордом одиночестве, добавьте также, например, объекты SimpleAIDrone или SimpleAIRunner — это разные виды чужих. Параметры объектов (а также брашей) редактируются на закладке Properties, находящейся в левой части окна редактора. Мы не станем сейчас рассматривать все параметры добавленных нами объектов — их назначение понятно из названий. К тому же, щелкнув по имени параметра левой кнопкой мыши, вы получите исчерпывающую справку о его предназначении. Но один пункт все же стоит рассмотреть. В свойствах объекта GameStartPoint найдите параметр CharacterType. Он определяет тип персонажа, которым вы будете играть. И это не только стандартные Хищник, Чужой и Пехотинец — вы можете выбрать любого персонажа, представленного в игре — от экзокостюма до Королевы чужих.
Последние приготовления Уровень полностью готов, осталось только
поместить его в игру. Для этого его сначала надо скомпилировать. Делается это через меню World\Process, либо комбинацией клавиш Ctrl+P. В появившемся окне (на картинке сверху) вы можете задать параметры компиляции. Для начала сойдет и тот вариант, что стоит по умолчанию (только снимите флажок с параметра Vertex Lightning Only). В поле Project Directory укажите полный путь к каталогу, в котором находится ваш проект (у нас это — каталог AVP2 в корневой директории игры). Затем нажимайте кнопку OK. Процесс компиляции займет несколько секунд, так как наш первый уровень очень простой (если вы, правда, не сделали его размером с крытый стадион с кучей источников света). Но, к чести разработчиков, даже компиляция достаточно больших уровней занимает немного времени (если отключен параметр Full Optimization в группе Visibility). После завершения компиляции в одном каталоге с вашим уровнем (по умолчанию — AVP2/Worlds/SinglePlayer в корневой папке игры) появится файл вида MyLevel.dat — это и есть откомпилированная версия уровня. Вам необходимо создать папку Maps\Worlds\Custom в корневом каталоге игры и поместить в нее готовый уровень. Затем в настройках launcher'а игры, в командной строке впишите строчку "-rez maps". После этого уровень станет доступен через меню игры Single player\Custom. * * * На нашем компакте лежит уровень, иллюстрирующий статью (а также его нескомпилированную версию для редактирования) и сам редактор. На сегодня это все, в следующих статьях мы продолжим изучение редактора DEdit. Единицы измерения Для того, чтобы вам было проще подбирать размер брашей и текстур при строительстве уровня, полезно знать пару особенностей DEdit'а. Первое — средняя высота персонажей в игре (в том числе и игрока) составляет 100 единиц. Помните это, когда будете создавать различные вентиляционные шахты и узкие коридоры. Второе — один пиксель нанесенной на браш текстуры равен одной единице длины редактора (разумеется, при масштабе текстуры 1:1). Другими словами, если вы создадите куб с ребром в 128 единиц и покроете его текстурой 128*128 пикселей, то на каждую грань придется ровно по одному тайлу текстуры. Это следует запомнить на случай, если вы будете делать собственные текстуры для своих уровней.
786 Прочтений • [Свой среди чужих, чужой среди хищников. Создание уровней для AlienS versus Predator 2] [19.05.2012] [Комментариев: 0]