Announcement

Collapse
No announcement yet.

Blueprint Dialogue System

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

  • replied
    Ah so i did actually have this set up correctly! I think it wasn't working cause my GetScriptInterpreter's target was getting set to BPIDialogueDatatableHost instead of my BPC_Dialogue component, so i just manually hooked that up to target and it started working. Thanks!

    Leave a comment:


  • replied
    Originally posted by Shakunga View Post
    Hey Grogger I'm in love with the custom script functions and am finding them to be super useful in contexts other than just when dialogue is playing. Like doing camera moves/animations/sounds etc. when I activate a simple button through the Usable system. But I'm having a hard time figuring out how exactly to get the HandleScriptFunction to execute in just a normal child blueprint of BPC_UseActionHandler. I'm assuming it's pretty simple, right? I just don't know which function to call and how to hook it up properly. Is it one of these two?
    Glad to hear it!

    Aye the ExecuteScript node is what is used internally to run commands in the dialogue. This should find its way to the HandleScriptFunction if there is valid function syntax found in the ScriptString. The custom handler is going to be your BPC_Dialogue that implements the HandleScriptFunction.

    Leave a comment:


  • replied
    Hey Grogger I'm in love with the custom script functions and am finding them to be super useful in contexts other than just when dialogue is playing. Like doing camera moves/animations/sounds etc. when I activate a simple button through the Usable system. But I'm having a hard time figuring out how exactly to get the HandleScriptFunction to execute in just a normal child blueprint of BPC_UseActionHandler. I'm assuming it's pretty simple, right? I just don't know which function to call and how to hook it up properly. Is it one of these two?

    Attached Files

    Leave a comment:


  • replied
    Sorry for bothering you Grogger , I was wondering if you knew how one would go on about playing an audioclip everytime a character or word is 'written' on the screen, similar to something like Animal Crossing does (for example everytime a character is written on screen, a 'typewriter' short clip plays), I guess I would have to reference the Typewriter speed and all, but not sure how I'd start on something like this.

    Thank you.

    Leave a comment:


  • replied
    Originally posted by dmac921 View Post
    Where exactly is the code that places "Press E To Interact" on the screen? I have spent hours looking. I have to remove this text completely and I can't find it. It isn't in a UMG widget as it should have been.

    HAHAHAHAH OMG I stuck that in there during the tutorial. I could,'t find it because I put it on MY blueprint ROTFLMAO.
    Haha, it happens to the best of us.
    "Find in Blueprints" should be helpful in the future, it should be able to search for things like print strings.

    Leave a comment:


  • replied
    Where exactly is the code that places "Press E To Interact" on the screen? I have spent hours looking. I have to remove this text completely and I can't find it. It isn't in a UMG widget as it should have been.

    HAHAHAHAH OMG I stuck that in there during the tutorial. I could,'t find it because I put it on MY blueprint ROTFLMAO.
    Last edited by dmac921; 06-26-2020, 04:05 PM.

    Leave a comment:


  • replied
    Originally posted by Grogger View Post

    So the UI_Dialogue is respawned for every new state, but the BPC_Dialogue is aware if one is already opened when "SetState" is called.
    So in your child class for BPC_Dialogue, override the SetState function. If the variable ActiveUI is not valid, then this is the first time the dialogue opens, otherwise it's continuing the conversation.
    I use this for fading in the start of conversations, and fade out on end of conversations (if the branch name is __exit__, I'll fade out before finalizing the exit on SetState in the BPC).

    Hey Grogger, I'm having the same issue. I sort of understand the explanation you're giving for the solution, but I'm not exactly sure what to change in the blueprints exactly to fix this. Can you maybe explain it a little more detailed? Here's what I have set up based on your explanation so far. But I don't know what to set up once the UI has been created already (aka after the first line)

    Click image for larger version

Name:	BP set state.JPG
Views:	89
Size:	435.5 KB
ID:	1770837‚Äč

    Leave a comment:


  • replied
    Originally posted by Grogger View Post

    Hey there,

    IIRC, this is because the default implementation has a TextItem that grows as the characters are displayed, and the wrap box brings it all to the next line when it grows. You can alter your text item class to instead hold a hidden (not collapsed) label so that the widget will have its full size and the wrap box will know ahead of time where it should go.
    Thank you! That solved it for us.

    Since that went so well, we were wondering if you could help us solve another problem.

    We'de like to have the justification and alignment of the text be centered so that it can appear in the center of the vertical box widget. This is helpful as were trying to put it in a comic book style text bubble where the text is often oriented in the middle. We've tried updating the justifications and alignment of the TextItem and TextContainer but it still prints from the left edge. Any thoughts on how we could solve this?

    Leave a comment:


  • replied
    Originally posted by Adarmawan View Post
    Hi Grogger,

    We've been using your system on a game we've been working on and we had a pickle that we were hoping to get your help on.

    When the text line is too long to fit in one row, the text print readjusts itself in real-time and you see the last word move itself to the next row. The desired result is that whatever controls the text printing will know the last word in the first row is too long to fit and move itself into the next row without the live adjustment. Do you know how we can approach this?

    Thanks!
    Hey there,

    IIRC, this is because the default implementation has a TextItem that grows as the characters are displayed, and the wrap box brings it all to the next line when it grows. You can alter your text item class to instead hold a hidden (not collapsed) label, so that the widget will have it's full size and the wrap box will know ahead of time where it should go.

    Leave a comment:


  • replied
    Hi Grogger,

    We've been using your system on a game we've been working on and we had a pickle that we were hoping to get your help on.

    When the text line is too long to fit in one row, the text print readjusts itself in real-time and you see the last word move itself to the next row. The desired result is that whatever controls the text printing will know the last word in the first row is too long to fit and move itself into the next row without the live adjustment. Do you know how we can approach this?

    Thanks!

    Leave a comment:


  • replied
    Originally posted by kwijibojaner View Post
    Hello I already asked this on your youtube channel but maybe you're quicker on the forum, so here it goes:

    would this work in vr? is it static to the camera view or is it possible to put the dialogue into the levels 3d space? like an object
    The default works in screenspace (so not VR), though parts of it can be modified to work in VR by changing it to a 3d widget in the Display UI funciton (others have done this somewhere in this thread, though I haven't done it myself).

    Leave a comment:


  • replied
    Hello I already asked this on your youtube channel but maybe you're quicker on the forum, so here it goes:

    would this work in vr? is it static to the camera view or is it possible to put the dialogue into the levels 3d space? like an object

    Leave a comment:


  • replied
    Originally posted by sandy234 View Post
    I am encountering a bug when using this.
    Basically when i try to go from one sentence to another using branch and if both row has same Speaker ID name then its showing 2nd text as a response text before going to 2nd text itself.
    As you can see from image second text which is a branch is shown as response text. This doesnt happen if Speaker ID of both sentence are different names
    Text will appear as response text in a few cases automatically. Off the top of my head, this can happen if the current branch has a 'hub' trait or if the speaker is a player (and the branch doesn't have the silent trait). Is your speaker a player?

    Leave a comment:


  • replied
    I am encountering a bug when using this.
    Basically when i try to go from one sentence to another using branch and if both row has same Speaker ID name then its showing 2nd text as a response text before going to 2nd text itself.
    As you can see from image second text which is a branch is shown as response text. This doesnt happen if Speaker ID of both sentence are different names
    Attached Files
    Last edited by sandy234; 03-22-2020, 02:19 AM.

    Leave a comment:


  • replied
    Originally posted by DarthPixeIs View Post
    Hey Grogger, Quick Question. I'm trying to get the UI widget to play an animation at the start of the conversation (Example: black film bars appearing off-screen then the dialogue appears.) I've gotten this to work, but the animation replays after each branch of Text. (Animation, Npc DIalogue, Animation, Player Dialogue, Animation... ETC) is there a way to get this animation to play once?
    So the UI_Dialogue is respawned for every new state, but the BPC_Dialogue is aware if one is already opened when "SetState" is called.
    So in your child class for BPC_Dialogue, override the SetState function. If the variable ActiveUI is not valid, then this is the first time the dialogue opens, otherwise it's continuing the conversation.
    I use this for fading in the start of conversations, and fade out on end of conversations (if the branch name is __exit__, I'll fade out before finalizing the exit on SetState in the BPC).

    Leave a comment:

Working...
X