For example, this is how I figure out where to draw my arrow in my hud class (it doesn’t need to be in the hud class - in fact, I don’t like it much in there)
I did, and this fixed it! Thank you!
Any idea if this asset could be linked with Spine animations for portraits? The system would need to spawn a Spine sprite and then play it’s animation via scripting commands as seen in your video.
Spine runtimes provide Blueprint support - here’s more information on the topic including the available Blueprints for animation control: spine-ue4 Runtime Documentation
Hi there,
I’ve never used spine before, but the portrait is a standard UMG Image widget by default if that helps. If it isn’t compatible with Unreal Motion Graphics, and this is definitely a bit of a hack but, you could do something like have a blank cut-out where the portrait would be, and manage the spine animation from dialogue script functions or some other external system.
Thank you for the quick reply. I highly doubt Spine is compatible with UMG since it does bone based 2D animation with meshes, it works similarly to how 3D animation is done so controlling it via script in dialogue sounds like the best possible solution right now. I just bought your asset so I’ll dig in and try to figure it out.
Fingers crossed that it works out better than expected then! Thanks for checking out the asset
Hey, so I was looking around at different dialogue systems, both free and paid, and the main thing I’m looking for is a system that’s flexible enough to do what I want to do below:
- Dialogue mechanics similar to Firewatch where you can bring up a menu at any time when dialogue is available, but also bring up the menu to select available options for people to converse with amongst anyone in range of your character
- A text box similar to a multiplayer chat box that displays an existing log of previous dialogue lines, possibly including portrait icons.
Is that viable with the system you’ve made? I mean, probably, but I want to be certain about that.
Hi there Candescence,
For the Firewatch dialogue, do you mean that full-screen text where it tells a bit of a story, and then gives you a few options for branching paths in the middle of it?
If so, then this should be perfectly doable with this system, with a bit of a ui facelift to get the same look of course.
For the chatbox, the system doesn’t store previous dialogue out of the box, though it could be painlessly captured and stored so you could display it.
The system was built with inheritance and customizability in mind, so I don’t foresee (m)any snags to get these things working
Cheers!
No, I don’t mean the prologue stuff, I mean the radio conversations occurring throughout the game, where you basically initiate and progress conversations in real-time, without interfering with player input.
And I suppose if that’s not hard to extend in such a way, well, that’s fair enough.
Oh I see what you mean. So that again isn’t the out of the box behaviour, but it can definitely be adapted to it (you can define your own dialogue functions in BP for the scripting system, so there are many ways to skin this cat. Also, don’t skin cats.)
Right, I see. I can see what you mean. I’ll have to do some tweaking, then, see what I can come up with.
Actually, now that I think about it, what I really want with the text is a text box that can simply ‘add’ new lines of dialogue to the box (which would be in a scroll bar frame), either via the typewriter style or not, as opposed to each new line of dialogue overwriting the previous one. If that’s doable, that’d be terrific.
To reiterate what I want to do, I’d like a system where the player can use the dialogue choice menu to select a choice of nearby valid conversation partners, and then be able to call up the dialogue choice menu at any time without limiting the player’s character inputs, and when making a choice, that choice is recorded immediately (non-typewriter style) into the ‘chat box’, before a new line from the conversant is recorded into the ‘chat box’ as well, providing the player a constant record of their dialogue choices and the responses, as well as being able to keep up with more dynamic scenes with multiple characters talking.
But it sounds like it is possible, it’s just that I’d need to modify the system a bit to handle that functionality. That being said, the actual BPs involved look awfully daunting, though, I’m still not quite sure what I should be looking into to get the functionality I need xD
Edit: Okay, so I think the real meat of what I want to change is in the UI widget blueprint. Preventing a clear line should be simple enough, I guess, but should I just put the [br] tag at the beginning/end of each dialogue line or is there any way I could tell the dialogue UI that it should be doing that automatically? Also, would be nice to be able to insert the speaker name and portrait into the text itself, but that’s something that I can do in the text itself, I guess rather than trying to program it in.
Yeah, I’m really not making any progress on that front, unfortunately. The way the text is handled is so complicated that while I can stop the text from being cleared, I can’t get it to go to a new line after the previous bunch of text, and I can’t even figure out how where I would even look to do that. And, to boot, I can’t even display responses for some reason. I feel like I’m breaking things more than I’m fixing them at this point.
Though, in general, it would be really cool if the text/scripting system in this could be used for pretty much any input text, dialogue or otherwise, because the text system by itself is really cool.
Hi Candescence, sorry I missed your last reply (I didn’t receive email notification for it).
To keep the dialogue in the same list, the system would maybe need to change quite a bit. When a branch is processed, a new UI is generated and populated to display the new dialogue.
I can think of a potential work-around for this using multiple dialogue widgets and a widget to host all of them in a scroll box. I believe this could be made to work without changing the dialogue UI too much (responses would need to be optionally stripped away).
eg. instead of opening a dialogue, a “host” widget would be displayed. It would read the history of dialogue and create those widgets as nested dialogue widgets (with responses removed) in a scroll box, and the new dialogue would then be displayed somewhere, maybe at the bottom of that scroll box.
It sounds like a fair bit of work, but I think it would work (disclaimer: this is off the top of my head, I could be completely wrong and trying it may or may not create new and dangerous life-forms.)
Hey there! I am really excited about this plugin but I am using the top down template and I cannot get this to work. I looked through the documents and watched the videos but still cannot seem to get it to work. Even loading the sample map does not work so I am wondering if it is a setting in the template… Also I noticed a handful of depreciated BP nodes causing them to compile with warnings and give me BP not compiled errors when I try to play (PIE).
Any insight would be great! Thank you.
Hi mikezteh,
You should be able to safely ignore the depricated nodes, they haven’t caused any problems so far (at least up until 4.18). With the sample project, there is no configuring to do - the standalone sample project should just work out of the box.
Can you create a new project from the launcher to see if it still has the issue?
EDIT: Which editor version are you working in by the way? I’ve just tried a new project with 4.18.1 from the launcher without any problems.
Hello Mr. Grogger and everybody.
I’ve bought your Blueprint Dialogue system some times ago, I was playing with and it worked pretty well.
I’m back in UE4 for few days and I’m looking into using your system once again… Buuuut… I’m looking for trigger a dialogue by a simple BoxTrigger. I know it’s possible to do that, you said it multiple times in this topic. But, I can’t figure how to do it myself, since I’m still a complete beginner.
If someone could give me hand on how they managed to do it, or if you, mr.Grogger could try to explain that how that works, i’d be so grateful.
Thanks by advance and, once again, great job on that system.
EDIT : Oh, and I have an Error/Warning about Widgets… But there is no location to it and it doesn’t affect anything (My dialogues work perfectly fine…)
Any clue ?
Let me walk you through my steps.
This applies to 4.17.2 and 4.18.1
I fresh install a template ( I have tried with top down and 3rd person ).
I migrate the dialogue folder to my content.
I open the sample and play - everything works fine
I create my own dialog from the demo given in the video and I am unable to execute the event (“Press E to…”)
I have gone into your controller and looked at the was you are scanning for events and checking the buttons and such so I try to use that but still no luck.
I guess my problem is that I am, as of now, unable to integrate this into my existing project from scratch.
Depending on your scenario, you can either make a custom trigger box actor and add a dialogue box component to it, OR find the actor with the dialogue component you want when the box is triggered.
Once you have the dialogue component you’re looking for, “SetState” is the function to call to start the dialogue you want (the input would be the branch name).
Yea, the warnings are because I’m maintaining a version from 4.9. Other than the warnings though, you’re right that they don’t [seem to] have any adverse effects.
Ah ok, I’ll go through some possible problems and maybe I’ll scratch the issue.
-
The default collision channel for the UseScanner is the Visibility channel. Make sure the actor handles this trace channel as **block **(overlap might also work), or change the UseScanner to use a different channel that is handled this way.
NOTE: Characters in UE4 have a default visible channel of ignore for some reason. (anecdote) I have changed this in my projects with hundreds of characters without noticing a difference - no idea why it’s the default. -
Make sure **ScanForUsables **in BPC_UseScanner is being called (set a breakpoint at the start of the function). If it’s not called, either make sure the tick is enabled on the component, or ScanForUsables is called manually.
-
Make sure that your Use input is being called properly
**Note: **The message “Press E to Use” is a debug print message in the sample, these don’t print in packaged builds
I will try that, yes aware of the press E message. I have a UMG messaging system I am sending but the trace/collision may be the issue because UMG isn’t even getting the message. But for what it is worth I also changed the default player (in my game mode) to yours to see if there was a dependency or setting I was missing and it did not work.
For sanity I also tried pressing E and clicking on it without messaging to see if something was still working under the hood but no luck…
P.S. Thank you for working with me on this. It is difficult trying to do advanced things and creating complete prototypes as just a UI designer
EDIT
So I tried making the changes, integrating the controls to my player and running it and all hell breaks loose
I am including my PIE warnings.