Нашел вот здесь довольно полезный мод, который можно использовать при создании игр практически любого жанра - система диалогов.
В принципе все очень просто, а также, в прилагаемом файле есть описание на английском, поэтому я просто переведу документацию на русский(вольный перевод) и сделаю некоторые комментарии .
и заменяем ее на:
ModEditPackages=Dialogue
ПРИМЕЧАНИЕ: Я поступил немного по другому. Так как я внедрял этот код в свой, то делал редактируемой папку в DefaultEngine.ini ,но в принципе суть не должна была поменяться.
И остался последний шаг : открываем UnrealFrontEnd и жмем Make > Full Recompile.
Дальше просто запускаем UDK загружаем тестовую карту DIA_ExampleMap и тестируем.
Связи :
Настройки :
Скриншот поможет вам правильно понять, что есть что:
Данная нода выводит сообщение.
Связи :
Настройки :
Эта нода позволяет выбрать четыре варианта ответа.
Связи :
Настройки :
Эта нода завершает режим диалога и возвращает к игре.
Связи :
Игрок касается триггера в входит в режим диалога.Сначала показывается просто сообщение, а далее надо будет выбрать один ответ из двух вариантов. В зависимости, какой Вы выбрали ответ, Вам покажут то или иное сообщение."
скачать исходники.
PS: Благодаря наличию исходников мода, можно реализовать сколь угодно гибкую систему диалогов, удовлетворяющую потребностям поставленной вами задачи.
В принципе все очень просто, а также, в прилагаемом файле есть описание на английском, поэтому я просто переведу документацию на русский(вольный перевод) и сделаю некоторые комментарии .
Автор: S ha D
Перевод: Vadakuma
"Добро пожаловать на страничку описания системы диалогов, которую я создал, чтобы помочь пользователям UDK скорее адаптироваться к движку. Здесь будет описано как установить модуль системы диалогов и какими функциями этот модуль обладает.
Для начала извлеките скачанные файлы (папки Development и UDKGame) из архива в папку с UDK. Соглашайтесь на замену.
Теперь у Вас есть папка Dialogue в директории "~/Development/Src".
Необходимо показать движку, что мы добавили новый скрипты.
Поэтому идем в "~/UDKGame/Config" и открываем DefaultEngineUDK.ini .Там находим строку:
ModEditPackages=MyMod
"Добро пожаловать на страничку описания системы диалогов, которую я создал, чтобы помочь пользователям UDK скорее адаптироваться к движку. Здесь будет описано как установить модуль системы диалогов и какими функциями этот модуль обладает.
Установка
Если Вы уже немного знакомы с UnrealScript, Вы наверняка знаете как устанавливать прилагающиеся исходники.Вы также должны знать, что если вы хотите интегрировать этот диалоговый модуль в уже созданный свой, то Вам придется более тщательно проанализировать код для правильного внедрения.Для начала извлеките скачанные файлы (папки Development и UDKGame) из архива в папку с UDK. Соглашайтесь на замену.
Теперь у Вас есть папка Dialogue в директории "~/Development/Src".
Необходимо показать движку, что мы добавили новый скрипты.
Поэтому идем в "~/UDKGame/Config" и открываем DefaultEngineUDK.ini .Там находим строку:
ModEditPackages=MyMod
и заменяем ее на:
ModEditPackages=Dialogue
ПРИМЕЧАНИЕ: Я поступил немного по другому. Так как я внедрял этот код в свой, то делал редактируемой папку в DefaultEngine.ini ,но в принципе суть не должна была поменяться.
И остался последний шаг : открываем UnrealFrontEnd и жмем Make > Full Recompile.
Дальше просто запускаем UDK загружаем тестовую карту DIA_ExampleMap и тестируем.
Применение
Во второй части я объясню, как можно создавать диалоги с помощью Kismet Editor. Для этого я опишу каждую доступную в моде функцию. В Kismet жмем правую кнопку мыши и идем в Action > Dialogue :
Нода BeginDialogue
Первый узел позволяет игроку войти в режим диалога. Это обязательный узел перед всеми последующими!Связи :
Inputs | In : Начало диалога |
---|---|
Outputs | Out : переход к самому сообщению |
Variables | Player : Игрок для которого начинается диалог |
Настройки :
Background Texture - текстура используемая на заднем плане | |
Button Hovered Texture - текстура для активных кнопок выбора | |
Button Texture - текстура для неактивных кнопок выбора | |
Margin X - горизонтальное расположение "margin" окна с диалогом (смотрим картинку). | |
Margin Y - вертикальное расположение "margin" окна с диалогом (смотрим картинку). | |
Padding X - горизонтальное "padding" окна с диалогом (смотрим картинку). | |
Padding Y - вертикальное "padding" окна с диалогом (смотрим картинку). | |
Use Texture - Установите флажок, если вы хотите использовать текстуры остановленные выше. По умолчанию будет просто белый цвет. |
Скриншот поможет вам правильно понять, что есть что:
Нода Message
Данная нода выводит сообщение.
Связи :
Inputs | In : активируем вывод сообщения. |
---|---|
Outputs | Out : следующее сообщение |
Variables | Player : игрок которому будет показано это сообщение Camera : камера с которой будет показано сообщение Text : содержание Name : имя персонажа который говорит |
Настройки :
Dialogue Box Top - Ставим галочку если хотим, чтобы сообщение выводилось сверху. |
Нода Choice
Эта нода позволяет выбрать четыре варианта ответа.
Связи :
Inputs | In : показывает варианты ответов. |
---|---|
Ouputs | Choice X : действие если игрок выберет ответ Х. |
Variables | Player : игрок котором показываются варианты ответов. Camera : камера из которой мы смотрим. Text : содержание сообщения. Name : имя персонажа что говорит. |
Настройки :
Choice X - Ставим галочку если хотим активировать вариант Х. Запомните эти настройки! (кнопка1 : сверху слева, кнопка 2 : сверху справа, кнопка 3 : снизу слева, кнопка 4 : снизу справа) | |
Choice Text X - Текст на кнопке Х, если кнопка активирована. | |
Dialogue Box Top - Ставим галку если хотим что бы сообщение было вверху экрана. (кнопки будут расположены снизу экрана) |
Нода EndDialogue
Эта нода завершает режим диалога и возвращает к игре.
Связи :
Inputs | In :конец диалога. |
---|---|
Outputs | Out: игрок выходит из режима диалога. |
Variables | Player : игрок которого выпускают из режима диалога. |
Пример
И наконец можно, к примеру, построить вот такую логическую цепочку:Игрок касается триггера в входит в режим диалога.Сначала показывается просто сообщение, а далее надо будет выбрать один ответ из двух вариантов. В зависимости, какой Вы выбрали ответ, Вам покажут то или иное сообщение."
скачать исходники.
PS: Благодаря наличию исходников мода, можно реализовать сколь угодно гибкую систему диалогов, удовлетворяющую потребностям поставленной вами задачи.
Также можно почерпнуть много полезной информации о реализации HUD в UDK, к примеру, тут и тут
UPDATE
Ввиду того, что Эпики постоянно что-либо модернизируют и изменяют во внутренней структуре движка, в частности и в скриптах, некоторые старые решения перестают работать так, как следует.Вот и эти скрипты дожили до этого момента :)
Эпики полностью вырезали скрипты UIscene(устаревшая система создания меню), на основе которых происходила обработка данных получаемых с мышки. Поэтому мышь теперь надо двигать иным способом. Прикрепил обновленный вариант, где проблема с мышью исправлена.
UPDATE
Ввиду того, что Эпики постоянно что-либо модернизируют и изменяют во внутренней структуре движка, в частности и в скриптах, некоторые старые решения перестают работать так, как следует.Вот и эти скрипты дожили до этого момента :)
Эпики полностью вырезали скрипты UIscene(устаревшая система создания меню), на основе которых происходила обработка данных получаемых с мышки. Поэтому мышь теперь надо двигать иным способом. Прикрепил обновленный вариант, где проблема с мышью исправлена.
No comments:
Post a Comment