ArticySoftware / Articy3ImporterForUnreal

Articy Importer plugin for the Unreal Engine 4 and Unreal Engine 5 (work in progress).
MIT License
98 stars 41 forks source link

Cannot compile under 4.15.3 #1

Closed HeadClot closed 7 years ago

HeadClot commented 7 years ago

Hey, I am currently running into the following issues with the Articy Importer for Unreal.

I am getting the following error from ArticyExpressoScripts.h at Line 144

C4596 'AddDefinition': illegal qualified name in member declaration

I get this error twice then It fails to compile.

nico-probst commented 7 years ago

Hi HeadClot,

can you try this with a completely new project and try to follow steps in the Readme exactly. This error sounds like one of the include paths from the unreal engine itself is not properly set as the only parameter of this method is of type FName. Are you building unreal by code or are you using the epic launcher to get the engine? Without more information this sounds to me like an issue with your unreal installation. If possible you could upload the project for me and i try it on my computer.

Best regards nico

HeadClot commented 7 years ago

Here is the project that I am using for Unreal Engine 4. It is based on ue 4.15.3 Launcher version. I am using a C++ based Project to try and compile the Plugin.

https://drive.google.com/open?id=0B5CHQtJBPq3iUnRvOFdfRHNRMFE

nico-probst commented 7 years ago

Hi again,

thanks for the project. I triedit with my unreal engine version (Version: 4.15.3-3450819+++UE4+Release-4.15). I had to disable the "DonAINavigation" plugin as i don't have that. Created a new visual studio solution via the uproject file, rebuild the project from visual studio(2017) opened the project in ue and enabled the ArticyImporter plugin. I had no compile errors. Try disabling the "DonAINavigation" in the uproject and see if that fixes it. If not you might need to repair your unreal installation. What are you using to compile the c++ sources outside of the ue?

Best regards

Nico

HeadClot commented 7 years ago

Hey @nico-probst - I am currently using VS 2017 to compile my UE4 Code projects. I have just Disabled the DonNavigation Plugin.

As for the UE4 Installation - I just downloaded UE 4.15.3 when I made this issue. So it is fresh to an extent.

ash501 commented 7 years ago

Hello @nico-probst, I just tried compiling it too with a clean UE 4.17 version and run (besides a few others) into the same error, It looks as if the problem is that you're overloading AddDefinition in the ArticyExpressoScripts.h while you're still in the struct definition. Currently, it says: template static void ExpressoType::AddDefinition(const FName& CppType) if you change it to template static void AddDefinition(const FName& CppType) this part compiles.

Now I'm looking into some type conversations that are still failing due to multiple options to convert them.

So long and God bless you Tobias

HeadClot commented 7 years ago

Hey @ash501 - Thank you for the comment on this. Going to give this a shot.

HeadClot commented 7 years ago

Thank you so much @ash501 ! I got it to compile under 4.15.3. :D

Thank you so much!

ash501 commented 7 years ago

Great. You're welcome.

For 4.17 a few more changes are needed as explicity convert some types. With these changes the plugin compiles under 4.17

In ArticyObjectWithTarget.h change virtual UArticyObject SetSpeaker(UArticyObject const Speaker) { SetSpeakerId(Speaker ? Speaker->GetId() : 0); return Speaker; } to virtual UArticyObject SetSpeaker(UArticyObject const Speaker) { SetSpeakerId(Speaker ? Speaker->GetId() : (FArticyId) 0); return Speaker; } for the explicit conversion into the expected type.

Same in: virtual UArticyPrimitive SetTarget(UArticyPrimitive const Target) { SetTargetId(Target ? Target->GetId() : (FArticyId) 0); return Target; } and (ArticyRef.cpp) void FArticyRef::SetReference(UArticyPrimitive* Object) { Reference = Object; SetId(Object ? Object->GetId() : (FArticyId) 0); } It still shows a few warning about things that need to be changed for future versions of Unreal, but seems to be fine. I'll try testing it as soon as I can.

God bless you

HeadClot commented 7 years ago

@ash501 If it is not too much to ask. Would it be possible to make a Pull Request? Just curious :)

ash501 commented 7 years ago

@HeadClot Let me check if I can remove the last warning as well and then I can see to make a Pull Request.

HeadClot commented 7 years ago

Awesome!

nico-probst commented 7 years ago

Thank you very much, @ash501. I still wonder why none of these showed up when i compile it here.

HeadClot commented 7 years ago

@nico-probst I think this is what you are looking for.

Sorry I had too as it describes this situation perfectly

ash501 commented 7 years ago

Pull request is made and the files uploaded. It now compiles without errors or warnings in UE 4.17

So long and God bless you

Tobias

HeadClot commented 7 years ago

Thank you so much Tobias :)

nico-probst commented 7 years ago

Thank you Tobias for your effort, your changes are merged.

best regards

Nico