CS-MAPPER.BY.RY — Создание карт для CS.
Учебник по созданию карт
Глава XIII. Деревья, решетки, кнопки, ящики.

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

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

Итак, ящики или crates по-английски. Ящики стали неотъемлемой частью карт в Counter-Strike. Они используются как укрытия в местах стычек команд, их устанавливают на бомб-плейсах, их используют для того, чтобы забраться в недоступные места и т.д. Трудно найти карту, чтобы на ней не было ящиков. А, например, такая карта как DE_DUST2 вообще, наверное, является чемпионом по количеству ящиков :) Если Вы вспомните карту DE_SURVIVOR (снежная такая), то на ней Вы найдете всего 1 ящик, на котором с насмешкой написано: «Это единственный ящик на всей карте!» Так решил пошутить автор карты — 3D_Mike.

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


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

Все мы прекрасно помним как на карте DE_DUST вместе с бомбой взрываются ящики. Давайте посмотрим, как реализована данная фишка. На картинке ниже изображена схема, при которой ящики взорвутся вместе с бомбой.

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


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

Вы можете превратить каждый ящик в отдельный func_breakable, а можете все ящики разом превратить в 1 единственный 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 есть такой «баг»:

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


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

На виде сбоку это выглядит следующим образом:

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


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

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


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

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

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


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

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

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


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

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


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

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


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

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


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


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

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

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


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

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

Дадим каждому ящику (объекту func_breakable) имя. Верхний назовем crate1, а нижний — crate2. Выставим необходимые свойства (материал, прочность и т.д.). Теперь важный момент. В параметр «Target on Break» нижнего ящика запишем имя верхнего: 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 юнитов (56 юнитов удобны тем, что в редакторе не нужно будет делать слишком маленький размер клетки, хватит и 8 юнитов).


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

Здесь ничего сложного нет, превращаем ящик в func_pushable и выставляем требуемые свойства. Единственное, что необходимо помнить, если для данного объекта поставть флаг breakable, то ящик можно будет разбить всего 1 раз, т.к. после своего первого разбиения, он исчезнет до конца игры, пока карта не будет перезапущена. Так происходит, например, с табуреткой на карте CS_ESTATE, которая блокирует дверь. Если табуретку разбить, она больше не появится.

Этот «подарочек» достался CS от своего родителя — Half-Life. В Half-Life нет такого понятия как раунды, и поэтому объекты в HL исчезали навсегда. В CS, к сожалению, происходит точно также, поэтому постоянно приходится быть начеку.


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

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


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

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


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


Copyright © 2003—2004
Дизайн: Дмитрий Черкашин aka «Dmitrich!».
Содержание: Дмитрий Черкашин и другие авторы, указанные в материалах.

С условиями перепечатки материалов Вы можете ознакомиться на странице about/index.shtml

Сайт создан в системе uCoz