Announcement

Collapse
No announcement yet.

Blueprint Dialogue System

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Hi all, I just returned from the Holidays, sorry for the delay in my replies!

    Originally posted by andreasmaragakis View Post
    Okay - I've rebuilt the handle function script override and created the animation function - nearly. At the end of the script you have a function; RunEndofAnimScript. I don't have this function. How am I building it?
    Edit: I also don't have a function for GetAnimInstance that doesn't target the skeletal mesh component. Is this an issue? I don't want to have to reference one skeleton because I'd like to be able to use multiple skeletons with this script.

    As it is right now, I have 'laughing' as an element for the arg string array but the animation doesn't play.

    I'm also creating a component I can attach to NPCs that will generate a random name from a markov list. However, whenever I try to cast the new speaker attribute row to the UI_dialogue I get a compile error. What am I missing here?
    Hi andreasmaragakis, the example I posted was specific to a character in my case, the PlayAnimation function I posted was just a custom example - it's all regular blueprints after the extraction of the function names and arguments in the Handle function.

    Originally posted by andreasmaragakis View Post
    Sorry about the large amount of posts - I have resolved the markov problem myself. I am wondering if it is possible for the speaker attributes table to create rows and set members in the columns on runtime. I'm reading old posts saying they are read only but just wanted to check if you knew a workaround. I'm trying to get actors withrandomly generated names to be assigned 'personalities' from several data tables but can't seem to get the speaker name to update in the UI, firstly.
    You can certainly do this, though how will depend on what you need. The Attributes table is optional if you override the GetSpeakerAttributes function in your BPC_Dialogue child class. The standard is to retrieve a table row here, but instead you can build a new struct with whatever details you need.

    Originally posted by BaconMonkey View Post
    Hi Greg - I'm noticing BPC dialogue no longer works due to depricated features in UE4. Are you planning an update that fixes these for non-coders?
    Hi BaconMonkey, the current version should be fully compatible with 4.14.1. If you've updated, can you provide additional details as to what is going wrong?
    Last edited by Grogger; 12-30-2016, 12:21 PM.

    Comment


      Hey neat system you got here. This might be a silly question, but it wasn't shown in your video so here goes.

      Does it know when the chat window is filled, and then waits for the player to press a button to continue the dialogue? Not really an issue on your typical pc screen, but potentially would affect lower resolution screens where space is limited.
      Last edited by Selentic; 12-30-2016, 12:18 PM.

      Comment


        Originally posted by Selentic View Post
        Hey neat system you got here. This might be a silly question, but it wasn't shown in your video so here goes.

        Does it know when the chat window is filled, and then waits for the player to press a button to continue the dialogue? Not really an issue on your typical pc screen, but potentially would affect lower resolution screens where space is limited.
        Hi Selentic,

        No 'pages' in the dialogues are not automatically detected, this is left to the writer to insert page breaks (>> operator). Instead, the dialogue box grows to fit the text expected in that branch (a scroll bar appears and the dialogue scrolls to the newest line of text added).

        Cheers!

        Comment


          Thanks Grogger, this is my speaker attributes override in a child component class of BPC Dialogue for all NPCs whose name will be randomly generated. Upon simulation however, the speaker attributes table is not updated. Nearly there?

          Click image for larger version

Name:	speaker override.PNG
Views:	1
Size:	159.9 KB
ID:	1120767

          Comment


            Originally posted by andreasmaragakis View Post
            Thanks Grogger, this is my speaker attributes override in a child component class of BPC Dialogue for all NPCs whose name will be randomly generated. Upon simulation however, the speaker attributes table is not updated. Nearly there?
            Aye, nearly there. You'll want to store a variable for the out parameter (result) in the case that the item is in the data table, or have a second return node. This being said though, the name will be randomly generated for every dialogue page that pops up. I'm not sure what you're trying to do exactly, but this might not be what you want? If you meant to have a consistent result every time you speak to the same character (for example), then you'd generate the speaker attribute table item at some other time and return it in this function.

            Comment


              Originally posted by Grogger View Post
              Aye, nearly there. You'll want to store a variable for the out parameter (result) in the case that the item is in the data table, or have a second return node. This being said though, the name will be randomly generated for every dialogue page that pops up. I'm not sure what you're trying to do exactly, but this might not be what you want? If you meant to have a consistent result every time you speak to the same character (for example), then you'd generate the speaker attribute table item at some other time and return it in this function.
              Could you perhaps show me when I should be generating the speaker atrribute table item? I'm not too sure what you mean. I'd like for the character name to be consistent. Apologies if this is a bother. I'm still learning. Let me know and I will private message you with details about how I'm set up.
              Last edited by andreasmaragakis; 12-30-2016, 07:37 PM.

              Comment


                Originally posted by andreasmaragakis View Post
                Could you perhaps show me when I should be generating the speaker atrribute table item? I'm not too sure what you mean. I'd like for the character name to be consistent. Apologies if this is a bother. I'm still learning. Let me know and I will private message you with details about how I'm set up.
                From the dialogue system's perspective, it doesn't matter when it's generated (as long as it's before it's needed). If you are generating characters for example, when you generate the character, generate it's attributes as well. This is pretty custom to your project I'm afraid.

                Comment


                  Originally posted by Grogger View Post
                  From the dialogue system's perspective, it doesn't matter when it's generated (as long as it's before it's needed). If you are generating characters for example, when you generate the character, generate it's attributes as well. This is pretty custom to your project I'm afraid.
                  No problem - I'll figure it out. Thank you for this plugin my man. It's been a huge time saver. Definitely will be getting a 5 star rating from me on the marketplace.

                  Comment


                    Originally posted by andreasmaragakis View Post
                    No problem - I'll figure it out. Thank you for this plugin my man. It's been a huge time saver. Definitely will be getting a 5 star rating from me on the marketplace.
                    Very glad that it's been helpful, thanks and best of luck!

                    Comment


                      I'd like to have a "typing" sound play as words are typed on screen. The sound should be in "sync" - start playing when the first word appears, and stop playing on the last word. It should work when playing at normal speed as well as the faster click through speed.

                      I'm pretty new to UE4 and Blueprints - my focus is mainly on audio and music design using middleware apps like FMOD. Can anyone help me get started in how to accomplish something like this? Speaking of FMOD, is there any way for the sound assets we're triggering to be FMOD Events rather than SoundCues?

                      Comment


                        Has anyone tried to get the dialogue to display inside a 3D widget? I'm still really new at Blueprints so I'm having trouble wrapping my head around how I would override the existing 2d UMG. Any hints would be hugely appreciated. (working on a VR project so 2d won't work)

                        Comment


                          Well, it looks like the forum decided I didn't need notifications anymore... apologies for the late reply

                          Originally posted by FilmCompos3r View Post
                          I'd like to have a "typing" sound play as words are typed on screen. The sound should be in "sync" - start playing when the first word appears, and stop playing on the last word. It should work when playing at normal speed as well as the faster click through speed.

                          I'm pretty new to UE4 and Blueprints - my focus is mainly on audio and music design using middleware apps like FMOD. Can anyone help me get started in how to accomplish something like this? Speaking of FMOD, is there any way for the sound assets we're triggering to be FMOD Events rather than SoundCues?
                          I'm not sure how to deal with FMOD, but the sounds can be triggered OnCharacterDisplayedChanging in your UI_Dialogue child class if you wanted a 'character chirp' (every character makes a small sound):
                          Click image for larger version

Name:	Chirp.JPG
Views:	1
Size:	57.7 KB
ID:	1123249

                          If you wanted dialogue audio, you can use either PlaySound or the Audio column using audio assets

                          Comment


                            Hi Grogger!

                            Have a problem and I'm not sure why it's happening. I have a character hooked up to the system, but for some reason it defaults the speaker name and shows a portrait (default), even though I have set this to false. It's recognising and displaying the dialogue and branches I have set up, but seems to not want to display the NPC name or hide the portrait. I've tried remaking the Speaker attributes from scratch a few times, but no luck.

                            For my other two characters set up, I do not have these problems occur. Any ideas?

                            Thank you!

                            Comment


                              Originally posted by Chlowaii View Post
                              Hi Grogger!

                              Have a problem and I'm not sure why it's happening. I have a character hooked up to the system, but for some reason it defaults the speaker name and shows a portrait (default), even though I have set this to false. It's recognising and displaying the dialogue and branches I have set up, but seems to not want to display the NPC name or hide the portrait. I've tried remaking the Speaker attributes from scratch a few times, but no luck.

                              For my other two characters set up, I do not have these problems occur. Any ideas?

                              Thank you!
                              Hi Chlowaii,

                              The first thing I could think of would be that your BPC_Dialogue child class might not override the GetSpeakerAttributes function to return values from the right data-table?

                              Comment


                                Originally posted by Grogger View Post
                                I'm not sure how to deal with FMOD, but the sounds can be triggered OnCharacterDisplayedChanging in your UI_Dialogue child class if you wanted a 'character chirp' (every character makes a small sound):
                                [ATTACH=CONFIG]129915[/ATTACH]
                                Hey, pardon me for barging in on this conversation, but I'm really interested in this approach as well. I've got two questions:

                                What if I wanted to swap out different "chirps" depending on the speaker? How would I check who's speaking and change the SFX accordingly?

                                And what if I wanted to play a different sound when the sentence has finished? In most Zelda games, for instance, there's a standard "chirp" noise that plays while the dialogue is running but also a "we've reached the end of the sentence" noise. How would I be able to detect if the dialogue has finished, or if it has reached the final character in the sentence?

                                Thanks a million for answering all these questions, Grogger. Your add-on is a lifesaver. (I'm sure I've said that before, but it bears saying again.)
                                I'm an artist! Check out my work at https://cinebst.wixsite.com/cinebeastart and hit me up!

                                You can e-mail me at cinebst@gmail.com.

                                Comment

                                Working...
                                X