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?
Announcement
Collapse
No announcement yet.
Blueprint Dialogue System
Collapse
X
-
Originally posted by Shakunga View PostHey 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?
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.
Comment
-
Hello Grogger the Dialogue System is amazing thank you!Just wanted to ask though which blueprints in the system should I look at if say I wanted to change how the dialogue triggers for example if I wanted it to trigger when the level starts or when player walks to a certain point?
Thank you so much
*EDIT* Okay got it all working for just stepping onto a trigger so just what about with a level start?Last edited by Trauts123; 10-12-2020, 03:15 AM.
Comment
-
Originally posted by Trauts123 View PostHello Grogger the Dialogue System is amazing thank you!Just wanted to ask though which blueprints in the system should I look at if say I wanted to change how the dialogue triggers for example if I wanted it to trigger when the level starts or when player walks to a certain point?
Thank you so much
*EDIT* Okay got it all working for just stepping onto a trigger so just what about with a level start?
To trigger manually, you can either call the "Use" or the "SetState" function on the BPC_DialogueComponent. So on Level start (maybe BeginPlay in your level blueprint), you can use the reference of the actor hosting the dialogue component in your project, and get the component to call one of those functions.
Comment
-
Originally posted by Grogger View Post
Hey there, glad you're enjoying it
To trigger manually, you can either call the "Use" or the "SetState" function on the BPC_DialogueComponent. So on Level start (maybe BeginPlay in your level blueprint), you can use the reference of the actor hosting the dialogue component in your project, and get the component to call one of those functions.I don't think I am setting it up right for the on BeginPlay? Can you tell what I am doing wrong sorry? (The BPC Dialogue is just placed on a random cylinder and it does work if I manually activate it with the character) Thank you!
Comment
-
Originally posted by Trauts123 View Post
Thanks for the reply!I don't think I am setting it up right for the on BeginPlay? Can you tell what I am doing wrong sorry? (The BPC Dialogue is just placed on a random cylinder and it does work if I manually activate it with the character) Thank you!
Comment
-
I'm currently writing a guide for the writers on my project. So they write in a style, that I can parse into a DataTable for this plugin via Python.
A simple example would be:
"{Start}
Player(Neutral): Hey
NPCName(Anger_B): What do you want?"
This is a simple example, it could also be 10 lines of dialogue going back and forth between the player and the NPC.
{Start} is the branch name.
The text following that is the dialogue associated with that branch name.
Is it somehow possible to switch from one speaker to the next within the same branch? That would be perfect!
If that's not possible, the best solution would be to make the Python script create a new branch for each speaker's line, right?
So something like:
"{Start_1}
Player(Neutral): Hey
{Start_2}
NPCName(Anger_B): What do you want?"
Technically that's no problem, I'm just worried that the generated DataTable would become very cluttered and may even cause performance problems to read in-game.
This way, for some NPCs the DataTable could have hundreds, or even thousands of lines in our RPG project...
Comment
-
Originally posted by XilenceX View PostI'm currently writing a guide for the writers on my project. So they write in a style, that I can parse into a DataTable for this plugin via Python.
A simple example would be:
"{Start}
Player(Neutral): Hey
NPCName(Anger_B): What do you want?"
This is a simple example, it could also be 10 lines of dialogue going back and forth between the player and the NPC.
{Start} is the branch name.
The text following that is the dialogue associated with that branch name.
Is it somehow possible to switch from one speaker to the next within the same branch? That would be perfect!
If that's not possible, the best solution would be to make the Python script create a new branch for each speaker's line, right?
So something like:
"{Start_1}
Player(Neutral): Hey
{Start_2}
NPCName(Anger_B): What do you want?"
Technically that's no problem, I'm just worried that the generated DataTable would become very cluttered and may even cause performance problems to read in-game.
This way, for some NPCs the DataTable could have hundreds, or even thousands of lines in our RPG project...
Hey there! That's a neat idea, I like it. A branch in this system is essentially 1 page/prompt of dialogue, so we couldn't split up one branch into multiple users in this case (the page break operator >> breaks 1 branch into multiple pages but it doesn't have an opportunity to change users).
For designer convenience sake, you can maybe generate 'sub-branches' for each new speaker. So for example:
{Start}
Player(Neutral): Hey <-- Script generates Branch "Start__1"
NPCName(Anger_B): What do you want? <-- Script generates Branch "Start__2"
I wouldn't expect this to be a performance issue at any rate, tables use a map internally iirc, so a binary search is not going to have a problem with searching a million entries once in a while.
Comment
-
How to make character input work when dialogue is displayed. Currently, my Char input stops working when Dialogue is displayed. I have set my preaction as
SetPassiveDialogue(true, 2)
Also my char input stops working after my dialogue ends
I also get this warning::
The widget UI_Dialogue_C_0 does not support focus. If this is a UserWidget, you should set bIsFocusable to true.
Last edited by sandy234; 02-23-2021, 04:16 AM.
Comment
Comment