Question on FArchiveLoadCompressedProxy routines across different platforms (PC vs Console)

Hello all,

I have a plugin that does 2D Mesh + Skeletal Skinning Animation for my 2D animation tool on UE4.12:

One of my users is trying to deploy my plugin onto the consoles and has encountered some issues.
On the PC it runs and packages just fine.

He has run the code through the debugger and narrowed it down to this:


FString& UCreatureAnimationAsset::GetJsonString()
{
	// Decompress only when needed
	if (CreatureFileJSonData.IsEmpty())
	{
		FArchiveLoadCompressedProxy Decompressor =
			FArchiveLoadCompressedProxy(CreatureZipBinary, ECompressionFlags::COMPRESS_ZLIB);

		if (Decompressor.IsError() || (CreatureZipBinary.Num() == 0))
		{
			UE_LOG(LogTemp, Warning, TEXT("UCreatureAnimationAsset::Could not uncompress data"));
			return CreatureFileJSonData;
		}

		FBufferArchive DecompressedBinaryArray;
		Decompressor << DecompressedBinaryArray;
		CreatureFileJSonData = UTF8_TO_TCHAR((char *)DecompressedBinaryArray.GetData());
	}

	return CreatureFileJSonData;
}

As you can see from the example above, my plugin decompresses a CreatureZipBinary of type TArray<uint8> into a FString ( which is a JSON ) containing the original contents of the character animation.

On PC, this runs just fine and everything goes through.** On the consoles, the decompression routine FArchiveLoadCompressedProxy() fails and doesn’t manage to decompress the array properly resulting in a corrupted/incomplete JSON string.**

Does anybody here know the cause of this issue? The strange thing is the plugin ran just fine on 4.11 on consoles with no issues but on 4.12, the decompressor fails to generate correct data.
Am I calling the decompressor rountines correctly? Or is there anything else I am missing here.

Please advice.

Cheers

Hello,

So I had a workaround by allowing the plugin to have the option of not compressing the JSON String. Now it runs fine on the console, however it will be great to get an answer about the state of the compression utilities/functions with regard to console platforms for UE4.

Thanks.