В этой статье мы расскажем о создании вращающегося света (наподобие проблескового маячка). Для реализации этого эффекта Вам понадобится умение работать с вертексами, а также знание следующего энтити-объекта: func_rotating Для начала создадим небольшой браш, который будет изображать лампочку. Превратим его [Ctrl-T] в объект func_wall, чтобы он не разбивал на дополнительные полигоны стену, с которой соприкасается. Никаких свойств для func_wall выставлять не требуется. Теперь перед лампочкой разместим источник света, обычный light (см. рис. ниже). А сейчас от Вас потребуются навыки работы с вертексами. Мы приступаем к созданию формы вращающихся лучей. Используем стандарную градиентную текстуру FADE2 или FADE, как это мы делали в статье про создание световых лучей. Важным моментом является правильное нанесение текстуры на будущие лучи. Темные (черные) места должны находится у краев лучей, а светлые (желтые) в середине. Возможно, Вам придется изменить масштаб (scale) текстуры, повращать ее, применить различное выравнивание. Должно получиться что-то вроде этого: Маленький бело-зеленый браш — это ORIGIN-браш (обычный браш, окрашенный со всех сторон специальной текстурой ORIGIN). Он необходим для любого вращающегося объекта, т.к. указывает ось вращения (в Учебнике есть очень подробная статья о правильном использовании ORIGIN-брашей). Так как у нас вращающийся свет, то такой браш необходимо создать. Место размещения ORIGIN-браша очень важно. Так как наши лучи будут вращаться вдоль стенки, то ORIGIN-браш следует размещать между двумя лучами (ровно посередине). Для наглядности мы удлиннили ORIGIN-браш по той оси, вдоль которой будет происходить вращение. На рисунках ниже показаны вид сбоку и спереди. Следующий важный момент. Превращаем приготовленные два браша (луча) и ORIGIN-браш в единый энтити-объект func_rotating. Для этого выделяем с зажатой клавишей Ctrl оба луча и ORIGIN-браш. Нажимаем [Ctrl-T] и в списке выбираем func_rotating. Теперь выставим свойства func_rotating: Render Mode — Additive (чтобы лучи были прозрачными); FX Amount — 60 (прозрачность лучей, чем больше значение, тем отчетливее видны лучи. Максимум: 255); Speed — 400 (скорость вращения лучей, можно поэкспериментировать); Остальные параметры пока оставим как есть. Помимо свойств следует обязательно выставить некоторые флаги (см. рис. ниже). Start ON — чтобы лучи начали вращаться автоматически после начала раунда; Not Solid — необходим, чтобы игрок мог свободно проходить через лучи. В противном случае он будет задевать о них головой X Axis — здесь определяется ось вращения лучей. Возможные значения: X Axis или Y Axis, которые определяют вращение вокруг соответствующих осей. Если оставить эти флаги неотмеченными, то лучи будут вращаться вокруг вертикальной оси Z, которая на любом виде направлена снизу-вверх. Определение оси вращения Давайте более подробно остановимся на этом очень важном моменте определения оси вращения. ORIGIN-браш, включенный в состав объекта func_rotating своим центром определяет точку в пространстве, вокруг которой происходит вращение. А собственно ось вращения выбирается во флагах: или X, или Y. Напомним, что если флаги не отмечать, вращение будет происходить вокруг вертикальной оси Z (см. два рисунка выше). Лучи готовы. Компилируем, запускаем и видим следующий результат: Если необходимо, чтобы лучи вращались в противоположном направлении, то следует отметить флаг Reverse Direction. Карта-пример (9Кб) - в архиве карта-пример в форматах BSP и RMF.
Источник: http://cs-mapper.by.ru/tutorials/t8lgtrotate.shtml |