Announcement

Collapse
No announcement yet.

Dialogue Plugin

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

  • replied
    [MENTION=25447]CodeSpartan[/MENTION]

    This is exciting! This gives me hope for the next build. Fingers crossed (I'm sure it'll work, no problems ) I really appreciate the help btw.

    Looking into exporting and import dialog right now. How does the plugin store this information? Is it individual arrays?

    Leave a comment:


  • replied
    Sent the plugin for review. Should be up on the marketplace soon.

    @Sbnewsom, I also compiled it in the github version of Unreal just to see how it would behave, because I remember that's what you were trying to do, and it worked.
    Last edited by CodeSpartan; 05-26-2017, 03:21 PM.

    Leave a comment:


  • replied
    Originally posted by sbnewsom View Post
    Getting these errors when compiling your plugin in a custom 4.15 engine. Aside from your plugin throwing the IWYU error where the header needs to be first thing, it seems the code itself in source seems to be from 4.14. Else I don't think I should be getting a IWYU error. This is a fresh copy of the plugin that was installed with the default binary 4.15 from the launcher. I just copied the plugin to my 4.15 engine source and viola, errors. Technically none of these errors make sense since your code is fine.

    Code:
    Severity	Code	Description	Project	File	Line	Suppression State
    Error	C2614	'UDialogue': illegal member initialization: 'Super' is not a base or member	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	329	
    Error	C2143	syntax error: missing ';' before '*'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	65	
    Error	C4430	missing type specifier - int assumed. Note: C++ does not support default-int	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	65	
    Error	C2238	unexpected token(s) preceding ';'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	65	
    Error	C2504	'UDataAsset': base class undefined	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	70	
    Error	C3646	'Super': unknown override specifier	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	71	
    Error	C4430	missing type specifier - int assumed. Note: C++ does not support default-int	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	71	
    Error	C2440	'return': cannot convert from 'UDialogue *' to 'UObject *'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	71	
    Error	C2039	'StaticConfigName': is not a member of 'UDialogue'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C3861	'StaticConfigName': identifier not found	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C2039	'AddReferencedObjects': is not a member of 'UDialogue'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C2065	'AddReferencedObjects': undeclared identifier	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C3083	'Super': the symbol to the left of a '::' must be a type	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C3083	'WithinClass': the symbol to the left of a '::' must be a type	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C2039	'DialogueWave': is not a member of 'FDialogueNode'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	106	
    Error	C2664	'UObjectProperty::UObjectProperty(const UObjectProperty &)': cannot convert argument 1 from 'FObjectInitializer' to 'ECppProperty'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	106
    The 4.14 plugin worked perfectly. This is the only plugin preventing me from upgrading to 4.15.
    Hey. So I'm in the middle of updating the plugin to 4.16 and I just had some of the errors you're having. Fixing them was a matter of including parent classes into headers when you're using something in cpp, like Super.
    So for example adding #include "Runtime/Engine/Classes/Engine/DataAsset.h" into Dialogue.h fixed the error of "'UDialogue': illegal member initialization: 'Super' is not a base or member UE4".

    Then there are some errors like 'DialogueWave': is not a member of 'FDialogueNode', they can be fixed by adding forward declarations into .h files, so in Dialogue.h I added class in front of UDialogueWave* DialogueWave = NULL; and that fixed that particular error.

    Try these two fixes and see if it compiles, I didn't have any errors after that, although I had a long list like yours when I first tried to compile.

    I'm fixing those things now for 4.16, so hopefully you won't get any errors like that with the 4.16 version. I'll try to send it to the marketplace in a few days.
    Last edited by CodeSpartan; 05-26-2017, 12:26 PM.

    Leave a comment:


  • replied
    Originally posted by yoraanny View Post
    1. When I have a pure NPC dialog, the conversation doesn't end when I click to continue into the last dialog line. But, with a PC answer, the dialog finish normally. Is this correctly? Or it's a bug in my project?
    Well, usually dialogues end with a PC line. If you want them to end with an NPC line, then depending on the game, the behavior would differ in this particular situation. In Dark Souls, the last NPC line would linger on the screen for a few seconds, but you'd already be effectively out of the dialogue. In Baldur's Gate, the line would appear normally and then you'd have an [End Dialogue] PC response generated automatically for you.

    So it's not exactly a bug, it's just something I never implemented. Call it a slight oversight.

    Anyway, this is where you arrive when that happens: https://i.gyazo.com/736f017eec0bc774...828643ae3d.png
    You could do something like this if you want: https://i.gyazo.com/a2e9f7ebadbeb6bf...ebbb1fdc51.png - this would create a "End Dialogue" reply. (you'd have to reset the text back to Continue somewhere else later)

    Hard to answer about your other two questions without looking at the project. They're more general purpose UMG type of questions.
    Last edited by CodeSpartan; 05-04-2017, 10:22 PM.

    Leave a comment:


  • replied
    Slight correction. After setting a Level Sequence to play for the first time, the branch in DoEvents will always return true since it was just checking isvalid. What I ended up doing is creating an additional bool called "HasLevelSequence" in Dialogue.h and using that as the branch condition in DoEvents.

    Leave a comment:


  • replied
    A little advice for people who want to play a LevelSequence through the event system:

    1. In DialoguePlugin.Build.cs add the following to the PublicDependencyModuleNames list:

    "LevelSequence",
    "MovieScene"

    2. At the top of Dialogue.h, above #include "Dialogue.generated.h" add the following:

    #include "LevelSequence.h"
    #include "MovieScene.h"

    3. Under FDialogueEvents add the following:

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Dialogue Event")
    ULevelSequence* LevelSequenceAsset = nullptr;

    4. Build the project and you should be able to set a LevelSequence asset to play as an event in the dialogue asset.

    5. You'll then have to set it to play the chosen asset in the DoEvents function of MyDialogueWidget. I dragged off Level Sequence Asset, made an IsValid node, dragged off that to create a branch connected to the previous HasEvents=true branch. Then, dragging off of True, made a Create Level Sequence Player node. Drag off the return value pin and make a Play node. Then just connect the Level Sequence Asset pin to the Level Sequence in the player node.

    Leave a comment:


  • replied
    Hey guys, I have some newbie questions (sorry for that, hehe).

    I finally bought the plugin, but I having some difficulties to change the mouse click to a keyboard button.
    I don't know if someone have asked this before, but how can I change this? For example, my game is a side scroller and I want to show the dialog when the player get in front of a NPC and press Z.

    To be more specific, I want something like the dialogs from Final Fantasy and others RPGs: press a button in front a NPC to start the dialog, and Z again to continue or finish the dialog.

    This is the setup I am using right now to launch the dialogues.
    All this blueprint is inside of my NPC. I don't know if its correct, but this is working right now. It would be perfect if I could use my action input as a default, like the mouse click is right now.

    [EDIT]

    So, I'm diving into the plugin to learn more about it. And a couple questions are driving me crazy.

    1. When I have a pure NPC dialog, the conversation doesn't end when I click to continue into the last dialog line. But, with a PC answer, the dialog finish normally. Is this correctly? Or it's a bug in my project?

    2. I'm finding problems to focus the keyboard/gamepad into the continue button to show the next dialog line. I made a "way" to do that, (you can see here and here) but the editor always give me some ("trying access node...") errors. Do you guys have a proper way to do that? The documentation only shows how to use the gamepad for a Fallout kind of dialogue, which gives the keyboard focus only to the answers.

    3. About the answers gamepad focus, I did exactly what the documentation says to do, and it works (I see the hovered buttons). But, actually, this doesn't made the dialog advance; it just simulate the hover on the answers. Plus, for example, if I press the top button, the first choice gets hovered. And, if I press the bottom, the last gets hovered too (see here). How could I fix it and advance the dialog?

    Well, for now this is all, hehe.
    Can you - please - help me?
    Last edited by Nekospacial; 04-30-2017, 06:24 PM.

    Leave a comment:


  • replied
    Originally posted by CodeSpartan View Post
    Oops, sorry for spreading misinformation. Thanks for the info.




    I'll try to include the VR dialogue widget in the next version. For now, here's how you can do it:
    1. Copy the DemoDialogueWidget and DemoReplyWidget into the project from the plugin folder. Do it by performing all steps in Documentation: 3.1 Duplicating the demo widget. For the purpose of this how-to, let's call them VRDialogueWidget and VRReplyWidget.
    2. I'll assume you're working in First Person Template project for this how-to. Perform the first 8 steps of this guide.
    3. Create a Blueprint Class (inherited from Actor) called VRDialogueActor. Add a Widget component as per steps 19 and 20 of this guide. Make sure the Widget Class is set to VRDialogueWidget. Check "draw at desired size". Set widget's transform to 0, 0, 110.
    4. Go into the Event Graph of your VRDialogueActor and make it so that it always faces your character. An example of how you can do it.
    5. In your newly created VRDialogueWidget, add a variable called ParentActor, make it a reference to class VRDialogueActor, like this.
    6. In VRDialogueWidget, open function ToNpcReply and add the following highlighted nodes.
    7. Now all that remains is to spawn your VRDialogueActor in front of your character when you want to start a dialogue. This is an example of how you can do it in the FirstPersonCharacter blueprint.

    I'll try to include all of those files into the next version so you don't have to do all that yourself.

    Result:



    great instruction, but I have a small question - did you test this in VR Preview mode (with headset)?


    update: I think that yes!) My bad - I miss this node http://joxi.ru/xAeGRq5UpZ31dm
    now it's work as expected. Thank you!
    Last edited by 6r0m; 04-26-2017, 04:15 AM.

    Leave a comment:


  • replied
    Originally posted by sbnewsom View Post
    I should of clarified, I've compiled it in the project already and it still threw out errors.
    Is it happening in all projects, such as a blank TPP project, or only in yours?

    Leave a comment:


  • replied
    Originally posted by CodeSpartan View Post
    Well can you include the plugin into your project instead of into the engine?
    I should of clarified, I've compiled it in the project already and it still threw out errors.

    Leave a comment:


  • replied
    Originally posted by sbnewsom View Post
    Not at all. Stuck on 4.14 and don't have the money to invest in a completely new Dialogue System. I have no idea where the problem is coming from that would prove helpful.
    Well can you include the plugin into your project instead of into the engine?

    Leave a comment:


  • replied
    Originally posted by CodeSpartan View Post
    Have you tried including it into the project instead of including it into your custom engine build? Is the issue resolved?
    Not at all. Stuck on 4.14 and don't have the money to invest in a completely new Dialogue System. I have no idea where the problem is coming from that would prove helpful.

    Leave a comment:


  • replied
    Originally posted by AndrewLindsay View Post
    Hello there, I recently purchased this excellent dialogue system. It works well, but I am really wanting to get the messages to appear gradually with a 'typewriter text' effect, character by character. I saw a user named popawheelie had actually posted a screenshot of how to do this on this post, but the screenshot does not show where the blueprints go. If anyone could help me achieve this effect in any way, I would be extremely grateful. Thanks.
    Hey. I never did anything like that. Here's how I'd do it: show just the first letter of the entire string (a substring), Delay 0.3 seconds, then show 2 letters... then the same for 3 letters... Etc. It's a simple "For" loop with delays.
    Last edited by CodeSpartan; 04-23-2017, 04:01 PM.

    Leave a comment:


  • replied
    Have you tried including it into the project instead of including it into your custom engine build? Is the issue resolved?

    Leave a comment:


  • replied
    Getting these errors when compiling your plugin in a custom 4.15 engine. Aside from your plugin throwing the IWYU error where the header needs to be first thing, it seems the code itself in source seems to be from 4.14. Else I don't think I should be getting a IWYU error. This is a fresh copy of the plugin that was installed with the default binary 4.15 from the launcher. I just copied the plugin to my 4.15 engine source and viola, errors. Technically none of these errors make sense since your code is fine.

    Code:
    Severity	Code	Description	Project	File	Line	Suppression State
    Error	C2614	'UDialogue': illegal member initialization: 'Super' is not a base or member	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	329	
    Error	C2143	syntax error: missing ';' before '*'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	65	
    Error	C4430	missing type specifier - int assumed. Note: C++ does not support default-int	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	65	
    Error	C2238	unexpected token(s) preceding ';'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	65	
    Error	C2504	'UDataAsset': base class undefined	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	70	
    Error	C3646	'Super': unknown override specifier	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	71	
    Error	C4430	missing type specifier - int assumed. Note: C++ does not support default-int	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	71	
    Error	C2440	'return': cannot convert from 'UDialogue *' to 'UObject *'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Source\DialoguePlugin\Classes\Dialogue.h	71	
    Error	C2039	'StaticConfigName': is not a member of 'UDialogue'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C3861	'StaticConfigName': identifier not found	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C2039	'AddReferencedObjects': is not a member of 'UDialogue'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C2065	'AddReferencedObjects': undeclared identifier	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C3083	'Super': the symbol to the left of a '::' must be a type	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C3083	'WithinClass': the symbol to the left of a '::' must be a type	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	79	
    Error	C2039	'DialogueWave': is not a member of 'FDialogueNode'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	106	
    Error	C2664	'UObjectProperty::UObjectProperty(const UObjectProperty &)': cannot convert argument 1 from 'FObjectInitializer' to 'ECppProperty'	UE4	F:\UE4-15\UnrealEngine\Engine\Plugins\Marketplace\DialoguePlugin\Intermediate\Build\Win64\UE4Editor\Inc\DialoguePlugin\DialoguePlugin.generated.cpp	106
    The 4.14 plugin worked perfectly. This is the only plugin preventing me from upgrading to 4.15.
    Last edited by sbnewsom; 04-13-2017, 11:49 PM.

    Leave a comment:

Working...
X