Пятница, 29.03.2024, 04:42

logo

Пользовательский поиск

Меню сайта
Категории раздела
Разное [15]
Tutorials
Создание карт [13]
Создание моделей [2]
Кодинг [14]
Создание карт CS [197]
Учебник cs-mapper
Свойства entity HL-CS [117]
Форма входа
Логин:
Пароль:
Наш сервер CS 1.6
Поиск
Наш опрос
Ваш возраст
Всего ответов: 263
Друзья сайта


Главная » Статьи » HL Development » Создание карт CS


Учебник по созданию карт CS HL. Всё о ящиках



CS-MAPPER — Создание карт для
 CS. 
 
 
Ссылки 
Статьи

Учебник по созданию карт
Глава XIII. Деревья, решетки, кнопки, ящики.

§ 13.4 Все о ящиках

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

Что же, ящики — crates по-английски. Ящики стали неотделимой частью карт в CS. Ящики используются как укрытия в местах стычек команд, их устанавливают на бомб-плейсах, их используют для того, чтобы забраться в трудно доступные места и пр. Трудно отыскать современный уровень, чтобы на нем не было ящиков!.. А, к примеру, такая карта как De_Dust2 вообще, наверное, является чемпионом по числу ящиков :-) Если вы вспомните карту De_Survivor (снежная с самолётом), то на ней вы отыщите всего один ящик, на котором иронически написано: «Это единственный ящик на всем уровне!» Так решил пошутить автор карты — 3D_Mike.

Оставим на его совести ящики на 1-ой из точек закладки бомбы, на той, где стоит грузовик. Хотя сам Майк называет их не ящиками, а коробками... Ах, ну да, большая разница!.. — в общем, ящики используют практически все создатели карт.


1. Взрываем ящики вместе с бомбой

Все мы прекрасно помним как на De_Dust вместе с бомбой взрываются ящики. Давайте посмотрим, как это реализовано. На рисунке ниже изображён план, при котором ящики взорвутся вместе с бомбой.

При таких свойствах объектов, ящики взрываются вместе с бомбой


Что же, у нас есть энтити-объект func_bomb_target, закрашенный со всех сторон спец. AAATrigger. Данный энтити-объект, как вы уже должно быть знаете, определяет место закладки бомбы. Еще у нас есть пара-тройка ящиков (пока что это обычные браши). Все эти ящики нужно превратить в энтити-объект func_breakable (выделим все ящики и нажмём [Ctrl-T], в списке выберем func_breakable).

Можно превратить каждый ящик в отдельный func_breakable, а можете все ящики разом превратить в один единственный func_breakable. Если вы решите создать несколько func_breakable, то дайте всем им одинаковое название.

Основные параметры func_breakable:
Name — bomb_crate (обязательно укажите название);

В закладке Flags необходимо отметить:
Only Trigger — чтобы ящики взрывались только от триггера, то есть бомбы в нашем случае.

Остальные свойства, такие как: material type (тип материала), explode magnitude (мощность взрыва) — укажите по своему усмотрению.

Теперь перейдем к объекту func_bomb_target. Все, что нужно с ним сделать, это вписать в параметр «Target (when bomb blows)» название наших ящиков, то есть bomb_crate. Вот и всё!


2. Почему создатели карт подвешивают ящики над землей?

К примеру, в уровне De_Nuke есть такой «баг»:

Ящик "парит" над землей


А багом это называют устроители чемпионатов по CS. Они даже смотрят за игроками, чтобы те не глядели в эту щёлку, через которую видно ноги противника.

На виде сбоку это выглядит так:

Ящик "парит" над землей


Может быть, автор De_Nuke специально хотел сделать такую фишку, но это в этом конкретном случае, а так, обычно, ящик не доводят до земли на 1 юнит, в целях сокращения числа рисуемых движком полигонов. Если ящик — простой браш (не энтити) и соприкасается с полом, то пол будет разбит на более мелкие полигоны, что увеличит их число, и соответственно, увеличится параметр r_speeds, что приведёт в итоге к снижению FPS (числа кадров в секунду).

Если же ящик является энтити-объектом, к примеру, func_wall или func_breakable, или же он не соприкасается с полом (как в данном случае), то разбиения на полигоны не происходит, и r_speeds не повышается. Таким образом, мы можем сэкономить несколько полигонов.


3. Как сделать непростреливаемый ящик?

Вернёмся опять к De_Dust. На рисунке ниже представлен ящик, который не пробивается ни из чего.

"Устройство" непробиваемого ящика


Как видно из рисунка, ящик разрезан пополам по вертикали. Движок HL устроен таким образом, что 1 браш или энтити-объект (например, func_wall) пробиваются из пробивающих видов оружия, а 2, стоящих вплотную друг к другу — нет. В этом и заключается ответ на вопрос, почему более крупные ящики, стоящие в «кишке» пробиваются, а данный, казалось бы, небольшой ящик — нет.

Иногда, возможно, вам нужно будет сделать 2 ящика стоящие рядом, и чтобы они были простреливаемыми. Тогда вместо 2-ух ящиков нужно создать 1, но по размеру равный 2-ум (смотрите картинку ниже).

Создаем "два" стоящих рядом пробиваемых ящика (браш один)


А вот как просто затекстурировать этот ящик. Выберем необходимую текстуру ящика, выделим большую сторону ящика и на панели работы с текстурами (Face Properties) нажмём кнопку Fit, чтобы растянуть текстуру по всей стороне браша.

Нажимаем кнопку Fit, чтобы растянуть текстуру по всей стороне браша


Затем на той же панели уменьшите в два раза масштаб (Scale) текстуры по оси Х или Y (зависит от положения ящика). Если вы решите сделать не два ящика, а, скажем, четыре, то и масштаб уменьшайте в 4 раза и т.п.

Уменьшаем в 2 раза масштаб (Scale) текстуры по оси Х или Y в зависимости от положения ящика


Затем вероятно понадобится пощёлкать кнопки выравнивания по сторонам: C, T, B, L, R, чтобы текстура легла ровно, как на картинке ниже.

Выравниваем текстуру кнопками C, T, B, L, R


Игроку кажется, что ящика 2, хотя на самом деле браш только 1. А раз браш один, значит он будет простреливаться из пробивающих видов оружия.


4. Два разбиваемых ящика, стоящие друг на друге

На риснуке ниже вы можете видеть 2 разбиваемых ящика, каждый из которых — отдельный энтити-объект func_breakable.

Задача заключается в том, чтобы разбив нижний ящик, верхний также бы разрушался


Если игрок расстреляет сначала верхний ящик, а затем нижний, то ничего странного не произойдет. Но что будет, если игрок сначала разобъет нижний ящик? Верхний упадет? Как бы не так!

Верхний ящик останется спокойно висеть в воздухе без опоры. Где же реалистичность? Посему нужно сделать так, чтобы при разрушении нижнего ящика, верхний также бы разбивался. Вот как это делается...

Дадим каждому ящику (объекту func_breakable) название. Верхнему дадим имя crate1, а нижнему — crate2. Выставим нужные параметры (материал из чего сделан; сила–прочность и пр.). Теперь важный момент. В параметр «Target on Break» нижнего ящика запишем название верхнего: crate1.

Теперь если мы расстреляем нижний ящик по имени crate2, он активирует верхний по имени crate1, и он тоже разобъется, но уже без помощи игрока. Ну, а если мы разобъем сначала верхний ящик, то нижний, как и положено, останется цел. Таким образом, мы добавим нашему уровню немного больше реалистичности. Единственное, чтобы это было хоть кому-либо надо :-)


5. Ящики вместо лестниц

Иногда ящики могут заменить лестницу. К примеру, на Cs_Italy по ящикам можно забраться в комнатку около мест рождения контр-террористов.

Ящики могут заменить лестницу


Главное, что необходимо учитывать при изготовлении ящиков — их размер. Стандартными размерами ящиков являются:

48 х 48 х 48
64 х 64 х 64
80 х 80 х 80
96 х 96 х 96
112 х 112 х 112
128 х 128 х 128

Но, стандартные, не означает, что ящики должны быть именно таких размеров. К тому же на ящики и вообще любые другие препятствия выше 62 юнитов игрок самостоятельно забраться не может. Так что на стандартный 64 х 64 х 64 ящик игроку никак не залесть, если, конечно, его кто-нибудь не подтолкнёт.

Чтобы игрок мог самостоятельно залесть на ящик небходимо сократить размер его сторон, скажем до 60 х 60 х 60 юнитов или до 56 х 56 х 56 юнитов.


6. Передвигаемые ящики

Здесь ничего сложного нет. Превращаем нажатием комбинации клавиш [Ctrl-T] ящик в энтити-объект func_pushable и выставляем нужные параметры. Главное, что нужно помнить, если для данного объекта поставть флажок breakable, то ящик можно будет разбить всего ОДИН раз, так как после своего первого разбиения, он исчезнет до конца игры, пока уровень не будет перезагружен. Так происходит, к примеру, с табуреткой на карте Cs_Estate, которая блокирует дверь. Если табуретку 1 раз разбить, она больше не появится до конца времени игры на карте.

Данная особенность досталась Counter-Strike'у от HL. В HL нет раундов, и поэтому объекты в Half-Life исчезали навсегда. В Counter-Strike, к сожалению, происходит точно также, поэтому приходится это помнить.


Что еще можно добавить к написанному выше, возможно, необходимо посоветовать не превращать свой уровень в склад :-) Да, ящики иногда незаменимы. Ящик с красивой текстурой может прекрасно вписаться в дизайн уровня и улучшить его внешний вид, но всё же делайте всё возможное и старайтесь не перебарщивать, придумывайте побольше естественных укрытий или, на худой конец, заменяйте ящики мусорными баками, изношенными покрышками, бочками, какими-нибудь приборами, трансформаторами — в общем придумывайте!


Глава XIII. Деревья, решетки, кнопки, ящики.

§ 13.1   Создание деревьев
§ 13.2   Создание прозрачных решеток и заборов
§ 13.3   Кнопки и вращающиеся рычаги
§ 13.4   Все о ящиках


К оглавлению Учебника

Категория: Создание карт CS | Добавил: SuperStart (03.03.2012)
Просмотров: 4193 | Теги: Counter-Strike, counter strike, Half-Life, Halflife, counter-strike 1.6 | Рейтинг: 0.0/0 |



Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Copyright www.akksimo.net © 2024