Из данного материала вы узнаете о создании прикольного рекламного
щита, который будет сделан из крутящихся створок. На каждой створке
будут нанесены части 2-ух рекламных картинок. Каждый раз при повороте
створок, рекламная картинка будет меняться.
От вас потребуется знание следующих энтити-объектов:
На картинке ниже видно, каким будет рекламный щит в игре (заснят момент изменения рисунка):
Как это работает?
Мы изготовим 12 крутящихся створок (объектов func_door_rotating) и 1 multi_manager, который будет запускать с интервалом в 0.1 секунды каждую створку поочерёдно.
На разных сторонах створок мы нанесем разные рекламные картинки, так
чтобы при развороте створок, получался цельный рисунок. Так как брашевые
энтити-объекты func_door_rotating имеют особенность
автоматически закрываться после некоторого времени, то створки сами
будут закрываться, показывая 1-ую рекламу, пока их вновь не запустит multi_manager, чтобы показать 2-ую рекламу.
Создаем створки
На рисунке ниже видно, что мы сделали 12 треугольных крутящихся створок из энтити-объектов func_door_rotating.
Почему треугольных? Просто-напросто треугольные створки вращаются более
красиво, чем квадратные :-) Важно! Треугольники необходимо создавать
равносторонними, чтобы разные рекламные рисунки совпадали после
кручения.
Func_door_rotating — крутящийся энтити-объект, поэтому не забываем про ORIGIN-браш.
Параметр «Delay before close» устанавливает, через сколько секунд
створка автоматом вернется в исходное положение. Для всех створок нужно
выставить одни и те же промежутки времени.
Обратите внимание также на параметр «Distance (deg)», который
определяет угол поворота створок. Так как на нашем уровне-примере мы
использовали равносторонние треугольники, то угол равен 120 градусам.
Рисунок на створки необходимо наносить, выделив все требуемые стороны
створок, нажав флаг «Tread as one» и кнопку «Fit», так будет удобнее.
Func_door_rotating (створка)
Name: door1 (название створки) Speed: 180 (скорость вращения) Distance (deg): 120 (угол поворота створки в градусах) Delay before close: 10 (время в секундах до автоматического возврата в начальное положение)
С такими же параметрами, но разными названиями необходимо сделать ещё 11 створок. Створкам мы дали имена: door1, door2, door3 ... door12.
Управление створками (multi_manager)
Створки мы будем заставлять крутиться точечным энтити-объектом
multi_manager. 1-ую створку мы запускаем через 0.1 секунды, 2-ую — через
0.2 секунды, 3-ью — через 0.3 секунды ... и т.п. до запуска 12-ой
створки через 1.2 секунды.
Последним 13-м объектом запуска мы сделаем (ВНИМАНИЕ!) сам multi_manager! Это нужно, чтобы смена рекламных картинок происходила без конца и без доп. активаций со стороны игрока.
Для энтити-объекта multi_manager обязательно необходимо поставить флаг «Multithreaded», иначе multi_manager не сможет запускать сам себя.
Multi_manager (этот объект по очереди запускает створки)
Name: door_multi (название мульти_менеджера) door1 — 0.1 (активация первой створки через 0.1 секунды) door2 — 0.2 (активация второй створки через 0.2 секунды) door3 — 0.3 (активация третьей створки через 0.3 секунды) door4 — 0.4 door5 — 0.5 door6 — 0.6 door7 — 0.7 door8 — 0.8 door9 — 0.9 door10 — 1.0 door11 — 1.1 door12 — 1.2 door_multi — 20 (активация самого себя через 20 секунд)
Флаги:
Multithreaded: нужно отметить этот флаг, чтобы multi_manager мог активировать сам себя
Если вы хотите сделать вокруг створок рамку, то её нужно превратить в энтити-объект func_wall.
Как вам должно быть известно — энтити-объекты пропускают свет, а это
означает, что рекламные рисунки на разных сторонах створок будут
правильно освещены. Иначе (если рамка будет сделана брашами)
«внутренняя» картинка после компиляции получится затемнённой, так как
браши не пропускают свет.
Автоматический запуск в начале уровня
Чтобы система смены рекламы заработала в начале игры, расположим в уровне точечный энтити-объект trigger_auto и в параметре «Target» укажем название multi_manager'а
(то есть door_multi). Время до запуска («Delay before trigger») мы
укажем равным ЧЕТЫРЁМ секундам, чтобы все энтити-объекты успели появится
в уровне, прежде чем trigger_auto начнёт что-то запускать.
Как правильно наносить текстуры на створки?
Здесь есть определенная сложность, ведь когда 1 рекламный рисунок
виден целиком, другой должен быть нанесён на несколько повёрнутых под
углом створок. Можно, конечно, сначала нанести текстуру на 1 сторону
щита, составленную из двенадцати створок, потом повернуть каждую створку
и нанести 2-ой рисунок, но мы предлагаем другой способ, без разворота
створок!
На картинке ниже вы можете видеть схему (вид сверху) переноса створок
для нанесения 2-ого рекламного рисунка. На схеме, как видно, всего 6
створок вместо 12, просто мы немного поленились нарисовать все 12 :-)
Считайте, что их двенадцать.
Что же, смотрим на горизонтальные 6 створок. Это так называемая
«стартовая позиция» рекламного щита. Красные стороны створок означают
составленный в единое целое 1-ый рисунок. Синяя стрелка справа
показывает, как крутятся створки при запуске, то есть против часовой
стрелки.
Теперь представим, какие стороны створок нужно затекстурировать, чтобы
при повороте сложился второй рисунок? Правильно — ярко-зеленые.
Ярко-зеленые створки нужно затекстурировать вторым рекламным рисунком.
Чтобы не крутить створки в редакторе с целью нанесения 2-ого рисунка,
мы предлагаем временно пренести их, как видно из этой же схемы. Как
только створки будут перенесены, наносим 2-ой рисунок (смотрите картинку
ниже), выбрав все стороны створок, нажав флажок «Tread as one» и кнопку
«Fit».
Вернём створки в исходное положение и возрадуемся симпатичным эффектом смены рекламы :-)
reklama_32.zip [24Кб] — в архиве карта-пример в форматах BSP и RMF.