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
Re: Dialogue System with Corgi Questions
Posted: Tue Aug 06, 2019 1:17 pm
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.
Re: Dialogue System with Corgi Questions
Posted: Wed Aug 07, 2019 2:37 am
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
Re: Dialogue System with Corgi Questions
Posted: Wed Aug 07, 2019 9:00 am
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.
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:
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:
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:
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.
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.
Re: Dialogue System with Corgi Questions
Posted: Thu Aug 08, 2019 3:52 am
by mindjar
Thanks for that Tony! Everything works like a charm. I'm astonished how extensible this system is.
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?
Re: Dialogue System with Corgi Questions
Posted: Thu Aug 08, 2019 9:40 am
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.
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.