我们在某次打包过程中,Cook某个世界分区地图时,某台构建机出现几个未知的Large StaticMesh需要构建,通过Log发现,构建所需内存超过90G,导致构建机崩溃
[Image Removed]项目中没有这几个名为StaticMesh_xxx的资产,并且运行时也并没有加载同名资产(通过编辑器勾选 “Allow Cooked Content In The Editor”)。
我们需要弄清楚这几个超大StaticMesh是如何产生的,以避免后续出现类似崩溃。
已查证的信息:
1、只有一台构建机出现该问题,其他构建机没有出现类似的Large StaticMesh(可能是因为之前已Cook成功)。
2、根据log中的Cell名称(CFJ8TC82R0L3Q7L66S7CEXMYI),在其他构建成功的机器下,的发现Cooked目录下对应地图的_Generate_目录下,该Cell额外生成了一个.ubulk文件,并且超过1G.
[Image Removed]3、通过wp.Editor.DumpStreamingGenerationLog命令,发现该Cell内全部由PackedLevelActor组成
[Image Removed]
[Image Removed]每个PackedLevelActor中都没有任何大型Static Mesh.
问题:
- Cooked/…/xxxMap/_Generate_目录下的.ubulk文件是如何生成的,是否和超大StaticMesh有关?
- 这些Large StaticMesh疑似Cook过程中的临时资产,但我在引擎源码中没有找到PackedLevelActor合并网格相关的逻代码,是否有其他流程会合并网格?
- 如需进一步查证这些资产来源,我可能需要本地Debug这个Cell的Cook流程,但Cook相关的资产太多,耗时很长,该如何避开无关的资产,只Cook该Cell的网格(修改源码、命令参数等)?