Игра в материале
Doom 3
?Рейтинг
Игромании
8.5Рейтинг
игроков
PC   Xbox   Mac
Жанр: Боевик, Боевик от первого лица
Серия: Doom
Мультиплеер:  Интернет, локальная сеть (4)
Разработчик: id Software
Издатель: Activision
Издатель в России: СофтКлаб
Локализатор: СофтКлаб
Дата выхода: 3 августа 2004
DOOMострой. Основы создания уровней для Doom 3, часть 2

DOOMострой. Основы создания уровней для Doom 3, часть 2

Мастерская — DOOMострой. Основы создания уровней для Doom 3, часть 2
Чтобы уровень смотрелся на “все сто”, просто необходимо дополнительно поработать над его интерьером: добавить детализированных элементов архитектуры, расставить различные украшательства, сделать уровень интерактивным
Игроманияhttps://www.igromania.ru/
Мастерская
DOOMострой. Основы создания уровней для Doom 3, часть 2

    Во времена первого или второго Quake знаний, усвоенных нами в прошлой статье, вполне хватило бы для создания приличного уровня. Но все течет, все меняется: мы делаем уровень не для второй “Кваки”, а к Doom 3. И тут нужен особый подход. Чтобы уровень смотрелся на “все сто” просто необходимо дополнительно поработать над его интерьером: добавить детализированных элементов архитектуры, расставить различные украшательства, сделать уровень интерактивным — вот что нам предстоит в сегодняшней статье.

   
Статические модели
   
Создание уровня из брашей, несомненно, выбивает ностальгическую слезу у бывалых квакеров, но достаточно детализированного уровня из них не сделать. Значительная часть архитектуры представлена статическими моделями. И если мы не хотим, чтобы наш уровень выглядел как красиво затекстурированная коробка, нам нужно научиться эти модели добавлять.
19 Kb 32 Kb
Рис. 1. Выбираем
подходящую модель.
Рис. 2. Параметры игровых
объектов.
    Создайте браш в том месте, где собираетесь поместить модель. Форма и текстура браша не имеют значения. Щелкните по нему правой кнопкой мыши и
50 Kb
Рис. 3. Готовая дверь и
терминал управления.
из контекстного меню выберите пункт New Model. Появится окно (рис. 1), в котором вам предстоит выбрать модель. Сверху — структурированный список доступных моделей, снизу — окно предварительного просмотра. Найдите модель для дверного проема, чтобы украсить проходы между комнатами и коридорами.
    Что вы говорите? Нет ни одного коридора, и уровень до сих пор представляет из себя классическую коробку? Значит, немедленно сделайте как минимум еще пару комнат и соедините их изогнутыми коридорами — они понадобятся в дальнейшем.
    После того как вы выберете модель и нажмете на кнопку OK, может случиться неприятный баг (более чем за пять лет разработчики так и не удосужились исправить его) — браш, вместо того чтобы превратиться в модель, останется брашем (или модель будет присоединена к этому брашу, но сам браш никуда не исчезнет). Преодолеть баг легко — достаточно скопировать неправильный объект с помощью пробела (копия будет уже нормальной моделью), а исходный объект удалить.
    Повернуть модель можно двумя способами — нажав кнопку R (будет включен режим поворота объекта) и двигая мышью при зажатой правой кнопке, или вводя точный угол поворота во вспомогательном окне на закладке Entity (рис
2). Во втором случае вам нужно в поле Key вписать ключ Angle и в поле Val указать угол поворота. Первый способ хорош, если вы размещаете не слишком много декораций и хотите сэкономить время. Второй лучше применять, когда требуется точное позиционирование модели.

    Командный забег
   
Чтобы не любоваться плодами своих трудов в одиночку, можно пригласить на только что созданный уровень пару друзей, дабы сразиться в мультиплеер.
    Переделать ваш уровень под мультиплеер несложно. Замените стандартную стартовую позицию игрока на объекты info\info_player_deathmatch (это будут
49 Kb
точки респавна игроков, поэтому расставьте их несколько штук). Сохраните и скомпилируйте уровень в директории base\maps\game\mp. Теперь сверните редактор, откройте папку base\def в директории игры, создайте там текстовый файл mymap.def (или moyakarta.def, или что угодно с расширением *.def) и впишите в него следующий текст:
    mapDef game/mp/[имя файла карты без расширения] {
    “name” “[название карты в игре]”
   
“Deathmatch” “1” //Можно ли на этой карте играть дефматч.
    “Team DM” “1” //Поддерживается ли командный дефматч.
    “Last Man””1” //Поддерживается ли тип “последний герой”.
    “Tourney” “1” //Поддерживаются ли дуэли.
    }
   
Сохраните изменения. Теперь ваш уровень будет находиться среди стандартных карт при создании мультиплеерного сервера в игре.

   
Двери
   
Добавим на уровень двери. Дверь может являться как обычным брашем, так и моделью. Чтобы добавить на карту дверь, снимите выделение со всех объектов, щелкните правой кнопкой мыши по карте и выберите из меню пункт func\func_door. В результате на карте появится браш, который вы можете легко
45 Kb
Рис. 4. Редактирование патча в
самом разгаре.
отмасштабировать, придав ему форму двери. Но так как при работе со статическими моделями мы добавили на карту дверные проемы, то и двери создадим как раз для этих проемов. Процесс присвоения брашу той или иной модели описан в предыдущей главе. Соответствующие друг другу модели проемов и самих дверей в списке всегда расположены рядом, так что проблем с поиском подходящих вариантов у вас возникнуть не должно.
    Осталось научить дверь открываться. Для этого вновь перейдите на закладку Entity вспомогательного окна, в поле Key введите ключ Movedir, а в поле Val — направление смещения двери. Если ввести значение -1, то дверь при открытии будет уходить наверх, а при значении -2 — вниз. С помощью ключа Speed
вы можете регулировать скорость движения двери. Полный список ключей с их описаниями вы можете увидеть в верхней части закладки Entity — там есть много интересного, например параметры, в которых устанавливаются издаваемые дверью звуки. Можете сохранить и скомпилировать уровень, чтобы проверить работоспособность дверей — они будут открываться автоматически при приближении игрока.
    Вы можете также сделать дверь, которая по умолчанию будет заперта и откроется лишь после того, как игрок воспользуется каким-нибудь терминалом управления. Чтобы сделать так, сначала выделите саму дверь и добавьте ей параметр Locked со значением 1 или 2. Если поставить единицу, дверь откроется сразу же при использовании терминала, если двойку — дверь разблокируется, но откроется лишь при приближении игрока. Затем создайте статическую модель, поддерживающую внутриигровые терминалы (GUI) — такие модели находятся, например, в разделе mapobjects\guiobjects (но есть и другие). Затем, не снимая выделения с модели терминала, на закладке Entity вспомогательного окна нажмите кнопку Gui — нужно определить интерфейс терминала. Выберите, к примеру, модель admin\admincontrol.gui. Теперь снимите выделение со всех объектов,
10 Kb
Рис. 5. Труба, изготовленная
с помощью заплаток. И не
надо никаких статических
моделей.
выделите модель терминала и затем — модель двери. Нажмите клавиши Ctrl+K. Если все сделано правильно, от терминала к двери протянется тонкая стрелка. Больше ничего делать не надо — дверь уже работоспособна.

    Кривые поверхности
   
Некоторые элементы архитектуры уровней невозможно создать с помощью брашей, а специальных моделей для них не подготовлено. Различные округлые арки, своды пещер или хотя бы трубы центрального отопления требуют большого количества полигонов, которое не могут обеспечить браши. Статические модели также не всегда могут помочь в этом случае — мало ли какая именно форма арки/свода/трубы понадобится вам при создании уровня? Но можно воспользоваться “заплатками” (patch'ами) — кривыми поверхностями, служащими как раз для создания “округлостей” на уровнях.
    Чтобы добавить на уровень такую заплатку, создайте сперва очередной браш. Затем зайдите в меню Patch и выберите подходящую форму патча. Если хотите сделать колонну, выбирайте пункт Cylinder, если нужен какой-нибудь шпиль или купол — выбирайте Cone, если же вам нужна обычная плоскость, выберите пункт Simple Patch Mesh.
    Теперь нужно придать поверхности желаемую форму. Для начала вы можете отмасштабировать заплатку — это делается так же, как и в случае с обычными брашами. Чтобы непосредственно изменять форму изгибов поверхности, перейдите в режим редактирования вершин (нажав кнопку V). Дальше все просто — выделяете левой кнопкой мыши нужный вертекс (щелчком или растянув рамку, как на рис. 4) и перетаскиваете его. Снять выделение с вертексов можно либо повторным щелчком, либо кнопкой Esc. Редактировать каркас поверхности лучше в 2D-окне, переключаясь между проекциями окна с помощью клавиш Ctrl+Tab. Приложив немного терпения, вы сможете создавать объекты практически любой формы.
    Патчи слегка отличаются от брашей в плане текстурирования. Если при изменении размеров браша текстура остается
47 Kb
Рис. 6. Один выстрел из рокет-
лаунчера — и изображенная
утварь разлетится по всей
комнате.
неизменной, то при редактировании заплатки текстура растягивается вслед за поверхностью. Поэтому не допускайте слишком больших перегибов и большой разницы в расстояниях между точками. Так же, как и в случае с поверхностями брашей, вы можете управлять наложением текстуры на патч в окне Surface (вызывается кнопкой S).

   
Интерактивность
    Чем отличаются оригинальные уровни Doom 3, так это малой интерактивностью. Не так уж много объектов на них можно разбросать, перевернуть, разломать. Так что давайте добавим пинабельные и разбивабельные объекты самостоятельно.
    Проще всего расставить на уровне подвижные объекты — всякие канистры, недоеденные гамбургеры и прочее. Для этого щелкните правой кнопкой мыши в окне обзора, откройте пункт movеable и выберите желаемый объект. Вы можете дополнительно настроить ряд параметров добавленного объекта. Например:
    Health — единицы здоровья объекта (по умолчанию равно 5).
    Explode — взрывоопасность объекта. Когда параметр равен 1, объект взрывается, разрушается, если здоровье опускается до нуля и ниже.
    Bouncyness — упругость объекта. Изменяется в пределах от 0 до 1. Чем выше значение, тем сильнее объект отскакивает от препятствий.
    Friction — трение, воздействующее на объект. Также меняется от 0 до 1. Чем выше, тем быстрее объект прекратит движение, если его толкнуть.
    Возможно, вам захочется создать на карте несколько окон или каких других стеклянных перегородок. Для этого нужно лишь создать подходящий браш или патч, а затем присвоить ему текстуру стекла (из раздела textures\glass). Но физически такая стена не будет отличаться от остальных — разбить ее не получится. Чтобы придать стеклу соответствующие свойства, щелкните по объекту правой кнопкой и выберите пункт меню func\func_fracture. Свойства стекла можно придать как обычному брашу, так и патчу, независимо от его сложности и формы.

36 Kb
    Гениальность простоты
   
Многие видели видеоролики к Half-Life 2 с выставки E3, где демонстрировалось необычное оружие — гравитационная пушка, позволяющая хватать и двигать различные игровые объекты и бросаться ими во врагов. Нечто подобное есть и в Doom 3. Во время игры откройте консоль и введите команду bind H “toggle g_dragentity”. Теперь, если нажать клавишу H (герой при этом опустит оружие), то вы сможете взять любой не прибитый гвоздями к полу объект на карте, наведя на него прицел и нажав левую кнопку мыши. Это могут быть всякие предметы, мебель, монстры и персонажи (живые и не очень). Например, несложно выложить какое-нибудь слово из свежеупокоенных монстров.
    Если вы уже устали от постоянной темноты на уровнях, введите в консоль команду bind G “testlight”. Так при нажатии кнопки G на карту будет добавлен весьма яркий фонарь, светящий в направлении взгляда игрока в момент нажатия. Теперь вы знаете, что делать, заходя в темную комнату...

   
* * *
   
Теперь вы можете построить полноценный уровень, который будет выглядеть не хуже, чем оригинальный. Но пока что все, чем можно заниматься на уровне, — это резать расставленных монстров, которые не умеют выслеживать и рвать в клочья главного героя. А такой уровень — лишь декорация для действа, которое разыграется на нашем уровне в следующей статье.
Комментарии
Загрузка комментариев