Announcement

Collapse
No announcement yet.

Dialogue Plugin

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

  • replied
    I was using the 4.16 version.. but seemed to have fixed it.

    I was somehow using VS C++ compiler for VS2015 in my VS2017 install.. and when I added the 2017 Compiler and removed the 2015 compiler the errors went away.

    Thanks for your help.

    Leave a comment:


  • replied
    Originally posted by Macw0lf View Post
    I am still getting the header include problem?
    [ATTACH=CONFIG]144072[/ATTACH]
    It looks like you're trying to compile the 4.15 version on 4.16 engine. Just grab the 4.16 version.

    Leave a comment:


  • replied
    Ok thanks. has nobody else had this problem in 4.15 after the new plugin update was released?

    Leave a comment:


  • replied
    Originally posted by Macw0lf View Post
    Don't understand it either.

    Just to clarify if any of these might be factor:
    1) I have shifted the plugin out of engine source to game project (as I had added custom code to extend it - but removed that for the upgrade)
    2) Am compiling on 4.16 (not 4.15)
    I only brought up 4.15 because the problems you listed are because of the new IWYU system INTRODUCED in 4.15. This means, if its introduced in 4.15, it will still be a problem in 4.16. The issue won't magically disappear because its not a bug, but it is a new programming rule.

    Leave a comment:


  • replied
    Originally posted by sbnewsom View Post
    Thats so weird. Whats even weird is that such errors shouldn't have been able to compile for CodeSpartan and Epic because of the new format in 4.15. So it begs the question, why is that? [MENTION=145367]Co[/MENTION]despartan: I haven't compiled this myself yet since Nvidia VXGI hasn't been ported to 4.16 yet, but are the headers first in your source? Or did you disable IWYU bypassing these errors?
    Don't understand it either.

    Just to clarify if any of these might be factor:
    1) I have shifted the plugin out of engine source to game project (as I had added custom code to extend it - but removed that for the upgrade)
    2) Am compiling on 4.16 (not 4.15)

    Leave a comment:


  • replied
    Originally posted by Macw0lf View Post
    I am still getting the header include problem?
    [ATTACH=CONFIG]144072[/ATTACH]
    Thats so weird. Whats even weird is that such errors shouldn't have been able to compile for CodeSpartan and Epic because of the new format in 4.15. So it begs the question, why is that? [MENTION=145367]Co[/MENTION]despartan: I haven't compiled this myself yet since Nvidia VXGI hasn't been ported to 4.16 yet, but are the headers first in your source? Or did you disable IWYU bypassing these errors?

    Leave a comment:


  • replied
    Originally posted by CodeSpartan View Post
    4.16 is up on the marketplace.
    I am still getting the header include problem?
    Click image for larger version

Name:	error.png
Views:	1
Size:	11.4 KB
ID:	1129174

    Leave a comment:


  • replied
    4.16 is up on the marketplace.

    Leave a comment:


  • replied
    Originally posted by sbnewsom View Post
    How does the plugin store this information?
    Each dialogue file (UDialogue found in Dialogue.h) has an array of nodes (FDialogueNode) and a few simple variables.

    Each FDialogueNode (also found in Dialogue.h) is just a struct that has things like node id, text, etc.

    So if you want to export a dialogue, you need to export the four UPROPERTIES that you have in UDialogue, and that's it.

    Leave a comment:


  • 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:

Working...
X