Hi!
I´m looking to implement a Bark between 3 actors, the problemn is that the api to start the bark dialogue ( and the other types of conversations too) only accept two actors, the speaker and the listener. so I get a null reference when the plugin is processing the subtitle for the third actor because its transform is not set.
I can think of a way to modify the plugin to allow this , but I find it difficult to believe that this situation is not already handled in some way.
I'm missing something?
thanks!
Bark with 3 or more actors
Re: Bark with 3 or more actors
Hi,
There are a couple examples of 3-actor barks in the Examples/Bark Example folder. However, they use Dialogue System components, not a script.
You don't need to modify the plugin, but I need a little more information to provide a good answer.
DiaogueManager.Bark() takes a speaker and an optional listener.
Only the speaker is required. This is the character who speaks the bark line. The Dialogue System uses the speaker for three purposes:
1. Uses the bark UI on this character.
2. Sends the script messages OnBarkStart, OnBarkLine, and OnBarkEnd to the speaker.
3. Sets the 'speaker' keyword to this character. If your bark line has a Sequence, sequencer commands can use this keyword.
If you also pass a listener to DialogueManager.Bark(), the Dialogue System will use it for these two purposes:
1. Sends the same script messages to it as above.
2. Sets the 'listener' keyword to this character. If the speaker's bark line has a Sequence, sequencer commands can use this keyword.
For conversations, on the other hand, you can assign any actor to any dialogue entry node. The conversation itself has two primary characters: the Actor and the Conversant. When you start a conversation, you will specify their GameObjects. If a dialogue entry node is spoken by a third character (not the primary Actor or Conversant), the Dialogue System will look for a GameObject in the scene with the same name as that character.
Please let me know if this information covers what you need. If not, let me know how you've currently implemented the barks -- using components like Bark Trigger and Bark On Dialogue Event? Running it as a conversation using BarkDialogueUI? Or, if using a script, please post the code where you use the API. Thanks!
There are a couple examples of 3-actor barks in the Examples/Bark Example folder. However, they use Dialogue System components, not a script.
You don't need to modify the plugin, but I need a little more information to provide a good answer.
DiaogueManager.Bark() takes a speaker and an optional listener.
Only the speaker is required. This is the character who speaks the bark line. The Dialogue System uses the speaker for three purposes:
1. Uses the bark UI on this character.
2. Sends the script messages OnBarkStart, OnBarkLine, and OnBarkEnd to the speaker.
3. Sets the 'speaker' keyword to this character. If your bark line has a Sequence, sequencer commands can use this keyword.
If you also pass a listener to DialogueManager.Bark(), the Dialogue System will use it for these two purposes:
1. Sends the same script messages to it as above.
2. Sets the 'listener' keyword to this character. If the speaker's bark line has a Sequence, sequencer commands can use this keyword.
For conversations, on the other hand, you can assign any actor to any dialogue entry node. The conversation itself has two primary characters: the Actor and the Conversant. When you start a conversation, you will specify their GameObjects. If a dialogue entry node is spoken by a third character (not the primary Actor or Conversant), the Dialogue System will look for a GameObject in the scene with the same name as that character.
Please let me know if this information covers what you need. If not, let me know how you've currently implemented the barks -- using components like Bark Trigger and Bark On Dialogue Event? Running it as a conversation using BarkDialogueUI? Or, if using a script, please post the code where you use the API. Thanks!