Dialogs
Last updated
Last updated
Расположение: All -> Content -> EasyDialog -> Dialogs.
В папке Dialogs находятся:
Папки: Depth_1
Файлы: DT_FirstDialog, DT_StandartDialog
Папка Depth_1 содержит в себе дерево диалогов. В данном случае было выбрано произвольное название. Так же в папке Depth_1 находится следующий уровень диалога - Depth_2, Depth_3. Сделано это для более понятной архитектуры диалогов. Например будет явно понятно что из диалога Depth_2, можно уйти в диалог Depth_3. Это сделано лишь для визуального понимания какой диалог имеет вложенные уровни и при ответе игрока на вопрос можно легко контролировать куда дальше будет двигаться диалог.
DT_FirstDialog: Это стартовый диалог. Тут и таится вся магия. Расскажу подробнее.
Таблица содержит столбцы : Row Name, Character, Category, Text, VoiceActing.
Row Name: Название строки, служит лишь для визуального представления, не влияет на систему.
Character: Тут выбирается собеседник и его эмоция, ранее заполненные в таблице DT_Character (папка Config). Она же и будет выведена на экран, на моменте вывода данной строки в диалоге.
Category: (Text, Buttons) служит для определения что будет использоваться, обычный текст, либо кнопки с ответами для игрока.
Text: Данный раздел является набором данных. Можно добавлять сколько угодно строк, и если указана категория как текст, то все строки в этом наборе будут выводится как стандартный текст, идущий друг за другом, не меняя персонажа и эмоции. А если указана категория как Buttons, то будут выводится варианты ответов для игрока из каждой строки этого набора будет сформирована кнопка. Рассмотрим на примере.
Категория TEXT:
В примере выше, категория указана как Text, и набор данных состоит из одного варианта, т.е. при выводе этой строки на экран будет выводится следующее:
Указана категория Buttons:
В данном случае категория у строки указана как Buttons, это значит что все строки в разделе Text будут выведены как кнопки для ответа игрока. Вот реализация данного скриншота:
Текст самого вопрос будет выведен из предыдущей строки.
Но это еще не все, вы наверняка заметили что в строках, помимо текста Text есть строка Link, Start PositionId, CallEvents. Для чего же они?
Link - это ссылка на любую из возможных диалоговых Data Table, т.е. если вы указали другую таблицу в этой строке, то модуль поймет, что после этой строки нужно перейти на указанную Data Table и начать диалог уже в той таблице со строки под номером, который указан в StartPositionId.
Пример. В таблице DT_Example мы указали Link как DT_Depth_1 и Start PositionId (1), т.е. после отображения этой строки мы сразу перейдем в таблицу DT_Depth_1 и начнем с 1-й строки. Вот как это выглядит в реальном диалоге:
А в таблица DT_Depth_1 выглядит вот так:
И в диалоге при выборе варианта "Yes, I can do it!" игрок будет переведен на таблицу DT_Depth_1. Итак вот как это выглядит в игре:
Тоже самое работает и с категорией Text. Если в параметре Link указана другая таблица, то после данной строки диалог будет переведен на другую таблицу с заданной строки, или на эту же таблицу, но уже с другой указанной вами строки!
Вы спросите, а как же выйти из диалога ? Очень просто! В параметре Start PositionId укажите отрицательное значение, например -1. И все, после этой строки система поймет что нужно выйти из диалога.
Теперь про CallEvents. Это обычный ENUM, который служит для отслеживания нажатий, переходов по диалогу игрока. Он создается в папке Config в файле ENUM_Events. Это значение возвращается через Event Dispatcher и может быть обработано в любом Blueprint Class.
Так же не забудьте ознакомится с созданием стилей для текста!
Voice Acting: Обычно это озвучка текста в данной строке. Она заменяет стандартные звуки из эмоций.