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

Скалы, движущиеся тучи, и дождь со звуком (Урок №3)

   В этой статье я хочу поделиться опытом создания на картах CS:S двигающихся туч, дождя и красивых, рельефных скал. Всё это вы, конечно, частично встречали на официальных картах cs_office, de_aztec, de_dust2 и других. К примеру, многие, возможно, замечали, что на карте cs_office тучи на небе двигаются. Кто-то справедливо заметит, что все эти "секреты” можно найти в сети, в многочисленных учебниках по картостроению. Да, это так. Я и сам их читал много раз. Затем пытался сделать то же самое в последней версии Hammer'а, но мало что мог повторить. Дело в том, что большинство из учебников создавались для старых версий, разработанных ещё для CS 1.6. В современной Source SDK всё обстоит по-другому, например, появился ряд новых энтити, позволяющих легко сделать то, на что раньше маперы тратили уйму времени (не говоря уже о фантазии). Если скалы приходилось создавать из множества треугольников (как и рельеф поверхности), тратя на это часы и даже дни, то сейчас всё гораздо проще и, главное, намного быстрей. При создании капель дождя раньше нужно было использовать спрайты (спецтекстуры), - при этом дождь зачастую смотрелся убого и неестественно. Сейчас этого нет, - появилась энтити осадков (с помощью неё можно сделать не только дождь, но град и даже снежинки). Я последовательно опишу процесс создания туч (в движении), красивых рельефных скал и дождя со звуком. Итак, начнём.

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


   Фигура готова. Теперь необходимо сделать её пустотелой, чтобы можно было делать внутри неё карту. Выделяем её. Идём в верхнее меню "Tools” и нажимаем на "Make Hollow”. Появляется небольшое окошко, в котором мы выбираем размер стенок. Оставляем его стандартным, т.е. 32 (можно сделать любой размер). Нажимаем ОК. Залетаем внутрь этой коробки в окне 3D-проекции, используя для этого клавишу "z”, а также колесико мыши. Внутри коробка также имеет текстуру NODRAW. Нам нужно поменять их на текстуры неба и земли. Вначале делаем грунт. В левой панели инструментов нажимаем на кнопку "Toggle texture application”. Появляется окошко "Face Edit Sheet”. Выделяем дно коробки, затем нажимаем кнопку "Browse”. Появляется список текстур. В поле "Filter” пишем ключевое слово "grass” (т.е. трава). Выбираем любую текстуру, которая вам понравится, например grassdirt_blend и нажимаем на неё два раза мышкой. Затем нажимаем "Apply” (т.е. Применить). Текстура ложится на дно. Теперь нужно сделать небо. Выделяем все оставшиеся внутренние стороны коробки, т.е. стены и верх, и снова нажимаем кнопку "Browse” в окне "Face Edit Sheet”. В поле "Filter” вводим ключевое слово sky. Появляются текстуры неба. Ищем среди них (в конце списка) текстуру "toolsskybox”, выбираем её и нажимаем на кнопку "Apply”. Закрываем окно "Face Edit Sheet”. Затем идём в верхнее меню "Map” и жмём на "Map Properties” (т.е. на свойства карты). В поле "Keyvalues” делаем несложные настройки:

   Name - пишите любое название карты (придумываете); 
   SkyBox Texture Name - пишите название небесных текстур на ваш вкус. Я впишу текстуры под названием "office”, поскольку это текстуры пасмурного, дождливого неба - как раз то, что нам нужно. Но могут подойти и текстуры "de_cobble_hdr”, поскольку они тоже пасмурные.
 
   Нажимаем "Apply”. Никаких визуальных изменений в окне 3D-проекции мы, естественно, не увидим, - их мы сможем увидеть лишь после компиляции карты.


   Теперь нам нужно заставить небо светиться, в противном случае мы ничего не увидим в игре, и будем вынуждены пользоваться фонариком, либо идти наощупь :)

   Выбираем в левой панели инструмент "Entity Tool”, а справа, в окне "Objects” выбираем энтити light_environment. Ставим эту энтити на карте, где-нибудь сверху (устанавливать её лучше в окнах 2D-проекции; сначала ставим зелёный крестик в окне "Top (x/y)”, потом в окне "Top (x/z)”, затем жмём на правую кнопку мыши и выбираем "Create Object”). В окне 3D-проекции жмём мышкой двойным щелчком на эту энтити. Появляется окно её свойств. Задаём следующие настройки.

   Pitch Yaw Roll (Y Z X) - -45 (с минусом, чтобы свет падал вниз);
   Pitch - также можно поставить значение -45;
   Brightness - 236 234 223 200 (я выбрал серовато-белый оттенок, подходящий для дождливого неба);
   Ambient - 255 255 255 20 (оставляем стандартный - белый);

   Нажимаем "Apply” и закрываем окно.


   В данном случае мы ограничились только энтити light_environment. Ставить на карту энтити env_sun мы не будем, так как на пасмурном небе солнышка быть не должно, - должен быть только свет.

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


   Теперь начинаем делать самое интересное - то, чему посвящается эта статья. Вначале сделаем горы. Из них мы будем делать периметр (по сути, ограждение карты, вместо забора и зданий, которыми обычно ограждают пределы карт). Выбираем инструмент "Block Tool”, а справа нажимаем "Browse”. В поле "Filter” вводим ключевое слово rock (т.е. скала). Перед нами появляется список текстур скал. Выбираем любую из них и жмём на неё два раза. Затем в окне 2D-проекции начинаем рисовать не слишком длинные, но достаточно высокие (чтобы игрок не смог через них перепрыгнуть) блоки, как на рисунке ниже. Причем угловые блоки необходимо накладывать друг на друга (позже объясню, для чего). Текстуры будут ложиться на блоки неправильно. Необходимо это исправлять инструментом "Toggle texture application”. Просто выделяем весь блок, выбираем инструмент "Toggle texture application” из левой панели, а после в окне "Face Edit Sheet” жмём на кнопку "Fit” (т.е. растягиваем текстуры на максимум).


   Должно получиться примерно так.


   Получившиеся блоки стали похожими на скалы. Но мы их будем делать рельефными, как на карте de_dust2. Для начала нужно сделать их немного наклонными, как настоящие скалы. Мы будем их обрезать инструментом "Clipping tool”, который можно найти в левой панели инструментов. Итак, выделяем первый блок (будем резать по одному) и жмём на инструмент "Clipping tool”. Проводим линию отреза (под скос), как на рисунке.


   После того, как мы провели линию инструментом "Clipping tool”, то красная сторона означает ту сторону, которая будет отрезана (исчезнет после отреза). Если у вас красной стала не та сторона, которую вы планируете отрезать, то нажмите мышкой ещё раз на значок инструмента "Clipping tool” (при этом стороны будут меняться, давая возможность сделать правильный выбор). Отрез осуществляется нажатием клавиши "Enter” на вашей клавиатуре. Должно получиться так.


   Проделываем это со всеми остальными блоками. Когда все блоки будут обрезаны и примут одинаково наклонный вид, им надо придать рельеф, потому как скалы обязаны быть неровными. Мы будем это делать поблочно. Вначале выделяем первый блок и нажимаем в левой панели на инструмент "Toggle texture application”. В окне "Face Edit Sheet” открываем вкладку "Displacement” и жмём на кнопку "Create”. Появляется такое окошко.


   Цифра 3 означает силу деформации брашей (скорость растягивания). Если ставить не выше трёх, то можно избежать ошибок, поэтому я не рекомендую вписывать другие значения. Впрочем, можете поставить любое. Нажимаем ОК. Браш теряет красное выделение, покрываясь сеткой из треугольников. Теперь жмём кнопку "Paint Geometry” и видим другое окно – "Displacement Paint Geometry”. Ведём курсор мыши в окно 3D-проекции (не нажимая) и видим на сетке (рядом с курсором) зелёный шарик. Если нажать левую кнопку мыши, то браш начнёт вытягиваться наружу, а если нажать правую - внутрь. Таким образом мы можем без труда деформировать браш, придавая ему вид скал или других неровностей.



   Как видно на верхнем рисунке, мы не только сделали скалы, но и положили три камня, которые создали таким же образом. Всё, со скалами разобрались. Идём дальше.

   Нам нужно поставить тучи, которые двигаются как на знаменитой карте cs_office. Берём инструмент "Block Tool”, а справа нажимаем "Browse”. В поле "Filter” вводим ключевое слово cloud. Перед нами появляются текстуры туч. На вид они неподвижные, но на самом деле анимационные. Выбираем из них любую, например clouds2 и жмём на неё два раза. Затем рисуем вверху карты большой (во всю ширину и длину) плоский браш. После того, как он будет создан, необходимо выделить, затем открыть инструмент (слева) "Toggle texture application” и нажать на кнопку "Fit", чтобы растянуть текстуру на весь браш.


   Движущиеся тучи готовы. Но остался один существенный недостаток, - если выстрелить в эти тучи, то останутся следы от пуль, что будет весьма некрасиво. Для того чтобы это исправить, нужно поставить браш, который не позволит пулям оставлять на небе следы. Берём инструмент "Block Tool” и ищем текстуру toolsblockbullets. Ниже, под брашем туч, рисуем такой же браш, но с текстурой Block Bullets. Теперь тучи защищены.

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

   Name - soundrain
   Sound Name - ambient/weather/rumble_rain_nowind.wav (либо выбрать другой подходящий звук, нажав кнопку "Browse” и введя в поле "Filter” ключевое слово rain);
   Volume - 10 (т.е. выставляем максимальный звук дождя);
   Start Volume - 10

   Идём во вкладку "Flags” и ставим галочки напротив "Start Silent” и "Play Everywhere”. Остальное оставляем без галочек.
   Нажимаем "Apply” и закрываем окно.
 
   Максимальное расстояние слышимости настраиваем на карте, прежде выделив эту энтити (появится жёлтый круг, который можно сужать или расширять).

   Недостаток этой энтити в том, что она проигрывает звук только при первом старте. Со второго раунда игры звук пропадает. Чтобы это исправить, необходимо включать звук при помощи триггер-браша. Берём инструмент "Block Tool”, а справа нажимаем "Browse”. В поле "Filter” вводим ключевое слово trigger. Находим текстуру toolstrigger и выбираем её (она жёлтого цвета с надписью TRIGGER). В месте появления игрока рисуем квадратный браш, чтобы место появления игрока было внутри триггер-браша. Выделяем браш и в верхнем меню "Tools” нажимаем "Tie To Entity”. В открывшемся окне свойств, в поле "Class” выбираем trigger_multiple и нажимаем "Apply”. Открываем вкладку "Flags” и ставим галочку напротив "Clients” (остальное оставляем без галочек). Далее идём во вкладку "Outputs” и добавляем строчку:


   Нажимаем "Apply” и закрываем окно.


   Осталось сделать последнее - капли дождя. Выбираем инструмент "Block Tool”. Справа нажимаем кнопку "Browse” и в поле "Filter” вводим ключевое слово b4p. Выбираем из списка текстуру с названием b4p_tracer1 (можно выбрать другую текстуру, но желательно брать прозрачную для удобства работы). Рисуем браш таким образом, чтобы он занимал то место, где предполагается дождь (можно нарисовать сколько угодно таких брашей на одной карте, особенно если на ней располагаются здания или ряд сложных объектов). Затем выделяем браш (или несколько брашей) и в верхнем меню "Tools” нажимаем "Tie To Entity”. В открывшемся окне свойств, в поле "Class” выбираем func_precipitation и задаём настройки:

   Precipitation Type - Rain (т.е. дождь. Следует заметить, что кроме дождя здесь можно выбрать и другие виды осадков.)
  
   Нажимаем "Apply” и закрываем окно.


   Теперь необходимо вооружить игрока. Можно сделать байзону, о которой я подробно рассказывал в своей предыдущей статье (во втором уроке), а можно поставить энтити game_player_equip (о ней написано в первом уроке). Я поставлю её.
   Напоследок нажимаем F9 на вашей клавиатуре. Появляется окно компилятора. Выставляем везде "Normal” и жмём на ОК. Результат этой работы в виде готовой карты вы можете скачать здесь, чтобы посмотреть в игре на всё, о чём эта статья. Удачи в картостроении.
 
Категория: Картостроение | Добавил: Nickname123 (01.03.2010)
Просмотров: 4811 | Комментарии: 7 | Рейтинг: 5.0/1
Всего комментариев: 7
7 KrokoEvil  
0
и как сделать так чтобы звук активировался 1 раз

6 KrokoEvil  
0
а как сделать чтобы при проходе триггера активировался звук? скажите пожалуста sad

5 Venom  
0
у меня почему-то нет текстур в4р. в чем может быть дело?

4 Nickname123  
0
Как-нибудь потом может, а пока и этих статей хватит, они тоже многому научат.

3 Slipknot1  
0
ты обещал

2 Nickname123  
0
Замучаешься писать учебник. smile smile

1 Slipknot1  
0
не проще сделать учебник?

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

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

Copyright MyCorp © 2024