Approach: Conversation but Bark UI only

Announcements, support questions, and discussion for the Dialogue System.
Belida
Posts: 12
Joined: Tue Jun 10, 2025 7:59 am

Re: Approach: Conversation but Bark UI only

Post by Belida »

Hi tony, thank you, that solution was quick to be done and working right away.

Can I ask what is the best way to check conditions before allowing the players to interact with the npcs? Will the onSelect events on usables be enough for this or going with Lua coding is better for complex behavior? Currently we have puzzles and enemies on some levels which require such behavior.

Another this is that, am sure someone asked this before. How do I implement a step by step condition dialogue such that it behaves like this:
1. NPC: Gives instruction -> Listens to the player input -> Continue next instruction -> Repeats until end.


I would also like to know how to implement the npc to repeat the last dialogue only after the first has triggered.

Thank you so much for your help so far. I hope that I don't come off as annoying.
User avatar
Tony Li
Posts: 23360
Joined: Thu Jul 18, 2013 1:27 pm

Re: Approach: Conversation but Bark UI only

Post by Tony Li »

Hi,
Belida wrote: Tue Jun 17, 2025 9:26 amCan I ask what is the best way to check conditions before allowing the players to interact with the npcs?
Here are a few ways:

1. Add Conditions to your conversations' dialogue entries. (See Conditions Tutorial [video version is best].) Tick the Dialogue System Trigger's Actions > Start Conversation > Skip If No Valid Entries. This will make the Dialogue System Trigger check if any entries linked from <START> have Conditions that are true (or blank). If not, it won't try to start the conversation. You can also set the Dialogue System Trigger's Conditions section, which will prevent the Dialogue System Trigger from performing its actions if the Conditions are false. If you're not using Dialogue System Triggers, you can manually check if DialogueManager.ConversationHasValidEntry() is true.

2. However, you'll still be able to target an NPC with your ProximitySelector and see the selector UI (e.g., "Press (E) to interact" or whatever). If you want to avoid showing this selector UI if the NPC isn't currently interactable, you'll need to make a subclass of ProximitySelector. Override the CheckTriggerEnter() method. Check if the NPC is interactable. If so, call the base method.
Belida wrote: Tue Jun 17, 2025 9:26 amHow do I implement a step by step condition dialogue such that it behaves like this:
1. NPC: Gives instruction -> Listens to the player input -> Continue next instruction -> Repeats until end.
If you need to read player input from the keyboard, please see How To: Read Input From Player During Conversations. If you need to wait for the player to perform some in-game action such as pulling a lever, the Dialogue System Extras page has a Tutorial Example (direct download) that uses the WaitForMessage() sequencer command.
Belida wrote: Tue Jun 17, 2025 9:26 amI would also like to know how to implement the npc to repeat the last dialogue only after the first has triggered.
I'm not exactly sure what you mean, but I think you can probably do this using Conditions. Maybe helpful: How To: Run a Conversation Only Once
Belida
Posts: 12
Joined: Tue Jun 10, 2025 7:59 am

Re: Approach: Conversation but Bark UI only

Post by Belida »

Hi tony,

The solutions regarding the conditions works perfectly. And I will experiment with the WaitForMessage() once the issue below is resolved.

Jumping back to the very start for the bouncy text effect using text animator
Bubble UI Text Animator.png
Bubble UI Text Animator.png (73.51 KiB) Viewed 1735 times
I have followed the instructions from both sides for the text animator and the dialogue system. For some reasons, When I interact, it just shows the UI and there's no text. It is quite late here so I might just miss something obvious. I assumed Dialogue System doesn't have the typewriter, as I could not find any obvious component attached to the UIs

On another note, I have met the issue of Text Animator Support package not resolving again. This has been mentioned before by gblekkenhorst and I followed the instruction to solve that but I thought you might want to know it again.

Thank you for helping as always.
User avatar
Tony Li
Posts: 23360
Joined: Thu Jul 18, 2013 1:27 pm

Re: Approach: Conversation but Bark UI only

Post by Tony Li »

Hi,

The Dialogue System does come with a typewriter effect, but it doesn't have all of the fancy animations that Text Animator does. To use the Dialogue System's built-in typewriter effect, add a TextMeshProTypewriterEffect component to the Text GameObject.

If you're not seeing the text, make sure the Dialogue System Welcome Window's TMP_PRESENT checkbox is still ticked and that the Text GameObject is asigned to the Bubble Template Standard UI Subtitle Panel's Subtitle Text field.

What do you mean by the Text Animator Support package not resolving again?
Belida
Posts: 12
Joined: Tue Jun 10, 2025 7:59 am

Re: Approach: Conversation but Bark UI only

Post by Belida »

Hi Tony,

Tony Li wrote: Wed Jun 18, 2025 10:56 am What do you mean by the Text Animator Support package not resolving again?
I mean the issue of when the text animator support package is imported and stayed within the third party folder which resulting in none of Febucci's api resolving and we have to move the folder to Plugin/Pixel_Crushers instead.
User avatar
Tony Li
Posts: 23360
Joined: Thu Jul 18, 2013 1:27 pm

Re: Approach: Conversation but Bark UI only

Post by Tony Li »

Are you using the Dialogue System's asmdefs? If so, you'll need to add a reference to Febucci.TextAnimator.Runtime to them. There's no need to move any folders.
Belida
Posts: 12
Joined: Tue Jun 10, 2025 7:59 am

Re: Approach: Conversation but Bark UI only

Post by Belida »

Hi,

I did try to use that but I didn't know which Febucci script to put in since there were like 6 showing up but I have sorted that out now.

Resuming the text animator topic, I have it showing up now. However, I tested with both the dialogue system's typewriter and the text animator's typewriter by letter and its effect does not show. What might possibly cause this?

EDIT: I got it working, as I thought I really did miss some obvious instructions last night.

Also how do I hide the bubble image component until it is time for the convo?
NPC BUBBLE HEAD.png
NPC BUBBLE HEAD.png (137.69 KiB) Viewed 1662 times
EDIT: Nevermind, you can hide the entire prefab

On the other hand, what do you suggest I use to customize a more cartoonish bubble UI like the video last time or more of animal crossings? Suggestions/Recommendations would greatly help.

Thanks as always
User avatar
Tony Li
Posts: 23360
Joined: Thu Jul 18, 2013 1:27 pm

Re: Approach: Conversation but Bark UI only

Post by Tony Li »

Hi,

If you like the style of the Feel + Text Animator + Dialogue System demo scene's bubble UI, you can use it in your own project.
Belida
Posts: 12
Joined: Tue Jun 10, 2025 7:59 am

Re: Approach: Conversation but Bark UI only

Post by Belida »

Hi,

I know the default usable ui automatically hides itself when triggering a dialogue, but, how do we hide a basic standard usable ui such as in the picture?

It still shows over the dialogue when I trigger a dialogue.
Convo usable head.png
Convo usable head.png (8.64 KiB) Viewed 1589 times
thanks,
User avatar
Tony Li
Posts: 23360
Joined: Thu Jul 18, 2013 1:27 pm

Re: Approach: Conversation but Bark UI only

Post by Tony Li »

Hi,

It should hide when you disable the Selector/ProximitySelector. (See 07:00 of the Interaction Tutorial for info about using Dialogue System Events to disable the Selector.) Make sure the player is being used as the conversation actor (or conversant) and Convo is being used as the conversation conversant (or actor).

Alternatively, you can add a Dialogue System Events component to the Convo GameObject. Configure OnConversationStart() to hide the usable UI,
Post Reply