Статья удалена
Мы наконец-то заканчиваем нашу карту! А заодно учимся делать подъемные мосты, телепорты, секретки... И, конечно, населяем мир монстрами!
Доброго времени суток! Мы продолжаем изучать GZDoom Builder - мощный редактор карт, способный работать с кучей форматов думовских уровней. О последнем и самом навороченном из них - UDMF - мы поговорим позже, а пока вернемся к нашей карте, исполненной в классическом ("ванильном") формате Doom/Doom 2.
Перед прочтением рекомендую ознакомиться с предыдущими частями цикла:
Часть 1 - установка редактора, создание простейшей геометрии
Часть 2 - работа с освещением, текстурами, триггерами и открытыми пространствами
Итак, на чём остановились? Ах да, у нас есть комната, дверь, коридор и кусок внешнего мира. Выглядит всё это дело так:
Теперь, когда мы умеем рисовать сектора, обтягивать их текстурами и понимаем суть тэгов и триггеров, самое время набирать темп и придавать уровню законченный вид.
Ты неси меня, река
Первое, что мы сделаем - превратим нашу лужайку в берег реки. Для этого
- удлиняем сектор лужайки и примыкающий, с утопленным небом
- рисуем посередине еще сектор, понижаем высоту пола, наносим на стены текстуры
- на пол этого сектора вешаем любую из текстур FWATER
Что получаем:
И в игре:
Водная гладь пришла в движение! Нам для этого не потребовалось ничего писать - анимации некоторых текстур, включая жидкости, зашиты в движок Дума. В PrBoom и GZDoom можно назначать и свои собственные анимации, но об этом я расскажу позже.
На повестке дня стоит более насущный вопрос: если гг упадёт в реку, то, пусть и не утонет, но обратно точно не выкарабкается. Так что давайте-ка сделаем лесенку из каких-нибудь камней, и продолжим терраформирование.
Удлиним реку вверх (т.е. на север), а вместе с ней и оба берега. Для этого можно тянуть за вершины, при необходимости добавляя новые.
Получается вот такая загогулина. Кроме обещанной лесенки мы добавили еще один сектор, чтобы наш берег повышался к северу. Кроме того, мы продлили сектор утёса (справа, рядом со стеной здания) и изменили форму сектора, отвечающего за небо. Ну и немного протянули внешнюю, северную стену здания. из которого выходит игрок.
Теперь нарисуем мост на ту сторону реки:
Полотно моста - центральную часть - тоже можно было бы поднять, но мы поступим хитрее: оно будет подниматься по нажатию на кнопку. При этом текстура пола поменяется сама - надо только не забыть указать нижнюю текстуру боковой части:
И потом не забыть утопить пол сектора обратно, до уровня реки.
Теперь нарисуем будку, в которой будем жать на рубильник и поднимать мост. Рисуем рядом с мостом сектор будущей комнатки:
Выбираем его в Sectors Mode, жмём Del, и получаем:
Удаленные секторы оставляют за собой пустоту, межсекторное пространство. В 3д режиме это выглядит, как колонна с пустой средней текстурой. Если мы сейчас её как-нибудь покрасим, то она будет торчать до самого потолка - нам это не нужно, будка должна быть невысокой. А значит рисуем вокруг её еще один сектор, назначаем ему текстуру потолка F_SKY1, и опускаем его:
Будка получилась, что надо. Теперь нарисуем внутреннее убранство, а еще окно, благодаря которому будет виден мост:
На внешние и внутренние лайндефы окна вешаем Upper и Lower Unpegged, чтобы текстурка встала нормально. Всё, как всегда.
На одну из внутренних стен комнаты вешаем текстуру переключателя, а на лайндеф с ней - экшн S1 Floor Raise to Next Higher Floor (changes texture). И экшону, и полотну моста устанавливаем тег 2, чтобы они связались:
У данного экшона есть важный нюанс: когда наш мост будет подниматься, его текстура сменится на ту, что установлена у сектора с переключателем. Поэтому пол в будке мы сделали дизайнерским, двухцветным - серый бетон сектора с переключателем передастся мосту. Тестируем:
Отличненько, теперь можно перейти на другую сторону. Но нам этого пока не надо - там будет протекать финальная часть уровня, и у нас еще есть дела на этом берегу реки. Более того - у нас пока не должно быть возможности попасть в эту будку! Она будет заперта на синий ключ, который нам еще нужно будет найти.
Когда мы чертили будку, мы заложили дверную коробку - опускаем центральный сектор, вешаем какую-нибудь дверную текстуру, и назначаем экшон D1 Door (Blue) Open Stay. На стены рядом с дверью лучше поставить специальную текстурку DOORBLU, чтобы было понятно, какой ключ здесь нужен:
Теперь дело за малым - придать реке законченный вид. А именно сделать места, откуда она вытекает и куда бежит. По авторскому замыслу, река течет с юга на север, и вытекает из подземной пещеры:
А вот так будет выглядеть северная оконечность:
Предполагается, что синяя лента реки тянется в далекие дали, не имеющие отношения к нашему приключению. Игроку туда ходить не следует, даже если очень хочется. Так что сделаем линию между ближайшими двумя секторами реки непроходимой - для этого в Linedefs Mode выберем её, зайдем в её свойства, и выставим флажок Impassable:
Теперь линия подсвечивается, как внешние стены уровня, и переступить через неё нельзя - удобно, когда нужно делать, например, низкие, почти до пола, окна.
Кстати, оставшиеся три сектора реки имеют одну текстуру и высоту - так почему бы не объединить их в один? Делается это так - выделяем их все, и жмём Shift + J:
Река готова! Есть, впрочем, шанс свалиться с моста в правую сторону, где нет лесенки, но в следующем разделе мы исправим и это тоже.
Highway to Hell
Куда же запропастился синий ключ, без которого никак не перейти реку? Его украли демоны из соседней пещеры - причем не просто спрятали где-то посреди камней, а утащили в Ад через портал! Выбора у нас нет - придется искать пропажу в преисподней.
Рисуем простенькую систему пещер:
К сектору реки, граничащим с непроходимой линией, достраиваем вот такую конструкцию:
Если мы вдруг упадём с правой стороны от моста, то сможем воспользоваться лифтом, который выведет нас в пещеры. Сектор лифта поднимаем на уровень пола, на лицевую сторону лифта вешаем экшн SR Lift Lower Wait Raise с каким-нибудь новым тегом (пусть будет 3), тот же тег вешаем на сектор лифта.
Нам вряд ли понадобится возвращаться вниз, но на всякий случай предусмотрим и такую возможность - для этого на линии сектора лифта со стороны комнаты вешаем WR Lift Lower Wait Raise. Вуаля - теперь со стороны реки лифт активируется нажатием, а со стороны комнаты - пересечением границы сектора лифта.
Что касается сектора, разделяющего проход и пещеру - на одну из его сторон мы повесили текстуру двери со львом - то со стороны прохода вешаем экшн D1 Door Open Stay - чтобы проход в пещеры открывался изнутри, и больше не запирался.
Это место не то, что бы тянет на секретку, но какой хороший геймдизайнер не льстит самолюбию игрока? Самое время нам познакомиться с эффектами секторов. В Sectors Mode заходим в свойства сектора рядом с сектором лифта, и в разделе Effect and Identification выбираем Special 9 - Secret:
Теперь, когда мы будем попадать в этот сектор, игра будет радовать нас сообщением о том, что мы нашли секрет:
Ну и, раз такая пьянка, давайте разместим в этой секретке бензопилу (Things Mode - Weapons - Chainsaw). Вознаградим любителей прыгать с мостов.
Теперь наш взор устремляется к северному концу пещеры, где у нас будет портал. Рисуем нечто демоническое:
Ступив на пентаграмму, игрок должен перенестись в иной мир, где его дожидается украденный ключ. Рисуем новый сектор за пределами нашей карты, на границы секторов морды вешаем WR Teleport с тегом 4. Важно, чтобы лайндефы были повернуты передней стороной наружу, иначе игрок телепортируется при попытке сойти с морды, а не вступить на неё.
Новому сектору назначаем тот же тег.
Теперь самое главное - точка, в которую будет телепортироваться игрок. Идём в Things Mode, и устанавливаем Teleports - Teleport Destination:
Тестируем наш телепорт:
Отлично! Теперь можно нарисовать комнату с карточкой, но вместо этого предлагаю отвлечься, и начать расставлять то, ради чего и существует DOOM - монстров.
Монстры и то, что они слышат
Первые экземпляры сил зла встретятся нам на берегу реки. Расставляем зомби-пистолетчиков (в редакторе они называются Former Human):
Эти трое набросятся на нас сразу же - им достаточно будет увидеть нас или услышать звуки выстрелов. А вот четвертый не так прост - он спрятался за будкой и попытается напасть на нас из засады. Для этого надо зайти в его свойства, и выбрать флажок Ambush Players:
Тогда он не услышит выстрелов, и пойдет в атаку, только увидев пробегающего игрока.
Как видно, свойств у объектов немного - по крайней мере, в ванили. Флажок Multiplayer only отвечает и за кооп, и за дм - эта странность свойственна только ванили, уже в формате Boom можно выставлять отдельно для каждого режима.
С пунктами Easy, Medium и Hard все еще очевиднее - они отвечают за сложность.
Кстати, почему сложностей всего 3, хотя в DOOM их 5 штук? Дело в том, что на первых двух и последних двух уровнях сложности одинаковое количество монстров. Отличаются они геймплейно - например, на простейшей I'm too young to die монстры наносят игроку в 2 раза меньше урона, а патронов в ящичках в 2 раза больше, чем обычно. Или взять Nightmare - монстров там столько же, сколько и Ultra-Violence, но они быстро бегают и спустя какое-то время респавнятся. Патронов, кстати, снова в два раза больше.
В общем, улицу мы заселили, теперь можно расставить монстриков в пещере. Я бы поставил импа в квадратной комнате, где смыкаются два прохода, и еще двоих - в комнате с порталом:
Есть, правда, одна загвоздка - как только на улице начнется стрельба, импы тоже побегут участвовать в заварушке. Можно поставить им флажок Ambush Players, но что, если мы хотим, чтобы улица и пещера были двумя разными звуковыми пространствами? Тут на помощь приходит свойство лайндефов Block Sound. Если звук проходит через два лайндефа с этим флагом, то в следующих секторах монстры его не услышат. Устанавливаем это свойство лайндефам у входа в пещеру:
Теперь монстры в пещере не услышал пальбы на улице и не порушат нам всю тщательно выстроенную режиссуру.
Можно прямо в редакторе посмотреть, как будет распространяться звук. Для этого в левой части экрана нужно активировать Sound Propagation Mode:
Тёмно-зеленым горит выбранный сектор, светло-зеленым и желтым - сектора, где звук будет слышен. Мы знаем, что дальше желтых участков звук не пойдет. Удобная штука.
В квадратную комнатку в пещере я положил шотган, чтобы валить импов было веселее. Туда же - немного патронов и аптечку. А еще отделил комнату с порталом вторым слоем блокирующих звук линий.
Все, с монстрами и звуком разобрались. Теперь наконец-то вернемся к аду и к затерявшемуся там синему ключу. Да и вообще закончим уже эту карту.
Рисуем остаток совы
Комнату красного кирпича я продолжил вот таким образом:
Как видим, синий ключ охраняется всего несколькими монстрами. Неужели это всё, что встретится игроку? Как бы не так! Устроим ему засаду с опускающимися стенами:
Как только он наступит на плиту с ключом, стена моментально откроется, и на игрока набросится злая толпа с криками "моя прелесссть!".
Предположим, что игрок с ней справился - теперь ему надо как-то вернуться обратно. Сделаем в первой комнате ада телепорт, и пусть он возвращает его на козлиный камень:
Главное - не забыть воткнуть еще один Teleport Destination.
Теперь, когда мы можем вернуться и поднять мост, самое время заканчивать карту. Вот, что у меня получилось:
Казалось бы - вот он, выход. Достаточно лишь открыть дверь и нажать на рубильник...
Ай-яй-яй! Вот ведь западло. Выход оказался фальшивым, а в подвале незадачливого морпеха ждал расстрельный отряд из сержантов. Они гораздо опаснее зомбименов и импов, и с ними нужно разбираться быстро - например, с помощью оружия, которое я добавил в одну из секреток. Хотя можно обойтись и без него - главное быстро двигаться и стрелять.
Во второй комнате подвала притаились еще солдаты...
И лишь за следующим коридором будет лифт с выходом - на этот раз с настоящим (S1 Exit Level).
Кстати, многих из этих монстров на средней сложности нет - я добавил их специально для Ultra-Violence и Nightmare. А настраивать лёгкие сложности не стал - лень. Да и кто вообще играет в DOOM на изи?)
Ну вот и все, дамы и господа. Уровень готов. Что, кстати, мы увидим, когда нажмём на рубильник и посмотрим статистику?
Что-то знакомое... А, ну да. Это же вторая карта DOOM2.wad. В нашем pwad'е (так думеры называют моды) существует одна карта - MAP01 - и при запуске порта с iwad'ом (игровым ресурсником) DOOM2.wad она заместит его первую карту. MAP02 в pwad'е нет, а значит запустится MAP02 из iwad'а. А запустится потому, что распознав DOOM2.wad, порт поймет, что запущена игра Doom 2: Hell on Earth, и будет запускать карты с MAP01 по MAP30.
pwad'ы, в которых замещены все 32 карты, называются мегавадами.
Вот такие пироги с думгаями. Я еще немного повозился с уровнем - расставил объекты вроде деревьев и адских колонн, дорисовал деталей, в пещере поигрался с яркостью. Ну и секретов добавил, куда ж без них, родимых? Попробуйте найти их все без помощи редактора)
Прохождение карты (играл на клавиатуре, как труъ-трактористы):
А вот ссылка на сам вадник:
Fin.
Вот и кончилась третья часть цикла о маппинге. Мы прошли большой путь, и теперь знаем всё, что нужно, чтобы начать и закончить самую что ни на есть настоящую думовскую карту. Это, согласитесь, вполне неплохо.
Держите награду:
В следующий раз я расскажу о другом думовском редакторе - Slade. С его помощью мы будем грузить в наш вадник новые ресурсы - текстурки и музыку, которые потом используем на новой карте.
Всем спасибо за внимание!