Tweening characters as they appear in the scene

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

Tweening characters as they appear in the scene

Post by AoF »

It feels like I should be using Dialogue System for Unity OR Fungus, but not both because their functionality overlaps considerably. Let me know if I'm wrong about that.

One of the things Fungus lets you do is nice tweening animations. For example, if a character shows up in the scene, you can make them slide in from the right and stop at the right hand side, as if they walked in. Does Dialogue System for Unity provide a way to do this? If not, which tool(s) should I be using to get effects like this?
User avatar
Tony Li
Posts: 22056
Joined: Thu Jul 18, 2013 1:27 pm

Re: Tweening characters as they appear in the scene

Post by Tony Li »

Hi,

Do you mean tweening in portrait images, as is common for visual novels? If so, then just set the "Show" animation on the character's subtitle panel to slide the portrait image in. A subtitle panel can play 4 animations:
  • Show: When the subtitle panel first comes into view (e.g., when the character appears).
  • Hide: When the subtitle panel disappears (depends on its Visibility dropdown).
  • Focus: When a character speaks using the subtitle panel.
  • Unfocus: When a character is done speaking.
For a similar example, try assigning the Focus Template Standard Dialogue UI to an example scene. When a character speaks, it fades into full opacity. When it's silent and another character is speaking, it fades out to semi-transparent.

If you need to tween in arbitrary sprites, that's also possible. The process is different. The most common way to do this is to use an AnimatorPlay() sequencer command. I can explain in more detail if that's what you want to do.

If an example scene would help, let me know what scenario you're trying to set up.
AoF
Posts: 241
Joined: Sun May 12, 2019 8:36 pm

Re: Tweening characters as they appear in the scene

Post by AoF »

I'm not sure which one I'm talking about, but I can show you an example from a different game. This is from a game called Huniepop, which is NSFW. The woman is wearing lingerie and isn't nude, but I thought you should know before you click on it. Notice how the woman slides into view?

https://youtu.be /KD8nm32_ISw?t=3

I'm adding extra spaces to the URL so it doesn't render this youtube video on your site.
User avatar
Tony Li
Posts: 22056
Joined: Thu Jul 18, 2013 1:27 pm

Re: Tweening characters as they appear in the scene

Post by Tony Li »

The weather is perfect outside today, so I went to a public outdoor coworking space. I'll have to watch it when I get back to the home office. :-)
AoF
Posts: 241
Joined: Sun May 12, 2019 8:36 pm

Re: Tweening characters as they appear in the scene

Post by AoF »

No problem, this isn't urgent. But from what you say, it sounds like there's a convenient way to pull it off. I just can't tell which of the two methods I should be using.
User avatar
Tony Li
Posts: 22056
Joined: Thu Jul 18, 2013 1:27 pm

Re: Tweening characters as they appear in the scene

Post by Tony Li »

Since it happens solely during dialogue, I think animating the portrait image is appropriate. Here's a simple example:

TweenPortraitExample_2019-05-22.unitypackage
(Exported from Unity 2018.1.)

I started with the VN Template Standard Dialogue UI and just swapped out the Show and Hide animations. Instead of fading in from transparent, they slide onto the screen from either side.

I also included an additional animation in one dialogue entry node (using the AnimatorBool() sequencer command) and set up the continue button to invisibly cover the whole screen.
AoF
Posts: 241
Joined: Sun May 12, 2019 8:36 pm

Re: Tweening characters as they appear in the scene

Post by AoF »

Great, thanks!
AoF
Posts: 241
Joined: Sun May 12, 2019 8:36 pm

Re: Tweening characters as they appear in the scene

Post by AoF »

OK, I looked at it, and I have a feeling it won't work for this reason: My portraits are going to be Spine assets (animated 2D sprites), and from what I read, profiles can only be Textures. One of the things I'll want to do is have the portraits "blink" as an animation. I'll also want them to change facial expressions depending on what they're saying (e.g., a happy, sad, neutral face).

Am I right that Dialogue System for Unity Portraits can't be used this way? If so, I may need you to show me that how to use that AnimatorPlay() sequencer command.

BTW, I don't need special treatment on this stuff, I'm just not sure how common the stuff I'm asking about is. If it's in the docs, feel free to tell me to check the docs, then I can return when I've found it if I have any other questions.
User avatar
Tony Li
Posts: 22056
Joined: Thu Jul 18, 2013 1:27 pm

Re: Tweening characters as they appear in the scene

Post by Tony Li »

Since you're using Spine, yes, use AnimatorPlay() like in the dialogue UI tutorial. You might want to jump to 03:00, which starts the section on a dialogue UI that eventually incorporates animation.

AoF
Posts: 241
Joined: Sun May 12, 2019 8:36 pm

Re: Tweening characters as they appear in the scene

Post by AoF »

Ah, OK. I've actually watched this video a couple of times before. It's jam packed full of information, and IMO, there's enough content in here for 3 vids :)

From what I've gathered, if I put a "Dialog Actor" script on my Player/NPC, then I can assign it an animation controller. I didn't catch how to tell the Dialog UI to use my Dialog Actor script. Is it used simply by existing in the scene and me assigning that game object as an actor or conversant?

One thing though: As far as I can tell, Spine doesn't spit out a Unity animation controller when I export my Spine assets and import them into Unity. It creates its own thing called a Skeleton Animation, and I was unable to find a way that it relates to Unity's animation controller asset. Do you happen to have an example of using Spine animations in
"Dialogue System for Unity"? I posted a similar question Spine's forum: http://esotericsoftware.com/forum/Does- ... 574#p53574

I was confused by another thing: What if I want characters entering and leaving the scene? It seems like the third submenu has a visibility that's set to stay visible once that character talks, but what if I want that character to leave the scene after it talks and the first two to continue talking? Is that what "until superseded" is for? How does that work? I was unable to find details of each visibility dropdown value in the official docs. Is that documented anywhere?
Post Reply