解决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));