Sharing a subtitle panel in a first person view visual novel

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
AoF
Posts: 241
Joined: Sun May 12, 2019 8:36 pm

Sharing a subtitle panel in a first person view visual novel

Post by AoF »

I'm trying to use the VN template, but there's something I'm confused about. It shows 3 subtitle panels with 3 names/portraits like this:

Image

The portrait images make sense for a 3rd person view VN, but I don't understand why having more than 1 portrait name could ever make sense. Here's an example VN that shows 2 characters on screen, but only one portrait name:

Image

If there were more than one portrait name on the screen, how would you know which one was speaking? The reason I ask this question is I feel like I must be misunderstanding something about the standard VN template and how to use it correctly.

But this is not my main issue. My main issue is, now that I'm sharing one subtitle panel, it seems to think the previous character is leaving the conversation every time someone new talks and it runs the SpineDialogueActor hide trigger. Here's a gif of it happening: https://gfycat.com /NaughtyHardDoe I want that character to stay on screen until the conversation is over.

Here's the log when it happens:

Image

Image

(BTW, why are there so many duplicates in there?)
User avatar
Tony Li
Posts: 22056
Joined: Thu Jul 18, 2013 1:27 pm

Re: Sharing a subtitle panel in a first person view visual novel

Post by Tony Li »

Hi,

Make a number of subtitle panels equal to the maximum number of characters that will be onscreen during a conversation.

You can point them all to the same UI elements. In fact, get rid of all portrait name UI elements except one. Point all your subtitle panels to that one portrait name UI element. It was maybe a bad artistic decision on my part to have separate portrait names. The idea was that panels could use Focus and Unfocus animations to make the current speaker 100% opaque and the others partially transparent, or make the current speaker bigger, or something like that.(See the Focus Template Standard Dialogue UI for an example of what I was thinking.)

Then assign a different subtitle panel number to each character. If you use the same subtitle panel number for two characters and one follows the other in dialogue, they will behave as you described in your post above. This is still useful if you want a character to leave and be replaced by another.
AoF
Posts: 241
Joined: Sun May 12, 2019 8:36 pm

Re: Sharing a subtitle panel in a first person view visual novel

Post by AoF »

OK that makes sense.

So in this scene there's a Player, Narrator, and Eva. Once Eva shows up, I want her to stay on the screen until the conversation is over. I guess that means I put her in a panel that has a visibility that's always there once she speaks the first time?

I'm a little confused about why the UI is responsible for when the panels are visible. Isn't this usually a conversation detail? e.g., "NPC1: Oh, let me just grab that from the kitchen." They leave and come back. "NPC1: I couldn't find it."

I'm going to have moments like that, moments where characters should fade into the scene when their dialogue starts, moments where they should slide into it from left to right like they're running in, characters that have no portraits (the Player and Narrator, because it's first person view), characters that should always be on the screen even before the dialogue starts and they stay there after the conversation ends, etc.

Since the UI, their portraits, and their visibility have to be designed upfront, I'm starting to feel like the right tool for me is actually the SequencerCommandSpineAnimation instead of the SpineDialogueActorScript. In hindsight, I guess I'm using Spine for characters, not portraits, and that part kind of makes sense.

But even if I were using them as portraits, I still think I'd want to have control over the visibility of the panels per conversation. Is there a way to do that, or should I be creating lots of panels so that depending on the conversation's need, I can assign the NPC to the "show up and don't disappear panel" or the "show up when you speak then disappear when you're not speaking panel"?

In this video, you set up the visibility that works for the specific conversation you're trying to have, but I can imagine scenarios where it wouldn't work in the next conversation (e.g., 3 characters having a conversation around a camp fire and in the middle of it, one of the 3 leave to go hunting).

Sorry for always replying with a wall of text, but ever since I learned about that visibility dropdown, I've been curious about this.
User avatar
Tony Li
Posts: 22056
Joined: Thu Jul 18, 2013 1:27 pm

Re: Sharing a subtitle panel in a first person view visual novel

Post by Tony Li »

AoF wrote: Mon May 27, 2019 3:27 pmI guess that means I put her in a panel that has a visibility that's always there once she speaks the first time?
Yes. Keep the SpineDialogueActor script to get her to be visible when her panel appears.

If you want her to leave and come back later, use the SpineAnimation() sequencer command to move her offscreen and then back on.

A sequencer command to manually hide a subtitle panel would probably also be useful. Currently I think some people do it in a bit of a hacky way with a sequencer command like this:

Code: Select all

SendMessage(Close,,Subtitle Panel 2)
which calls the subtitle panel's Close() method. But a dedicated HidePanel() sequencer command would be cleaner.
Post Reply