"Ожившая" оптика
Автор: Xanser
Наверняка,
читая эту статью, вы уже посмотрели демонстрационный
ролик, где показаны все фичи, о которых пойдет речь. Итак, чтобы такое
реализовать, необходимы знания скриптинга и 2dfx-эффектов.
Начнем
с создания самой лампочки. Для этого достаточно смоделить мелкий кубик,
прописать его в ide-файле, и там же задать ему 2dfx-эффект. Такое вы уже
встречали на примере фонарей, загорающихся ночью. Фактически такую лампочку
можно просто разместить на карте и она будет работать. Понятно, что лампочку не
должно быть видно, а только свечение от нее, поэтому делаем ее поменьше, ставим
любой col-файл (можно пустой), а в качестве текстуры можно прописать
generic.txd.
Эффект
выбирается в зависимости от того, какую фару вы делаете. Для поворотников и
сирены в MooMapper в свойствах 2dfx выбирается эффект мигания Blink (1 sec) Day
& Night, для постоянно светящих фар Light: Day & Night. Цвет и размер
свечения задаете как хотите. Можно выбрать Light: Night Only, тогда фара будет
включаться только ночью.
Создание
лампочки в игре происходит как создание любого объекта. В начале описывается
объект:
DEFINE OBJECT fara
запрашивается
модель
0247: request_model #fara
проверяется
загрузка
0248: model #fara loaded
и создается в любом
месте карты
0107: $fara1 = create_model #fara at 0.0 0.0 0.0
Имейте
ввиду, что лампочка уже на карте и будет светиться или мигать там, где
поставлена, поэтому прячьте ее подальше.
Теперь
необходимо привязать лампочку к машине (которую вы заранее поместите в
переменную $my_car):
035C: place_object $fara1 relative_to_car $my_car
offset 0.65 2.55 -0.2
Данный
опкод необходимо выполнять в цикле, чтоб лампочка не отрывалась от машины.
Таким же способом можно привязать к машине (точнее брать координаты машины и
ставить туда) дым, воду и все что в файле particle.cfg:
0437: scatter_particles 4 .05 at $carX $ carY
$carZ 0.0 0.0 0.10
рассчитав
перед этим координаты авто:
0407: create_coordinate $carX $ carY $carZ from_car
$my_car offset -0.55 0.4 1.5
Включение
лампочки или эффекта можно сделать по нажатию клавиши или автоматически.
Включение будет состоять из простого перемещения лампочки в нужные координаты
относительно машины, а выключение из перемещения лампочки куда-нибудь подальше
за экран (или полного удаления объекта). Интересно, что загорающаяся лампочка
действительно освещает пространство вокруг себя.
Хитрости:
1. Чтобы скрыть модель лампочки, можно создавать ее на высоте X=0.0
Y=0.0 Z= -100.0, а свечение прописать со смещением относительно модели на 100.0
вверх. Таким образом, объект будет глубоко под землей, а свечение на самой
машине.
2. Можно прописать видимость модели лампочки больше 300, тогда это
будет LOD и его тоже не видно вблизи.
3. Для создания нескольких одновременно горящих или мигающих фар можно
использовать одну лампочку с несколькими заданными 2dfx-эффектами с разным
смещением от объекта.
Недочетом
является то, что мигающие поворотники или сирены при затухании остаются на
месте при движении самой лампочки, как бы отрываясь от движущейся машины, это
минус самого движка и с этим (скорее всего) ничего не поделать.
И
еще одна хитрость продемонстрированная в ролике – это включение стандартных
фар, подсвечивающих землю. К сожалению, опкод, делающий это в вайсе нам пока не
известен, поэтому включение/выключение фар происходит простой игрой со временем
суток (уравненных в ролике с помощью timecyc.dat), когда фары автоматически
включаются ночью и выключаются утром.
© 2007 by Xanser, Russia
© 2007 GTA Revolution Team
ВНИМАНИЕ!!! Запрещается публиковать статью где либо без согласия авторов. Можна публиковать только ссылки на эту статью на нашем сайте. Дата: 08.02.2007 - 10:55:05 (Просмотров: 3381) Опубликовал: JC |