|
---|
|
Правила форума | FAQ | Пользователи | Администрация | Календарь | Поиск | За 24 часа | Пометить все разделы прочитанными |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Chakki Skrip
Старшина
![]() ![]() ![]() ![]()
Регистрация: 13.09.2014
Возраст: 28
Сообщения: 426
|
![]() Для реализации переключаемого света нам понадобится:
• Light_surface (2 шт.) Примечание: В этом методе, для реализации аварийного освещения, используется брашевая энтить, в которую входят аварийные источники света. При включении аварийного освещения, к показателям wpoly прибавятся полигоны ламп аварийного освещения. Принцип работы: Создаем 2 источника света, в виде двух light_surface, один для основного, второй для аварийного. Дублируя браши с текстурой основного света, превращаем его в энтить. В начале игры лампы аварийного света необходимо скрыть, иначе они будут отображаться негорящими поверх основного света. Для этого используем trigger_auto. Для переключения режима света используем рычаг(func_rot_button), который будет включать переключать основной и аварийный свет между собой. Для исправления одного бага, используем func_door. 1. Подготовка освещения к логике. 1) В моем случае, текстура основного света имеет имя light01_pl, а аварийного light01_sl. Что означает Primary Lighting и Secondary Lighting. Предполагается, что основной свет уже расставлен на карте. Если же нет, то это необходимо это проделать. После расстановки основного источника света, необходимо перевести все браши с текстурой основного света в func_detail: Параметры:
Примечание к func_detail: Если лампы соприкасаются с другим func_detail, то необходимо помнить, чтобы Detail Level у лампочек был всегда выше, чем на другом func_detail.2) Следующим шагом будет дублирование брашей основного света. После дублирования основного света, скрываем неиспользуемые объекты, выделив дублированный объект и нажав сочетание клавиш Ctrl+H. Теперь, нам необходимо заменить текстуры основного света на всех лампах на аварийный. Проделать подобную операцию можно в Texture Application Mode(Shift+A). Откроется окно, выбираем Replace…, будет 2 поля. Find: текстура Red; Replace: текстура, на которую необходимо заменить. В моем случае выйдет вот так: Find: light01_pl Replace: light01_sl. Такую же операцию проводим и для боковых граней брашей аварийного освещения, избавляемся от ненужных полигонов. В поле Find вводим имя боковых граней текстуры лампы, в поле Replace текстура по имени noclip. В итоге, должна быть только текстура аварийного освещения. Продублированный основной свет превращаем в func_wall, добавив только имя: Параметры:
3) Размещение двух light_surface. Параметры основного света:
Остальные параметры и флаги для основного света не трогаем. Параметры аварийного света:
Флаги:
4) Следующий шаг, создать кнопку, а в моем случае рычаг, который будет переключать основной свет и аварийный. Параметры:
Флаги:
2. Логика.1) Уберем из видимости аварийный свет, объект func_wall с помощью энтити env_render: Параметры для скрытия:
Параметры для отображения:
Примечание: Если вы планируете использовать детальные текстуры на источники света, то необходимо помнить, что детальная текстура накладывается на брашевую энтить только тогда, когда Render mode: Normal. Будь там любой другой режим, детальная текстура на эту поверхность, принадлежащую этой брашевой энтити, накладываться не будет! 2) Создадим 2 multi_manager’а для переключения основного света на аварийный и наоборот: Примечание: Для добавления новых параметров необходимо отжать кнопку SmartEditПараметры 1-го mm:
Параметры 2-го mm:
3) В multi_manager’ах мы указали изменение параметра target у рычага. Необходимо использовать 2 энтити trigger_changetarget: Параметры 1-го trigger_changetarget:
Параметры 2-го trigger_changetarget:
3. Заключительный этап.1) Размещаем trigger_auto для того, чтобы скрыть неактивные лампы в первом раунде: Параметры:
2) Устраняем баг, если раунд закончился при включенном аварийном освещение. В новом раунде лампы аварийного света будут включены, и target у рычага остается с прошлого раунда. Исправлять такое поведение мы будем с помощью волшебного func_door: Параметры:
Флаги:
Создаем multi_manager: Параметры:
В итоге: ![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последний раз редактировалось Chakki Skrip, 06.02.2019 в 16:17. Причина: Некоторые дополнения в тексте, новый пример карты, gif. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |