Тёмный

UE5 | Ultimate Dialogue System - Tutorial - Pt1 

Подписаться
Просмотров 28 тыс.
% 701

Welcome to this tutorial on how to create a dialogue system in Unreal Engine 5! In this video, we'll go over the basics of setting up a dialogue system using Unreal Engine's powerful Blueprint visual scripting language.
Whether you're a beginner to Unreal Engine or an experienced developer looking to add dialogue functionality to your projects, this tutorial is a great place to start. So grab a cup of coffee, fire up Unreal Engine 5, and let's get started!
Want to continue the discussion? Why not join my discord.
Discord: discord.gg/CyUZjNMhcr
If you want to support me, why not conciser making a donation?
ko-fi.com/pattym

Игры

Опубликовано:

 

17 мар 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 85   
@silentwindstudio
@silentwindstudio 29 дней назад
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 RU-vid.
@dyarynych
@dyarynych Месяц назад
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!
@Alex-ui8mk
@Alex-ui8mk 4 месяца назад
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.
@nicocoregames
@nicocoregames 9 месяцев назад
This video was extremly helpful! thanks Michael
@HoracioSchvemler
@HoracioSchvemler 21 день назад
Perfect, just what I was looking for
@LastIberianLynx_GameDev
@LastIberianLynx_GameDev 2 месяца назад
Was just looking for this. Thanks a lot.
@devvunknown
@devvunknown Год назад
Yoo new upload!
@matteovergari141
@matteovergari141 Месяц назад
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
@trigger1641
@trigger1641 9 месяцев назад
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 6 месяцев назад
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 6 месяцев назад
Just went over all the video and spot a connecting wire missing in the Update Option function. Well! Well!Now it work, amazing!!!
@nswayze2218
@nswayze2218 6 месяцев назад
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 6 месяцев назад
You could add the dialogue component to the player controller and have it start the dialogue on begin play.
@nswayze2218
@nswayze2218 6 месяцев назад
@@mpattym Got you. I’ll give this a try later on today. Thank you
@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.
@lefobenam
@lefobenam 11 месяцев назад
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 11 месяцев назад
Near the beginning of the tutorial, I show you how to create the enum.
@zrmdevelopment7260
@zrmdevelopment7260 8 месяцев назад
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 8 месяцев назад
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 7 месяцев назад
@@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!:)
@fosomayi1289
@fosomayi1289 10 месяцев назад
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 2 месяца назад
I've got same issue! did you find a fix?
@Jasonpasene09
@Jasonpasene09 2 месяца назад
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.
@shirokyma
@shirokyma 3 месяца назад
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 3 месяца назад
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 3 месяца назад
@@mpattym Thank you very much.
@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.
@tristanbaker8198
@tristanbaker8198 6 месяцев назад
Hello, sir. Did you know that Q straightens connections?
@mpattym
@mpattym 6 месяцев назад
I do yes. :)
@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 10 месяцев назад
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 10 месяцев назад
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
@mysticprophecyroblox
@mysticprophecyroblox Месяц назад
Would this work in first person? As in having a cursor to select the options when the dialogue is open
@mpattym
@mpattym Месяц назад
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 Месяц назад
@@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.
@eikkou250
@eikkou250 10 месяцев назад
Is it possible to play a short mini-game when the player selects the appropriate options?
@Drachir08
@Drachir08 3 месяца назад
Can this system be integrated into a Behaviour Tree?
@mpattym
@mpattym 3 месяца назад
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.
@mrd.j.2303
@mrd.j.2303 Месяц назад
Hi this is great. Do you have the source code?
@mpattym
@mpattym Месяц назад
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)
@isonavi23
@isonavi23 7 месяцев назад
Can I add to dialogue options to make npc moves forward to destination after choosing?
@mpattym
@mpattym 7 месяцев назад
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 7 месяцев назад
@@mpattym can it be just a pup up widget with options and movement be made via waypoints?
@mpattym
@mpattym 7 месяцев назад
@@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 7 месяцев назад
@@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 7 месяцев назад
@@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.
@konrad129
@konrad129 8 месяцев назад
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 6 месяцев назад
:( 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 6 месяцев назад
@@mpattym I mean, valid point, but it was on the video, and it wasn't ever shown deleted
@neonz6019
@neonz6019 3 месяца назад
MAN WTF hahahah 2h of my life checking each frame, every nodes, every numbers in the 3 videos 19:16
@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
@SilverSkylark
@SilverSkylark 10 месяцев назад
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 10 месяцев назад
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.
@palmajd33
@palmajd33 7 месяцев назад
Where is the Enum Dialogue State?
@mpattym
@mpattym 7 месяцев назад
It seems you skipped the bit where I make the enum in the video. ;) It's just a custom enum.
@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.
@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 6 месяцев назад
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 6 месяцев назад
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.
@oscarmoreno4307
@oscarmoreno4307 2 дня назад
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 2 дня назад
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 День назад
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.
Далее