Hi, I'm having some struggles with Dialogue System Events and incorrect portrait names. I'm hoping the issues are connected?
Struggle #1:
I have DialogueSystemEvents on a game object. I also have a DialogueActor on that game object. I have 3 actors defined in the database, but this game object only receieves the OnConversationStarted event when it is specifically set to my 2nd actor. When I change it to be any of the other actors, it doesn't receive events.
Struggle #2:
Portrait names are not showing up correctly, I'm getting lots of inconsistent behavior. Actor B seems to be reliably correct, but sometimes Actor C uses Actor A's name, or Actor B's name will replace Actor A.
I wish I had more reliable repro info, but for what it's worth I'm early in getting set up so I don't think I've had time to mess anything up too bad yet.
Portrait Name incorrect, Dialogue System Events only triggering on first speaker
Re: Portrait Name incorrect, Dialogue System Events only triggering on first speaker
Oh and in case this is an important detail, none of the actors are marked as "is player"!
Re: Portrait Name incorrect, Dialogue System Events only triggering on first speaker
Hi,
I bet it's all related to: Character GameObject Assignments.
Let's say you write a conversation where the primary actor is A, the primary conversant is B, and the conversation also involves a third actor C.
When you start a conversation (e.g., through a Dialogue System Trigger), if you don't specify which characters to use, in general the Dialogue System will use A as the conversation actor and B as the conversation conversant. Dialogue System Events will only run on A, B, and the Dialogue Manager GameObject. C never receives Dialogue System Events because it's not the primary conversation actor or conversation conversant.
However, if you assign a character D to the Dialogue System Trigger's Conversation Actor field, any lines in the conversation that were assigned to A will now be spoken by D. In addition, Dialogue System Events will only run on D, B, and the Dialogue Manager.
An additional thing to consider is if you leave the Dialogue System Trigger's Conversant Actor or Conversation Conversant fields blank. In this case, they'll generally use the GameObject whose Dialogue Actor matches the actor in the conversation. However, there are some exceptions, documented in that link.
I bet it's all related to: Character GameObject Assignments.
Let's say you write a conversation where the primary actor is A, the primary conversant is B, and the conversation also involves a third actor C.
When you start a conversation (e.g., through a Dialogue System Trigger), if you don't specify which characters to use, in general the Dialogue System will use A as the conversation actor and B as the conversation conversant. Dialogue System Events will only run on A, B, and the Dialogue Manager GameObject. C never receives Dialogue System Events because it's not the primary conversation actor or conversation conversant.
However, if you assign a character D to the Dialogue System Trigger's Conversation Actor field, any lines in the conversation that were assigned to A will now be spoken by D. In addition, Dialogue System Events will only run on D, B, and the Dialogue Manager.
An additional thing to consider is if you leave the Dialogue System Trigger's Conversant Actor or Conversation Conversant fields blank. In this case, they'll generally use the GameObject whose Dialogue Actor matches the actor in the conversation. However, there are some exceptions, documented in that link.
Re: Portrait Name incorrect, Dialogue System Events only triggering on first speaker
Thanks a bunch!! This helped clear that up!