Blueprint Dialogue System

Hey there Bram,

Sorry about that, it was a test function that has since been removed. The branches visited are not being tracked in the system, to do this, I would either set a script variable in the pre or post action (if it’s not often needed), or extend the system to store a variable for all visited branches - this is more involved however.

Thank you for the report! I will look into that when I get home tonight. In the meantime, executing it in-line should work as a workaround?

I haven’t been able to reproduce this issue, the Post action is always being called before a branch. Could it be that the script being run is overwritten or some such thing? What was supposed to be executed (or any other details you could provide to help me reproduce the issue)?

Thanks :slight_smile:

Update 1.2

New Update:
This update is now available

v1.2 Changelog:

General Changes:

  • Upgraded the project to 4.9
  • Improved Use Scanner performance

New Features:

  • Added a new Mouse Use Scanner for cursor interaction
  • Added SetSpeakerId script function to allow changing the name and portrait inline. It can also be used in the prescript column (this can be useful if there is a conditional statement to set the speaker id).
  • Added gamepad support and input type switching. The default is Mouse and Keyboard and it can be changed at runtime or in editor
  • Added Unmanaged input mode support to allow external input management (eg. Showing/hiding mouse cursor, setting the Input mode, managing key-binding, etc…).
  • Added a new convenience operator ‘>>’ to easily create multiple branch partitions in a single row in the data table (eg. “This is branch one >> This is branch two >> This is branch three”) . The sample has been updated to demonstrate this.

[INDENT]Note: to display >> in the text, use the escape character: >>
Note2: Pre actions will run before the first partition, and Post actions run only at the end of the last partition.

Fixes:

  • Fixed an issue that would cause the system to lock up all player input if the Close function was not called and no valid branches were provided.
  • Fixed SetSpeakerPortrait to be usable from the PreScript column
  • Fixed escape character ‘’ being printed for text and responses (to print a backslash, use two. Eg. \ displays one )
  • Fixed a bug that wouldn’t find variables at the beginning of a text line

Documentation:

[/INDENT]

I have attached to this post the gritty details of the update for those who have edited the core files (avoid doing this if possible).

Glorious! Really looking forward to it. Regarding the bug, i’ll ask one of the programmers that found out and will report as soon as I know :).

Question though: is it easy to update an existing project with the update?

If you haven’t touched the core files, it should be a drop in update with the possibility for minor things to check (Initial Branch is set to “auto_select” or something custom, and the Input Mode being set to Mouse & Keyboard to function as usual)
The attached file goes over all the changes that I have made, in case the core files were modified.

Hey,

Have you received an ETA from Epic as to when the update will be available for everybody :)?

Thanks Nick (huge delay, I hadn’t seen your message!), I wasn’t able to get this method to work - I’m guessing it has something to do with UI Only input mode?
I did manage to get it on an android device for testing though, so all is well enough for this small project :slight_smile:

No, I haven’t heard from them yet. Hopefully soon!

Can’t wait for the update! I just bought this yesterday. A lot of it is over my head, but with your videos and documentation I think I’ll work things out soon enough.

If I end up using your system in a published game, how do I credit you? I assumed I’d put you down as Groggeroo, but I see your Youtube handle is Lithic Entertainment. Which would you prefer?

One weird way or another I can see the availability of the 4.9 version on the marketplace.
However, it is still saying ‘syncing’; making it unusable for me. For God’s Sake Epic, give us this update already hahaha!

You won’t need to credit us, in case you thought so, but if you’d like to “Dialogue system - Lithic Entertainment” or something along those lines would be perfect!

An epic staff member mentioned that he was hopeful it would be updated before the end of the week, so that’s promising :slight_smile:

Today it is :slight_smile: just checked some stuff and an update is downloaded ^^. Even more stuff to check this weekend!

I just checked the content, looks like the uproject file is missing, so I wasn’t able to test the new version download. I have asked the marketplace folks to take a look, hopefully they get back to me soon!

The new update (v1.2) is now available through the Unreal launcher.

Note: If you downloaded the update before now, you may need to update again because there was an error in the update process (the .uproject file was missing in this version).

As always, please let me know of any problems and feel free to ask questions!

Finally purchased it!
Now it’s time to test it and play with it deeply :slight_smile:

This might be far too impractical, but is there any chance of seeing XML support, or at the very least support for the .xls that articy:draft produces? This looks like an amazing product, but the project I’m working on has an enormous amount of dialog, and the big thing preventing me from purchasing is the fact that manually assembling our dialogue trees in excel would quickly drive everybody nuts. :slight_smile:

Great to hear! :slight_smile:

Hi HInoue,

There are currently no plans to add direct XML support, because this would not be possible without plugins (as far as I know).
I have looked into the xlsx generated from artisy but it’s not human readable so it would need a plugin also to work directly with the dialogue.

My best guess solution would be to create an external converter that would take the exported XML from artisy and convert it to CSV. While this is feasible, we just don’t have the resources to do it at this time. This is, however, something your team could venture to do as a solution, being an external converter to a simple CSV format (if you choose this route, I will gladly be of assistance).

As an additional possibility you could have the content read from whatever format you choose in C++ and override the base getter functions in BPC_Dialogue to retrieve the content from your chosen format instead of the data tables, this would be a nicer workflow once it is working.

Alright awesome, thanks for the suggestions :slight_smile:

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. :slight_smile:

Hi HInoue, I’m really glad to hear you’re liking the system :slight_smile:

  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 :stuck_out_tongue_winking_eye: ) 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 :slight_smile:

Ooh, thanks for the quick reply! :slight_smile: 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?