Итак у нас есть большое желание создавать карты для Quake III, но мы не знаем как. Первым делом нужен редактор карт. Один из самых популярнейших - это GTKRadiant. Сейчас последняя стабильная версия имеет номер 1.5 и её можно скачать по этой ссылке: GtkRadiant-1.5.0.msi Есть и другие редакторы, например устаревший Q3Radiant или Quark, но в этой статье я про них рассказывать не буду.
После скачивания редактора его нужно установить. Установка обычно проходит без проблем, главное несколько раз нажать далее и один раз выбрать тип установки. Я выбрал полную установку.
Также в директории игры желательно, чтобы текстуры, материалы и мдели находились в распакованном виде. Открываем pack0.pk3 в любой прогремме, которая может распаковать zip архив, например WinRar, и распаковываем папки textures, models и scripts в папку baseq3.
Запускаем редактор и видим примерно такой экран:
После первого запуска необходимо настроить редактор для того, чтобы он знал путь к игре и ресурсам (модели, текстуры, материалы и прочее) Заходим: Edit - Preferences - Settings - Paths
И в поле Engine path указываем путь к игре:
Также в Preferences можно настроить вид рабочего поля редактора. Я использую то, что предлагается по умолчанию. Edit - Preferences - Interface - Layout - Window Layout
И выбираю крайнее левое значение рабочего поля. Ок. Теперь расскажу из каких частей состоит рабочее поле редактора.
Слева находится двумерная проекция нашей карты. С помощью клавиш Ctrl + Tab можно менять вид этой проекции (условно говоря вид спереди, сбоку или сверху карты)
Справа вверху окно просмотра 3D вида нашей карты. Здесь можно увидеть все что мы сделали в 3D не запуская игру. Для управления видом щелкаем правой кнопкой мыши на 3D окно и мышью можен посмотреть влево, вправо, вверх и вниз. Для перемещения в горизонтальной плоскости можно использовать стрелки на клавиатуре. Для движение вверх и вниз используем клавиши D и C Также для перевещения можно использовать колесо мышки. На мой взгляд, так даже удобнее перемещаться по карте.
Справа внизу находится окно, в котором можно просматривать и выбирать текстуры для карты. Сейчас там скорее всего только те текстуры, которые используются в Quake 3, но позже можно будет добавлять свои.
Сверху на панелях находятся разные кнопки для редактирования. О них чуть позже по ходу статьи.
Для создания карт нужно немного понимать как вообще устроены уровни в игре.
В редакторе мы создаем .map файл, в котором записана информация об уровне и всех расположенных на нем объектах. После этого мы запускаем компилятор, который производит расчет bsp структуры уровня, расчет видимости и освещения. После компиляции мы получаем bsp файл, который уже можно запустить в игре.
Уровень - это обязательно закрытая со всех сторон коробка, без дырок во внешнуюю среду. Если будут дырки, тогда уровень или совсем не заработает или будет работать с очень маленькой скоростью.
Все уровни состоят из брашей, моделей, патчей и энтити.
Браш - это объект с почти неограниченным числом граней. Примерами брашей могут буть куб или параллелепипед, также из брашей можно сделать что-то похожее на сферу или конус. В Quake 3, большая часть уровней состоит из брашей. То есть почти каждая стена, пол, потолок состоит из брашей.
Патч - это то односторонный объект, который можно как угодно изгибать, крутить и так далее. Главный недостаток патчей в том, что из них нельзя делать внешние стены уровня. При компиляции патчи считаются дырявыми, поэтому чтобы не было дырки в том месте, где патч, за ним нужно расположить браш.
Модель - Это объект с заранее наложенными текстурами, который можно расположить в любом месте уровня, но не за его пределами, те есть нельзя модель расположить в открытом пространстве за уровнем, иначе будет утечка (map is leaked).
Энтити - Эти самые разнообразные объекты, в том числе источники света, лифты, маятники и прочее. Эти объекты тоже должны располагаться внутри уровня, чтобы не было утечек.
Для начала нужно создать просто уровень-коробку, наложить на стены и пол текстуры, установить место появления игрока и источники света. Затем скомпилировать карту и запустить её в Quake3.
В окне двумерной проекции зажимаем левую кнопку мыши в любом месте и перемещаем мышь. Так мы создали первый браш. Мы видим его сверху и можем мышью переместить его или изменить его размеры. Для выделения браша зажимаем кнопку Shift и левой кнопкой мыши щелкаем на браше (можно в 2D окне или в 3D окне, без разницы). Его края становятся красными. Если мы не хотим больше работать с этом брашем нажимаем Esc, и он снова становится черным. Нажимаем Ctrl + Tab, теперь мы видим этот браш сбоку и можем изменить его высоту. Сначала, наверное, не совсем понятно какого размера должен быть браш и каким он будет в игре. Слева есть линейка, на которой помечены деления с юнитах (Юнит - величина, в которой измеряются все равмеры в игре). Например игрок имеет размеры 56*32*32 юнита. Для первого уровня достаточно размеров (примерно) 300*300*128 юнитов. В этой коробке поместится и игрок и несколько других объектов.
Если браш нужно удалить - выделяем его и нажимает кнопку backspace. Он удалится.
Так мы создали первый браш, но он не пустой, все его внутренней пространство заполнено. Поэтому нужно сделать его пустым. Сверху на панели есть кнопка Hollow. Выделяем браш и нажимаем эту кнопку. Браш получает пустое пространство внутри. Теперь у нас будет не один браш, а 6: 4 стены, пол и потолок. Весь наш первый уровень будет располагаться внутри этих 6 брашей.
Но наши 6 брашей пока не имеют текстуры на своих сторонах. Для начала наложим на все браши текстура Caulk. Выделяем все наши браши (можно по очереди, а можно все вместе, зажав Shift + LM) и нажимаем кнопку на панели Caulk Selection. Наши браши снановятся розового цвета и все иг грани покрыты текстурой caulk. Этой текстурой мы помечаем те браши или их грани, которые не должны отображаться в игре. У каждого из этих брашей 6 граней, а можем мы увидеть сейчас только 1 у каждого (те грани, которые находятся внутри комнаты). В 3D виде залетаем внутрь этой коробки.
Теперь нам нужно наложить на внутренние стороны брашей те текстуры, которые захочется увидеть в игре. Можно в 3D виде выделять одиночные грани браше с помощью Ctrl + Shift + LM. Выделяем грани на брашах, которые у нас выступают в качестве стен. Они подсвечиваются красным.
Далее в том окне, которое справа внизу выбираем те текстуры, которые хотим увидеть в игре. Я выбрал base/base_wall bluemetalsupport2.tga. Щелкаем на текстуре LM. На стенах теперь наложилась эта текстура.
У меня она наложилась не так как надо, поэтому её нужно сдвинуть. Не снимая выделения с этих граней, я щелкнул 2 раза RM, в 3D вид, зажал кнопку Shift и стрелками передвинул текстуру так, как нужно.
После этого аналогично накладываем текстуры на пол и потолок.
На уровне обязательно должно быть указано место где появляется игрок, поэтому внутри нашей команты в 2D виде щелкаем RM и выбираем в появившемся меню: info - info_player_start
После этого появится красный параллелепипед, который озозначает стартовую позицию игрока. Нужно его передвинуть так, чтобы он находился внутри комнаты и не пересекался со стенами.
Также нам нужен источник света. Опять же RM внутри комнаты в 2D проекции. Выбираем light. Появляется маленькое меню, в котором можно ввести цифру, означающую яркость источника света. Для нашей комнаты достаточно значения 150.
Так мы закончили редактирование уровня. Обятельно сохраните его. У меня он называется tmp. Осталось скомпилировать его и запустить в игре. В верхней строке меню выбираем Build, вылазит меню в котором предоставляется выбор параметров компиляции. нас интересует сейчас только строка: Q3Map2: (final) BSP -meta, -vis, -light -fast -filter -super 2
Нажимаем и ждем некоторое время. Повляются разные черные окошки с белыми буквами, Радиант что-то пишет в своем логе и через какое-то время все заканчивается (время зависит от сложности уровня и количества ошибок, у нас уровень простой и маленький, поэтому все закончится быстро).
Если все сделано правильно, то компилятор из нашего .map файла создаст .bsp в папке ../baseq3/maps Если нет, то есть отдельная статья, посвященная ошибкам, которые выдает компилятор.
После этого можно запускать игру. Первым делом пишем в консоли /sv_pure 0. Эта команда позволяет игре видеть те файлы, которые не запакованы в .pk3. Затем также в консоли пишем /map tmp, и если все удачно, уровень запустиится :)
Поздравляю!
Если что-то не так, возможно придется переделывать уровень.
–GT-Agressor 09:01, 10 февраля 2009 (UTC)