解决UE的Chunk(数据块)功能疑似无法生效的问题

先说结论,ue的Chunk功能能够正常使用,通过官网的教程配置完毕后就能正常使用了,虚幻引擎中的内容烘焙和数据块划分 | 虚幻引擎 5.4 文档 | Epic Developer Community (epicgames.com)

我们有时遇到无法使用的原因是存在中文路径,在打包项目期间,可以通过在下面的目录中看到每个数据库包含的资源路径。

 打开文件后,可以看到带着中文的资源都是乱码的,这就导致后续打包pak的步骤无法正确识别文件路径,然后打包器就将这些无法识别路径的资源默认打包到第0个数据块中了。

很不幸,解决这个问题需要自己编译源码版。需要修改的脚本名字叫AssetRegistryGenerator.cpp,找到下面这些代码。

PakListLine.ReplaceInline(TEXT("/"), TEXT("\\"));
PakListLine += TEXT("\r\n");
PakListFile->Serialize(TCHAR_TO_ANSI(*PakListLine), PakListLine.Len());

每个版本的ue看起来都不太一样,需要稍微找一下,找到后修改成下面的代码,这样就能解决中文路径的问题了。

PakListLine.ReplaceInline(TEXT("/"), TEXT("\\"));
PakListLine += TEXT("\r\n");
FStringView view = PakListLine;
FTCHARToUTF8 UTF8String(view.GetData(), view.Len());
PakListFile->Serialize((uint8*)UTF8String.Get(), UTF8String.Length() * sizeof(UTF8CHAR));

posted on 2024-09-02 18:46  梦回今夕  阅读(51)  评论(0编辑  收藏  举报

导航