Help me understand (and solve weird issues)
Posted: Thu Apr 29, 2021 10:55 am
Hello Tony,
I'm Jonas and our company has acquired the Dialogue system and I've watched all of the video tutorials, looked into the documentation and tinkered around with it for 2 days. The system seems very robust, has tons of features and overall it's a well developed tools.
However, I feel like the user manual leaves out a lot (most likely due to the overall complexity of the system) and some main concepts remain unanswered. So I'm hoping you can clear some things up for me.
The prototype I'm working on is a 3D adventure, and for now I am looking to print the dialogue subtitles into speech bubbles (in the future the subtitle will be printed elsewhere, facial animation and voiceovers will be added - Entrytags and sequence commands seem really great for this). I need to make conversations happen among NPCs in the background as well as other conversations with the player and change the flow based on player decisions.
1. First issue I encountered happened when I tried to have two NPCs say their lines at the same time. So far, through the method of scientific poking, I have determined, that I can't have two characters speak their lines from the same conversation set (correct me here if I'm wrong), because a conversation is a linear sequence of phrases spoken between one or more characters and only one line can be displayed at a time. So I must treat the lines of the secondary character as a separate conversation.
Imagine the following hypothetical scenario: Player and A are having a conversation X (two adults having a serious talk), meanwhile in the background B and C are having a secondary separate conversation Y (imagine BC are 2 obnoxious children). BC conversation becomes annoying and distracting so an option is presented to the Player to interrupt the children, the player can choose to continue their current conversation or to snap at B and C. In response to this I want B and C to react differently but at the same time. What would you suggest as the best approach to set up such a scenario using your system?
So far I am thinking of these options: A) use sequence area to send a message to end conversation Y and separately trigger apologetic barks for B and C, then continue conversation X. This might not be appropriate if I want B and/or C to talk back and present new options for the player. This would now be treated as a new back and forth conversation between player and BC. so... B) End conversation Y, end conversation X part 1, Start conversation Player-BC (yet B and C still cannot talk at the same time, over each other). If I'm looking to change the dialogue of A based on the result of conversation Player-BC then I would change a variable and start conversation X part 2.
I'm sure there could be other ways to solve this, but what I'm really asking about is the intended scope of the "conversation" object. Intuitively I want to treat this entire scenario as a single conversation between 4 actors, yet I don't see a way how I can have two separate branches of the conversation running at the same time.
2. I've gotten really quite confused about the concept of "Dialogue UI". Not even sure how start asking the question... Maybe it will help if you could explain this strange behaviour:
I am using the Bubble Subtitle Example 2 from the extras page. I enabled Allow Simultaneous Conversations in the Dialogue System Controller, renamed the player object to NPC1 and duplicated it (renaming the duplicate as NPC2). Then in the Bubble Subtitle Example database i created two conversations that are copies of the original New Conversation 2 and changed the actor and conversant to NPC1 and NPC2 respectively. Both characters have Dialogue Actor and Dialogue System Trigger components set to NPC1 and NPC2 respectively. When I run this setup both speech bubbles appear OnStart as intended, but one of them blinks and disappears for an unknown reason... See here:
This is where I become confused and start looking for info in the manual and the forums. I stumble upon a forum post where it is advised to use the OverrideDialogueUI component on one of the actors. And it works. Both bubbles are displayed now. But why? The system is instantiating separate Bubble UI Subtitle panels above character heads already so why do I need a Basic Standard Dialogue UI (two of them at that) at all?
I see how when working on games of a different type (JRPG or a visual novel) all of the UI elements in the Standard Dialogue UI prefab would be useful, but in our case this seems excessive, we don't need the UI (in the classic sense at all), so I'm looking for a way to just isolate the functionality that will be useful for our game. Do you have any advice on how to do it? Assigning an OverrideDialogueUI component to each character and creating an instance of the UI prefab for each just in case it so happens that two conversations happen at the same time in the game seems too wasteful, especially, if these UI prefabs are not even used at all... Maybe there's a way to bypass the default UI, so that the conversations lines are only sent to the speech bubbles?
3.
How does the continue button work? It seems to be unrelated to the conversation that the bubble instance is showing. How can I set it up so that the continue button affects only the conversation it is related to?
4. Somewhere in the documentation or the forum I've read your example on reusing dialogue for shopkeepers. This is great and very practical! I wanted to try this out:
and it seems to work great as long as the same dialogue is not triggered at the same time. When trying this out, I expected the dialogue on the duplicate to start from the beginning without having an effect on the dialogue of the original. Seems I was too naive to expect that , but let's say i would want to have multiple characters (maybe a crowd of cultists) repeating the same words with some delay, how would you go about setting that up? Or is such behaviour beyond the scope of this plugin?
I am sorry for this wall of text, but I am just trying to understand this system as well as I can because we are aiming to base our game around it. I can see how much work has been put into it, yet the tutorials and the documentation hasn't helped to understand it to the extent I require. Really looking forward to your reply.
I'm Jonas and our company has acquired the Dialogue system and I've watched all of the video tutorials, looked into the documentation and tinkered around with it for 2 days. The system seems very robust, has tons of features and overall it's a well developed tools.
However, I feel like the user manual leaves out a lot (most likely due to the overall complexity of the system) and some main concepts remain unanswered. So I'm hoping you can clear some things up for me.
The prototype I'm working on is a 3D adventure, and for now I am looking to print the dialogue subtitles into speech bubbles (in the future the subtitle will be printed elsewhere, facial animation and voiceovers will be added - Entrytags and sequence commands seem really great for this). I need to make conversations happen among NPCs in the background as well as other conversations with the player and change the flow based on player decisions.
1. First issue I encountered happened when I tried to have two NPCs say their lines at the same time. So far, through the method of scientific poking, I have determined, that I can't have two characters speak their lines from the same conversation set (correct me here if I'm wrong), because a conversation is a linear sequence of phrases spoken between one or more characters and only one line can be displayed at a time. So I must treat the lines of the secondary character as a separate conversation.
Imagine the following hypothetical scenario: Player and A are having a conversation X (two adults having a serious talk), meanwhile in the background B and C are having a secondary separate conversation Y (imagine BC are 2 obnoxious children). BC conversation becomes annoying and distracting so an option is presented to the Player to interrupt the children, the player can choose to continue their current conversation or to snap at B and C. In response to this I want B and C to react differently but at the same time. What would you suggest as the best approach to set up such a scenario using your system?
So far I am thinking of these options: A) use sequence area to send a message to end conversation Y and separately trigger apologetic barks for B and C, then continue conversation X. This might not be appropriate if I want B and/or C to talk back and present new options for the player. This would now be treated as a new back and forth conversation between player and BC. so... B) End conversation Y, end conversation X part 1, Start conversation Player-BC (yet B and C still cannot talk at the same time, over each other). If I'm looking to change the dialogue of A based on the result of conversation Player-BC then I would change a variable and start conversation X part 2.
I'm sure there could be other ways to solve this, but what I'm really asking about is the intended scope of the "conversation" object. Intuitively I want to treat this entire scenario as a single conversation between 4 actors, yet I don't see a way how I can have two separate branches of the conversation running at the same time.
2. I've gotten really quite confused about the concept of "Dialogue UI". Not even sure how start asking the question... Maybe it will help if you could explain this strange behaviour:
I am using the Bubble Subtitle Example 2 from the extras page. I enabled Allow Simultaneous Conversations in the Dialogue System Controller, renamed the player object to NPC1 and duplicated it (renaming the duplicate as NPC2). Then in the Bubble Subtitle Example database i created two conversations that are copies of the original New Conversation 2 and changed the actor and conversant to NPC1 and NPC2 respectively. Both characters have Dialogue Actor and Dialogue System Trigger components set to NPC1 and NPC2 respectively. When I run this setup both speech bubbles appear OnStart as intended, but one of them blinks and disappears for an unknown reason... See here:
This is where I become confused and start looking for info in the manual and the forums. I stumble upon a forum post where it is advised to use the OverrideDialogueUI component on one of the actors. And it works. Both bubbles are displayed now. But why? The system is instantiating separate Bubble UI Subtitle panels above character heads already so why do I need a Basic Standard Dialogue UI (two of them at that) at all?
I see how when working on games of a different type (JRPG or a visual novel) all of the UI elements in the Standard Dialogue UI prefab would be useful, but in our case this seems excessive, we don't need the UI (in the classic sense at all), so I'm looking for a way to just isolate the functionality that will be useful for our game. Do you have any advice on how to do it? Assigning an OverrideDialogueUI component to each character and creating an instance of the UI prefab for each just in case it so happens that two conversations happen at the same time in the game seems too wasteful, especially, if these UI prefabs are not even used at all... Maybe there's a way to bypass the default UI, so that the conversations lines are only sent to the speech bubbles?
3.
How does the continue button work? It seems to be unrelated to the conversation that the bubble instance is showing. How can I set it up so that the continue button affects only the conversation it is related to?
4. Somewhere in the documentation or the forum I've read your example on reusing dialogue for shopkeepers. This is great and very practical! I wanted to try this out:
and it seems to work great as long as the same dialogue is not triggered at the same time. When trying this out, I expected the dialogue on the duplicate to start from the beginning without having an effect on the dialogue of the original. Seems I was too naive to expect that , but let's say i would want to have multiple characters (maybe a crowd of cultists) repeating the same words with some delay, how would you go about setting that up? Or is such behaviour beyond the scope of this plugin?
I am sorry for this wall of text, but I am just trying to understand this system as well as I can because we are aiming to base our game around it. I can see how much work has been put into it, yet the tutorials and the documentation hasn't helped to understand it to the extent I require. Really looking forward to your reply.