Официальное Руководство пользователя Max Payne 2 Tools

Содержание:

Введение

В данном разделе Вы узнаете как создать свой первый уровень, который Вы сможете экспортировать и запустить в игре.
Загрузить готовый уровень-пример, рассматриваемый в этом руководстве вы можете по ссылке First_Level_result.zip

Установка инструментария и экспорт

После установки инструментария Max Payne 2 с настройками по умолчанию Вы сможете найти пакет инструментов в папке "C:\MaxPayne2Dev\", а в папке "C:\MaxPayne2Dev\Game\" ещё одну дополнительную копию игры Max Payne 2.
Последняя копия представляет из себя специальную версию предназначенную для разработчиков игры и содержит все ресурсы, которые требуются MaxED2 для правильной работы. Если Вы сравните стандартную игру с версией разработчика, Вы заметите, что версия разработчика содержит так называемые RAS-архивы (Remedy Archive System) в распакованном виде и все ресурсы игры доступны по адресу "C:\MaxPayne2Dev\Game\Data\". Дополнительно к имеющейся файловой структуре некоторые пункты меню и игровые опции установлены с некоторым различием: при открытии версии разработчика стартовый ролик будет пропущен, сама игра запустится в оконном режиме, откроется консоль и активизируются все специальные клавиши, используемые разработчиками (например, свободная камера в режиме F3 на протяжении всей игры).
Перед началом работы над первым уровнем мы должны проверить работоспособность путём простого экспорта уровня-примера, поставляемого с инструментами. Запустите MaxEd2 и кликните File/Open и откройте "ExampleLevel.lv2" из папки "C:\MaxPayne2Dev\Levels\"
Теперь просто кликните File/Export и MaxED2 запросить путь, куда экспортировать, показав Вам папку по умолчанию "C:\MaxPayne2Dev\Game\data\database\levels\". Только выберите подпапку "work" и экспортируйте "ExampleLevel.LDB"
MaxED будет показывать информацию об экспорте на консоли и по окончанию отобразит "Export complete" и время процедуры. Время экспорта этого уровня минимально, но экспорт больших уровней может занимать до нескольких минут.
Теперь когда уровень экспортирован должным образом, в базу данных игры, мы можем запустить Max Payne 2, чтобы посмотреть этот самый уровень. Обратите внимание, что уровень экспортировался НЕ в базу данных, используемую фактически установленной игрой, а в базу данных копии игры "Max Payne 2 Developer". Инсталлятор инструментария так же добавляет ярлык "Max Payne 2 Developer" на Ваш рабочий стол для отдельного запуска.
Будучи в игре, просто кликните на пункт: "Start Example Level", который был добавлен в меню во время установки инструментов. Надеемся всё работает? Теперь Вы проверили работоспособность системы, и можете быть уверены, что инструментарий установлен правильно.

Камера и режимы редактирования

Теперь, когда Вы имеете некоторое представление о структуре базы данных, мы можем начать работу над созданием нашего первого уровня. Вернёмся к MaxED, закройте уровень-пример и откройте новый File/New.
MaxED основан на режимах. Это упрощает UI и процесс редактирования, распределяя различные функции по соответствующим группам, таким как "all object related" и "all polygon related". В зависимости от выполняемой задачи Вы можете выбрать соответствующий режим для достижения цели.
Курсор мыши показывает индикатор режима редактирования. Короче говоря, Вы можете переключаться между режимами редактирования, используя функциональные клавиши:
F3 - Build (Построить), для постройки новых мешей и создания новых объектов.
F4 - Polygon (Полигон), для управление полигонами
F5 - Object (Объект), управление объектами на уровне
F6 - Texture (Текстура), управление текстурами
F7 - Portal (Портал), создание порталов
F12 - Grid (Сетка), управление сеткой (большинство функций управления сеткой также доступно в других режимах)
Плюс к этому режим камеры для перемещения по уровню. Вы можете вызывать этот режим нажатием ПРОБЕЛА.
ПРИМЕЧАНИЕ: В отличии от предыдущего MaxED теперь режим камеры расширен - "supermode", которая работает сверху "on top" в текущем режиме, и не прерывает что-либо. К примеру, Вы можете начать строить новый меш в режиме F3, перейти в режим камеры, переместить камеру в другой угол, возвратиться в режим F3 (нажимайте попеременно Пробел и F3) и построить следующую вершину объекта.
Давайте попробуем сначала поработать в режиме камеры. Нажав ПРОБЕЛ вызовите режим камеры. Вы уведите как курсор мыши, изменил форму на соответствующее изображение камеры.
Двигая мышь при нажатой ЛЕВОЙ КЛАВИШЕ МЫШИ (ЛКМ) Вы можете перемещаться вокруг. Нажав ПРАВУЮ КЛАВИШУ МЫШИ (ПКМ) Вы можете перемещаться вперёд и назад. Нажав СРЕДНЮЮ КЛАВИШУ МЫШИ (СКМ) или SHIFT Вы можете стрейфить во всех направлениях.
ПРИМЕЧАНИЕ: MaxED2 расчитан на трёхкнопочную мышь. К сожалению Вы не можете использовать MaxED без третьей кнопки, поскольку не существует альтернативы замене этой функции и многие из команд доступны только через среднюю кнопку мыши.
ПОДСКАЗКА: Дополнительно, удерживая Ctrl и ЛКМ Вы можете вращать камеру вокруг построенной геометрии под указателем мыши. Попробуйте вращать камеру как только мы построим какую-либо геометрию.
После ознакомления с азами перемещения давайте попробуем построить нашу первую комнату. Сначала давайте установим камеру на её изначальную позицию, переключившись в режим F12 и нажав СКМ, вызовите командное меню. Выберите Reset Camera.

Создание геометрии

Для создания новой геометрии Вы должны нарисовать меш на сетке в режиме F3. Давайте создадим каркас двух маленьких комнат, объединённых небольшим коридором.
  1. Включите режим F3 (Построить нажав F3
    • Курсор поменяет индикатор на режим редактирования
  1. Удостоверьтесь, что размер ячейки сетки равен 1 метру
    • Индикатор размера сетки расположен справа вверху главного окна MaxED2.
    • Вы можете изменять размер ячейки сетки клавишами на цифровой клавиатуре +/-
  1. Кликните на сетке ЛКМ на месте расположения первой вершины и начала рисования каркаса комнаты
    • Для перехода между режимами камеры и F3 нажмите пробел в любой момент.
    • Для отмены нарисованного нажмите escape
    • Для удаления предыдущей вершины нажмите delete
  1. Посмотрим на индикатор длины в нижнем левом углу MaxED2, сделаем первую линию длиной 8 метров.
  1. Продолжайте рисовать форму как на картинке (размер ячейки сетки 1 метр)
  1. Как только Вы кликните последний угол, кликните ПКМ для преобразования в 3D.
Если Вы совершили ошибку и комната приняла неправильный вид, Вы можете перейти в режим F5, выбрать меш ЛКМ и просто удалить - delete. Возвращайтесь в режим F3 и начните сначала.
Законченный меш будет направлен внутрь, указывающий путь, по которому построена комната в Max Payne 2, что и требовалось. Но комната высотой только 1 метр, так что мы должны сделать ее повыше.
  1. Включите режим F4 (полигон) нажав F4
    • Курсор изменится и полигон под курсором всегда будет выделяться
    • Нажмите кнопку "culled" на панели инструментов чтобы выделить невидимые полигоны на выбранном участке. Аналог кнопки insert
  1. Выделите полигоны потолка, нажмите стрелку вниз и поднимите комнату на 4 метра в высоту
Теперь меш выглядит так, как будет выглядеть в игре, но всё еще не пригоден для экспортирования в игру. Мы должны определить место старта игрока и построить по крайней мере один портал (или "выход") по техническим причинам. Порталы разделяют геометрию уровня на "комнаты" и используются для визуальной оптимизации так же как и в Max Payne 1.
Сначала давайте построим портал. Мы можем построить его в конце коридора.
  1. В режиме F4 выделите полигоны, как показано на картинке, и нажмите Shift-A, чтобы расположить сетку на плоскости.
  1. В режиме F7 (портал) Вы можете наблюдать такой же полигон / выделение верха как и в режиме F4. Выделите любую из четырёх граней, пересекающихся с сеткой, и кликните ЛКМ для создания первой вершины портала
    • Для перехода между камерой и режимом F7 нажимайте ПРОБЕЛ в любое время. В отличие от MaxED1 Вы можете перемещаться во время отрисовки и лучше контролировать процесс.
  1. Продолжайте строить форму до тех пор, пока не расположите все 4 вершины
    • При отрисовке портала Вы ДОЛЖНЫ вывести на передний план край, который пересекается с сеткой (на рисунке выделен красным).
  1. Когда Вы построили все вершины, кликните ПКМ для создания портала. MaxED2 спросит о величине объединения и мы, указав значение по умолчанию, кликнем OK.
Прозрачная субстанция заполнит пространство портала (если поставлена галочка "exits" в фильтре отображения - display filter) и меши будут разделены на две комнаты, как Вы можете видеть в представленной иерархии.
Разместим Jumppoint на уровне для определения места старта игрока:
  1. Выровняйте сетку с полом (Shift-A в режиме F4)
  1. В режиме F3 расположите курсор в любом месте на сетке и нажмите N .
  1. В появившемся диалоге "New Entity" выберите "Jumppoint"
  1. В появившемся диалоге "Entity Properties" мы не рекомендуем что-либо менять. Просто кликните OK.
Красный шар появится на полу, указывая стартовое место игрока.
На уровне может присутствовать много Jumppoints, а первичный определён в скриптовом файле levels.txt в базе данных игры. Обычно это "::StartRoom::Jumppoint_00". Если игра запускается не в режиме разработчика, то в Jumppoint должно быть УКАЗАНО что-либо подобное. В режиме разработчика игра выбирает точку старта случайно, если первичная точка не найдена. После создания первичной точки старта, давайте переименуем комнату в что-нибудь похожее на "StartRoom"
  1. В режиме F5 выделите комнату с Jumppoint (не кликайте!) и вызовите свойства.
  1. В поле "Name" введите "StartRoom
Единственной опцией, применимой к комнатам, является Sound environment, используемая для выбора предварительных настроек EAX
И теперь всё готово для экспорта уровня в игру и самой игры. Экспортируя в игру, давайте назовём файл (заменим старый) ExampleLevel.LDB и запустим игру.
Если у Вас возникли проблемы с экспортом уровня, то они, вероятнее всего, из-за избыточной информации о вершинах в файле .LV2 (порождение нулевых треугольников в зоне). Что бы устранить это, просто выделите всё (Ctrl-A в режиме F5), нажмите F и примите значение величин по умолчанию. Если по каким-то причинам возникли проблемы другого характера, смотрите статью Экспорт и оптимизация для разрешения возникшей проблемы.
Теперь Вам надо войти в игру и протестировать Ваш новоиспечённый уровень, как показано здесь. Первое впечатление будет не утешительно: нет освещения, каких-либо вещей, соответствующих текстур или врагов, утешает одно: мы построили новый уровень на пустом месте и добавили в игру. Первый шаг сделан.
Теперь Вы знаете основы. Вы можете строить меши в режиме F3 тем же путём, который мы недавно проделали, и соединять их вместе (в режиме F5 нажмите U для объединения, S для разделения и I для операций пересечений), тем самым создавая любую основу для вашего уровня.
Текстурирование, освещение и объединение описаны более подробно в других статьях данного руководствах.

Несколько слов о Фильтре отображения - Display Filter

В MaxED2 пользователь может использовать Фильтр отображения - Display Filter (F1) для выбора тех типов объектов, которые он хотел бы видеть на карте и экране соответственно. В основном Вы отмечаете галочками те объекты, которые будут показаны в определённое время. Это также включает в себя некоторые другие опции визуализации.
Горячие клавиши в фильтре отображения представлены клавишами цифровой клавиатуры
Rooms - Установленный флажок подсчитывает количество отображаемых одновременно комнат, соединенных с текущей
Show BB - Отображает каркасы комнат, которые были оптимизированы предыдущей настройкой
Static Objects - Отображает статические объекты
No-Draw materials - Отображает полигоны статических объектов, использующих не отображаемый - no-draw - материал (типа "Dummy" или "CharacterCollisionNodraw")
Dynamic Objects - Отображает динамические объекты
No-Draw materials - Отображает полигоны динамических объектов, использующих не отображаемый - no-draw - материал
Names - Отображает имена динамических объектов в главном окне
Types - Отображает текст "DO" на ДО в главном окне
Non-rendering objects - Отображает объекты с свойствами "Do not render".
Non-character-colliding objects - Отображает объекты без свойств "Character Collisions"
Non-bullet-colliding objects - Отображает объекты без свойств "Bullet Collision"
Non-exporting objects - Отображает объекты с свойствами "Exclude from Game".
AI nodes - Отображает узлы сетки ИИ (Искусственного интеллекта)
Keypoints - Отображает плавающие FSMs, персонажей - Characters, Jumppoints, Waypoints, вещи на уровне - Level items и огни - Flares
Names - Отображает имена вышеупомянутых объектов
Types - Отображает типы вышеупомянутых объектов
Triggers - Отображает триггеры
Names - Отображает имена триггеров
Types - Отображает типы триггеров, - в основном отображаются флажки собственных имён установленных триггеров (Player collision, Use, Enemy collision, Bullet collision, Look At, Visibility)
Pointlights - Отображает точки освещения
Falloffs - Отображает выключенные - falloffs - точки освещения
Exits - Отображает порталы
Names - Отображает имена порталов
Radiosity Lights - Отображает источники света
Spotlight Visualization - Отображает форму источника света
Volume Lighting Boxes - Отображать каркасы объёмного освещения (Если в комнате есть каркас (бокс) объемного освещения, то освещение насчитывается только внутри бокса. В противном случае объемное освещение используется для всей комнаты Объём освещения используется для освещения персонажей и выборочных динамических объектов)
Gameplay-critical objects - Отображать все критические объекты геймплея. (Критические объекты геймплея - Gameplay critical objects - все объекты с любыми динамическими свойствами, все комнаты, все статические объекты и узлы AI-nodes с установленным свойством "Gameplay Critical". В основном этот флажок используется только при выполнении "File" -> "Export Selection Gameplay Critical", означающий, что игра не экспортирует всю статическую геометрию некоторых узлов AI nodes, которые не обязательны при тестировании незначительных вещей на уровне и пользователь может также включить некоторые объекты в экспорт критических объектов - gameplay critical export)
Non-gameplay-critical objects - Отображает узлы AI-nodes и статические объекты без свойств "Gameplay Critical". Это очень удобно при выборе критических единиц, которые Вы захотите включить в экспорт.
Prefab Parent Nodes - Отображает основные узлы префабов . Если родовой префаб не редактируется, то он невидим. Этот флажок удобен при редактировании префаба, чей родовой узел на пути префаба.
Names - Отображает имена главных префабов видимых родовых узлов префабов. То есть, имя префаба как это указано в листе префабов, НЕ случайное имя в иерархии уровня.
Make Ungrouped Red - Отображает все не сгруппированные объекты с красным ограничительным каркасом
Grid - Отображает сетку
Locator icons - Отображает иконки определённых мест, которые используются, к примеру, при расположении префабов или материалов с уровня.
Lightmap density - Отображает плотность карт освещения используя цветовые коды
Bounding Box Hulls - Отображает красный каркас ограничивающих боксов для объектов со свойством "Generate Bounding Box Hull". Это используется для просмотра расположения корпуса ограничивающего бокса, поскольку она не всегда ориентировано так же, как и точка опоры объекта, и, возможно, нуждается в переориентации. Bounding Box Hulls может использоваться для быстрого и простого упрощения геометрии столкновения персонажей - "character collision", которая используется для рэгдоллов и физики объектов также и для "живущих" персонажей - living characters. Таким образом объект должен быть персонажем сталкивающимся перед тем, как свойства этого объекта могут быть использованы. Столкновения пули - The bullet collisions - выполняется относительно визуализируемой геометрии.
На большинство объектов уровня воздействуют множество различных флажков Фильтра отображения, и по этому Вы должны включить все флажки воздействующие на отображение необходимого объекта. Например, если у Вас есть динамический объект, в свойствах которого установлен non-rendering ("Do not render"), то Вы должны установить сразу оба свойства "Dynamic Objects" и "Non-rendering objects".

Несколько слов о Сетке - Grid

В MaxED2, сетка наиболее важный инструмент. Вся философия редактирования сводится к одной свободной камере и свободно настраиваемой сетке.
Сетка может быть выровнена относительно определенного полигона путём перехода в режим F4 и нажатием A (выравнивание сетки по выбранной грани) или Shift-A (выравнивание относительно мировой системы координат).
Выравнивание сетки по выбранной грани (A) означает, что сетка будет выровнена по плоскости выделенного полигона, и ориентированна относительно первого выделенного ребра (выделяется красной линией), и совмещена с выделенной вершиной (выделяется индикатором в виде белого квадрата).
Выравнивание по МСК (Shift-A) означает, что сетка будет выровнена, ориентирована и совмещена относительно мировой системы координат, которая является самой близкой к выделенному полигону полигону. Размер шага сетки Текущий размер шага сетки используется так же и для деления пространства.
По правилу большого пальца Вы всегда можете, если это возможно, использовать Shift-A гарантированно, чтобы микроскопические отклонения в геометрии не накапливались в течении какого-то времени при постоянном непрерывном выравнивании сетки по неправильной поверхности/граням. Плавающая погрешность точки предотвращает способность объектов оставаться в совершенном выравнивании и по этой причине Вы должны использовать фиксированные, абсолютные координаты мира как самое авторитетное выравнивание. Примите к сведению, что выбранный размер сетки также определяет размер сетки абсолютных мировых координат.
Вы можете переориентировать - re-orientate - перепривязать - re-snap - сетку с любой грани и/или вершины в мире. Для этого перейдите в режим F3, выдвинув на первый план ребро или вершину и нажмите A. Сетка будет переориентирована согласно проекции ребра по нормали сетки, а точка опоры сетки будет совмещена с выделенным вертексом.
Вы также можете привязать точку опоры сетки к точке пересечения ребра и сетки. Что бы сделать это, в режиме F3 выделите ребро которое пересекается с сеткой нажмите Shift-A.
Дополнительно, в режиме F12 Вы можете свободно вращать сетку (удерживайте 1, 2 или 3 и тяните), поворачивать на 90 градусов (4, 5 или 6), двигать сетку (LMB или RMB и тяните, или используйте Стрелки и PageUp & PageDown)
В свободном вращении, как и со всем свободным вращением в MaxED2, система привязок зависит от выбранного пользователем значения угла поворота, которое отображаются на панели инструментов рядом с величиной шага сетки и скоростью движения камеры. Вы можете менять этот угол с помощью SHIFT + на цифровой клавиатуре +/-
Спустя какое-то время работы с сеткой Вы приобретёте необходимый навык. Умелое и быстрое использование сетки - ключ к успеху в работе с MaxED2, особенно при создании новой геометрии.

`
ОЖИДАНИЕ РЕКЛАМЫ...