🗣️Dialogs

Расположение: 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: Обычно это озвучка текста в данной строке. Она заменяет стандартные звуки из эмоций.

Last updated