02 июня 2004
Обновлено 17.05.2023

Максимум от MAXимума. Создание уровней для Max Payne 2

Максимум от MAXимума. Создание уровней для Max Payne 2 - изображение обложка

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

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 1

Рис. 1. Разметочная сетка развернута в плоскости стены. Переход будет невидимым продолжением стены.
Портал Любой уровень в Max Payne 2 должен иметь хотя бы один переход (portal) и место старта игрока. Переход отделяет одну часть помещения от другой; он нужен для оптимизации уровня. Для установки портала выбираете подходящий выступающий участок помещения. Так, чтобы его было удобно отделять от остальной части комнаты. Включаете режим F4. Выделяете щелчком левой кнопки мыши (ЛКМ) стенку, в плоскости которой предполагается поставить переход. Теперь вам нужно развернуть сетку в этой плоскости. Для этого нажимаете Shift+A (рис. 1). Это необходимо сделать, поскольку переход создается точно так же, как стены, — по узлам разметочной сетки. Переходите в режим F7 (нажать эту клавишу на клавиатуре). Процесс создания несложный, но требует правильного подхода. Располагаете камеру прямо напротив будущего перехода внутри основного помещения. Наводите курсор (в режиме F7 ) на стену отделяемой части комнаты (пока она расположена к вам под углом). Вокруг этой стены появится рамка выделения желтого цвета. Обратите внимание,

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 2

Рис. 2. Собираемся отделить переходом выступающую часть помещения.
что одно из ребер рамки — красное. Подведите курсор к нижнему углу точки пересечения разметочной сетки и стены. Не нужно добиваться попадания в точку пересечения перекрестья курсора! Задача состоит в том, чтобы туда попал маркер (белый квадратик). Как только маркер будет передвинут в нужное место, нижнее ребро выделяющей рамки станет красным. Это обязательное условие нормального завершения операции. Руководствуйтесь простым правилом: ребро красного цвета всегда должно выходить из маркера перехода и принадлежать одной из стен отделяемой комнаты. Как только это условие достигнуто, фиксируете точку нажатием ЛКМ (рис. 2, 3, 4). Точно таким же образом устанавливаете еще три точки в углах пересечения разметочной сетки и отделяемого переходом помещения. Когда последняя точка будет установлена — нажимаете правую кнопку мыши (ПКМ). На экран выскочит диалоговое окошко. В нем предлагается установить расстояние между вершинами, которые автоматически объединятся в одну. Эта операция важна для создания переходов сложной формы — когда переход содержит множество точек. Для нашего случая это не актуально. Жмите ОК. Проем отделяемой комнаты заполняется полупрозрачной голубоватой субстанцией (рис. 5). Таким материалом переход отмечается только в редакторе. В игре субстанция будет невидимой. Если вы сейчас откроете окно Hierarchy (меню View/Hierarchy View ), то обнаружите там два новых объекта. По умолчанию основная комната обозначена как Mesh_01 , отделенная переходом Mesh_02. Каждый новый переход выделяет часть первоначального уровня в самостоятельный объект. **

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 3

**
Рис. 3. Маркер установлен в заданный угол. Перекрестье курсора находится на выделяемой стене. Красное ребро выделяющей рамки выходит из маркера и направлено “от нас”. Это правильно.
После окончания работы над переходом возвращаете разметочную сетку в первоначальное горизонтальное состояние — нажимаете клавишу A. Место старта Определяем место, где будет появляться игрок в начале игры. Пусть это будет, например, только что отделенная переходом часть уровня. Переходите в режим работы F4. Выравниваете сетку с полом комнаты. Для этого щелкаете ЛКМ в любой точке пола и нажимаете Shift+A (появятся стрелки координатных осей). Пер еходите в режим F3. Выбираете подходящее

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 4

Рис. 4. Неправильная установка. Зафиксировать точку не удастся — вы получите сигнал ошибки.
место для старта и ставите точку (нажав ЛКМ ). Щелкаете по клавише N. Появится окно выбора типа объекта (рис. 6). Раскрываете список и выбираете Jumppoint. Как только вы нажмете ОК , вместо точки на экране возникнет алый шар (рис. 7). Это и будет местом старта игрока. Не изменяя положения камеры в пространстве, обращаете взор на окно Hierarchy. Если его нет на экране — включите его показ в меню View. Двойной щелчок по объекту Player выведет на экран окно со свойствами. В поле Name вводите подходящее название для стартовой комнаты — например, Play erStart. Слово набирается латиницей и без пробелов. В этом же окне, в поле Sound Environment , можно выбрать звуковую схему для этого помещения. Завершаете установку параметров последовательным нажатием кнопок Apply и ОК. Стартовая комната в окне Hierarchy переименована в PlayerStart и содержит точку старта — Jumppoint_00 (рис. 8). Названия отдельных комнат очень важны! Эта информация используется для загрузки уровня в игру. Если вы меня не послушал

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 5

Рис. 5. Переход успешно установлен.
ись и изменяли положение камеры, то переименование может временно стать невозможным. Если так случилось, опять переходите в режим камер ы (нажмите пробел ). Помещаете точку обзора внутрь того помещения, которое хотите переименовать. Пробуете открыть свойства через объект Player. Бывает, что с первого раза не получается. Тогда изменяете режим (например, на F4 ) и выделяете в комнате какой-то объект (например, стену). Повторяете операцию переименования. На этот раз все должно получиться. Усложнение уровня Добавить к первой комнате другие несложно. Переходите в режим F3. Следующее помещение должно начинаться от одной из уже построенных стен. Делаете все так, как было описано выше. Вытягиваете по точкам план и превращаете его в 3D-каркас.

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 6

Рис. 6. Окно выбора типа объекта.
Вовсе не обязательно придерживаться квадратных форм и добиваться одинаковой высоты с первой комнатой (рис. 9). Когда новое помещение готово, включаете режим F5. Выделяете одну из комнат щелчком ЛКМ (она подсветится зеленым цветом). Нажимаете клавишу U. “Прицельный” курсор станет простым белым крестиком. Щелкните им по присоединяемой комнате. Произойдет объединение помещений. В том месте, где их стенки соприкасались, появится проход. Мы выполнили операцию объединения ( U — от английского Union ). Нажав S (Subtract) , точно так же можно выполнить вычитание. Таким образом вы выстраиваете цепочки помещений, переходящих одно в другое. Довольно просто получить разнообразные наклонные поверхности. Для этого переходите в режим F4. Выделяете стену и нажимаете клавиши

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 7

Рис. 7. Этот алый мячик — точка старта.
стрелка вправо / стрелка влево. Выделенная стена послушно наклоняется вслед за нажатием клавиш (рис. 10). Используя эти методы, можно значительно усложнить первоначальный уровень. Сохранение уровня Пункт меню File/Save позволяет сохранять незаконченный уровень. К нему несложно будет вернуться и продолжить работу. Для загрузки

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 8

Рис. 8. Структура уровня в окне Hierarchy.
уровня в игру вам необходимо сохранить его в другом формате. В этом случае выбираете пункт меню File/Export. Учтите, что обратно в редактор экспортный формат файлов не загружается. Будьте внимательны и всегда перед этим сохраняйте уровень через File/Save. Экспортировать нужно в папку …\Max Payne 2\MaxPayne2Dev\Game\data\database\levels\work. Процедура не всегда заканчивается успешно. Иногда появляются сообщения об ошибках в геометрии уровня (рис. 11). Для устранения ошибки возвращаетесь в редактор, переходите в режим F5 , по очереди выбираете все отдельные помещения и нажимаете клавишу F. Появится окно с предложением объединить вершины. Такое окно вы уже видели при работе с переходом. Каждый раз нажимаете ОК. Когда закончите обработку последнего помещения уровня, попробуйте опять экспортировать уровень. На этот раз все должно пройти успешно.

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 9

Рис. 9. У пристройки могут быть совсем другие формы.
Запуск уровня Опробовать построенный уровень в действии сразу и без проблем смогут только счастливые обладатели “специальной версии” Max Payne 2. Тем, у кого ее нет, придется потрудиться. Дальнейшее описание предназначено тем, кто не имеет специально й версии. После успешного экспорта уровня отправляетесь в папку …\Max Payne 2\MaxPayne2Dev\Game\data\database\levels\work. Там находите уровень-пример от разработчиков игры — ExampleLevel.ldb. Там же должен находиться и созданный вами уровень. Если вы сохраняли уровень в другой директории, просто скопируйте его в эту папку. Переходите в каталог …\Max Payne 2\MaxPayne2Dev\Game\data\database\levels. В нем находите файл levels.txt , открываете его в текстовом редакторе и изучаете информацию о загрузке уровней. Обратите внимание, после служебного заголовка идет строка: // EXAMPLE LEVEL ADDED BY MAX PAYNE 2 TOOLS INSTALLER Этим комментарием разработчики озаглавили блок, который описывает уровень-пример. Чтобы вы не заблудились в надписях, в конце блока помещен комментарий: **

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 10

Рис. 10. Наклонная поверхность.// Game levels all in the beginningВся необходимая служебная информация об уровне находится внутри блока. С ней и будем работать. Если комментарии в файлеlevels.txtне обнаружены, значит, вы занимались распаковкой ресурсов игры после установки инструментов. При этом “инструментальный” файлlevels.txtбыл заменен на одноименный из игры. Никаких комментариев и упоминаний об уровне-примереExampleLevel.ldbтам нет! Чтобы исправить ситуацию, просто переустановите инструменты. Файлlevels.txtбудет переписан, и все встанет на свои места. Каждый блок вlevels.txtначинается с названия уровня, которое заключено в квадратные скобки (например,[ExampleLevel]). Сам блок открывается и заканчивается фигурной скобкой. Внутри блок разбит на отдельные группы, названия которых тоже даются в квадратных скобках (например,[Properties]** ). Обратите внимание: после уровня-примера идут все остальные уровни

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 11

Рис. 11. Окно с сообщением о невозможности экспорта уровня.
Max Payne 2. Ваша задача — правильно подправить информацию в файле levels.txt. Для этого вы изменяете текст файла в блоке [ExampleLevel]. Ниже я привожу необходимые изменения. Курсивом выделен текст моих комментариев (их не надо копировать). В группе [Properties] : LevelName = “Example Level”; // между кавычек ставите название своего уровня; Level = ExampleLevel.ldb; // ставите название файла своего уровня; PlayerStartingPlace = “::StartRoom::Jumppoint_00”; // это один из самых важных пунктов, поэтому читайте развернутый комментарий ниже. В параметре PlayerStartingPlace хранится информация о месте старта

Максимум от MAXимума. Создание уровней для Max Payne 2 - фото 12

Рис. 12. Вид на уровень из игры.
игрока. Сюда нужно вставить сведения из созданного вами уровня. Чтобы получить эту информацию, запускаете MaxEd2 , загружаете уровень и открываете окно Hierarchy. В нем смотрите название стартовой комнаты и обозначение места старта. Если ваша комната называется, например, PlayerStart и точка старта обозначена как Jumppoint_00 (устанавливается редактором по умолчанию для первого объекта такого типа), то вам нужно изменить параметр так: PlayerStartingPlace = “::PlayerStart::Jumppoint_00”; Если названия изменялись, то между знаками :: должны находится данные из вашего уровня. Общий формат строки параметра: “::Название_комнаты_старта::Название_точки_старта”; Ни в коем случае не изменяйте название блока [ExampleLevel]! Иначе движок игры не найдет уровень. Когда требуемые изменения внесены, запускайте Max Payne 2 из папки …\Max Payne 2\MaxPayne2Dev\Game. Верхнюю строчку стартового меню теперь занимает пункт Start Example Level. Выбирайте его — и можно играть! *** На этом первое знакомство с редактором к Max Payne 2 закончено. У вас достаточно знаний, чтобы самостоятельно построить простенький уровень-коробку, но недостаточно, чтобы делать полноценные одиночные миссии. В следующий раз мы поговорим о более сложных вещах: научимся “оживлять” уровень, добавлять на него врагов, писать триггеры…

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь