Forum rules - please read before posting.

"Dynamic" dialogues

Hello there!

I'm in the process of researching how to do certain things in AC right now for a game that will (very similar to TTGs Walking Dead, Game of Thrones, Borderlands) feature some dialogue and choices.

The first thing I was researching was an option to make the Dialogue not seem like a pause from gameplay (Mass Effect did it first I think). What I mean with this is the following:
The NPC is saying something, but instead of actually ENDING what he is saying and THEN allow me to choose what to say, the Dialog choices pop up somewhere midsentence. Ideally this causes the dialog between two characters to feel more fluent.

I already found out that via the "Action List / Run in parallel" I can simply run a couple of other "Dialogue/Play speech" actions. This is almost what I need.
Now the Dialogue options show up while the NPC is still talking. However, once I select my dialogue of choice, it will start right away and not wait until the NPC is done talking.

So the question is, how can I somehow "store" my choice of dialogue and tell AC "Play after the NPC has finished saying this block (or X blocks) of text"?

Comments

  • That's a good case for a new Action - one that waits for a particular character to finish speaking.  I'm currently re-writing the dialogue system, to make it possible to display multiple lines at once, so the code to perform this will change.  I will see about adding this into the next release, thanks for the suggestion.
  • Thanks for considering this!
    Looking forward to what you come up with.
  • In the meantime, know that if you're background speech line is in a separate ActionList to the dialogue response, you can just to a looping "ActionList: Check running" Action to wait for the other ActionList to finish up.
  • Hello there!

    I need to dig out this topic again.

    While the method you described (having a speech line played in the background, in a separateActionList, while "ActionList: Check running" is waiting for it to finish is a pretty good workaround, it starts to become really complicated, once you have several lines of text (especially considering, that you now have to keep perfect track of how to break up your text).

    Is there a more comfortable/easier way to accomplish this?
    It would be even more perfect, if I could have multiple lines of speech during choosing the  dialog options, while the triggered action doesn't start until the previous running piece of background speech hasn't ended.

    This is very prominent in the current Telltale Games titles, in where you can choose the dialog options, while characters are talking. Whenever you chose an option, the current line of speech is finished and only then the new dialog action gets triggered.
  • Well!
    I think I found a solution to my problem:

    1.) I made a global boolean variable called (BG_Talking)
    2.) I created a new ActionList with the following content:

    - Variable:Set BG_Talking True
    - Dialogue: Play Speech (with the Parameters Speaker and Line Text being used)
    - Variable: Set BG_Talking False
    - Engine: Wait 0.1

    3.) I use this ActionList for a special Cutscene, I will play in the background, while I present the dialog Options (basically I put a ActionList: Run, action right before Dialogue: Start Conversation).
    4.) in each DialogeOption that can be triggered I put a small check:

    - Variable: Check (BG_Talking)
    if it is FALSE it means that the speech line just finished playing, so I let it proceed (and kill the BG-cutscene). If it is true, a new speech line has started playing, or an old one is still playing, so I loop it back to the check itself.
    This prolly can be done in a newly created ActionList as well, but I haven't tested this.

    The only important thing I have to keep in mind is, that the ActionList: Run action in my background cutscene must run from start and must wait until finish, while the whole cutscene itself must be marked as "Run in Background" in the properties.

    Damn, creating ActionLists can surely be powerful! :D
  • Have you seen the Dialogue: Wait for speech Action?  That may help you simplify things (as this thread was started a year ago, I can't remember if it's the Action I was referring to in my first reply).
  • Hey Chris,

    I just checked it out and I think it might not work the way I want it to, seeing that I have to specify the character (or the player) that is talking. I think that would mean that I needed to do a specific check for each character (or worse, each dialog).
    If there are multiple people talking in the background, it will only get more complicated, since I'd have to check for multiple characters as well.

    Right now the ActionList I threw together does the trick. I wouldn't necessarily call it "best practice" on how my solution works, so I think I'll keep an eye on how to do things better.
    I think at some point I might even be able to do more complex background things while one can choose the dialogue (camera and character movement and such)
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.