Система Inputs/Outputs. Часть 2.

Пришло время для наглядного примера работы системы Inputs/Outputs. Принцип настройки и значение строк в этой системе, мы уже рассмотрели в первой части урока. Теперь же мы будем строить тестовую карту для закрепления навыка работы с данной системой и наглядности логики ее работы. Начнем же!

Внимание! Карта-пример в этом уроке создана в Left4Dead2 Authoring Tools и применима к играм серии Left4Dead! Карты-примеры для L4D, HL2, CS:S CS:GO и серии Portal вы можете скачать по ссылкам расположенным в конце урока! Принцип построения для любой игры АБСОЛЮТНО идентичен.

Создадим длинный замкнутый коридор с дырой в полу, стену с проемом под дверь и небольшую площадку. Текстурим:
Карта-заготовка


На площадке располагаем "info_player_start" и "info_survivor_position", проем в стене закрываем "prop_door_rotating" с моделью двери и флажком "Start Open":
Вид с "улицы"


Вдоль, по потолку коридора размещаем пять "prop_static" с моделью лампы и пять Entity-объектов "light":
Светильники и источники света


Дыру в полу коридора заполняем "prop_static" с моделью колодца:
Колодец


Накрываем колодец Entity-объектом "prop_dynamic" с моделью люка:
Люк


Располагаем рядом к колодцем два "ambient_generic". Один будет озвучивать сдвигаемый люк, другой задаст звук атмосферности:
Звук


В уголке, рядом с дверью, располагаем столбиком еще пять "ambient_generic":
Звук - 2


Заготовка у нас есть. Начинаем настраивать наши Entity-объекты. Берем поочередно наши "light", открываем окно свойств и настраиваем. Задаем значения цвета и яркости свечения, и имя:
Настройка


Повторяем настройки для каждого последующего "light", меняя только имя Entity-объекта - "lamp_1", "lamp_2", "lamp_3", "lamp_4" и "lamp_5" соответственно.

Переходим к столбику "ambient_generic" и настраиваем начиная с нижнего:
Настройки звука

Флаги звука


Каждому последующему "ambient_generic" меняем имя (lamp_on_sound_1, lamp_on_sound_2 и т.д.) и громкость ("Volume" 6, 7, 8, 9, и 10 соответственно)

Переходим к "ambient_generic" у колодца. Одному из них, присваиваем имя "manhole_sound_1" и звук "Doors.Manhole.Open", второму - имя "atmosphere_sound_1" и звук "Event.DangerAtmosphere_Lighthouse".

Крышке колодца присваиваем имя "manhole_1".

Переходим к нашей двери, а точнее к ее вкладке "Outputs". Впервую очередь, заблокируем ее:
Блокируем дверь


Обратите внимание, в самом низу окна свойств нашей двери появилось два значка:
Значки I/O System


Первый значок - означает, что наш объект получает команду на действие. Второй значок - означает, что наш объект передает команду на действие Entity-объекту.

Заполняем список команд согласно рисунка:
Полный список команд


Разберемся со списком. Первые десять команд, поочередно зажигают наши лампы сопровождая это звуком с интервалом в одну секунду.
Одиннадцатая команда запускает фоновый мрачный звук.
Двенадцатая команда особо интересна, так как содержит параметр "open", эта команда, обращается к люку с командой "SetAnimation" (выполнить анимацию). Чтоб люк знал, какую именно анимацию он должен выполнить, в поле "Wiht a parameter override of", мы написали "open", выполнить анимацию открывания.
Тринадцатая команда запускает звук открытия люка, синхронно с началом анимации.
Четырнадцатая команда опять обладает дополнительным параметром. Как видите, идет обращение к люку, но уже с командой "SetDefaultAnimation" (установить анимацию по умолчанию). Эта команда указывает люку, что после того, как он выполнит анимацию открывания, он должен включить анимацию открытого люка. Поэтому в поле "Wiht a parameter override of", мы написали "open_idle" - открытый и не подвижный.

Как видите, такая мелочь, как закрытие двери, вызвала целый каскад событий. Построение такой последовательности без системы Inputs/Outputs, потребовало бы больших затрат времени и сил.

Карта- пример для L4D - скачать

Карта- пример для HL2 - скачать

Карта- пример для CS:S - скачать

Карта- пример для CS:GO - скачать

Карта- пример для Portal - скачать

Похожие новости

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Комментариев 0