Cook错误 Hash for AnimSequence has changed

LogWindows: Error: [CookWorker 2]: appError called: Assertion failed: !IsRunningCookCommandlet() [File:E:\HordeAgent\Sandbox\Project\Sync\Engine\Source\Runtime\Engine\Private\Animation\AnimSequence.cpp] [Line: 5002]

LogCook: Display: [CookWorker 2]: Hash for /Game/Project/Model/chr/c5290/as/a000_009001.a000_009001 has changed from b033cfba0fda51d7108b07941e61d27b89e88398 to 8f6deab96b9cd22aabdc49bb6b0b8a14353e4b6f

近期打包的时候会偶现这个问题,并且出问题的资产可能已经几天甚至几周未修改过,并且在不同打包机上可能这次出问题之后未来几次又没有问题了,这个问题会导致整个job失败,想问一下怎么解决这个问题。我们用多进程cook,没有用增量cook,打包机的workspace是Incremental不会每次完全清理

[Attachment Removed]

Hi,

你好,内部确实也看到过类似的情况,但是我看都是跟报错的资产相关,看起来跟你们的情况不太一样。

暂时不能肯定具体的原因,只是猜测第一次计算DDCkey的时候,某些依赖的数据还没有准备好。如果可以的话,可以考虑做下面的事情:

  1. 改造PlatformHashToKeyHash,除了记录Hash,也能保留用于计算Hash的String,这样可能可以看出来是哪些数据变化导致的hash变化,可能更容易找到问题。
  2. 如果每次都是同一个资产报错,先看一下这个资产有什么特别的地方,另外可以把报错时候的堆栈也一起发上来,看看可能是哪里触发了重新生成DDCcache。

有人提到过也许是精度问题(fp:precise),你们可以试试Clang的编译器,看看会不会好一点。

[Attachment Removed]

你好 我们目前已经确认了我们的情况,基本是由于关联到的骨骼或者其他资产导入或者重新导入Editor之后没有重新保存对应的AnimSequence导致的,我们现在会在导入流程增加自动检查和save受影响的sequence的流程来避免这个问题产生

[Attachment Removed]

感谢提供反馈。

[Attachment Removed]