Dialogue Plugin

Hey all,

I just wanted to inform you about some things we did with the Dialogue Plugin, and also news about UE5.

  • I made the Dialogue Plugin compile on UE5 by commenting out the #include "Toolkits/AssetEditorManager.h" line in DialogueEditor.h. I don’t know if things work fine (I didn’t test yet) and we also have our own slightly adjusted version of Dialogue Plugin. Compilation with UE5 and adding custom plugins is tricky, but that’s another story.
  • We needed to add various additional fields to a dialogue line. Because we do our prototypes in Blueprints I didn’t want to adjust the code all the time (with compilation and distribution etc.). Therefore I created a custom UObject class and added this to the plugin as an instanced object. We are able to create our custom blueprint class of this type with various additional fields like we want. The changes to the code are very small and everything else works as expected.

Have fun.

sirjofri

Edit: I did some tests and the whole plugin seems to just work in UE5 early access (with the mentioned fix).

1 Like

UE5 requires the change that you mentioned, and the following one:
https://i.gyazo./af68e45b62ad01e95f08313b5fb83a45.png

1 Like

Interesting. I didn’t test this. Thank you for the quick response :slight_smile:

In the video, the NPC line doesn’t disappear, it goes to the very top of the screen.
But I’ll assume that you do want to make it disappear. And just like in Kotor, the PC lines aren’t voiced, but NPC lines are voiced. To replicate this set-up, do the following:
1- Duplicate the widgets into your project as per documentation paragraph 3.1 to be able to customize the widget.
2- Once it’s done, I’ve recorded myself modifying the widget to match the setup you want:
(I forgot to record the sound coming from UE4, so you won’t hear the NPC lines in the video, but they’re actually voiced…)

1 Like

Great, thank you very much!

Hi there!

Working on a project with this and loving it so far. I was wondering if it was possible to change the direction of the conversation through a key press in dialogue events. So, for example; during one line of dialogue, if the player presses the ‘S’ key, then the dialogue will go in a different branch than if than normal.

Is that possible with this system?

Could you give me an example with a screenshot of a dialogue file? Mark the node where you want the event, and where you want to go in the dialogue after you press the S key, and where you were in the dialogue when you pressed the S key. I have a vague idea of what you want to achieve, but I want a concrete example to be sure I’m giving you correct information.

So when the dialogue reaches the highlighted node here with a highlighted word in the sentence. If the player presses the ‘s’ key when this node is active, the dialogue will go to “Seduction Successful” instead of “Hey Lilith. How are you feeling?”

Recorded a video of how to do that:
https://www.youtube./watch?v=4znRslHMknI

After recording the video, I realized you may need to actually roll a dice or do some kind of a check against player stats. This can be done in child nodes of the blue node, but if you want it done differently, let me know.

Just watched the video and trying to implement it now.

As for if it is what I want, it almost is. I just need dialogue to continue without any reply menu. So dialogue is continuous but allows the player to ‘interrupt’ with responses that drive the dialogue differently.

4th Edit: It works on my end!

The dialogue interrupts work perfectly without the reply menu now. Thanks for your help with that.

One last thing I wanted to know is how to change the current camera through a dialogue event? I tried just using a camera actor variable, but it won’t let me set a camera. One conversation might have multiple cameras used.

To reference actors in a level, use tags. Documentation section “4.1 How to reference actors that exist in the level”. For your case, skip over to “2. Reference an actor by its class and tag.

Thanks for the reply. I really appreciate the great responses!

Tried it out and works perfectly! I pretty much have all I need to make my system now!
Last question I have is what would be the best method for handling multiple dialogue objects for a dialogue heavy project?

Thanks!

What do you mean by a dialogue object? If it’s the dialogue files, then I’m not sure what you mean by handling them.

Oh, sorry. I mean that each character would have one dialogue graph per conversation. What would be the best way to swap out the dialogue graphs?

An NPC would have many different dialogues throughout the game? A dialogue event can switch their “dialogue” variable to the next file. You’ll also need a savegame system that saves their dialogue file variable.
As for the logistics, i.e. how to know when some dialogue occurs in your game, I guess you just have to draw a diagram. I heard of a good tool to draw diagrams specifically for a narrative design, but I can’t recall what it was called. Anyway, there’s probably a few of them around.

Im inside an event dialogue file, he have 3 conditions, Its possible to output each one in a dialogue bubble, WITHOUT creating a condition file for each of them?

Sorry, I don’t understand the question. Please show me the dialogue structure, where conditions are and what they’re checking, what’s it got to do with events and what would you like to see in the dialogue in-game. I didn’t understand anything.

Sorry… its a begging dialog, I think you can understand now with this. I’d like each “print” go to the related nodes. I can do that but with several files, like one file for each conditions for each dialog bubble. So will need split the event in more events. Just for workflow purpose, and less files of events/conditions, its possible to use only this event to do all that?


Oh, I see. It’s possible to do all that with just 1 event and 1 condition. And you can later re-use those in other places or even in other dialogues.

  1. On the “some changes please” node, place an event that makes a random roll between 1 and N (input 4 as N). Store the result on your Character or Player State as a variable.

  2. And as for condition, simply check if your saved variable equals condition’s parameter. So it’ll be the same condition on all 4 nodes, but each with a different parameter going from 1 to 4.

Let me know if I explained it clearly. I can illustrate with some images.