ArticySoftware / Articy3ImporterForUnreal

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

Some imports wipe ExpressoScripts in generated header #22

Closed brwarner closed 3 years ago

brwarner commented 4 years ago

image

Every few imports, when the C++ code requires regeneration, the generated C++ ExpressoScripts.h file loses all its Instructions and Conditions.

I checked my exported .articyue4 file and the Instructions and Conditions are still there. In fact, the runtime asserts when it gets to these nodes because the Instructions/Conditions are missing when it tries to find them by hash.

It doesn't happen every time but it happening on both the recent 1.0 version and whatever version was in the master branch just prior.

I haven't detected a pattern yet nor do I have a minimum project for reproduction. I will update this issue with more information as I find it.

brwarner commented 4 years ago

I'm curious if the problem is related to using the Perforce integration in Unreal. I always check out the generated code files before importing, but for the generated uassets, it seems like I'm asked regularly to re-check them out even thought they're already checked out.

brwarner commented 4 years ago

Don't think it's Perforce. Still occurs even when all files are writable and Perforce is disabled in Unreal (see below). The main way I'm getting around this now is just doing a Full Reimport after the C++ code changes, though I usually have to run a Regenerate Assets as well otherwise the database doesn't load next time I open Unreal.

Test 1

  1. Checked out Articy generated headers
  2. Quick-exported from Articy:draft

Result: ExpressoScripts removed.

Test 2

  1. Checked out Articy generated headers and all Articy generated uassets
  2. Quick exported from Articy:draft

Result: ExpressoScripts removed.

Test 3

  1. Checked out Articy generated headers and all Articy generated uassets
  2. Turned off Perforce Source Control in Unreal

Result: ExpressoScripts removed.

herr-edgy commented 4 years ago

Thanks for reaching out and sorry for taking so long.

This is interesting, and it might in fact have to do with perforce (even if disabled afterwards due to file access status changing beforehand) and perforce integration is something we haven't tested properly. As for why it keeps asking you to check out is probably due to the assets bring deleted and recreated rather than just overwritten.

That you can workaround this problem by doing a full reimport implies the importer does not see a reason to regenerate the scripts, which tells me there is an issue with a specific part of the code that I will look into, but without being able to reproduce the issue it will prove quite difficult.

If it is possible, please forward a sample project in which the issue happens to us to our official support or, if it is possible for you, by sharing a public link here.

brwarner commented 3 years ago

Haven't been seeing this in my own testing now that I work here and am investigating various Perforce integration issues. I'll re-open if this reappears.