UE5 | Ultimate Dialogue System - Tutorial - Pt1

  Рет қаралды 40,471

Michael Pattison

Michael Pattison

Күн бұрын

Пікірлер: 103
@silentwindstudio
@silentwindstudio 6 ай бұрын
If you are wondering if this series worth your time, the answer is a big YES, this series is the best tutorial you will find on UE dialogue systems on KZbin.
@glowstargames
@glowstargames 10 ай бұрын
I like the order in which you put everything together, and the instructions are clear and easy to follow. Thank you for creating this! I'm learning a lot.
@Aliicide666
@Aliicide666 3 ай бұрын
I'm so happy to find someone who actually takes the time to teach and explain what they are doing rather than listing off a laundry list. Great video, I'll definitely be watching more! Thanks :)
@dyarynych
@dyarynych 7 ай бұрын
Excellent series. I've been trying to find a good (there are some, but gosh they are overcomplicated) dialogue system for my game and was very frustrated. Until I've found your tutorial - building your own (even if just following a tutorial) is so much more rewarding, because I at least have a basic understanding of how it works. Thanks a lot!
@nicocoregames
@nicocoregames Жыл бұрын
This video was extremly helpful! thanks Michael
@nickname20151
@nickname20151 5 ай бұрын
These lessons are so cool that even I with poor knowledge of English could understand them! Thank you very much
@tc8464
@tc8464 2 ай бұрын
Excellent clear and nicely paced tutorial!
@mpattym
@mpattym Ай бұрын
Glad you enjoyed it!
@HaikuTutorials
@HaikuTutorials 5 ай бұрын
This is amazing!! Thanks mate :) Tutorial start: 4:45
@HoracioSchvemler
@HoracioSchvemler 6 ай бұрын
Perfect, just what I was looking for
@LastIberianLynx_GameDev
@LastIberianLynx_GameDev 7 ай бұрын
Was just looking for this. Thanks a lot.
@lefobenam
@lefobenam Жыл бұрын
hey man, in 22:43 , u said we need to do an output Enum, but i cant find enum dialogue... I dont know why, plz help me, but nice tutoriel
@mpattym
@mpattym Жыл бұрын
Near the beginning of the tutorial, I show you how to create the enum.
@fosomayi1289
@fosomayi1289 Жыл бұрын
When I am clicking on the Yes/NO after the first dialogue comes up, the flow is not going ahead and not showing the further dialogues. When I am connecting the node UPDATED rather than PASS THROUGH, then it is showing the ending statement directly. What could be the issue here? This Error is coming up on the message log : : Blueprint Runtime Error: "Accessed None trying to read property OwningDialogueComponent". Node: Update Selected Option Graph: EventGraph Function: Execute Ubergraph W Dialogue Option Blueprint: W_DialogueOption
@Jasonpasene09
@Jasonpasene09 8 ай бұрын
I've got same issue! did you find a fix?
@Jasonpasene09
@Jasonpasene09 8 ай бұрын
I found the fix. open 'W_DialogueOption' then go to 'Graph' and make sure on 'Update Selected Option' it goes 'Owning Dialogue Component = Target' then 'Dialogue Index = Progress Index' then 'Option Index = Option Index'... I had Dialogue index and option index mixed up lol.
@konrad129
@konrad129 Жыл бұрын
19:16 This fu**d up 3h of my life... I forgot to delete the default values from Dialog progress, which result in broken mechanics
@mpattym
@mpattym 11 ай бұрын
:( I think we've all be there. I spend half an hour debugging an issue with an NPC not moving only to realize I set their max walk speed to 0.
@konrad129
@konrad129 11 ай бұрын
@@mpattym I mean, valid point, but it was on the video, and it wasn't ever shown deleted
@neonz6019
@neonz6019 9 ай бұрын
MAN WTF hahahah 2h of my life checking each frame, every nodes, every numbers in the 3 videos 19:16
@GreenMansChild
@GreenMansChild 5 ай бұрын
Brother I just spent 2 full days trying to fix this and you just saved me. I feel good knowing it isn't my fault now lmao.
@VanessaVilla-ur5lt
@VanessaVilla-ur5lt Ай бұрын
Rewatched the video and still didn't know I had to delete the values. Kept them in as Default Progress 1 and Map Element 1, to match the video. Hit the little trashcan icon on that boom now my dialogue pops up. Whew!
@HeathGleason
@HeathGleason Жыл бұрын
Question Michael, how would you go about having expressions for each different emotion a character is having?
@mpattym
@mpattym Жыл бұрын
Make an enum for your different emotional stats, in the dialogue function add a switch on enum based on your enum. If you add the enum to your character as a var, you can then get it from your dialogue and plug it into the switch node.
@ahmadruslanovich739
@ahmadruslanovich739 Жыл бұрын
@@mpattym Can you show how to do that?
@youngjojo3052
@youngjojo3052 Жыл бұрын
@@ahmadruslanovich739 brother, get the enum and then do a switch on it and base on the answer, play a anim montage.
@izzy-mew
@izzy-mew Жыл бұрын
I dont think they are talking about animation. Like Rune Factory, that has facial expressions thats an image change on the Dialogue widget. If not, its a question I have anyways. and there are no tutorials on it so this creator could get lots of traction to their channel if they did a tutorial on how to make an image that changes along with set dialogue. @@youngjojo3052 @mpattym
@izzy-mew
@izzy-mew Жыл бұрын
I figured it out. It took me 2 full days... but I got it - Make New Enum with all the emotions (I called mine Enum_Expression_Image) -In W_Dialogue Make a New Function called SetImage -In W_Dialogue in Designer, the image you wish to change, Make it a variable (I named mine EmotionalStateImage) -In W_Dialogue in Designer go to the appearance in the details panel and "bind" the -brush to EmotionalStateImage. --In SetImage Make "Switch on Enum_Expression_Image". --In SetImage Function (Set)-"EmotionalStateImage" to each expresion with the desired image -In W_Dialogue add SetImage to UpdateDialogue -In AC_Dialogue_Base Select the fist node in Add Dialogue and go to the Inputs in the details tab and add input. set it to Enum_Expretion_Image. It will then show as value on the Add Dialogue Node (Called Expression) -In AC_Dialogue_Base Add SetImage to the Add Dialogue Function after true on the branch and connect the Expression to Expression -In AC_Dialogue_Mouse In Dialogue Function the Add Dialogue component should have an Expression that you can then set as any expression from the Enum and when you talk it should be able to see the expressions how you set it up in the Widget. Let me know how you go. I tried to be as clear as possible @@ahmadruslanovich739
@niyashkhadka8569
@niyashkhadka8569 Ай бұрын
Very nice video, but I have a problem where my dialogue progresses the first option but not the second and if I select the second first the I cant select the first. once I am in second option I can only choose the second option do u have any idea what could be the problem?
@mpattym
@mpattym Ай бұрын
That sound like you might have mixed up the Dialogue Index and Dialogue Branch Index.
@niyashkhadka8569
@niyashkhadka8569 Ай бұрын
@@mpattym thank you for the help. it was because I used option index twice on widget option twice instead of dialogue progress
@NJoint
@NJoint 4 ай бұрын
I have a weird bug by which if I use "remove dialogue progress", some dialogues are missing if I go again over the same branch. Can't understand why :(
@mpattym
@mpattym 4 ай бұрын
I'm not sure what you mean. As in it's goes back (shows the relevant dialogue) but then skips dialogue in the flow?
@nyx8694
@nyx8694 3 ай бұрын
@@mpattym yes essentially the code fires over the choices you made last time
@shirokyma
@shirokyma 8 ай бұрын
Thank you for the tutorial, may I ask the "Dialogue Index" created 20:31 is different from the one created in the ACDialogueBase? What are their relationship?
@mpattym
@mpattym 8 ай бұрын
That is an input for the function. The function is inside the dialogue widget that is used to update the dialogue text and show the options (if there are any). We pass the Dialogue Index to the widget (hence the name of the input var) so the widget know what dialogue index it needs to update when an option is selected.
@shirokyma
@shirokyma 8 ай бұрын
@@mpattym Thank you very much.
@tristanbaker8198
@tristanbaker8198 Жыл бұрын
Hello, sir. Did you know that Q straightens connections?
@mpattym
@mpattym Жыл бұрын
I do yes. :)
@matteovergari141
@matteovergari141 7 ай бұрын
Amazing tutorial, but I have a small issue i have encountered, after changing the character that interacts with the NPC the dialogue still works but for some reason it triggers twice, with the two windows overlapping each other and only one of them interactable, and even after one of the dialogues finishes (triggering the close conversation) the non-interactable second window does not disappear, what do you think might cause this? before switching characters it worked perfectly
@matteospo6426
@matteospo6426 Жыл бұрын
hello from italy, i'm trying to recreate your code on my game but at the minute .... where should i add the enum dialogue state output i can't add it because it doesn't appear to me what can i do? please help me i'm desperate xD
@mpattym
@mpattym Жыл бұрын
At a guess I would say you've not correctly made the enum. The tutorial shows every step starting with the third person template. Be careful when skipping through as you might miss steps.
@matteospo6426
@matteospo6426 Жыл бұрын
@@mpattym I watched the video 3 times from the first second but nothing I can not find the passage of the enum
@mpattym
@mpattym Жыл бұрын
@@matteospo6426 the enum is created at the 5 minute mark.
@matteospo6426
@matteospo6426 Жыл бұрын
@@mpattym tnks very much i love you
@mysticprophecyroblox
@mysticprophecyroblox 6 ай бұрын
Would this work in first person? As in having a cursor to select the options when the dialogue is open
@mpattym
@mpattym 6 ай бұрын
Yes, it's set up to use mouse clicks so it should make a difference if you're using 1st or 3rd person.
@mysticprophecyroblox
@mysticprophecyroblox 6 ай бұрын
@@mpattym Awesome
@mahmoodhafez1496
@mahmoodhafez1496 Жыл бұрын
can i make it with level sequence ?
@mpattym
@mpattym Жыл бұрын
With a few tweaks you could probably make it work, assuming you're not actually wanting the player to have options. I'm not too familiar with the level sequencer so I can't say for sure though.
@nswayze2218
@nswayze2218 Жыл бұрын
Wow this looks really good! How would you cause the dialogue to trigger without it being a 3D world? As in it just starts on run? (For people making a dialogue game)
@mpattym
@mpattym Жыл бұрын
You could add the dialogue component to the player controller and have it start the dialogue on begin play.
@nswayze2218
@nswayze2218 Жыл бұрын
@@mpattym Got you. I’ll give this a try later on today. Thank you
@trigger1641
@trigger1641 Жыл бұрын
Hi, Michael! Good tutorial, it helps me a lot, but I'm confused about when I finished building it, everything looks fine but when I tried to click the options, it just can not respond my click and go through the conversation. So it always stuck at the very first, I'm not sure which part has a problem, I really need your suggestion! Thank you!!! Love your tutorials, you're so professional!
@mpattym
@mpattym Жыл бұрын
It's difficult to say why it's not working specifically but the first thing I would do is add a print string to the button press/release to make sure it's actually firing. If it is, you need to follow the functions that are called to make sure it calls the relevant things. It should update the dialogue progress and call the dialogue again. (To refresh)
@marie-pierneault1035
@marie-pierneault1035 Жыл бұрын
Just went over all the video and spot a connecting wire missing in the Update Option function. Well! Well!Now it work, amazing!!!
@osamaalaa5570
@osamaalaa5570 Жыл бұрын
any insights if i want to make the npc and the player character say the selected option out loud as well assuming i have it voice acted
@mpattym
@mpattym Жыл бұрын
When you use the 'Add Dialogue' node, connect a 'Play Sound' node to the 'Updated' output and select the sound you want to play. It might however be worth adding an audio component to the NPC that you use to play the dialogue so you don't get overlapping dialogue playing at once. It would just be a case of updating the sound the audio component plays.
@dreamscape_land
@dreamscape_land Жыл бұрын
how do you create a vr dialogue system please? i haven't found any tutorials on it. can you help?
@mpattym
@mpattym Жыл бұрын
I've not made anything for VR for many years but I would imagine the only major difference would be having the Dialogue show in the world as opposed to being placed in screen space. It shouldn't be too difficult to make this work with VR, you'll just need to have the widget display inside a widget component that's attached to the player. Of course doing anything in VR does have an element of trial and error to ensure its easy on the players eyes to view and read. Hopefully, this will point you in the right direction.
@賴泓濤
@賴泓濤 4 ай бұрын
Enum_DialogueState (5:02)
@isonavi23
@isonavi23 Жыл бұрын
Can I add to dialogue options to make npc moves forward to destination after choosing?
@mpattym
@mpattym Жыл бұрын
Yea, it should be possible. You can use the updated branch to trigger a move to event. However, there isn't anything in the system to delay the next dialogue showing until the move has completed.
@isonavi23
@isonavi23 Жыл бұрын
@@mpattym can it be just a pup up widget with options and movement be made via waypoints?
@mpattym
@mpattym Жыл бұрын
@@isonavi23 I don't see why not but if your wanting complex movement such as way points, you might need to create a separate system that moves to character to and from way points that you can then call from the dialogue system.
@isonavi23
@isonavi23 Жыл бұрын
@@mpattym I don't seem like understanding how to actually implement this. Could you help please? For example with function like ai move to or move to actor/location. And how to connect it to "updated" branch
@mpattym
@mpattym Жыл бұрын
@@isonavi23 When you use the add dialogue node it has an enum output that's determines the update state, using the switch on enum node, you will get the pass through and updated exec pins. It would just be a case of getting the owner of the dialogue component and using the AI move to node (connected to the Updated exec pin) on the part of the dialogue you want them to move.
@CosmosisTR
@CosmosisTR Жыл бұрын
Hi Michael, I have an error on your code and I can't fix it. Can you help me?
@mpattym
@mpattym Жыл бұрын
If you provide a description of the issue, I can see if I can help.
@CosmosisTR
@CosmosisTR Жыл бұрын
@@mpattym I watched 3 of your videos and I applied the video stop and stop, but when I interact with the last part of the videos, it does not bring up the dialog widget. I checked all "creating widget" parts but everything is the same with you. I couldn't find the cause after all. Actually, I can share screen or etc when are your free if is it okay for you?
@mpattym
@mpattym Жыл бұрын
@@CosmosisTR the first you would need to due is debug the open conversation function as this created the widget. You can add a print string or break point to see if it gets to that point. If it doesn't, check how you're interacting with your NPC to make sure they're receiving the interact. If it does make it to the open conversation, check the create widget node is creating the correct widget and is added to the viewport.
@CosmosisTR
@CosmosisTR Жыл бұрын
@@mpattym Now it works until creating widget, but creating only "W_Dialogue widget" not updating dialogue on AC_Dialogue_Base. I checked all nodes on base document but everything is same.
@KenlieroGames
@KenlieroGames 4 ай бұрын
There are some good ideas in this. Like it is simplified and easy to understand, but is does not scale well.
@mpattym
@mpattym 4 ай бұрын
@@KenlieroGames what issues have you had regarding scalability?
@KenlieroGames
@KenlieroGames 4 ай бұрын
@@mpattym If we have massive amount of dialogs. It would be better to save those dialogs in datatables or structures and use them in nodes, rather than directly write dialog lines to nodes, then you can reuse the functions. I admit that I did not watch the whole video, but I saw the first minutes and saw texts written in nodes.
@mpattym
@mpattym 4 ай бұрын
@@KenlieroGames Ah, yea this system isn't recommended if you want to use datatable. I would say it's more of a preference than a scalability issue though. I hated working with datatables when trying to create dynamic dialogue flows. There are of course pros and cons to both types though.
@MrDJsArcade
@MrDJsArcade 7 ай бұрын
Hi this is great. Do you have the source code?
@mpattym
@mpattym 7 ай бұрын
I'm sorry but I don't provide a download for this system. If you're not wanting to make it yourself, you can always checkout 'Project Sunrise's on the UE marketplace. It includes a revamped and overhauled dialogue system that follows the same concept. (Amongst other systems)
@SilverSkylark
@SilverSkylark Жыл бұрын
Would I be able to change the name of the character as we get to know him more? I'd like to unlock his nickname after reaching a certain point in the dialogue tree
@mpattym
@mpattym Жыл бұрын
Not out the box, but with a few small tweaks it shouldn't be too difficult. I would add a bool var for 'bDisplayName?' And have this set to false to begin with. Then where the name is passed to the widget, use a select node to return either something like '????' or the name in the name var.
@Drachir08
@Drachir08 9 ай бұрын
Can this system be integrated into a Behaviour Tree?
@mpattym
@mpattym 8 ай бұрын
That would depend on what you mean by integrated. If you just want the behavior tree to open up the dialogue, I don't see why not. You would just make a task that gets the controlled pawn and gets the dialogue component from it. Once you've done that you can call any of the functions from it.
@devvunknown
@devvunknown Жыл бұрын
Yoo new upload!
@palmajd33
@palmajd33 Жыл бұрын
Where is the Enum Dialogue State?
@mpattym
@mpattym Жыл бұрын
It seems you skipped the bit where I make the enum in the video. ;) It's just a custom enum.
@zrmdevelopment7260
@zrmdevelopment7260 Жыл бұрын
Hi Michael, amazing series so far. I was wondering if there's a way to elaborate a bit on how to add voice acting to those dialogues. I've noticed that you told someone below this: "When you use the 'Add Dialogue' node, connect a 'Play Sound' node to the 'Updated' output" But there's no updated output or at least I cannot find it... (I'm also pretty new to Unreal). I simply added a play 2d sound after the dialogue node and the sound keeps on repeating whenever I press anything inside the dialogue... Is there a way to give us a few more steps on how to actually implement this if possible? Thank you! Keep it going:)
@mpattym
@mpattym Жыл бұрын
Sure, when I mentioned the 'add dialogue' node, I was referring to adding the play sound node inside that node after the bit that updates the dialogue. You can always join my discord and I can share a few screenshots of how I set it up in my more complex dialogue system when I get some time. discord.com/invite/g5ZWEAT2
@suomynona772
@suomynona772 Жыл бұрын
@@mpattymoh, i found my problem. I did not change the state of the return node in the add dialogue function to updated 🙃But anyway, thank you for the quick answer!:)
@eunachaanakya
@eunachaanakya Жыл бұрын
can i get this project?
@mpattym
@mpattym Жыл бұрын
I'm sorry but I don't provide the completed project files for my tutorials.
@01yoto
@01yoto Жыл бұрын
Check out MakeCodeSimple_Unreal's UE5 | Ultimate Dialogue System - Tutorial, the description of the video is kinda the same as yours, you posted your vid earlier, so someone is stealing your content, not sure about the video itself.
@mpattym
@mpattym Жыл бұрын
Thank you for letting me know but yea, it looks like they've rehashed my dialogue system and attempting to pass it off as their own.
@eikkou250
@eikkou250 Жыл бұрын
Is it possible to play a short mini-game when the player selects the appropriate options?
@oscarmoreno4307
@oscarmoreno4307 5 ай бұрын
Hey man! I followed your tutorials, and my system it's working great! I have a really weird issue though, since every node I put between two "AddDialogue" keeps getting called every time the dialogue progresses. Per example, I have: AddDialogue > Switch on Enum_Dialogue State > Switch on Int > Print String > AddDialogue... The print string works fine the first time, but then it keeps getting called every time the dialogue progresses. I'd be very grateful if you could help me! I can send you any info you need.
@oscarmoreno4307
@oscarmoreno4307 5 ай бұрын
Rewatching the tutorials I realized you actually explain that error happens. You didn't say if there's any fix or a way to change variables and stuff like that between dialogue phases, instead of on the update. Thanks on advance!
@oscarmoreno4307
@oscarmoreno4307 5 ай бұрын
I found a fix: Just adding an empty "AddDialogue" node between the desired ones, and setting all the needed variables before calling the good dialogue. It may not be a good way to work normally, but it's doing the trick in a few situations.
UE5 | Ultimate Dialogue System - Tutorial - Pt2
26:24
Michael Pattison
Рет қаралды 17 М.
Intro to Dialogue Tree 1: Quick Start Tutorial
8:40
UnraedGames
Рет қаралды 4,2 М.
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН
This next-gen simulation for UE5 is insane...
20:49
Bluedrake42
Рет қаралды 375 М.
How to Make a Simple Dialogue System in Unreal Engine 5
16:32
Gorka Games
Рет қаралды 107 М.
How To Make A Simple Interaction System In UE5
9:24
SignatureSketch
Рет қаралды 791
Short Film Made in 1 Hour Using Unreal Engine 5
1:14:37
Daydream Studios
Рет қаралды 146 М.
Mastering Filmmaking in Unreal Engine 5: A Beginner's Tutorial
58:02
ProductionCrate
Рет қаралды 21 М.
I Struggled With Blueprint Interfaces for Years!! (Unreal Engine 5)
16:48
Glass Hand Studios
Рет қаралды 197 М.
Unreal Engine 4 - The Easiest NPC Dialogue Tutorial EVER
9:04
Beardgames
Рет қаралды 79 М.
Make A Professional MainMenu And A Settings Menu In Unreal Engine 5
1:12:34
Unreal ART With Alireza
Рет қаралды 59 М.