Dialogue
Last updated
Last updated
Dialogue is only handled through dialogue nodes inside of flow graphs, but there are external ways of interacting with the system.
A common tool utilized in dialogue systems are conditions and events. Events are easy as you have the output pins for each dialogue option, conditions are a little bit more complicated.
Conditions are instanced UObjects, allowing you to modify variables per-node, and allows for multiple classes so you can have multiple conditions.
The system is designed to be pretty simple. For now, the example project is mimicking the style of Monster Prom and Hades, but long-term I want it to be as complex as the dialogue you can find in Witcher 3 and Cyberpunk 2077.
Example:
Here is a much more complex implementation with some things customized. I have also utilized EditorScriptingTools to add the in-game UMG widget to the details panel to see a preview of how the dialogue text box and the buttons will look like in-game, all while inside the editor.
DA_DialogueCharacter - Contains all data revolving a character. This is meant to be modified for your project.
FN_DialogueBase - The base node for dialogue boxes. This node is customized to have the output pins automatically populate with the dialogue options.
O_DialogueConditionBase - Object that handles the conditions for a dialogue option to appear.
Added EditorAssistant
support.
Option GUID
should be more descriptive about where the option can be found in the project. For example; GraphClassName-CharacterName-OptionText-NodeGUID-OptionGUID