Приветствую всех! В этом уроке вы научитесь создавать мини-сценки с участием различных npc. Многие интересуются, как сделать, чтобы G-man заговорил?! Все очень банально и просто. Для этого используют в основном всего две энтити scripted_sequence и logic_choreographed_scene. Разобьем наш урок на две части: 1) Хореография персонажей 2) Использование анимации персонажей Хореография персонажей Для начала, создайте комнату, туда поместите игрока и npc_gman с параметрам Name: gman. Теперь добавьте энтитию с параметрами: Class: logic_choreographed_scene Name: scene_gman Scene file: scenes/npc/Gman/gman_intro.vcd (Примечание: для просмотра выбираемой сцены необходимо зайти в Face Poser) Target 1: gman Следующим шагом будет добавление триггера: Параметры: Class: trigger_once Name: trigger_act_gman Outputs: My output named: OnTrigger Targets entities named: scene_gman Via this input: Start With a parameter override of: After in delay in seconds of: 0.00 Вот и все, на этом первая часть урока окончена. Запускаем нашу карту и видим заходя в триггер, как наш «Человеко-чумодан» начинает с нами говорить о миссии Гордона. Переходим к следующей части. Использование анимации персонажей В этой части пойдет речь о анимации персонажей, т.е. о движениях совершаемых действующими лицами. Сначала определим цель, которую мы хотим достигнуть: заходя в триггер срабатывает энтития scripted_sequence, и Алекс начинает двигаться в сторону перил. Затем, она перескакивает через перила, и встает, облокачиваясь спиной к стене. Итак, начнем. Создаем комнату, в которой будет два уровня, т.е. уровень, где изначально будут располагаться игрок и Алекс, и второй, куда в дальнейшем спрыгнет героиня. Внимание: главное чтобы два уровня отличались в высоте на 124 юнита, иначе Алекс застрянет в полу! Когда все постройки готовы, пожалуй, пора установить игрока и Алекс. Примените параметр Name: alyx, соответственно для героини. Установите флаг на “Wait For Script”, для того, чтобы Алекс ждала пока не сработает триггер. Установите энтитию с параметрами, и расположите как показано на рисунке ниже. Параметры: Class: scripted_sequence Name: seq_alyx_1 Target NPC: alyx Custom Move Animation: walk_all Angles: Вот с этим параметром не все так просто, для его определения вам нужно посмотреть на окно с проекцией «Top», и направить линию которая обозначена на черном круге, в направлении вашей ограды, через которую будет перепрыгивать Алекс. Фухх как намудрено описал, но вроде понятно! Теперь оутпуты. Outputs: My output named: OnEndSequence Targets entities named: seq_alyx_2 Via this input: BeginSequence With a parameter override of: After in delay in seconds of: 0.00 Мы сделали только один шаг, теперь нам нужно создать вторую энтитию с такими параметрами, и разместить ее возле ограды, точнее отдалить и поднять ее над полом на 2 юнита. Параметры: Class: scripted_sequence Name: seq_alyx_2 Target NPC: alyx Action animation: PrisonJumpDown Custom Move Animation: walk_all Move to position: Custom movement Angles: установить подобно, как и в предыдущей энтити. Outputs: My output named: OnEndSequence Targets entities named: seq_alyx_3 Via this input: BeginSequence With a parameter override of: After in delay in seconds of: 0.00 Осталось совсем не много! Установите следующую энтитию у стены, на другом уровне, куда Алекс, приземлившись, побежит вставать. Параметры: Class: scripted_sequence Name: seq_alyx_3 Target NPC: alyx Action animation: stopwomanpre Post Action Idle Animation: stopwoman Move to position: Walk Angles: установить перпендикулярно стене. Flags: Loop in Post idle: Остается поставить триггер: Параметры: Class: trigger_once Name: trigger_act_alyx Outputs: My output named: OnTrigger Targets entities named: seq_alyx_1 Via this input: BeginSequence With a parameter override of: After in delay in seconds of: 0.00 Ну вот и все, ах да, для того чтобы просмотреть анимацию которая выбрана для персонажей, обычно пользуются обходным путем: в свойствах каждого npc, имеется вкладка – Model, в ней можно выбрать анимацию персонажа, но мы при помощи этого просматриваем в редакторе возможные анимационные действия, записываем название анимации и используем их в энтитиях. Удачного вам маппинга. Исходник
Источник: http://www.ssdk.ru/index.php?do=tutor&id=18 |