Where to begin?

Announcements, support questions, and discussion for the Dialogue System.
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: Where to begin?

Post by Tony Li »

Glad to help! Tackle one thing at a time, and if you have a question just let me know here. I'll be finishing work for the night soon, but I'll check back first thing in the morning.
Hereder
Posts: 76
Joined: Mon Dec 21, 2020 2:53 am

Re: Where to begin?

Post by Hereder »

Hereder wrote: Wed Dec 23, 2020 1:34 amI actually made the Localization work, its damn perfect - just need to figure out how to change language via my own Start Menu....
Awesome! Great job. In your start menu, hook up your UI buttons to the Dialogue Manager's DialogueSystemController.SetLanguage method.
See: Localization - How To Check And Switch Languages
[/quote]

Hi again.
So I've sitting all day and fixed most of the things now. I only have a question about animations during conversations.,
I searched the forum and all the "tutorials" I see only show how to animate the Main Character with a simple Blink Sprite located as a child Underneath the "Portrait Image" in the Subtitle Panel.
I was thinking... How does that work for the NPC's in my game? If I have 2 npc next to each other they need different animations/Sprites (Also I'm gonna make more advanced animations with 20ish sprites)...

Is it even possible? Or can I Link "Subtitle Panels" to different NPCs?
Atm, I have "Subtitle Panel 0" & "Subtitle Panel 1" (Player & NPC) so my player show up on the Left side of the scene each time and an NPC on the right side. But I'm using Portrait Images atm, so your script fetches a single picture. But If I want to Animate a bunch of NPCs I have to place all sprites underneath "Subtitle Panel 1 -> Portrait Image" and animate them. But how can I make sure the right NPC show up?

I tried to fix this in a different way but got stuck, by activating a GameObject on the scene while conversations are playing.
So if I go to my NPC Gameobject and "Add Action" inside the "Dialouge System Trigger"-script there is an option "Set GameObject Active/Inactive" - I did that and it works... ish... It manage to turn the UI Animation On, when I Start a conversation, but It wont turn it off when the conversation is over... Is there a way to turn objects on/off via the "Dialouge System Trigger" and that way circumvent the Animation problem I find by using the Subtitle Panel 2?

Or, is it possible to assign Actors to specific Subtitle Panels?
or is there a tutorial on how to animate both player and Npcs?
Cheers and marry chistmas!
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: Where to begin?

Post by Tony Li »

Merry Christmas!

You can assign actors to specific subtitle panels. Let's tackle that first, without animation.

Assign Actors to Subtitle Panels
  • Add a Dialogue Actor component to each actor's GameObject.
  • Set the Actor dropdown to the corresponding actor in your dialogue database.
  • Set Dialogue UI Settings > Subtitle Panel Number to the subtitle panel that you want the actor to use.
You can override this on a per-node basis by including the [panel=#] markup tag in the node's Dialogue Text. For example, to make an NPC appear in panel 3 for a single node, include "[panel=3]" in the node's Dialogue Text.

You can also override it for the remainder of the conversation (and beyond, as it sets the Dialogue Actor's Subtitle Panel Number) by using the SetPanel() sequencer command. (Note: It takes effect in the next line that the actor speaks.) For example, to make the player appear in panel 2 from now on, set the Sequence field to:

Code: Select all

SetPanel(Player, 2); {{default}}
The {{default}} tells the node to also play the default sequence (e.g., wait for a duration to give the player time to read the subtitle). (More info: Cutscene Sequence Tutorials)


Animating Portraits

Visual novel-style games with large portraits frequently use a third party character system called Spine. The Dialogue System has a Spine Integration package. If you have access to Spine, you might find that the easiest way to do it.

Otherwise, you can do it straight in the Dialogue System. See: How To: Animate Portrait Images. The bottom of that article has a link to an example package.
Hereder
Posts: 76
Joined: Mon Dec 21, 2020 2:53 am

Re: Where to begin?

Post by Hereder »

Tony Li wrote: Thu Dec 24, 2020 9:49 am

Add a Dialogue Actor component to each actor's GameObject.
Set the Actor dropdown to the corresponding actor in your dialogue database.
Set Dialogue UI Settings > Subtitle Panel Number to the subtitle panel that you want the actor to use.

Thanks!
It seems to work.. ish.. But the dialogs falls back to the Default NPC Subtitle Panel when I talk to a new NPC.
Or, it keep showing up the previous Image from the previous conversation. I tried both with "Subtitle Panel Number" and "Custom Subtitle Number" and dragged in the correct Subitle Menu.
It is as if the old coversation is not over/it re-load it when I start a new conversation... Any idea what could cause this?
I also tried to Delete the Default NPC Subtitle Panel inside the Stardard DialougeUI.

Spine is great!
But I alreay have ALL animations done (With Unity) :S SO I was hoping I could pop them in as GameObject-children in the Subtitle Panels. And then activate them when the conversation starts and deactivate them when the conversation finish..
It seem to work / It should work, If only I can figure out how to make sure the previous conversations remain OFF when talking to a new NPC... :S

It looks like this... They both stay active :S Any idea what causes this?
Image
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: Where to begin?

Post by Tony Li »

Hi,
Hereder wrote: Fri Dec 25, 2020 7:10 amIt seems to work.. ish.. But the dialogs falls back to the Default NPC Subtitle Panel when I talk to a new NPC.
Or, it keep showing up the previous Image from the previous conversation.
Let's try to get this working first, and then focus on portrait images if they don't automatically fall into place when we fix this.

During play, keep an eye on the Console window for any warnings.

Set the subtitle panels' Visibility dropdowns to Always Once Shown. Tick Deactivate On Hidden.

Check each characters' Dialogue Actor component. Make sure the subtitle panel number matches the correct panel in the dialogue UI's Standard Dialogue UI component > Conversation UI Elements > Subtitle Panels numbers.

You may find it helpful to temporarily set the Dialogue Manager's Other Settings > Debug Level to Info. This will log a lot of info to the Console window. Look for lines similar to:

Dialogue System: character says 'text'

If 'text' is not blank, the line will be shown in a subtitle panel. This may help you trace through who is saying what.

At any time, feel free to send a reproduction project to tony (at) pixelcrushers.com. I'll be happy to take a look. (All customer files are handled confidentially, and adult content is fine.) Or, if you'd like me to send you an example scene that demonstrates something that's not working in your scene, let me know.
Hereder
Posts: 76
Joined: Mon Dec 21, 2020 2:53 am

Re: Where to begin?

Post by Hereder »

Tony Li wrote: Fri Dec 25, 2020 9:11 am Hi,
Hereder wrote: Fri Dec 25, 2020 7:10 amIt seems to work.. ish.. But the dialogs falls back to the Default NPC Subtitle Panel when I talk to a new NPC.
Or, it keep showing up the previous Image from the previous conversation.
Let's try to get this working first, and then focus on portrait images if they don't automatically fall into place when we fix this.

During play, keep an eye on the Console window for any warnings.

Set the subtitle panels' Visibility dropdowns to Always Once Shown. Tick Deactivate On Hidden.

Check each characters' Dialogue Actor component. Make sure the subtitle panel number matches the correct panel in the dialogue UI's Standard Dialogue UI component > Conversation UI Elements > Subtitle Panels numbers.

You may find it helpful to temporarily set the Dialogue Manager's Other Settings > Debug Level to Info. This will log a lot of info to the Console window. Look for lines similar to:

Dialogue System: character says 'text'

If 'text' is not blank, the line will be shown in a subtitle panel. This may help you trace through who is saying what.

At any time, feel free to send a reproduction project to tony (at) pixelcrushers.com. I'll be happy to take a look. (All customer files are handled confidentially, and adult content is fine.) Or, if you'd like me to send you an example scene that demonstrates something that's not working in your scene, let me know.


Hi, thanks for the help.
It works if I don't assign Subtitle Panel Number to each NPC and let everything run through the Portrait picture I assign on the Dialouge Actor. Right Portrait appear to the right conversation.
But As soon as I assign a custom "Subtitle Panel Number" to a character / Or Assign them to Panel 1, 2. 3 etc. They remain active after talking to the Second NPC. And If I go back to the first NPC that portrait is gone (Its Aplha is set to 0)

Unless you can come of with something on top of your head, I could explain what I want and ask you to send me an exampe :D
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: Where to begin?

Post by Tony Li »

If you don't mind explaining what you need the UI to do, I'll be happy to put together an example.
Hereder
Posts: 76
Joined: Mon Dec 21, 2020 2:53 am

Re: Where to begin?

Post by Hereder »

Tony Li wrote: Sun Dec 27, 2020 8:53 am If you don't mind explaining what you need the UI to do, I'll be happy to put together an example.
Sure!
So what I want to is: TURN OFF all Subtitle Panels except the one I'm talking too.
In this screenshot I've assigned the Player to Subtitle panel 0 (But I understand its assigned to Subtitle Panel 1 as default...)
But otherwise this Screen shoot show what I want to happen while Talking to Abby, and then off coruse, when I'm done talking to her, I want to talk to the next NPC but this time around Abbys Subtitle Panel should remain OFF. And then I should be able to walk back to Abby and talk again, this time around the other Subtitle Panels should be turned off, etc etc.
On top of this I want to make sure that the Player only have a "Continue" button, since there are no choices during dialog. So the dialogue goes back and forth between the Payer and the NPC. I think that sums it up!

User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: Where to begin?

Post by Tony Li »

Does each conversation only involve the player and one NPC? For example:
  • Abby's conversation shows the player in panel 0 and Abby in panel 1. Other panels are hidden.
  • Alessa's conversation only show the player in panel 1 and Alessa in panel 2. Other panels are hidden.
  • Albert's conversation only show the player in panel 1 and Albert in panel 3. Other panels are hidden.
User avatar
Tony Li
Posts: 21925
Joined: Thu Jul 18, 2013 1:27 pm

Re: Where to begin?

Post by Tony Li »

Here's an example scene:

DS_VNExample2_2020-12-27.unitypackage

There was some funny business going on with the default animation and canvas groups, but the canvas groups on the subtitle panels are extraneous, so I just got rid of them instead of adjusting the animations.

Abby's conversation only involves Abby and the player.

Albert's conversation involves Albert, Abby, and the player. It just occurred to me that you said you want only one NPC visible at a time. I think in the example Albert goes visible first, then when Abby joins the conversation Albert stays visible. If that's not what you're going for, let me know.
Post Reply