Portaits

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
dkirwan
Posts: 8
Joined: Wed Jan 04, 2023 9:13 am

Portaits

Post by dkirwan »

Hi,

I'm using the dialogue system in my game and there is a small bug that I cannot figure out why it's happening.

In the dialogue we turn off the dialogue panel using SetDialoguePanel(false); in the sequence parameters. But sometimes when the panel is turn back on (in the same conversation) using SetDialoguePanel(true); instead of showing the panel with the correct portrait, it often shows the last portrait used for split second and then changes to the correct one.

Is there a different way to turn off the dialogue panel in a conversation and then turn it back on so that we do not get this panel flash when it comes back on? OR a way to mitigate what is happening?

Kind regards
User avatar
Tony Li
Posts: 21959
Joined: Thu Jul 18, 2013 1:27 pm

Re: Portaits

Post by Tony Li »

Hi,

An alternative way to hide the dialogue UI is to give the dialogue UI's canvas a unique name such as "DialogueCanvas". Then use the SetEnabled() sequencer command to disable the canvas:

Code: Select all

SetEnabled(Canvas, false, DialogueCanvas)
When you want to show the dialogue UI again:

Code: Select all

SetEnabled(Canvas, true, DialogueCanvas)
dkirwan
Posts: 8
Joined: Wed Jan 04, 2023 9:13 am

Re: Portaits

Post by dkirwan »

Hi Tony,
thanks for your reply.
I tried out your suggestion but we still get the same issue. Still trying to figure out the other methods we can use to get round this bug.
User avatar
Tony Li
Posts: 21959
Joined: Thu Jul 18, 2013 1:27 pm

Re: Portaits

Post by Tony Li »

I don't think it's a bug, but it's an issue in your project. When you hide and show the dialogue UI, it will show what is currently in the dialogue UI (i.e., the current portrait) before moving on to the next dialogue entry node that has a different actor/portrait. Maybe you don't want to make the dialogue UI appear until you've changed to the next node. You could put the SetDialoguePanel() command or SetEnabled() command in the next node, possibly with a delay to account for animation. Example:

Code: Select all

SetDialoguePanel(true)@0.1
Post Reply