Хотел по началу написать полностью свою статью, но поискав в просторах интернета информацию об этом деле, обнаружил что все расписано как надо и нет смысла изобретать велосипед второй раз. Поэтому решил перевести одну из подобных статей, которая должна, по идее, многим помочь в ходе изучения scaleform и flash.
Перевод: Vadakuma
Источник: Mass Effect style iteraction system
"Я создал на флеше систему меню, по стилю, как меню в игре Mass Effect. В случае, если вам требуется добавить интерактивную менюшку в игру, можете использовать эту систему. Всего 3 класса которые необходимо создать :
1) GFxUI_Interaction – добавляет параметры SWF movie, определяет какие параметры были задействованы.
2) SeqAction_BeginInteraction – активирует через Kismet меню, с шестью интерактивными кнопками.
3) SeqEvent_OptionSelected – события происходящие при нажатии на кнопку.
В архиве написаны эти скрипты, и все что вам осталось сделать, это переместить их по адресу :
Development\YourGame\Classes\
прокомпилировать, и запустить редактор.
Для начала стоит убрать HUD и видео, запускающиеся при старте обычного типа игры, также вам следует создать sub-sequence(отдельное "окошко" в kismet, специально для этой системы меню, чтобы отделить ее от всего остального), поскольку так будет проще управлять системой взаимодействия.
Внутри sub-sequence создайте a Sequence Activated node и как-нибудь его назовите. Далее следует создать Begin Interaction node (находится в New Action > Interaction > BeginInteraction).
Добавьте переменную Player и новую (именованную) объектную переменную для Movie, как показано на скриншоте. После проигрывания первого действия, вы можете подключить новый Matine с новым действием. Следуя этому, вы можете создать неактивное зацикливание (пока ожидается нажатие кнопки ) подобно меню из Mass Effect.
Внутри Begin Interaction node, вы должны лишь заполнить поле Interaction ID и шесть полей (название кнопок кажись). В принципе, эти поля являются дополнительными.
Примечание: Я обозвал каждую кнопку как в Mass Effect, вы можете назвать их по своему, только используйте сокращенные названия. На самом деле ограничения по длине похоже нету. Заполните поля как скриншоте:
Кнопки 0-2 справа, а кнопки 3-5 слева. Вы можете оставить поля пустыми, тогда кнопки не будут активными. Нет никакой надобности использовать все шесть кнопок. Если вы захотите сделать три кнопки справа, то полей interaction options тоже будет три.
Следующая вещь, которой стоит заняться, это определить какие события будут происходить при нажатии той или иной кнопки. Создадим шесть событий (‘New Event > Interaction > InteractionOptionSelected’).
В каждом событии потребуется настроить два параметра - ID события (идентификатор, который вы написали в узле ‘BeginInteraction’), и номер кнопки, при нажатии на которую будет происходить это событие. Настроить следует так, как показано на скриншоте:
Каждое из событий должно уметь завершать/останавливать видео или анимацию(персонажей, или самого меню), которые показывались до выбора следующего пункта меню. Блок, находящейся слева от блоков событий, как раз отвечает за это.
В итоге к каждому из блоков событий можно прикрепить любые действия, какие вы только захотите, после чего все должно прийти в конечный узел - ‘Finished Sequence’ node, который может быть полезен, если вы захотите создать систему взаимодействий между опциями.
Также вы можете подключиться к конечному блоку ‘Finished Sequence’ node сразу после того как опция была выбрана и дальше открыть новую последовательность опций (кнопок) – подобно тому как сделано в Mass Effect. Аналогично, вы можете добавить опцию ‘Return’, чтобы возвратиться к предыдущему меню.
Чтобы создать новое подменю, необходимо всего лишь скопировать подпоследовательность sub-sequence и изменить ID кнопок на новое значение. ID можно менять сразу для группы кнопок и опций.
Используя эти исходники вы можете легко создавать системы меню не хуже чем меню в игре Mass Effect. Скриншот для примера возможностей :
В архиве находятся необходимые скрипты, флеш меню и простенькая карта, для проверки работоспособности. Все было сделано в майской версии UDK(2010).
PS. Если у Вас установлена июньская версия(2010), то необходимо удалить строку 'bGammaCorrection=false' из DefaultProperties в скриптах GFxUI_Interaction.uc и SeqAction_BeginInteraction.uc
Спасибо за внимание. "
Следующая вещь, которой стоит заняться, это определить какие события будут происходить при нажатии той или иной кнопки. Создадим шесть событий (‘New Event > Interaction > InteractionOptionSelected’).
В каждом событии потребуется настроить два параметра - ID события (идентификатор, который вы написали в узле ‘BeginInteraction’), и номер кнопки, при нажатии на которую будет происходить это событие. Настроить следует так, как показано на скриншоте:
Заключительные комментарий
Каждое из событий должно уметь завершать/останавливать видео или анимацию(персонажей, или самого меню), которые показывались до выбора следующего пункта меню. Блок, находящейся слева от блоков событий, как раз отвечает за это.В итоге к каждому из блоков событий можно прикрепить любые действия, какие вы только захотите, после чего все должно прийти в конечный узел - ‘Finished Sequence’ node, который может быть полезен, если вы захотите создать систему взаимодействий между опциями.
Также вы можете подключиться к конечному блоку ‘Finished Sequence’ node сразу после того как опция была выбрана и дальше открыть новую последовательность опций (кнопок) – подобно тому как сделано в Mass Effect. Аналогично, вы можете добавить опцию ‘Return’, чтобы возвратиться к предыдущему меню.
Чтобы создать новое подменю, необходимо всего лишь скопировать подпоследовательность sub-sequence и изменить ID кнопок на новое значение. ID можно менять сразу для группы кнопок и опций.
Используя эти исходники вы можете легко создавать системы меню не хуже чем меню в игре Mass Effect. Скриншот для примера возможностей :
В архиве находятся необходимые скрипты, флеш меню и простенькая карта, для проверки работоспособности. Все было сделано в майской версии UDK(2010).
PS. Если у Вас установлена июньская версия(2010), то необходимо удалить строку 'bGammaCorrection=false' из DefaultProperties в скриптах GFxUI_Interaction.uc и SeqAction_BeginInteraction.uc
Спасибо за внимание. "
No comments:
Post a Comment