Hey guys,
i just reached 1000 subscribers on my youtube channel (UnrealGaimeDev - YouTube) and so i decided to give out a project of mine for free.
It is a dialogue system very similar to those used in modern role-playing games like for example The Witcher. Here is a video showing you how to use the system (download link in the video description):
Edit:
Scroll down to see a video on how to migrate the system nto your own projects.
And here are the features of the system:
*- unique walking path for npcs
simple messages for npcs will be displayed above their heads
*- every dialogue message contains an audio file and a spoken text
npc can have multiple dialogue messages to choose from
the next message can either be selected in an order or randomly
also includes “important” npcs
dialogue for impotant ones looks different
for all important dialogues you can define:
-the assigned audio file
- the spoken text
- the name of the sender
- whether or not this message can be skipped using spacebar
- after how many seconds it can be skipped
- whether or not the message should be displayed from a different camera angle (used for cinematic story telling)
- the camera from which this message is displayed
- the time to interpolate between the current and next camera (used to create smooth camera transitions)*
will this be easily adaptable for a point & click system ?
and will it be further developped in the future ? Will you support it ?
it would be a nice feature if you could read/import all dialogue texts from an external document e.g.
so you could edit all dialogs in one document and dont have to edit each of them individually
Of course it can be easy used in a point and click system since the only thing that has to change is the player controller/player character class. I am not sure whether i will support it since i am doing the quest series right now and still have to help people understand my inventory system so i am extremely busy right now. I might do a video about the external document since that is a really good idea.
How do I even implement this in my project? How do I add it for it to function? I’ve tried with migrate but it doesn’t work at all that way…do I have to make those variables or?
You must modify the blueprints to fit in your actual project, because right now, the BP uses a Third Person BP as a base and a generic NPC (Master_NPC) to work.
yeah, I am still not really sure how to do it…some guidelines would be great, or follow-up video that tells exactly how to do it so there is no confusion anymore! ^^
You need to add a variable to the s_DialogueInfo which should be of the type AnimationMontageReference. Afterwards go to the MasterNpc class. Open the AddCustomImportantDialogue function and after switching to the new camera you would get the anim montage of the dialogue struct and play that animation.
You dont need modifications for that. Just switch to a camera that shows the player and type in the player name for the name of speaking person in the dialogue info.
I actually showed how to do decision and react to the chosen option in the video.
After releasing the dialogue system as a 1k subscribers special, I got a lot of questions on how to integrate the system into another project. Here is a video about how to do that using the first-person template as an example (but it works the same way with any other template or project).
Sooo… this is really weird but my NPCs seem to kind of get stuck where they will have a VERY narrow field in which you can initiate dialouge with them. I can’t stand behind them for instance. And they only rotate to some degree sometimes.
Any idea where I can look and what I can post your way to see if we can figure this out?
How you can interact with enemies is defined in the third person character so you might want to take a look at the interactCapsule in the third person char bp.
Thank you for releasing this nice little dialog system, will this suit games with alot of dialog? Like Kotor? or just sutiable for games
that use limited dialog in them? I’m not sure what the capacity is, can it support data structs tables for dialog ect.