Канал в IRC
RusNet: #cmt
Учебник по созданию карт
Глава VIII. Свет.

§ 8.6 Вращающийся свет

В этой статье мы расскажем о создании вращающегося света (наподобие проблескового маячка). Для реализации этого эффекта Вам понадобится умение работать с вертексами, а также знание следующего энтити-объекта:
Для начала создадим небольшой браш, который будет изображать лампочку. Превратим его [Ctrl-T] в объект func_wall, чтобы он не разбивал на дополнительные полигоны стену, с которой соприкасается. Никаких свойств для func_wall выставлять не требуется.

Теперь перед лампочкой разместим источник света, обычный light (см. рис. ниже).

Создаем под около лампочки объект light


А сейчас от Вас потребуются навыки работы с вертексами. Мы приступаем к созданию формы вращающихся лучей. Используем стандарную градиентную текстуру FADE2 или FADE, как это мы делали в статье про создание световых лучей. Важным моментом является правильное нанесение текстуры на будущие лучи. Темные (черные) места должны находится у краев лучей, а светлые (желтые) в середине. Возможно, Вам придется изменить масштаб (scale) текстуры, повращать ее, применить различное выравнивание. Должно получиться что-то вроде этого:

Создаем лучи из двух брашей (текстура FADE2) и браш-ось вращения (текстура ORIGIN)


Маленький бело-зеленый браш - это ORIGIN-браш (обычный браш, окрашенный со всех сторон специальной текстурой 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 (скорость вращения лучей, можно поэкспериментировать);
Остальные параметры пока оставим как есть.

Помимо свойств следует обязательно выставить некоторые флаги (см. рис. ниже).

Выставляем флаги у объекта func_rotating


Start ON - чтобы лучи начали вращаться автоматически после начала раунда;
Not Solid - необходим, чтобы игрок мог свободно проходить через лучи. В противном случае он будет задевать о них головой :)
X Axis - здесь определяется ось вращения лучей. Возможные значения: X Axis или Y Axis, которые определяют вращение вокруг соответствующих осей. Если оставить эти флаги неотмеченными, то лучи будут вращаться вокруг вертикальной оси Z, которая на любом виде направлена снизу-вверх.


Определение оси вращения

Давайте более подробно остановимся на этом очень важном моменте определения оси вращения.

ORIGIN-браш, включенный в состав объекта func_rotating своим центром определяет точку в пространстве, вокруг которой происходит вращение. А собственно ось вращения выбирается во флагах: или X, или Y. Напомним, что если флаги не отмечать, вращение будет происходить вокруг вертикальной оси Z (см. два рисунка выше).

Лучи готовы. Компилируем, запускаем и видим следующий результат:

Так выглядят вращающиеся лучи в игре


Если необходимо, чтобы лучи вращались в противоположном направлении, то следует отметить флаг Reverse Direction.


Ссылки

rotating_light.zip [9Кб] — в архиве карта-пример в форматах BSP и RMF.


Глава VIII. Свет.


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

© http://cs-mapper.by.ru/
CMT (CS Mapping Tutorials) - © 2006-2011. Created by VM
[ Script Execution time: 0.0154 ]