Need a few pointers

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
TheCyBee
Posts: 2
Joined: Thu Jul 25, 2024 9:21 pm

Need a few pointers

Post by TheCyBee »

I am new with the Dialogue System and to Dialogue Systems in general.

I also have the Quest Machine, are they usable together? What should I know before starting?

I am trying to achieve the dialogues to have a close up to a character's face during their speech, or just a bubble on top of them when simpler talks. Is this doable? Some may have voice over, also doable? And what about modifying for Quest HUD and Log to show up only in their respective "Screens" through UI? And how to take out/modify that UI when in proximity of the NPC to show up as a bubble in their head with an animated sprite instead?

My game will also be a turn based RPG. Should I implement the battle outside the dialogue system or do a mix with the messages on what happened between turns being from the dialogue system? Any tips for this?

And for localization, using Unity's or this, which is usually faster/better? Why? Few tips here too?

I am very confused in where I should keep everything on the Dialogue System and where not, and all I can do with it and how to get started with setting it all and modifying to my needs. And yes, I am reading the manual and watching the videos, I somehow been having a bit trouble on grasping these concepts, I think.

Another thing, is there a way to add the dialogue to have a text speed, need to click at the end between messages at some dialogues, and a skip dialogue button?

I know it's a lot of questions but yeh, I am a bit lost, am trying to figure it out as I go through stuff but it's a lot.
User avatar
Tony Li
Posts: 22108
Joined: Thu Jul 18, 2013 1:27 pm

Re: Need a few pointers

Post by Tony Li »

Hi,

> I also have the Quest Machine, are they usable together? What should I know before starting?

Yes, they're usable together. I recommend getting the Dialogue System working in your project first, although don't bother with the Dialogue System's quest system if you're planning to use Quest Machine for quests. The Dialogue System has a bigger learning curve since it has so many features, so it's good to get a handle on it before adding in Quest Machine.


> I am trying to achieve the dialogues to have a close up to a character's face during their speech, or just a bubble on top of them when simpler talks. Is this doable?

Yes, both are doable. For overhead bubbles, see How To: Show Overhead Conversation Bubble Text.

The Dialogue System has a cutscene sequence system with several tutorial videos. Each line of dialogue (called a dialogue entry) can run its own short sequence to do things like move the camera, play animation, etc.


> Some may have voice over, also doable?

Yes. The cutscene system also has really good support for voice over.


> And what about modifying for Quest HUD and Log to show up only in their respective "Screens" through UI?

If you're planning to use Quest Machine for quests, see How To: Put Journal UI In Your Own Menu.


> And how to take out/modify that UI when in proximity of the NPC to show up as a bubble in their head with an animated sprite instead?

The Interaction Tutorial may help here.


> My game will also be a turn based RPG. Should I implement the battle outside the dialogue system or do a mix with the messages on what happened between turns being from the dialogue system? Any tips for this?

It's really up to you. Get familiar with the systems first. Some games, such as Disco Elysium and Kowloon's Curse, do battle entirely in conversations. Others, like Die Skatinsel, show barks (one-off lines of dialogue) during battles that happen outside of conversations.


> And for localization, using Unity's or this, which is usually faster/better? Why? Few tips here too?

It will depend on your overall workflow. I prefer to use the localization that's built in the Dialogue System and Quest Machine. It outputs spreadsheets that you can send to translators and them import back into your project. However, the i2 Localization and Unity Localization Package integrations also work.


> Another thing, is there a way to add the dialogue to have a text speed, need to click at the end between messages at some dialogues, and a skip dialogue button?

Yes. See the built-in dialogue UI prefabs for examples. To tell the Dialogue System to wait for the player to click to continue, inspect the Dialogue Manager GameObject and set Display Settings > Subtitle Settings > Continue Button to Always. You can also set this on a per-conversation basis by inspecting the conversation's properties (Menu > Conversation Properties in Dialogue Editor) and ticking Override Display Settings. See also: How To: Set Up Continue Button Typewriter Fast Forward.

The Dialogue System is capable of quite a lot, but this also means it may take a bit of time to get a grip on all of its features. If any specific questions come up, don't hesitate to ask here on the forums.
TheCyBee
Posts: 2
Joined: Thu Jul 25, 2024 9:21 pm

Re: Need a few pointers

Post by TheCyBee »

First of all, thank you so much for the attention and care you put in this. Not only speed on answers but the care for them.

> I also have the Quest Machine, are they usable together? What should I know before starting?
> And what about modifying for Quest HUD and Log to show up only in their respective "Screens" through UI?

Ok, will get back here if I have doubts when I get there. Will take a long time for sure.

> I am trying to achieve the dialogues to have a close up to a character's face during their speech, or just a bubble on top of them when simpler talks. Is this doable?

Ok, will check if I should then just use Sequences always or do a custom code later on.

> Some may have voice over, also doable?

> And how to take out/modify that UI when in proximity of the NPC to show up as a bubble in their head with an animated sprite instead?

So, I went through the full Interaction part of the manual. Got it working at some ways, but none really definitive because they all raised more questions.

Considering the case that a "hi" pops up from the cube, I did the same in 3d, used Trigger Enter to turn on the Sprite and a Trigger Exit to turn off the sprite. It auto turns off when it starts, but I got the issue of not knowing how to use the "Continue" button when it's a balloon like that or where to assign a key to the "Continue" as a shortcut.

Also, the fact that I had to use a GameObject on and off for the sprite renderer instead of using Bark is another thing I wanted to check. Because I could change the bark ui for this object to be the Sprite, but I would want it to stay there until the character left the area or the chat started - and got back once the chat ends. I would also want it to, sometimes, use normal Bark messages, so I would need both versions of Bark UI, and there is where this comes as an issue for me.

Another thing in this is that the GameObject on and off doesnt make it look to the camera always, so there is also that. Any idea on how this could better be approached to follow the structure of how Dialogue System uses the codes? Or should I just go for custom code here?

> My game will also be a turn based RPG. Should I implement the battle outside the dialogue system or do a mix with the messages on what happened between turns being from the dialogue system? Any tips for this?

My question with these would be more in line of putting the possible actions and the description of what happened like a Pokémon game would do, for example. If that would be better to use the Dialogue System itself or not. But am testing a few things to see if I might call the system through code when needed. Am checking a mix of Custom Code for this.

> And for localization, using Unity's or this, which is usually faster/better? Why? Few tips here too?

Thanks, will keep this in mind!

> Another thing, is there a way to add the dialogue to have a text speed, need to click at the end between messages at some dialogues, and a skip dialogue button?

Am giving this a read just now and the Continue Without UI Button to see if I can get these going. Thanks again for the help so far!

One more thing, is there a way to change the order of the Actions on Dialogue System Trigger? I tried to change Set GameObject as Active/Inactive before Start Conversation but cant change the order. And leaving stuff empty seems to erase if I leave and come back, but I cant erase Actions otherwise, after adding them. A bit of the learning curve here.

Another doubt that showed up. I have registered an Input to the DialogueSystem. Does it auto unregisters if I change my ActionMap? Because I switch the maps depending on certain situations, which would require this to not register if not in the specific map it got the register button from. So I need to know if I have to add more to this as well. And the solution would be Unregister or is there a way to tell it to not use for a while instead? (probably the second would be less costly)
User avatar
Tony Li
Posts: 22108
Joined: Thu Jul 18, 2013 1:27 pm

Re: Need a few pointers

Post by Tony Li »

Hi,

I recommend doing one thing at a time. If you have questions about it, please ask. Otherwise, once you get it working, move on to the next thing.

> I got the issue of not knowing how to use the "Continue" button when it's a balloon like that or where to assign a key to the "Continue" as a shortcut.

Your bubble should have a StandardUISubtitlePanel component. Add a UI Button to the bubble, and assign it to the StandardUISubtitlePanel component's Continue Button field. If you want it to fast forward the typewriter, see the configuration of the continue buttons on any of the dialogue UI prefabs that ship with the Dialogue System. They use StandardUIContinueButtonFastForward components.

You can use barks and subtitle panels on the same character. Barks last until their duration ends, or the player clicks continue (if you've ticked the bark UI's Wait For Continue checkbox), or until the bark's Sequence ends (if you've ticked Wait For Sequence). Or you can manually hide the bark UI by calling its Hide() method. For example, you could add a trigger collider and a Trigger Event component and configure its OnTriggerExit event to call Hide().


> Another thing in this is that the GameObject on and off doesnt make it look to the camera always, so there is also that.

Do you want the bubble to always face the camera? If so, add an AlwaysFaceCamera component.


> Any idea on how this could better be approached to follow the structure of how Dialogue System uses the codes? Or should I just go for custom code here?

I'm not sure exactly what you want to do. But if you ever need to write code to work with the Dialogue System, my general advice is do not directly modify the Dialogue System's source code. You'll lose your modifications when you update the Dialogue System. Instead, use C# events and special script methods (see here) or register your C# methods with Lua (here), or write a custom sequencer command (here).


> One more thing, is there a way to change the order of the Actions on Dialogue System Trigger?

No, it's a fixed order in the current versions of the Dialogue System.


> Another doubt that showed up. I have registered an Input to the DialogueSystem. Does it auto unregisters if I change my ActionMap?

No, please use InputDeviceManager.UnregisterInputAction() when you need to.
Because I switch the maps depending on certain situations, which would require this to not register if not in the specific map it got the register button from. So I need to know if I have to add more to this as well. And the solution would be Unregister or is there a way to tell it to not use for a while instead? (probably the second would be less costly)
Post Reply