Trouble with dialogue with 3 actors

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
MrSpecjal
Posts: 2
Joined: Sun Feb 27, 2022 7:02 pm

Trouble with dialogue with 3 actors

Post by MrSpecjal »

When I have 3 actors in dialogue and assign one in conversant field
Image
third actor going to be skipped. It works when nobody is assigned, but then I can't use on conversation end event.
Is there any possibility to use both options (3 actors and on conversation end event)
User avatar
Tony Li
Posts: 21981
Joined: Thu Jul 18, 2013 1:27 pm

Re: Trouble with dialogue with 3 actors

Post by Tony Li »

Hi,

Conversations can involve any number of actors.

The Dialogue System will consider two of those actors to be the primary conversation actor and conversation conversant:

actorConversant0.png
actorConversant0.png (14.06 KiB) Viewed 214 times

These should correspond to the conversation's Actor and Conversant properties:

actorConversant1.png
actorConversant1.png (27.53 KiB) Viewed 214 times

The screenshots above are from the Dialogue System's Demo. The conversation involves the Player and Private Hart. The Demo also has a third character, Sergeant Graves. If you were to assign Sergeant Graves to the Dialogue System Trigger's Conversation Conversant:

actorConversant2.png
actorConversant2.png (14.58 KiB) Viewed 214 times

then Sergeant Graves would be the conversation conversant, and he would speak all of the lines assigned to Private Hart in the conversation:

actorConversant3.png
actorConversant3.png (37.63 KiB) Viewed 214 times

See Character GameObject Assignments for more info.


The Dialogue System only sends OnConversationStart/End events to the primary conversant actor and conversant conversant. If you assign Ruben to the Dialogue System Trigger's Conversation Conversant field, it will receive OnConversationEnd messages.

If you leave Conversation Conversant unassigned, the Dialogue System will use the GameObject associated with the conversation's Conversant property. If it can't find that GameObject (e.g., by Dialogue Actor component), it will use the Dialogue System Trigger GameObject.
Post Reply