Same goes for me this time around haha. Eventually found my very stupid mistake.
The thing I forgot was to call the Close() function at the end of the conversation. thanks for the tutorials, through which i found it :D!
So indeed what you mentioned this morning @Allegro :), thanks as well!
Keep up the good work, it’s time to get my prototype working
I’m glad you found the problem
I hope to resolve the need for the Close() function when there are no other branches to flow to in a future release, it is easy to forget it and difficult to troubleshoot if you don’t know about it!
I might be just the most overlooking guy ever… But asking stands free right :'D?
The thing: I want to flag variables within the dialogue, which must be done in the pre-/postaction face. However is it possible to access these variables in the dialogue file?
Ergo: is it already possible to access my own variables in the dialogue system?
If you mean to retrieve the variables in-line in the “Text” as text, then you can use the wrapping $ (eg. $MyTextVariable$) or in script scope you don’t need the symbol (eg. “{OldTextVar = MyTextVariable}”). This is brief in the documentation here.
If you meant to retrieve it in Blueprints, then you can use the DialogueComponent->GetScriptInterpreter->GetVariable:
I hope this answers your question!
Please, don’t be shy to ask anything else!
Note: I will update the documentation to mention variable namespaces and retrieving variables from script
Edit: Also if you find yourself in a particularly good mood and you are feeling good about the system (:P), it would be appreciated if you could leave a review and a few stars!
I just bought the Blueprint Dialogues from the marketplace. Something weird happened. I followed the video tutorial and it worked, but now I’m getting 5-10 fps on a project that I used to get 120 frames per second. I didn’t change anything else on the project, so I think it’s related to the dialogue system. Have you ever see that before? Any idea of what is causing this? This is a blind shot, because I’m not 100% it was the bp dialogue system that caused this, but prior to adding it to the project, everything was working fine.
Thanks!
[edit] I just figured that if I remove the BPC_UseScanner from my character, the game runs normally. However, that element is essential to the blueprint dialogue system. Any ideas?
[edit2] I reduced the BPC_UseScanner’s Max Trace Radius to 100 and now it’s working as it should. No framedrop so far.
I haven’t experienced this, but I am glad you found the cause of it.
I will be looking at this issue for the next build, thanks for reporting a workaround
Is it possible to fire a dialogue from the level blueprint? I’m trying to make the player say something automatically when the game starts (begin play).
How do you assign a portrait to a speaker? I understand that you have to create an asset with the portrait at DT_DialogueAssets_Main, but I can’t find documentation on how that works and I can’t edit the AssetReference row. Can you please enlighten me? Maybe make a quick video tutorial on how to assign a portrait covering that?
You can trigger the dialogue from the level blueprint by calling the ‘Use’ event on the actor owning the dialogue you want to trigger. To make a narrator, a dummy actor should work safely.
To add an asset to a data table, you’ll need to use the csv for now (4.8 doesn’t allow editing base Object columns in the row editor).
In the sample, you can find the csv’s under “Content\BlueprintDialogues\SampleContent\DialogueSampleContent\Data”.
To get the full path for the table, simply Ctrl+C when selecting the asset in the content browser (or right click -> Copy Reference).
For portraits, you can either set the default portrait by copying the reference to the **SpeakerPortrait **column in the speaker attribute table, or, if you intend to swap the portrait, place it in your DialogueAsset data table and use the ‘SetPortrait](Blueprint Dialogue System - Documentation - Google Docs)’ function after the PreAction event in the dialogue (eg. before the start of your text).
I will update the documentation (maybe make a video tutorial if I get the chance) on this when I get the chance, thanks for bringing it up!
I hope this helps
You can copy csv from \Content\BlueprintDialogues\SampleContent\DialogueSampleContent\Data and open it with Excel on windows os or other program. Then add necessary data and reimport in any existing datatable.
To add portrait just copy its reference by clicking right button of mouse on texture - Copy Reference and insert it in right place inside table via Excel.
To add to what said, if you don’t have Excel, LibreOffice, OpenOffice, CSVed, and Google Docs are free alternatives (I personal use GoogleDocs and export to csv - it’s nice because it can properly clip columns for the really long file paths that get put in there. I use CSVed over the others when changing a value in the csv directly because it doesn’t lock the file and I like the layout.)
More tutorials is definitely on my Trello Dialogue to-do board!
Best of luck, please let me know if you encounter any issues, I’ll be glad to help
(check out the video tutorials and documentation for more info if you haven’t spotted them yet)
One quick question about functionality if you don’t mind- does this have built-in support for switching between matinee and dialogue on the fly, as in “Display line 1. once the user closes the dialog box play this cutscene until the NPC finishes crossing the room, then pause matinee and display lines 2-5”?
Unfortunately not. This is something I attempted to add, but Matinee had seemed uncooperative, I could not find a nice extendible way to do this.
As far as I can tell (please correct me if I’m wrong), matinee sequences can only communicate events to the level blueprint, and matinee sequences require a class variable to interact with them through blueprint. You can extend each specific dialogue component for custom matinee sequences if you wish and have the matinee sequences continue the dialogue flow once complete, but this will be mostly custom work.
P.S. If anyone has any ideas on interacting with matinee like this, I would love to hear them!
Edit: To clarify my idea, each matinee sequence would need a custom dialogue function (you can’t pass a matinee actor reference as a string parameter), and the matinee sequences would return events to your level blueprint. On receiving a ‘Finished’ event from the sequence, you would then continue the dialogue flow with the SetState function (you will need a reference to the actor containing the component in the level blueprint)
Thanks for the reply, I’ve never been able to figure out an extensible solution either, so I was hoping you had- I’ll post back if I ever work out something really workable.
One more quick question if you don’t mind- thumbing through the docs this looks pretty focused on blueprint components- I love the look, and I like the ton of formatting and functionality it has, but because my game uses mostly procedural dialogue generated in C++, I would need to get this system to accept a series of TArray<FString> for dialogue, and TArray<questionStruct> for responses. Would it be reasonably easy to re-wire your system to accept dialogue in that format from a single central manager class, or would the work I would need to put into changes be better-served building a UMG UI from the ground up?