How to make many characters(max is the number of subtitles) appear in one conversation node?

Announcements, support questions, and discussion for the Dialogue System.
shortlin
Posts: 73
Joined: Wed Jun 03, 2020 1:52 am

How to make many characters(max is the number of subtitles) appear in one conversation node?

Post by shortlin »

I tried to use sequence command "SetPanel" in a node before a node which I want many characters appeared.And some chacraters which were not the actor or conservant,they would appear,but some would not.Or I misunderstand the using of SetPanel?

The characters were all have their name in databse and I had set their Dialogue Actor in the scene.Some weird place was I even tried to swich their Id.....means if a character which id is 4,his name is Brian,and he is not the node actor ,I use SetPanel(Brian,4) could use before the node I want him appear,he would appear,but a character which id is 5 and her name is Lili,I used SetPanel(LiLi,5),She would not appear in any place.And then I tried to modify the database let Brian be id5,Lili be id 4 (and I did not change the scene's Dialogue Actor),Lili would appear,but Brian would not.
User avatar
Tony Li
Posts: 21678
Joined: Thu Jul 18, 2013 1:27 pm

Re: How to make many characters(max is the number of subtitles) appear in one conversation node?

Post by Tony Li »

When you use SetPanel(), the character will change panels during the next line they speak.
shortlin
Posts: 73
Joined: Wed Jun 03, 2020 1:52 am

Re: How to make many characters(max is the number of subtitles) appear in one conversation node?

Post by shortlin »

Tony Li wrote: Mon Sep 21, 2020 8:25 pm When you use SetPanel(), the character will change panels during the next line they speak.
I knew it,but I could use it when the character is not the speaker in the next line sometime(So this is why I said Brian is not the actor in the node).So is it not SetPanel should do?If not,are there some function to let me do this thing I want many non-speakers to appear in a conversation node?
User avatar
Tony Li
Posts: 21678
Joined: Thu Jul 18, 2013 1:27 pm

Re: How to make many characters(max is the number of subtitles) appear in one conversation node?

Post by Tony Li »

Hi,

Use a dialogue entry node with a single blank space in the Dialogue Text field. Set the Sequence to:

Code: Select all

Continue()
This will show the actor but immediately continue to the next node in the conversation.
shortlin
Posts: 73
Joined: Wed Jun 03, 2020 1:52 am

Re: How to make many characters(max is the number of subtitles) appear in one conversation node?

Post by shortlin »

Tony Li wrote: Mon Sep 21, 2020 9:11 pm Hi,

Use a dialogue entry node with a single blank space in the Dialogue Text field. Set the Sequence to:

Code: Select all

Continue()
This will show the actor but immediately continue to the next node in the conversation.
Thank you,Tony.I tried it,It's good!
So that means if I want many people appear .I just set in the nodes begin which has contiue() sequence command,and then right?
but when I want one of them disappeard,using setactive,right?
User avatar
Tony Li
Posts: 21678
Joined: Thu Jul 18, 2013 1:27 pm

Re: How to make many characters(max is the number of subtitles) appear in one conversation node?

Post by Tony Li »

The Standard Dialogue UI doesn't have a built in way to make an actor disappear, but you can use one of these ideas:

- Create a subtitle panel that is not visible. Use SetPanel() to change the actor to this panel.

- Or call the subtitle panel's Close method. You can write a sequencer command to do that, or you can use the SendMessage() sequencer command like this:

Code: Select all

SendMessage(Close,,Subtitle Panel 2)
(Provide the GameObject name of the subtitle panel.)

EDIT: This post has an additional way using a HidePanel() sequencer command.
shortlin
Posts: 73
Joined: Wed Jun 03, 2020 1:52 am

Re: How to make many characters(max is the number of subtitles) appear in one conversation node?

Post by shortlin »

Sorry Tony,I have a new question again..

If I use SetPanel(xxx,0);setPAnel(yyy,1)"in Start node and I have set the next node's speaker is xxx also let this node's sequence is "Continue();
After this node,if speaker is yyy,xxx would not appear,is it normal?
if start node using "SetPanel(xxx,1);setPAnel(yyy,2)".xxx would appear.I think maybe the tool think if you want xxx appear in default subtitle ,you must let xxx be speaker?

I am afraid someday I should let xxx be subtitle0's position,and He is not the speaker.So I got an idea is adding a new subtitle and let its position as same as the subtitle0.So It would be solved,but I just want to ask: Is there a better solution?
User avatar
Tony Li
Posts: 21678
Joined: Thu Jul 18, 2013 1:27 pm

Re: How to make many characters(max is the number of subtitles) appear in one conversation node?

Post by Tony Li »

If I understand you correctly, you can do it like this:

setPanels.png
setPanels.png (20.42 KiB) Viewed 663 times

When ZZZ speaks, XXX and YYY will also appear in their new subtitle panels.

Note: If you set a subtitle panel's Visibility to Always From Start, then it will show the first actor that is assigned to that subtitle panel. In this case, you don't have to use any SetPanel() commands.
shortlin
Posts: 73
Joined: Wed Jun 03, 2020 1:52 am

Re: How to make many characters(max is the number of subtitles) appear in one conversation node?

Post by shortlin »

Hi Tony,It still has the problem.I put the example package you had gave in another discuss that I modified :
SetPanelAndContinue.part1.rar
(716.8 KiB) Downloaded 115 times
SetPanelAndContinue.part2.rar
(670.16 KiB) Downloaded 94 times
And I found if I keyed the continue command node's Dialogue text one character,it would work.
sshot-2020-09-23-[15-54-44].png
sshot-2020-09-23-[15-54-44].png (1.77 KiB) Viewed 652 times
User avatar
Tony Li
Posts: 21678
Joined: Thu Jul 18, 2013 1:27 pm

Re: How to make many characters(max is the number of subtitles) appear in one conversation node?

Post by Tony Li »

The blank character is required. That tells the Dialogue System that there is some subtitle text to show. Otherwise, if the Dialogue Text field is blank, it will skip the subtitle, which means it will also not show the actor in its new panel.
Post Reply