На главную

 

Sentry gun в Half-Life
 


 

 


Да, братцы, пулемет (sentry gun) - это что-то потрясающее! Уважаю я это дело до глубины души. Несть числа десантникам, заваленным с его помощью. Пригодится пулемет не только для сингла, но и мультиплейер неплохо дополнит. Для начала, как всегда, создадим заготовку. В этот раз она будет довольно сложной, по сравнению с предыдущими. Детально описывать ее не буду, а вкратце - это пара башен, окруженных стеной и закрытых небом.

 

 

Вот так, примерно, все это выглядит с разных точек. Никаких излишеств, даже окон, только широкая амбразура в той башне, где сидит игрок. Текстура неба - по вашему усмотрению. Для раскраски стен использовалась, в основном группа текстур OUT. В том месте, где предполагается солнце, разместите источник света, а в башне с амбразурой - info_player_start.



 

 

 

Вот так примерно, все это выглядит в разных проекциях в окнах WorldCraft. Для игрока сделан, конечно, пол, так, чтобы амбразура была на высоте примерно 32 юнита.





 

 

 

Теперь перейдем собственно к пулемету. Сразу предупреждаю, очень важно! По правилам, установленным в WorldCraft, пулемет всегда развернут вправо, если смотреть на него в проекции сверху. Логика понятна - надо же редактору знать, где находится конец ствола. Так что независимо от того, куда будет направлен пулемет, рисовать его надо стволом вправо. Если нарисуете влево, то стрелять он будет из затвора :). Сразу скажу, я не знаток реальных пулеметов. Поэтому то, что изобразил я, по внешнему виду пулеметом можно назвать с большой натяжкой. Судите сами:

 

 

 

Для создания пулемета могут быть использованы следующие текстуры:


CRATE09B


GENERIC100A


C2A5_GUN1


STEEL

 

 

 

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

 

 

 

Установите его так, чтобы он проходил через то место, где сам пулемет прикрепляется к опоре (опора - в данном случае - те три ножки и цилиндр, к которому они прикрепляются) так, чтобы центр браша ORIGIN совпадал с центром ствола. В принципе, может и не совпадать, но разница в расположении влияет на свойства пулемета. Внимание! Опора не входит в состав пулемета, как объекта (entity)! Выделите ВСЕ детали пулемета (кроме опоры) и браш с текстурой ORIGIN и нажмите кнопку toEntity. Class - func_tank.

 

 

 

 

Основные свойства пулемета:
Name - имя пулемета, выжно для того, чтобы пулеметом можно было управлять. К примеру - turret.
Render FX, Render Mode, FX Amount, FX Color - для управления видимым изображением пулемета. В данном случае не важны, поскольку пулемет не содержит невидимые части.
Yaw rate - cкорость поворота пулемета в горизонтальной плоскости. Рекомендуется 400 - 600 в зависимости от массивности пулемета.
Yaw range - угол, на который может поворачиваться пулемет в горизонтальной плоскости. 90 градусов хватит за глаза.
Pith rate - скорость поворота пулемета в вертикальной плоскости. Рекомендуется 400 - 600 в зависимости от массивности пулемета.
Pith range - угол, на который может поворачиваться пулемет в вертикальной плоскости. В принципе, хватит 30 градусов
Barrel Length - в прямом переводе - длина ствола. Обозначает растояние от центра центра вращения до конца ствола.
Barrel Horizontal - расстояние от центра центра вращения до центра ствола по горизонтали. Используется в том случае, если означенные центры не находятся на одной горизонтальной прямой. В нашем случае не изменяются - 0.
Barrel Vertical - то же самое - по вертикали
Smoke Sprite - спрайт дыма. Поскольку пулемет у нас небольшой, то можно не использовать
Flash Sprite- спрайт огонька на конце ствола. К примеру, sprites/muzzleflash2.spr вполне подойдет.
Sprite scale - размер спрайта огонька. Меньше 1 - уменьшается, больше - увеличивается.
Rotate Sound - звук вращения - не столь важно. Может, пулемет хорошо смазали.
Rate of Fire - количество выстрелов в секунду - 30
Damage Per Bullets - повреждение от попадания одной пули - 15
Bullet accuracy - кучность стрельбы по убывающей вниз. Самое нижнее значение - самый большой разброс.
Bullets - пули. У меня - 9 мм. Надо же дать какой-то шанс противнику.

 

 

 

 

Теперь об управлении пулеметом. Во-первых, для того, чтобы он был повернут туда, куда нужно нам, используйте поле Angle. В моем случае значение было 90 градусов. Во-вторых, чтобы пулеметом можно было управлять, отметьте флаг Controlable. В-третьих, нужно определить поле управление пулеметом. Делается это так. Из текстуры AAATRIGGER создаете браш таких размеров, каким должно быть поле управления. Разместите его там, где должен стоять игрок тогда, когда он управляет пулеметом.

 

 

 

Выделите его и toEntity. Class - func_tankcontrols, name - имя пулемета - turret

 

 

 

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

 

 

 

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

 

 

 

Вот и все! Вперед!

 

 

 

 

 

 

На главную
 

Hosted by uCoz