Тёмный

UE5 | Ultimate Dialogue System - Tutorial - Pt5 

Michael Pattison
Подписаться 2 тыс.
Просмотров 3,7 тыс.
50% 1

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!
In this part, I go over how you can have dialogue automatically progress if there are no options as well as handling branches differently to enable to ability to save branch progress when switching.
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 окт 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 52   
@zoravibes
@zoravibes 13 дней назад
Looking forward to seeing some more voice over from the little VA star in the making! So cute! ☺
@iibool
@iibool 7 месяцев назад
I'm glad you keep updating
@Wauzy
@Wauzy 7 месяцев назад
me too
@peixinhong8136
@peixinhong8136 7 месяцев назад
You really do an excellent job, thank you very much. Could you complete the series with a video for the camera. how to switch the camera between the different actors in the dialogue. that would be great.
@angelo47417
@angelo47417 5 месяцев назад
Your video has immensely helped me save a considerable amount of time, for which I am deeply thankful. I have endeavored to implement keyboard-based option selection inspired by your tutorial, but it hasn't worked well. Should it not inconvenience you, may I kindly request a video demonstrating how to select options via keyboard? I would like to express my profound gratitude once again for your exceptional work. As I am not a native English speaker, please excuse any awkwardness in my language.
@oscarmoreno4307
@oscarmoreno4307 2 месяца назад
I coped that by making the option text widget focusable and then using "Set focus" on the first option every time the dialogue updates. I ended up using UI Navigation 3.0 though. It was pretty much easier to me, specially on more complex widgets.
@silentwindstudio
@silentwindstudio 3 месяца назад
I just want to say thank you Michael for putting all the effort on this series, I am working on my first game and I will definitely use a system like this(including the real time of the day) for complex dialogues!
@lyallsnow2915
@lyallsnow2915 7 месяцев назад
Huge thanks for the effort put into this! This series has been an absolute lifesaver on my coursework, and a few other people in my class :>> just for personal preference, is there a way of making it so that the option button widgets are created from the bottom up instead of top down? I'd like to have the options sitting on top of a more classic horizontal text box No worries if that's not a simple thing to explain, I can hold off on that kind of polish for this project, if need be
@mpattym
@mpattym 7 месяцев назад
You can move the options container in the widget above the where the dialogue text is shown to have them above the dialogue. However, as far as I'm aware, widgets are always added to vertical boxes top down. I would imagine you'd have to delve into C++ and create a custom vertical box to have this sort of behaviour. I could be wrong so if anyone reads this and knows of a way, I'd also love to know if it's possible in a BP only project.
@lyallsnow2915
@lyallsnow2915 7 месяцев назад
@@mpattym Thank you for the reply I don't think I'm quite ready to be diving into C++ but knowing its to do with the vertical box helps for when I do want to tackle it 👍
@michaelkukula5926
@michaelkukula5926 23 дня назад
Hello. I love the series! Been working on it all day and have learned a lot. A couple questions: 1) How do I set it up so that the NPC dialogue on screen is just like a subtitle at the bottom of the screen with the audio playing? And then the player dialogue options are on the left like you have shown in the series? 2) Is it possible to interact with multiple NPCs in the same conversation? Thanks so much 🙂
@yukes1
@yukes1 4 месяца назад
Hi Michael. Thanks very much for your videos. I've tried a few more advanced dialogue systems for my game, and yours is by far the most elegant I've come across! I have a quick question I hope you can help me with, if you don't mind. I'm trying to add functionality whereby if you've collected an item, the dialogue reflects that, such as in your Blacksmith example. I'm having real trouble working out the logic, though, in particular what to cast to and what the object input should be. I've tried creating an ItemCollected variable in the NPC Dialogue component, but I can't seem to set that in the Item blueprint because I'm not sure what I should be casting to. Any advice hugely appreciated.
@アグル-y5b
@アグル-y5b 6 месяцев назад
Your tutorial is great and it works great as except too. Now I am trying to use it on a VR project. I added the W_Dialogue to VRPawn so user can see it in game just like normal, but how do I make AC_Dialogue_Base to recognize it as a DialogueWidget variable in your design? Forgive me if I made a dumb question, I am new to UE.
@WsEKond
@WsEKond 5 месяцев назад
Can you maybe add that when you have a dialogue that there is an option that let the dialogue text pop out by every single letter like in the zelda games? Would be really cool for another option for dialogue skipping
@GameCreatorOfGod
@GameCreatorOfGod 2 месяца назад
Hello, I implemented a camera switch with animations on who is talking. I made mine a complete working system. Is there a way to make my main dialogue component work to set each dialogue in the Object Blueprint? Have a way to set up each dialogue with all the settings in the blueprint?
@stealthgamesaremyjam145
@stealthgamesaremyjam145 3 дня назад
I'm not sure if you have already covered this, but I'm encountering an problem. When I engage in conversation with an NPC and I'm moving towards them, after the widget pops up I continue moving in the same direction and eventually away from the NPC. Do you know of a way to stop your character movement once the dialogue widget pops up?
@stealthgamesaremyjam145
@stealthgamesaremyjam145 3 дня назад
I found a way. In the "EventGraph" I have a cast to my player character BP, then in "OpenConversation" after adding the widget to viewport, I disable movement on my character. In "CloseConversation" before remove from parent, I set my movement mode to walking.
@silentwindstudio
@silentwindstudio 3 месяца назад
I have a weird bug related to the "RemoveDialogueProgress" function. I have it in several parts of my dialogue, but it only works if I haven't chosen any option, I believe something else needs to be done for it to work. For example, if I had a chain of 3 dialogs and at the end I remove the progress with value of 3, the dialog goes back to the first one, but if I click in the option, it will skip all dialogues and close it, as if it knew where to go. Any ideas?
@nixex8620
@nixex8620 5 месяцев назад
Hey thanks for the amazing turoial, I've just started with unreal 2 weeks ago and you explain things very well instead of just showing the code. I have a question regarding the auto progress, I want to make it possible to skip the timer when a player clicks so they don't have to wait for the auto progression timer if they want to skip it. The way I have it set up now is that the timer by event gets called at the end of the Update Dialogue Text function so that I still can get the continue button, the condition checks if the options array is 1 or less so that if I only use a continue option or no option it will still go into the timer by event. This does work and I can click the continue on an auto dialog and it will skip to the next dialogue, but I much rather would have it be done by pressing a button, for example if the player presses space, it skips the timer and goes on to the next dialog. I know there's a Clear and Invalidate timer by handle node that I can use but I don't know how I can use an input to then call that function on the widget. Not sure if there's an easy solution to that and I'm just overthinking a bit here or if it is a bit more complicated, thanks in advance.
@james_Branighan
@james_Branighan 5 дней назад
I need to create the same system just not based off of time of day. If there another way to input a variable ?
@xiaochenhou603
@xiaochenhou603 4 месяца назад
Hello, sir, thank you very much and I have used your dialogue system to build up a lot of things, such as replace the option text with an option struct, so that it can also contain a struct. However, I really wonder how to use the "updated" Enum, because I found when I add a node after that "pass through", actually that node will display twice, which means when comes to the previous dialogue, it will be triggered, and then, the dialogue before this node, it will be triggered again. I just want that node to be triggered once, so I wonder if the "updated" Enum could help?
@mpattym
@mpattym 4 месяца назад
The 'updated' pin on the enum switch will be called once when that bit of dialogue is first displayed. It'll only trigger again if the progress is cleared and the dialogue reaches the same point.
@xiaochenhou603
@xiaochenhou603 4 месяца назад
@@mpattym Cool! Got it! Thank you very much, sir!
@WeredDev
@WeredDev 7 месяцев назад
I'm creating a dialogue system in my game and I'm looking for some tutorials on RU-vid. I found yours and I am currently on the fourth part. It seems pretty good, but I am wondering why you didn't use a behavior tree to make it. Is it not good enough, or is it overkill, or is there another reason?
@mpattym
@mpattym 7 месяцев назад
The reason I don't use a BT for the dialogue is because they're not really suited for dialogue flow. Whilst I imagine it would be possible, it would get complicated very quickly. Especially if you're using a BT for AI behaviour in general.
@WeredDev
@WeredDev 7 месяцев назад
Ok, I see. Thank you very much for fast response. I'm back to your tutorial. :)
@Drachir08
@Drachir08 5 месяцев назад
I want to set the NPC name as ??? and when the player chats with the NPC to find out their name, only then do I want the speaker name changed to the given name in the Add Dialogue node. So far, I've added an bIsAffiliated? bool that is set to be true when the NPC gives the player their name. However, for it to work I have to create two separate Add Dialogues to a branch. Is there another way I can accomplish this with just one Add Dialogue node the speaker name?\
@tendowav
@tendowav 3 месяца назад
I'm having a weird problem that will happen when I revisit a part of the branch I've just gone through, where the widget doesn't appear but the mode still enters UI only, thus rendering me stuck. If you have any ideas about where I should look to troubleshoot, I'd love to hear your thoughts. Thanks
@tendowav
@tendowav 3 месяца назад
Okay upon writing this, i've realized that the issue occurs when I use SetDialogueBranch but not when I use RemoveDialogueProgress. Makes me think I'm not updating my progress correctly?
@mpattym
@mpattym 3 месяца назад
@@tendowav Its hard to say specifically without seeing it. All I can suggest is double checking how you've setup the 'Set Dialogue Branch' node. If you're still having issues, feel free to jump on my discord where you share some screenshots. :)
@evanwestermann1542
@evanwestermann1542 4 месяца назад
How could i make the actor component a variable that could be set at begin play. So that i could change dialog for each instance of the character
@mpattym
@mpattym 4 месяца назад
You would create a class variable of the dialogue component. You'll then be able to select any child BP of the dialogue component. You can then use this to add component by class to create the component on begin play.
@evanwestermann1542
@evanwestermann1542 4 месяца назад
@@mpattym Thanks
@lethiagames9208
@lethiagames9208 14 дней назад
@@mpattym Can you make a video explaining/demostrating please, I'm having a hard time.
@d1x0n.22
@d1x0n.22 5 месяцев назад
Hi, is it possible to make the conversation disabled until we reach the target point, because I made the NPC move around the map and I want the possibility of entering the conversation to be only at a given point
@mpattym
@mpattym 5 месяцев назад
Yea, there's a few way you could do it. You could add a var to the dialogue component called 'Enabled', when you go to start the conversation it check if this value is true, if not it will automatically end the conversation. You could then set this to false to begin with on your NPC and then set it to true when you want the player to be able to start the conversation. As an alternative, depending on the interaction system you're using, you could also just set the trace channel for interactable to be ignore on the NPC by default and then set it to block when you want to player to be able to interact with the NPC.
@david-scott-drums8684
@david-scott-drums8684 2 месяца назад
Has anyone tried adding controller input to the dialogue options. Im really struggling with it
@ЕвгенийГошенко
@ЕвгенийГошенко 6 месяцев назад
how to disable interaction with a character if you are already talking to him? so that there is no backlight and e button
@mpattym
@mpattym 6 месяцев назад
Assuming you're using the Modular interaction system, you could add a bool to the base called 'bEnabled?' and then use it in the interaction core. I would use a branch with this bool at the start of the 'Trace For Interact' function. If 'bEnabled' is true, it performs the traces as normal, if false and current hit actor is valid, connect it to the same logic that is used if it doesn't hit anything. It would then just be a case of setting the bool to false to disable it. When the conversation has ended, you would set the bool back to true. Hope this helps. :)
@aemchen
@aemchen 7 месяцев назад
Is it complicated to add a quest system to this dialogue system? because I rarely see tutorials that cover both dialogue and quest systems as one
@mpattym
@mpattym 7 месяцев назад
Quests would be its own system and have no bearing on the dialogue system. I've set one up a while ago and it was simple enough. From the dialogue perspective, I just had to get the quest manager I had on my player and add the quest. Of course there are different types of quest systems you can find so how you would do it can vary. I'll eventually do a quest system tutorial when I have time.
@aemchen
@aemchen 7 месяцев назад
Thank you for the answer! That's exactly what I was wondering. Your tutorials are great btw, keep it up!^^ @@mpattym
@FreakinMrGamer
@FreakinMrGamer 5 месяцев назад
@@mpattym looking forward for the quest tutorial ! huhu you're the best !
@creatingbettervisuals
@creatingbettervisuals 7 месяцев назад
How would I add a second NPC with the same dialogue system?
@mpattym
@mpattym 7 месяцев назад
Just add the same dialogue component onto the NPC. Each will have their own instance of it.
@creatingbettervisuals
@creatingbettervisuals 7 месяцев назад
Update, I've done it, so you duplicate the NPC_Mouse change skeletal mesh and texture then duplicate AC_Dialogue and add that dialogue onto the 2nd NPC and then you can edit it without changing the original
@longfish5174
@longfish5174 7 месяцев назад
I need a piece of dialogue that activates once you overlap and can’t be activated more than once
@mpattym
@mpattym 7 месяцев назад
That would just be a case of adding a collision volume to the NPC (sphere, box or capsule) and calling the open dialogue function when the player overlaps it. You would need to check the overlap is the player character and possibly have a bool to tracks if the dialogue has already been triggered. When the dialogue is closed, you would set it to true so it won't trigger again.
@jeyea4690
@jeyea4690 7 месяцев назад
Hi, how to set up a cinematic camera during a dialogue. it can be one camera that is looks at a NPC
@mpattym
@mpattym 7 месяцев назад
The simplest way would be to add a cinematic camera to the NPC character BP and during the interact that opens the conversation, set the view target to the NPC. This should switch the camera to use the one in the NPC. When the conversation is closed, switch back to the one in the player character. Of course there are pros and cons to this method but it is the simplest way.
@benfrenchman
@benfrenchman 2 месяца назад
@@mpattym I'm currently attempting this, and had no problem adding a cine camera to the NPC... but setting the view target is giving me a real headache. There doesn't seem to be any such option!
@benfrenchman
@benfrenchman 2 месяца назад
I managed to fix the problem (I unchecked 'context sensitive' in the list of actions), and successfully set up a conversation camera. Yay! However, I really can't work out how to switch back to the previous camera...
Далее
Eminem НА РУССКОМ💔
00:30
Просмотров 444 тыс.
Собираю Маню к осени ✨
00:48
Просмотров 1,2 млн
Outsmarted 😂
00:20
Просмотров 6 млн
UE5 | Ultimate Dialogue System - Tutorial - Pt1
29:07
What Game Developers can Learn from id Tech
39:58
Просмотров 32 тыс.
I Made the Same Game in 8 Engines
12:34
Просмотров 4,1 млн
UE5 | Actor Manager System - Tutorial
24:41
Просмотров 1,5 тыс.
UE5 - Multiplayer Interaction system Pt 1
24:23
My Wife and I Made an Indie Game and it Made Millions!
14:45
UE5 | Epic Fixed Camera System - Tutorial - Pt1
30:15
Просмотров 2,4 тыс.
When Gamers Turn Into 5-Star Voice Actors! #2
12:12
Просмотров 643 тыс.
Eminem НА РУССКОМ💔
00:30
Просмотров 444 тыс.