Dialogue System with Corgi Questions

Announcements, support questions, and discussion for the Dialogue System.
mindjar
Posts: 12
Joined: Tue Aug 06, 2019 11:22 am

Dialogue System with Corgi Questions

Post by mindjar »

Hi, I've recently bought Your Asset and integrated into my porject. I'm using Corgi with Rewired, Cinemachine, Spine and TMPro.
I've copied the characters from example and replaced the models. Everything worked ok, but I wanted to add animations to characters when the corresponding dialogue is displaying. After some fiddling with the setup I've managed to make the animations work for both Actor and Conversant. But there are some weird things going on. First the player can move when the conversation is on despite the option turned off. Second the UI loses focus on the response buttons - I have to press left on the dpad(!) of the controller to move it on the first button. Another weird thing is that when I go to another character and start conversation, when I get back to the first I can't select another response. See here:




My character setup looks like this:



Another thing is about barking - how to use Tex Mesh Pro instead of regular text? I couldn't make it work and couldn't find any example in the provided scene.
Also is there an option to play a sequence during barking? I want to play some animation on a character when barking dialogue is displayed.

Thanks for this amazing asset! I'm overwhelmed with all the options :)
User avatar
Tony Li
Posts: 21977
Joined: Thu Jul 18, 2013 1:27 pm

Re: Dialogue System with Corgi Questions

Post by Tony Li »

Hi,

Thanks for using the Dialogue System!
mindjar wrote: Tue Aug 06, 2019 11:28 amI've copied the characters from example and replaced the models. Everything worked ok, but I wanted to add animations to characters when the corresponding dialogue is displaying. After some fiddling with the setup I've managed to make the animations work for both Actor and Conversant. But there are some weird things going on. First the player can move when the conversation is on despite the option turned off.
Does this also happen in the example scene? Let's establish a baseline first and then figure out what's different in your scene's configuration.
mindjar wrote: Tue Aug 06, 2019 11:28 amSecond the UI loses focus on the response buttons - I have to press left on the dpad(!) of the controller to move it on the first button.
Inspect the Dialogue Manager GameObject. Tick the Input Device Manager component's Always Auto Focus checkbox.

By default, the Input Device Manager is configured to detect the player's input mode. If the player moves the mouse, it switches to mouse mode, which does not focus UI buttons unless Always Auto Focus is ticked. If the player uses a joystick, it switches to joystick mode, which does focus UI buttons. Alternatively, you can untick Detect Mouse Control; then it will always stay in joystick mode.
mindjar wrote: Tue Aug 06, 2019 11:28 amAnother weird thing is that when I go to another character and start conversation, when I get back to the first I can't select another response.
I wonder if this is somehow related to the issue above. If adjusting the Input Device Manager doesn't fix it, please let me know.
mindjar wrote: Tue Aug 06, 2019 11:28 amAnother thing is about barking - how to use Tex Mesh Pro instead of regular text?
Enable TextMesh Pro Support. Then inspect the bark UI and unassign the Bark Text field. It should now show two assignable fields: one for UI Text, one for TextMeshProUGUI. Add a TextMeshProUGUI to the bark UI and assign it to the field.
mindjar wrote: Tue Aug 06, 2019 11:28 amAlso is there an option to play a sequence during barking? I want to play some animation on a character when barking dialogue is displayed.
You can do that. If the character pulls bark text from a conversation, set the conversation nodes' Sequence fields. If the character barks a string, the Dialogue System Trigger's Bark action lets you specify a sequence to play during the bark. In either case, inspect the character's bark UI and tick Wait Until Sequence Ends if you want the UI to stay visible during the entire sequence.
mindjar
Posts: 12
Joined: Tue Aug 06, 2019 11:22 am

Re: Dialogue System with Corgi Questions

Post by mindjar »

Does this also happen in the example scene? Let's establish a baseline first and then figure out what's different in your scene's configuration.
No, in the example scene everything is ok. I've found the cause of this - in order to work properly the Conversetion Zone must be child of the object. I've had them side by side. The error with not being able to select another response is gone too.
Enable TextMesh Pro Support. Then inspect the bark UI and unassign the Bark Text field. It should now show two assignable fields: one for UI Text, one for TextMeshProUGUI. Add a TextMeshProUGUI to the bark UI and assign it to the field.
Thanks! It works as You wrote, I just had to change the script. In the Corgi demo there's "Unity UI Bark UI" attached and the proper one is "Standard Bark UI". Could You update the demo to avoid confusion? Also in documentation there's mention of another one script - "TextMesh Pro Bark UI" so for new people like me it gets unnecessary overcomplicated.
You can do that. If the character pulls bark text from a conversation, set the conversation nodes' Sequence fields. If the character barks a string, the Dialogue System Trigger's Bark action lets you specify a sequence to play during the bark. In either case, inspect the character's bark UI and tick Wait Until Sequence Ends if you want the UI to stay visible during the entire sequence.
I wasn't able to figure that one out, could You write some steps to achieve that?

Also a quick question - is it necessary for subtitle and response panels to be children of the character? I want to make them float above the character head with a bit of delay.

Thanks for the help :)
User avatar
Tony Li
Posts: 21977
Joined: Thu Jul 18, 2013 1:27 pm

Re: Dialogue System with Corgi Questions

Post by Tony Li »

mindjar wrote: Wed Aug 07, 2019 2:37 amThanks! It works as You wrote, I just had to change the script. In the Corgi demo there's "Unity UI Bark UI" attached and the proper one is "Standard Bark UI". Could You update the demo to avoid confusion? Also in documentation there's mention of another one script - "TextMesh Pro Bark UI" so for new people like me it gets unnecessary overcomplicated.
Yes, I'll do that. Sorry about the confusion. I missed those when updating the scene and manual.
mindjar wrote: Wed Aug 07, 2019 2:37 am
You can do that. If the character pulls bark text from a conversation, set the conversation nodes' Sequence fields. If the character barks a string, the Dialogue System Trigger's Bark action lets you specify a sequence to play during the bark. In either case, inspect the character's bark UI and tick Wait Until Sequence Ends if you want the UI to stay visible during the entire sequence.
I wasn't able to figure that one out, could You write some steps to achieve that?
Sure! There are two common ways to set up barks: Dialogue System Trigger or Bark On Idle. If you use Dialogue System Trigger, you can choose to bark a text string or bark a line from a conversation. If you choose to bark a text string, you can specify a sequence to play with the bark:

Image

In the image above, the NPC will bark "Hey! Watch me dance!" and play the animator state "dance". This assumes the NPC has an Animator with a state named "dance".

To keep the bark text onscreen for the duration of the sequence, inspect the NPC's bark UI and tick Wait Until Sequence Ends:

Image

If you're using Bark On Idle, or if you configure the Dialogue System Trigger to bark a line from a conversation, set up your conversation like this:

Image

The NPC will choose one of the nodes that <START> links to. You can set Conditions on the nodes to only consider them if certain conditions are true. For example, you could have a node that says "Nice weather today!" only if a Variable["Sunny"] is true.

On each node, you can set the Sequence field. In the screenshot above, the last node plays the "dance" animator state.

To read more about sequences, see:
mindjar wrote: Wed Aug 07, 2019 2:37 amAlso a quick question - is it necessary for subtitle and response panels to be children of the character? I want to make them float above the character head with a bit of delay.
Yes - If you want them to be positioned above a character and follow the character when the character moves, then it typically needs to be a child of the character.
mindjar
Posts: 12
Joined: Tue Aug 06, 2019 11:22 am

Re: Dialogue System with Corgi Questions

Post by mindjar »

Thanks for that Tony! Everything works like a charm. I'm astonished how extensible this system is.
Tony Li wrote: Wed Aug 07, 2019 9:00 am
mindjar wrote: Wed Aug 07, 2019 2:37 amAlso a quick question - is it necessary for subtitle and response panels to be children of the character? I want to make them float above the character head with a bit of delay.
Yes - If you want them to be positioned above a character and follow the character when the character moves, then it typically needs to be a child of the character.
I want to make a panel that hover over the head of the character, but isn't a child of it. I want to add a bit of delay to make a floaty feel to the panel. Something like this:
Spoiler
Is that possible?
User avatar
Tony Li
Posts: 21977
Joined: Thu Jul 18, 2013 1:27 pm

Re: Dialogue System with Corgi Questions

Post by Tony Li »

Hi,

It's certainly possible, but it isn't built in. It will require a small script to make the UI follow the character.
User avatar
Tony Li
Posts: 21977
Joined: Thu Jul 18, 2013 1:27 pm

Re: Dialogue System with Corgi Questions

Post by Tony Li »

Here's a script and example: UISmoothFollow_2019-08-08.unitypackage

I also put it on the Dialogue System Extras page.
mindjar
Posts: 12
Joined: Tue Aug 06, 2019 11:22 am

Re: Dialogue System with Corgi Questions

Post by mindjar »

Wow! You're the best, thanks :)
User avatar
Tony Li
Posts: 21977
Joined: Thu Jul 18, 2013 1:27 pm

Re: Dialogue System with Corgi Questions

Post by Tony Li »

Glad to help!
mindjar
Posts: 12
Joined: Tue Aug 06, 2019 11:22 am

Re: Dialogue System with Corgi Questions

Post by mindjar »

Everything in the script works great, I even added conditions that don't allow the dialog bubble to leave the screen.

I wanted to add a continue button to the bubble and everything was working great, but when I move left or right the button loses focus. I've tried to set the navigation on the button to "none" instead of "automatic" but that didn't help. The continue button loses focus only for the PC, on NPC the button works always fine. Do You know what would be the problem? I've spent 2 days trying to figure this out.
Post Reply