x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Office Holiday

Epic Games' offices will be on holiday from June 22nd to July 7th. During this period support will be limited. Our offices will reopen on Monday, July 8th. 

NPC Dialogue System

I'm trying to think of how to tackle a lot of written dialogue between a character and various NPCs. After some thought on the matter I decided that my blue print design for said dialogue would be as such:

PlayerCharacter (PC) Blueprint(BP):

When pressing the action button within range of an NPC that can be spoken to, and is not currently in dialogue with the PC, the PC BP fires off a request to initiate dialogue. If the NPC is in dialogue with the PC it will instead fire off a request to move forward in the dialogue.

When pressing the jump button within range of an NPC that the PC is currently in dialogue with the PC BP will fire off a request to move backwards in the dialogue.

When pressing the cancel button within range of an NPC that the PC is currently in dialogue with the PC BP will fire off a request to close all dialogue with that NPC.

I used requests as a way to divorce the PC BP from any kind of direct interaction so I would only have the bare minimum of logic required inside of the BP.

NPC BP:

When receiving a request to open dialogue the NPC BP will, if it has any, open its very own dialogue widget with all possible conversation variations.

When receiving a request to step forward in dialogue the NPC BP will call the function inside of its personal dialogue widget to move forward in the dialogue.

Step backwards and cancel dialogue use the same functionality as step forwards with their own respective functions inside of the NPC specific dialogue widget.

NPC Dialogue Widget:

Will contain every bit of dialogue possible between the NPC and PC, including the logic tree for determining what piece of dialogue to display next based on an answer chosen previously.

When receiving the step forward, backward, or cancel command from its corresponding NPC BP the dialogue widget will perform the respective action.

I hope you're still with me, because now I can finally ask my question:

With the way I have it set up now, every unique NPC has its own BP and dialogue Widget. The decision to have them all have their own dialogue widget was simply so I could keep the dialogue as neat as possible. I tested having just one dialogue widget and upon getting to three NPCs with only straight forward dialogue (no choices to be made changing dialogue) I realized it just looked really cluttered and had a feeling that it would affect my ability to make a widget that was easy to follow and not all over the place.

What this means is that for every unique NPC BP I have to go in and make them also call a dialogue widget unique to them. This means creating a dialogue widget for every unique NPC (and dialogue widgets that can be shared by common NPCs).

While I am absolutely happy to set about this task, I had a nagging feeling that such repetition on my part might mean I'm overlooking a tool (or a separate way of setting it all up) that would be easier or faster.

So, to make a very short question super long: Is this a good way to go about what I have in mind or am I overlooking something/looking at it completely wrong?

Product Version: UE 4.16
Tags:
more ▼

asked May 28 '17 at 06:58 AM in Blueprint Scripting

avatar image

Tw1tchy3y3
11 3

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

0 answers: sort voted first
Be the first one to answer this question
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question