Система 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":
Заготовка у нас есть. Начинаем настраивать наши 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". Впервую очередь, заблокируем ее:
Обратите внимание, в самом низу окна свойств нашей двери появилось два значка:
Первый значок - означает, что наш объект получает команду на действие. Второй значок - означает, что наш объект передает команду на действие Entity-объекту.
Заполняем список команд согласно рисунка:
Разберемся со списком. Первые десять команд, поочередно зажигают наши лампы сопровождая это звуком с интервалом в одну секунду.
Одиннадцатая команда запускает фоновый мрачный звук.
Двенадцатая команда особо интересна, так как содержит параметр "open", эта команда, обращается к люку с командой "SetAnimation" (выполнить анимацию). Чтоб люк знал, какую именно анимацию он должен выполнить, в поле "Wiht a parameter override of", мы написали "open", выполнить анимацию открывания.
Тринадцатая команда запускает звук открытия люка, синхронно с началом анимации.
Четырнадцатая команда опять обладает дополнительным параметром. Как видите, идет обращение к люку, но уже с командой "SetDefaultAnimation" (установить анимацию по умолчанию). Эта команда указывает люку, что после того, как он выполнит анимацию открывания, он должен включить анимацию открытого люка. Поэтому в поле "Wiht a parameter override of", мы написали "open_idle" - открытый и не подвижный.
Как видите, такая мелочь, как закрытие двери, вызвала целый каскад событий. Построение такой последовательности без системы 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":
Заготовка у нас есть. Начинаем настраивать наши 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". Впервую очередь, заблокируем ее:
Обратите внимание, в самом низу окна свойств нашей двери появилось два значка:
Первый значок - означает, что наш объект получает команду на действие. Второй значок - означает, что наш объект передает команду на действие 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