(以下は、サポート担当の Thomeczek Sebastian によるコメントを翻訳したものです。)
お世話になっております。
> こちらのシリアライズ後のデータサイズの増大について、意図された挙動となりますでしょうか?
シリアライズ後のデータサイズが増加するのは仕様です (意図された挙動です) 。これは、FObjectAndNameAsStringProxyArchive を経由したシリアライズに由来している可能性が非常に高いです。この種のアーカイブは、すべての UObject のポインタ (8バイト) を文字列に変換しますが、通常、ポインタの数倍のサイズになります (文字列/オブジェクト名の長さによります)。それにより、シリアライズされたデータが増加することになります。特に、SaveGame オブジェクトに多くのオブジェクトの参照が含まれている場合は顕著です。
この問題は、避けることができません。と言いますのも、セーブデータを復元 (デシリアライズ) する際にオブジェクトを一意に識別する必要があり、そのためにオブジェクト名が必要であるからです。
> もしコンフィグやその他設定等でサイズの増大を回避できるのであれば、情報を頂きたく存じます。
お勧めできるやり方としては、結果として得られる配列を圧縮することとなります。こうすると、シリアライズされたバッファ内の文字列によって、良好な圧縮比が得られるはずです。
残念ながら、SaveGame システムはデフォルトで圧縮をサポートしていないため、独自の実装で圧縮を行わなければならず、プラットフォーム固有のものをラップする必要があります。
FCompression::CompressMemory(NAME_Oodle, …) 経由で Oodle を使用することによって、SaveGame API から返された TArray を圧縮/解凍することができます。