Announcement

Collapse
No announcement yet.

Blueprint Dialogue System

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

  • replied
    Originally posted by HInoue View Post
    Sure thing, no problem at all
    It's appreciated, thank you!

    Leave a comment:


  • replied
    Sure thing, no problem at all

    Leave a comment:


  • replied
    Originally posted by HInoue View Post
    You're right, that did the trick perfectly, and with a lot less inheritance/interface headaches- thank you ever so much for your help getting it running, I feel like I got several hundred dollars of value from the purchase + your time
    My pleasure,

    If you wouldn't mind, it would be helpful to get your rating and maybe a comment on the store page.

    I'm very happy to hear things worked out!

    Leave a comment:


  • replied
    You're right, that did the trick perfectly, and with a lot less inheritance/interface headaches- thank you ever so much for your help getting it running, I feel like I got several hundred dollars of value from the purchase + your time

    Leave a comment:


  • replied
    Originally posted by HInoue View Post
    Yup, that's what I did... anything that I touch gets its own child.

    This is probably stupid, but do you have any idea if it would break anything to reparent BPC_Dialogue from UActorComponent to one of my C++ classes which is a child of UActorComponent? I'm assuming there are reasons not to do that, but if that didn't break anything it'd solve everything right away, because my messaging system uses that subclass and I could just create a new blueprintimplementableevent in my intermediate class between UAC and BPC_Dialogue.
    That shouldn't be a problem, the current parent (BPC_UseActionHandler) is only used for the interact system that you are replacing, which is a child of UActorComponent

    Leave a comment:


  • replied
    Yup, that's what I did... anything that I touch gets its own child.

    This is probably stupid, but do you have any idea if it would break anything to reparent BPC_Dialogue from UActorComponent to one of my C++ classes which is a child of UActorComponent? I'm assuming there are reasons not to do that, but if that didn't break anything it'd solve everything right away, because my messaging system uses that subclass and I could just create a new blueprintimplementableevent in my intermediate class between UAC and BPC_Dialogue.

    Leave a comment:


  • replied
    Originally posted by HInoue View Post
    Those are both good suggestions, I'll see if I can get it working semi-elegantly in interfaces tomorrow... I think doing it through the character blueprint would be cleaner, but some of the things you can talk to don't inherit the character blueprint (signs/items/system messages), so I think trying to cram a C++ interface down both component's throats is probably the way to go. Thanks for the suggestion!
    I can see that, it makes perfect sense to me.

    If this isn't already how you're approaching it, I would recommend creating a child blueprint for BPC_Dialogue for all of your dialogues instead of altering the base files, this way you can receive updates without too much trouble in the future.

    Leave a comment:


  • replied
    Those are both good suggestions, I'll see if I can get it working semi-elegantly in interfaces tomorrow... I think doing it through the character blueprint would be cleaner, but some of the things you can talk to don't inherit the character blueprint (signs/items/system messages), so I think trying to cram a C++ interface down both component's throats is probably the way to go. Thanks for the suggestion!

    Leave a comment:


  • replied
    Originally posted by HInoue View Post
    This is seriously the very last thing, because the system works perfectly, but do you have any advice for how to call BPC_Dialogue's Event Use from C++? The way I've always done this in the past is by implementing all of my events in a base class and extending it via blueprint, but I've never tried calling any of BP's virtual stuff directly from code. The way my interactable system is constructed, the character a BPC_Dialogue is on is the one who gets a Talk/Use/Whatever message, and since they don't share any scope with the dialogue BP I can't build an interface or common messaging framework between them.
    Hmm, one way would be to have the character implemented in Blueprint (derived from your C++ character), and override it's interact function, which could GetComponents by Class (BPC_Dialogue) and call its 'use' event?

    The only way that I know of to communicate directly to a blueprint without inheritance is to use UE4's C++ interfaces, but if your character is the one that receives the event, it might be more convoluted than it needs to be

    Leave a comment:


  • replied
    This is seriously the very last thing, because the system works perfectly, but do you have any advice for how to call BPC_Dialogue's Event Use from C++? The way I've always done this in the past is by implementing all of my events in a base class and extending it via blueprint, but I've never tried calling any of BP's virtual stuff directly from code. The way my interactable system is constructed, the character a BPC_Dialogue is on is the one who gets a Talk/Use/Whatever message, and since they don't share any scope with the dialogue BP I can't build an interface or common messaging framework between them.

    Leave a comment:


  • replied
    Originally posted by HInoue View Post
    Oh duh, I'm blind- everything works now, thank you very much for your help today
    Great! Any time

    Leave a comment:


  • replied
    Oh duh, I'm blind- everything works now, thank you very much for your help today

    Leave a comment:


  • replied
    Originally posted by HInoue View Post
    Ooh, thanks for the quick reply! I swear I'm not being a moron on purpose, but quick followup:

    For the font options, is this the right options box? I see color and some typewriter scroll options, but I've been up and down that banner and can't seem to find the option to change font size, or set a specific font:...

    Finally for the OnMouseInput event, where exactly in BPC_Dialogue is it? I didn't find it in the contextual bar when I hit "Override function" in my child class, so I went to look at the original and I don't think it's anywhere on the main bar- am I looking in the completely wrong place?
    ...
    :P no worries! The font face/size/bold etc... is in UI_Dialogue_TextItem and UI_Dialogue_ResponseItem, the UMG Text widget needs to be set directly because we can't do it through Blueprint (as far as I know)

    OnMouseButton____ is actually a bindable event in UI_Dialogue on the imgClickZone control

    Leave a comment:


  • replied
    Ooh, thanks for the quick reply! I swear I'm not being a moron on purpose, but quick followup:

    For the font options, is this the right options box? I see color and some typewriter scroll options, but I've been up and down that banner and can't seem to find the option to change font size, or set a specific font:

    Finally for the OnMouseInput event, where exactly in BPC_Dialogue is it? I didn't find it in the contextual bar when I hit "Override function" in my child class, so I went to look at the original and I don't think it's anywhere on the main bar- am I looking in the completely wrong place?
    Last edited by HInoue; 10-16-2015, 07:59 PM.

    Leave a comment:


  • replied
    Originally posted by HInoue View Post
    This is a pretty great system- getting everything migrated took a bit of tinkering, but I'm super-happy with the result now that it's up and running.

    I have two silly questions that I couldn't find covered in the documentation, but probably just missed:

    1) I know I can use inline tags to modify the text on a line-by-line basis, but where should I be looking to set the default text format?

    2) Which blueprint sets the mouse as visible, and binds left-mouse as the input that advances through lines of dialogue? I'd like to turn off the first behavior, and change the second from left mouse to an action button already used elsewhere in my input settings.

    Thank you again for putting together a phenomenal system- I was on the fence about buying this for a while, but there's no way I would've put something this clean together on my own.
    Hi HInoue, I'm really glad to hear you're liking the system

    1) Some text options can be configured under "Options" in UI_Dialogue (default colour and typewriter settings), while other options are only available in the UI_Dialogue_TextItem and UI_Dialogue_ResponseItem (Font, shadow, bold, etc...)

    2) The function SetInputType in BPC_Dialogue is the one responsible for setting up the controls, to disable it, set the InputeType (yea, there's a typo there ;P ) to Unmanaged and the dialogue shouldn't do anything with controls anymore.

    The click to continue is using the built in OnMouseButton events in UI_Dialogue though. You can override this behaviour by creating a new UI and inheriting from UI_Dialogue so you could do something custom (see UI_SampleAlternateDialogue for an example of what functions should be overridden if you inherit the dialogue interface)


    Hope this helps, let me know if you'd like any clarification

    Leave a comment:

Working...
X