Пятница, 03.05.2024, 00:58
Приветствую Вас Гость | RSS
Меню сайта
Поиск
Главная » Статьи » Картостроение

Делаем продвинутую дверь (Урок №2)

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

   Для начала нам нужно сделать комнату, которую мы разделим на две части перегородкой, - в ней мы и поставим нашу дверь. Я буду описывать данный процесс более чем подробно, специально для новичков. Итак, начнём.

   Запускаем Hammer Editor. Вверху, в меню View, нажимаем на "Center 3D Views on Selection”, чтобы мы имели возможность видеть в окне 3D-проекции результаты своей работы. Нам необходимо нарисовать прямоугольную 3D-фигуру для нашей будущей карты. Выбираем инструмент "Block Tool” в левой панели инструментов. Затем нажимаем справа на кнопку "Browse”, чтобы выбрать подходящую текстуру для прямоугольника. Появился список видимых текстур. Но их настолько много, что это усложняет процесс выбора. Поэтому в поле Filter вводим ключевое слово toolsnodraw. Среди отсортированных текстур видим жёлтую текстуру с надписью NODRAW. Данная текстура понадобится нам для того, чтобы мы могли её нанести на внешние стороны карты, чтобы компилятору было легче затем работать, - для него она будет означать условную пустоту, которую не нужно обрабатывать. Текстуру NODRAW полезно накладывать на те стороны брашей (фигур), которые не видны игрокам. Теперь продолжим. Нажимаем на текстуру toolsnodraw дважды курсором мышки. Затем в 2D-окне "top (x/y)” (вид сверху) рисуем прямоугольник. В окнах боковой проекции подгоняем его размеры так, чтобы у нас получилась фигура более-менее подходящая для пространства, которое будет включать в себя две равные комнаты. Нажимаем правую кнопку мышки и жмём на "Create Object” (т.е. Создать объект). В окне 3D-проекции мы можем наблюдать результат - прямоугольную фигуру с текстурой toolsnodraw, как на рисунке ниже.


   Теперь делаем эту фигуру пустотелой. Для этого выделяем её, нажав на неё мышкой в окне 3D-проекции, затем нажимаем вверху, в меню Tools, функцию Make Hollow. Появляется окошко, в котором нам необходимо указать толщину стенок коробки. Если поставить минус перед цифровым значением, то стенки будут вовне её, т.е. наш прямоугольник будет увеличен в объёме. Мы не будем этого делать, а поставим число без минуса, например 16. Получилось вот что:


   Теперь у нас есть коробка (по сути - карта), где мы будем делать всё остальное. Нажимаем клавишу "z” и, используя колесико мышки, влетаем внутрь этой коробки в окне 3D-проекции. Внутренние стенки фигуры также покрыты текстурой toolsnodraw, как и внешние. Но нам необходимо придать карте вид помещения. Для начала выбираем в левой панели инструмент "Toggle texture application”. Появляется окошко "Face Edit Sheet”. Не трогая это окошко, выделяем мышкой в окне 3D-проекции все боковые стенки, используя клавишу Ctrl (зажимая её). При этом, чтобы развернуться, пользуемся клавишей "z”. Стенки при выделении принимают красноватый оттенок. В окне "Face Edit Sheet” нажимаем кнопку "Browse”. Появляется список текстур. В поле Filter пишем ключевое слово wall (т.е. стена). Выбираем ту текстуру стены, которая вам понравится, и дважды нажимаем на неё. Затем, в окне "Face Edit Sheet” нажимаем на кнопку "Apply” (т.е. Применить). Сразу после этого текстура ложится на те участки, которые вы выделяли, в нашем случае - на стены. При необходимости выравниваем текстуры, изменяя их положение с помощью различных значений во вкладке "Material” окна "Face Edit Sheet” (поэкспериментируйте со значениями). Когда всё будет готово (текстуры лягут ровно), нажмите "Apply”. Затем выделите мышкой пол коробки и, только что описанным способом, наложите на него текстуру (ключевое слово для поиска текстур пола - floor). Напоследок наложите текстуры на потолок (ключевое слово - ceiling). Теперь наша коробка преобразилась, - стала похожей на зал.


   Итак, зал готов. Нам нужно разделить его на две части стеной, чтобы потом в этой стене поставить дверь. Начнём. Нажмите кнопку "Block Tool” в левой панели инструментов, а справа нажмите стрелку окошка "Current Texture”, чтобы выбрать текстуру стены. В нашем случае желательно выбрать ту же текстуру, которой мы уже покрывали стены (вы её легко там найдёте). Пользуясь окнами 2D-проекции (с сеткой) начинайте рисовать посередине зала достаточно толстую стену, избегая при этом делать зазоры (не забывайте - ваша карта должна быть качественной). Для удобства подгонки стены уменьшите сетку в окнах 2D-проекции, нажав вверху кнопку с решёткой и знаком минус несколько раз. Толщину стены можете сделать любую. Но следует не забывать, что если стена у вас будет слишком тонкой, то пуля её пробьёт. Я нарисую стену достаточно толстую, чтобы сделать в ней коридор, в середине которого будет дверь. Толщина моей стены равняется 200.

   У нас получились две изолированные друг от друга одинаковые комнаты. Необходимо пробить проход в стене, разделяющей их (которую мы только что создали). Пробивать его мы будем брашем, из которого впоследствии и сделаем дверь. Нам нужно сделать браш таких размеров, чтобы он соответствовал стандартам двустворчатых дверей. Чтобы не ошибиться с размерами, ставим возле стены модель игрока, по ней мы и будем ориентироваться (затем мы её удалим). Нажмите кнопку "Entity Tool” в левой панели инструментов, затем справа, в окне "Objects” выберите энтити info_player_terrorist и поставьте её возле стены-перегородки, по центру прямо в окне 3D-проекции. Затем выберите инструмент "Block Tool” и создайте внутри стены прямоугольную фигуру (блок) подходящих размеров (на глаз).


   Теперь нам нужно прорезать этим блоком в стене коридор. Для этого мы выделяем его, и в верхнем меню "Tools” нажимаем "Carve”. Всё, стена пробита. Но в ней остаётся блок, которым мы её пробивали. Можно этот блок удалить, но мы не будем этого делать. Из него мы сделаем дверь. Выделяем этот блок (если он у вас не выделен) и в окне 2D-проекции "top (x/y)” (вид сверху) захватываем поочерёдно стороны этого блока и сужаем их к центру, чтобы толщина равнялась четырём (можно сделать другое значение).


   Дверь, согласно нашему проекту, должна быть двустворчатой. Поэтому необходимо её разрезать на две ровные части сверху вниз (или же снизу вверх). Для этого мы воспользуемся инструментом "Clipping Tool” из левой панели инструментов. Но сначала не забудьте выделить дверь. Затем жмите на кнопку "Clipping Tool” и в окне 2D-проекции (вид спереди) режьте дверь пополам строго по центру (!). На центр может указывать крестик по центру двери в 2D-окне . Чтобы сделать разрез с сохранением обеих частей (без удаления какой-либо из них), нужно нарисовать ровную линию (соединить ею верх с низом двери), затем дважды нажать на значок "Clipping Tool” (линии двери в окне 2D-проекции должны стать белыми), и нажать клавишу "Enter” на вашей клавиатуре.


   Всё, дверь разрезана, - теперь она состоит из двух одинаковых створок. Цветом она, как стена. Поэтому необходимо её перекрасить, например, в металлический цвет. Выделяем обе створки двери и выбираем инструмент "Toggle texture application”. В окне "Face Edit Sheet” нажимаем кнопку "Browse”. В поле "Filter” вводим ключевое слово metal. В списке появившихся текстур выбираем любую, приглянувшуюся нам, текстуру и жмём на неё два раза. Затем нажимаем "Apply”. Всё, теперь дверь стала железной. Для того чтобы дверь была красивее, мы сделаем в её створках окошки из разбивающегося стекла. Выбираем инструмент "Block Tool” в левой панели инструментов, а справа нажимаем кнопку "Browse”, чтобы выбрать текстуру стекла. В поле "Filter” вводим ключевое слово glass. Перед нами появляются текстуры стекла. Мы возьмём текстуру introomaria_glass. Нажимаем на неё два раза. Затем рисуем блок таким образом, чтобы он по размерам соответствовал будущему окошку одной из створок двери.


   Вырезаем в двери проём для окошка. Для этого выделяем нарисованный только что блок и в верхнем меню "Tools” нажимаем "Carve”. Далее в верхнем меню "Edit” нажимаем "Copy” (тем самым копируем блок из стекла) и в окне 2D-проекции нажимаем на правую кнопку мыши и выбираем "Paste” (вставляем копию блока). Выравниваем скопированный блок на второй створке двери и также прорезаем её. Затем поочерёдно сдвигаем стекла в окне 2D-проекции так, чтобы они стали тоньше створок двери. Теперь задача сделать эти стёкла разбиваемыми. Выделяем одно стекло (любое) и в верхнем меню "Tools” нажимаем "Tie to Entity”. В поле "Class” выбираем func_breakable. В поле "Keyvalues” выбираем значение "Parent” и справа, в окне вписываем "door-01”. Нажимаем "Apply”. Открываем вкладку "Flags” и ставим галочку напротив "Break immediately on Phisics” Нажимаем "Apply” и закрываем окно. То же самое необходимо проделать и со вторым стеклом. Значения нужно сделать такими же, только в значении "Parent” пишем уже "door-02” (этим значением мы прикрепляем стекло к створке двери, и важно не перепутать).


   Стёкла у нас готовы. Они привязаны к двери и будут двигаться вместе с нею. Однако дверь у нас пока ещё представляет собой обычный браш (разрезанный). Она не будет открываться. Для этого необходимо придать ей функцию двери. Выделяем первую створку (стекло не выделяем, только створку двери). Идём в меню "Tools” и нажимаем "Tie to Entity”. В поле "Class” выбираем func_door. Затем задаём следующие настройки:

   Name - door-01
   Speed - 60 (Без минуса. Тут значения скорости могут быть от 1 до 100 на ваш вкус);
   Start Sound - doors/door_metal_gate_move1.wav (нажав кнопку "Browse”, вы можете саами выбрать подходящий звук двери. Для удобства поиска в поле "Filter” надо указать ключевое слово door);
   Stop Sound - выбираете самостоятельно;
   Move Direction (Pitch Yaw Roll) - 0 90 0 (Направление движения створки двери, выбирается самостоятельно. Могут быть следующие значения: 0 90 0, 0 0 0, 0 270 0, 0 180 0).

   Открываем вкладку "Flags” и снимаем все галки (чтобы всё было пустым).
   Нажимаем "Apply” и закрываем окно.

   Первая створка двери настроена. Теперь делаем то же самое и со второй створкой. Задаём для неё следующие значения:

   Name - door-02
   Speed - 60 (Значение должно быть таким же, как и у первой створки);
   Start Sound - doors/door_metal_gate_move1.wav (Звук должен быть таким же, как и у первой створки);
   Stop Sound - выбираете самостоятельно;
   Move Direction (Pitch Yaw Roll) - 0 270 0 (Направление движения должно быть противоположным).

   Открываем вкладку "Flags” и снимаем все галки (чтобы всё было пустым).
   Нажимаем "Apply” и закрываем окно.

   Дверь готова. Но чтобы заставить её открываться, когда игрок к ней подойдёт, необходимо поставить треггер. Мы воспользуемся обычным триггер-брашем. Выбираем инструмент "Block Tool” в левой панели инструментов, а справа нажимаем кнопку "Browse”, чтобы выбрать текстуру триггера. В поле "Filter” вводим ключевое слово trigger. Выбираем жёлтую текстуру с названием toolstrigger, и рисуем блок таких размеров, чтобы он занял всё пространство коридора в нашей стене с дверью, как на рисунке ниже.


   Теперь выделяем этот блок и в верхнем меню "Tools” нажимаем "Tie to Entity”. В поле "Class” выбираем trigger_multiple. Нажимаем "Apply”. Открываем вкладку "Flags” и ставим галочку напротив Clients (остальное оставляем без галочек). Затем идём во вкладку "Outputs” и добавляем следующие строчки:


   Нажимаем "Apply” и закрываем окно. Дверь полностью готова к использованию. Однако мы не сможем увидеть её в действии, поскольку на нашей карте отсутствует освещение и место появления игрока. Давайте сделаем их. Нажмите кнопку "Entity Tool” в левой панели инструментов, затем справа, в поле "Objects” выберите энтити info_player_start. В окне 3D-проекции поставьте эту энтити где-нибудь подальше от двери, например, рядом со стенкой (только чтобы эта энтити не касалась пола и стен). Затем выберите энтити info_player_terrorist и поставьте её прямо на энтити info_player_start (совместите их) как на рисунке ниже.


   Теперь мы сделаем для игрока байзону, чтобы он имел возможность покупать оружие. Выбираем инструмент "Block Tool” в левой панели инструментов, и берём текстуру триггера (которую мы недавно использовали при создании двери). В принципе для байзоны подойдёт любая текстура, но желательно выбрать прозрачную. В месте появления игрока рисуем браш такого размера, чтобы он занимал пространство, где игрок сможет купить оружие. Вы можете сделать любой размер, так сказать, на ваше усмотрение.


   Затем выделяем этот браш и в верхнем меню "Tools” нажимаем "Tie to Entity”. В поле "Class” выбираем func_buyzone. Настройки её просты; в пункте "Team Number (int)” выберите значение "Terrorist” (чтобы в этой байзоне могли вооружаться террористы), затем нажмите "Apply” и закройте окно.

   Теперь сделаем свет, точнее развесим лампочки. Для начала надо выбрать подходящую модель лампочки. Для этого необходимо поставить на потолке динамическую, подвешенную энтити. Выбираем инструмент "Entity Tool” в левой панели, а справа, в поле "Objects” находим энтити prop_dynamic_override. Затем прямо в окне 3D-проекции ставим эту энтити на потолок (желательно расставлять освещение ровно и симметрично, чтобы карта была красивой). Получается красный квадратик. В левой панели выбираем инструмент "Selection tool” (стрелка) и нажимаем на этот квадратик (энтити prop_dynamic_override) два раза в окне 3D-проекции. Появляется окно свойств энтити. В поле "Keyvalues” выбираем значение "World Model”, а справа нажимаем кнопку "Browse”. Перед нами появляется окно - просмотрщик 3D-моделей. В поле "Filter” вводим ключевое слово lamp. Выбираем подходящую модель лампы и нажимаем "ОК”. Затем нажимаем "Apply”. Красный квадратик превратился в модель той лампы, которую мы выбрали. Теперь необходимо заставить его светить. Для этого снова берём инструмент "Entity Tool” в левой панели, а справа, в поле "Objects” выбираем энтити "light”. Теперь в окнах 2D-проекции (на сетке) ставим эту энтити прямо под лампой (высоту необходимо делать где-то посредине между полом и потолком, чтобы свет распространялся более правильно).



   Свет готов. Но это всего лишь одна лампа со светом. Нам надо в каждой комнате установить по несколько этих ламп, чтобы освещение было достаточным. Выделяем лампу и свет (энтити prop_dynamic_override и light), которые мы поставили, затем нажимаем "Copy” в верхнем меню "Edit” и вставляем лампочки со светом во всех помещениях (расставляем ровно и красиво). Следует не забывать, что энтити должны размещаться в пределах карты и не выходить за неё, в противном случае у вас произойдёт серьёзная ошибка при компиляции.

   Напоследок нам осталось сделать компиляцию карты. Для этого необходимо нажать клавишу F9 и выставить везде значения "Normal”, затем нажать "ОК”. Компиляция должна пройти очень быстро, поскольку наша карта небольшая. Чтобы посмотреть на результат данной работы, а также испытать нашу дверь в игре, скачайте файл карты здесь. Удачи вам в картостроении, побольше хороших идей.

 

Категория: Картостроение | Добавил: Nickname123 (25.02.2010)
Просмотров: 2468 | Комментарии: 3 | Рейтинг: 5.0/3
Всего комментариев: 3
3 Voron122  
0
Crosser молодец спасибо тебе за уроки... Ты во многом помог)

2 Nickname123  
0
Сам.

1 Dumbass(rus)  
0
классно, сам писал?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Login
Категории раздела
Все статьи [109]
Картостроение [3]
Голосование
С каким видом оружия вы бегаете в COUNTER STRIKE?
Всего ответов: 3985
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2024