Hello,
I’m using Interchange in a UE5.5.4 project with my Pipeline Stack containing a copy of the DefaultAssetPipeline and a custom Python Pipeline.
When importing my Animation with only the DefaultAssetPipeline and checking the Reference Viewer, it references the Skeleton correctly. As soon as I add a Python Pipeline to the Stack, imported Animation does not contain the References anymore.
My Python Pipeline is completely empty, other than a print to ensure it’s running.
I attached a video to demo the debug process, the fbx files used and the pipeline python script. I tested this in UE 5.5.4 and 5.6. I could not provide a repro of this issue, since this how-to link seems broken: [Content removed]
[Image Removed]
Is there a better way to set up the pipeline stack or a workaround for me to allow adding the references?
Thank you in advance for your help.
Hi Claudia,
Thanks for your detailed report.
I was able to reproduce your issue using the files you provided.
Note that the issue only happens with Python pipelines. No matter their position in the stack. BP pipelines work fine.
I opened a defect. We are going to look into this as soon as we can.
You will be able to see our progress through this link, UE-295698. Note that it can take a couple of days before the link is operational.
Regards,
Jean-Luc
Hi Jean-Luc!
Thanks for getting back to me this quickly!
I can confirm that switching to Blueprint Interchange Pipelines does not show the same issue. However, I noticed Material references also missing in Static/Skeletal Meshes, so it seems to affect more than Animation Sequence imports as well. All of these cause issues in our cooked builds.
Is there a way for me to easily fix these issues on already imported assets?
Hi Claudia,
A member of my team is now actively looking into the issue you reported and your last question.
He will come back to you as soon as he gets some answers.
Thanks for your patience.
Regards,
Jean-Luc
Since this thread has been closed I assume there is no way to fix the assets that were broken via the interchange import afterwards?
Hello Claudia,
My apologies for delayed response.
I did investigate the issue further and tracked it down to the fact that Interchange Python Pipelines are marked Editor Only in the code. As a result, the references of assets imported via Python only show up with the Editor Only filter in the reference viewer(undesirable, but a workaround as the data shown there is correct). A fix would be submitted soon and would be available in the next release. But if this is an urgent requirement and someone from your team would be comfortable changing the source code, here is the fix:
In the file: Engine/Source/Runtime/Interchange/Engine/Private/InterchangeImportCommon.cpp in the function “EndSetupAssetData”, Line 108,
Change it to this:
if(bPipelineSupportReimport) { UObject* DupPipeline = Cast<UObject>(StaticDuplicateObject(Pipeline, AssetImportData)); if (DupPipeline) { /* ADDITIONS */ DupPipeline->GetPackage()->ClearPackageFlags(PKG_EditorOnly); /* End ADDITIONS */ NewPipelines.Add(DupPipeline); } }
Please let me know if that solves the issues for you.
Regards,
Vedang
Thank you for the explanation, that’s good to know and I’m glad its getting fixed soon!
So adding this to the source code will fix the game references for assets previously imported with the Python Interchange pipelines, or does it require a reimport after adding this?
Hello Claudia,
Unfortunately, the fix will not automatically patch all the assets, only the newly imported assets will behave correctly with the reference viewer. Also a simple reimport will not work as not all of the assets created during import are reimported/recreated(e.g. Materials). To ensure all the references are correctly tracked you will have to clear the Editor Only Package flag from the existing assets. Specifically from those assets that has the PKG_EditorOnly flag and have a UInterchangeAssetImportData, then the flag should be cleared.
I hope it helps. Feel free to reach out if you need any further assistance with it.
Regards,
Vedang
Thanks, I did notice that reimport did not work. Is there an easy way to clear that flag from the existing assets?
Hi Claudia,
If you are okay with deleting those assets and doing a fresh import, that should be the easiest way to clear the flag. If that is not possible for you, then you’ll have to resort to writing some C++ code that will clear the flag for you on the affected assets that pass the conditions mentioned above(PKG_EditorOnly flag and have a UInterchangeAssetImportData) as the function ClearPackageFlags is not exposed to Blueprints/Python. If you would be going down this path as opposed to simply deleting and importing assets again, my recommendation would be to write a commandlet that will search for the assets via Asset Registry with the FARFilter::WithPackageFlags set to PKG_EditorOnly. And then check for UInterchangeAssetImportData and python pipelines are in it before clearing the flag on the asset. The time required to execute the commandlet will vary based on the size of the assets as to check for the asset import data, the asset needs to be loaded.
Let me know if that works for you.
Thanks,
Vedang
Thank you very much for your guidance on this Vedang!
I did go down the route of deleting and importing most of the assets already, but its good to know that it was the right thing to do! Thank you for the commandlet tip, that’ll be good to look into if we find more broken assets down the line, as restoring all the settings and notifies manually is pretty time consuming.
Thank you again!
Glad to help! Have a good one 
Regards,
Vedang
Actually, I have one more question.
Blueprint Pipelines do not seem to allow access to Editor-only properties like Python Pipelines can, so I could not port all my functionality from Python Pipelines to Blueprint Pipelines.
Is there a way I can access those properties from blueprints after all, or a way I can trigger python code without the python interchange pipelines in the meantime?
Edit: Nevermind, I had another look and found Interchange Editor Blueprint Pipelines, that do have access to Editor Properties! No workaround needed.
Thanks again for your help!
I am glad you were able to figure it out 
Best,
Vedang