Hi! I’m a programmer for a team who is switching to Dialogue System/articy:draft from Fungus for a couple of reasons but decoupling dialogue from Unity is a major one. I have a couple questions regarding the pipeline that have come up in the switch that I’d like to knock out in one forum post.
Usage of the “Insert menu text” field
I assumed the “Insert menu text” field was the place for the menu items to go but then I noticed in one of the tutorials (Dialogue System for Unity 2.x articy:draft Import) that the choices for the player were put in the dialogue field so I did that. Which is the proper field to put the value so it works in Dialogue System?
Sub question, if a menu text and dialogue text are specified in articy:draft in a Dialogue Fragment is only one used or is the dialogue field displayed after selecting the menu text?
Handling dialogue/dialogue choices from multiple characters
Here I’ve recreated a part from our game that uses Fungus in articy:draft to test it out exporting it into Dialogue System. One the scenes from our game that gets the best response is when you're controlling the dialogue for a group of characters.
The input out and output pins in this example are setting and checking for an integer variable to control flow of the dialogue so we don’t need to have three Dialogue Fragments that say “(Types something into the keyboard.)”
With this setup which Entities needs to be NPCs and which need to be Players (if there can even be a second player) so that dialogue choice appear for to make it so I can achieve similar results to the video below. Do I need to make duplicate entities where one is an NPC and one is a Player?
Displaying un-selectable dialogue options.
Lastly, another feature we are bringing over from our previous project and expanding on is un-selectable dialogue choices. I know by default Dialogue System doesn’t display choices that have input pins that don’t evaluate to true. Is there an option in Dialogue System currently to instead have them be displayed but not interactable or would I need to extend to plugin to achieve this feature.
Example of what we’re aiming for from our current game. Obviously if the strikethrough behavior is not there currently that's okay. I can add that myself.
Thank you for reading this long post and hope to figure out a solution to achieve what we want in some shape of form!
articy:draft to Dialogue System pipeline questions
-
- Posts: 7
- Joined: Sat Jul 09, 2022 10:35 pm
Re: articy:draft to Dialogue System pipeline questions
Hi,
When the Dialogue System shows a player response menu, if the response dialogue entry has Menu Text, it will show Menu Text in the menu. Otherwise it will show Dialogue Text. When the player chooses that menu item, it will show the Dialogue Text as the fully-expanded subtitle (assuming you've configured the Dialogue Manager to show PC subtitles).
As you dig into this, I'm sure you'll have more questions since I didn't really go into much detail, but rest assured that everything you asked is possible, so please ask away if you have more questions.
In the Dialogue System, every dialogue entry (the equivalent of an articy Dialogue Fragment) has a Menu Text field and a Dialogue Text field. If you've set "insert menu text", the articy importer will set the dialogue entry's Menu Text field.
When the Dialogue System shows a player response menu, if the response dialogue entry has Menu Text, it will show Menu Text in the menu. Otherwise it will show Dialogue Text. When the player chooses that menu item, it will show the Dialogue Text as the fully-expanded subtitle (assuming you've configured the Dialogue Manager to show PC subtitles).
You can use multiple player entities (aka player actors in the Dialogue System). When a conversation gets to a point where only nodes assigned to player actors are available, it will show a response menu. By default, the response menu buttons only show the Menu Text (or Dialogue Text if Menu Text isn't set), but you can override the behavior to prepend the player actor's name to the button.radioactivedogs wrote: ↑Sat Jul 09, 2022 10:41 pmHandling dialogue/dialogue choices from multiple characters
Yes, just tick the Dialogue Manager GameObject's Display Settings > Input Settings > Include Invalid Entries. (Invalid entries are entries whose Conditions are false.) You can also conditionally show only some invalid entries, as described in the post linked at the bottom of this article.
As you dig into this, I'm sure you'll have more questions since I didn't really go into much detail, but rest assured that everything you asked is possible, so please ask away if you have more questions.
-
- Posts: 7
- Joined: Sat Jul 09, 2022 10:35 pm
Re: articy:draft to Dialogue System pipeline questions
Thank you so much for the prompt response it set me on the right path to figure out my questions! I have one more major thing to figure out. I’ve looked into sequencer commands a bit and made some of my own to demonstrate my knowledge and understand they happen DURING dialogue but was wondering if it was possible to run one and wait for it before doing the next dialogue fragment. I tried making a dialogue fragment with only a sequence and it locked the game. The usage in our game would be for waiting for a Cinemachine State Driven Camera to finish blending between cameras before starting/continuing execution of dialogue.
Re: articy:draft to Dialogue System pipeline questions
Hi,
Each dialogue entry will wait until all of the commands in its Sequence are done. The only exceptions are if you've enabled continue buttons and the player presses the continue button to skip ahead early, or if you've enabled Cancel inputs in the Dialogue Manager's GameObject's Display Settings > Input Settings.
Assuming you're not using continue buttons, the sequence below will show the dialogue entry for 5 seconds and then automatically advance the conversation:
This sequence, on the other hand, will wait for the speaker's Dance animation to play. Then it will play the Idle animation and immediately advance the conversation:
The sequence above demonstrates the sequencer's message system as well as the 'required' keyword that guarantees that a command runs even if the player clicks a continue button to skip ahead.
More details on sequence: Cutscene Sequence Tutorials
Each dialogue entry will wait until all of the commands in its Sequence are done. The only exceptions are if you've enabled continue buttons and the player presses the continue button to skip ahead early, or if you've enabled Cancel inputs in the Dialogue Manager's GameObject's Display Settings > Input Settings.
Assuming you're not using continue buttons, the sequence below will show the dialogue entry for 5 seconds and then automatically advance the conversation:
Code: Select all
Delay(5)
Code: Select all
AnimatorPlayWait(Dance)->Message(DoneDancing);
required AnimatorPlay(Idle)@Message(DoneDancing)
More details on sequence: Cutscene Sequence Tutorials
-
- Posts: 7
- Joined: Sat Jul 09, 2022 10:35 pm
Re: articy:draft to Dialogue System pipeline questions
Once again, incredibly useful! thanks for all the help.
Re: articy:draft to Dialogue System pipeline questions
Glad to help!