Hi. I'm attempting to trigger conversations with Behavior Designer. In my project, I need to have the player retain mouse/movement control while a given conversation, initiated by an NPC, is active. When the conversation is started by the Dialogue System Trigger component, this is the default behavior.
However, when I use the "Start Conversation" task in Behavior Designer, the dialogue plays but player control is stopped. I've looked through the source code of the Dialogue System Trigger component and the "Start Conversation" task, but I can't really find the difference in launching the conversation between the two methods that accounts for the loss of player control.
I realize the BD task is maintained by Opsive, but I've written plenty of custom BD tasks and am just looking to modify the existing "Start Conversation" task to fix the issue. Any hints where to look?
Thanks for any insights!
An equivalent to the Dialogue System Trigger via Behavior Designer?
Re: An equivalent to the Dialogue System Trigger via Behavior Designer?
Hi,
Does your player GameObject have a Dialogue System Events component, or equivalent, that disables player control during conversations? Typically this component listens for OnConversationStart and OnConversationEnd messages to disable & re-enable controls.
If so, and if you've assigned the player GameObject to the BD Start Conversation task's Actor Transform or Conversant Transform, then the task will send OnConversationStart and OnConversationEnd messages to the player GameObject.
On the other hand, if the player GameObject is not assigned to the Dialogue System Trigger's Conversation Actor or Conversation Conversant fields, then the Dialogue System Trigger may not send those messages. (For details, see: Character GameObject Assignments)
Does your player GameObject have a Dialogue System Events component, or equivalent, that disables player control during conversations? Typically this component listens for OnConversationStart and OnConversationEnd messages to disable & re-enable controls.
If so, and if you've assigned the player GameObject to the BD Start Conversation task's Actor Transform or Conversant Transform, then the task will send OnConversationStart and OnConversationEnd messages to the player GameObject.
On the other hand, if the player GameObject is not assigned to the Dialogue System Trigger's Conversation Actor or Conversation Conversant fields, then the Dialogue System Trigger may not send those messages. (For details, see: Character GameObject Assignments)
Re: An equivalent to the Dialogue System Trigger via Behavior Designer?
Thanks Tony, figured it out:
No the player gameobject didn't have a Dialogue System Events component, but that idea got me looking in the right direction. I also use Opsive UCC, and I simply had my "Converse" ability set to disable player input.
The difference in using the Dialogue System Trigger component vs the StartConversation task in BD, was that the Converse ability of UCC starts when BD calls the StartConversation task, and the Dialogue System Trigger component doesn't make it start, so the incorrect setting never mattered. So that's all it was.
Thanks again!
No the player gameobject didn't have a Dialogue System Events component, but that idea got me looking in the right direction. I also use Opsive UCC, and I simply had my "Converse" ability set to disable player input.
The difference in using the Dialogue System Trigger component vs the StartConversation task in BD, was that the Converse ability of UCC starts when BD calls the StartConversation task, and the Dialogue System Trigger component doesn't make it start, so the incorrect setting never mattered. So that's all it was.
Thanks again!
Re: An equivalent to the Dialogue System Trigger via Behavior Designer?
Happy to help! I'm glad you found the issue.