Page 1 of 1

Portaits

Posted: Wed Jan 04, 2023 9:20 am
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

Re: Portaits

Posted: Wed Jan 04, 2023 11:14 am
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)

Re: Portaits

Posted: Wed Jan 04, 2023 11:33 am
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.

Re: Portaits

Posted: Wed Jan 04, 2023 2:01 pm
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