目录

笔者的打包经历

该方法不一定成功,但总得试试。

解决方法:


笔者的打包经历

本来笔者因为各种各样的盗版原因,打算将本文放置在VIP的,但考虑到广大人士可能和笔者一样发生这种问题而无法解决,便决定还是开把伞。

该方法不一定成功,但总得试试

Assertion failed: CastResult或者fatal error的报错是在打包成功后,再次打开该项目之后,发现竟然无法打开,并且发生相关报错。

Assertion failed: CastResult报错是用开发配置进行打包后发生的报错。

fatal error报错是用发行配置进行打包后发生的报错。

数字人项目在做好之后,笔者在进行打包之后,发现竟然出现了打包后无法打开的情况,而后在百度,Google以及epic开发者论坛中寻找良久没有找到解决方案。

最后在排查中发现,问题竟然出现在数字人的后期动画蓝图中,因为作者的报错是:

Assertion failed: CastResult [File:D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Public\UObject\Field.h] [Line: 961] 
CastFieldChecked failed with 0x000002257004f180


0x00007ff69fee0e86 ZhiBo.exe!FRigVMMemoryHandle::GetData_Internal() []
0x00007ff6a00d3f92 ZhiBo.exe!FRigUnit_GetTransform::RigVMExecute() []
0x00007ff6a9043062 ZhiBo.exe!URigVM::ExecuteInstructions() []
0x00007ff6a904276c ZhiBo.exe!URigVM::Execute() []
0x00007ff69ff62340 ZhiBo.exe!UControlRig::Execute_Internal() []
0x00007ff69ff60798 ZhiBo.exe!UControlRig::Execute() []
0x00007ff6a91c45df ZhiBo.exe!URigVMHost::Evaluate_AnyThread() []
0x00007ff69ff60e63 ZhiBo.exe!FAnimNode_ControlRigBase::ExecuteControlRig() []
0x00007ff69ff5e61f ZhiBo.exe!FAnimNode_ControlRigBase::Evaluate_AnyThread() []
0x00007ff69ff5e467 ZhiBo.exe!FAnimNode_ControlRig::Evaluate_AnyThread() []
0x00007ff6a753cc39 ZhiBo.exe!FPoseLink::Evaluate() []
0x00007ff6a753d000 ZhiBo.exe!FAnimInstanceProxy::EvaluateAnimationNode_WithRoot() []
0x00007ff6a753d3fd ZhiBo.exe!FAnimInstanceProxy::EvaluateAnimation_WithRoot() []
0x00007ff6a74e711d ZhiBo.exe!UAnimInstance::ParallelEvaluateAnimation() []
0x00007ff6a797de0e ZhiBo.exe!USkeletalMeshComponent::EvaluateAnimation() []
0x00007ff6a79a7ccb ZhiBo.exe!USkeletalMeshComponent::PerformAnimationProcessing() []
0x00007ff6a79a6f95 ZhiBo.exe!USkeletalMeshComponent::ParallelAnimationEvaluation() []
0x00007ff6a797aef6 ZhiBo.exe!USkeletalMeshComponent::DoParallelEvaluationTasks_OnGameThread() []
0x00007ff6a79b0b5f ZhiBo.exe!USkeletalMeshComponent::RefreshBoneTransforms() []
0x00007ff6a79a12ed ZhiBo.exe!USkeletalMeshComponent::InitAnim() []
0x00007ff6a79a5f6c ZhiBo.exe!USkeletalMeshComponent::OnRegister() []
0x00007ff6a780e21f ZhiBo.exe!UActorComponent::ExecuteRegisterEvents() []
0x00007ff6a783b24b ZhiBo.exe!UActorComponent::RegisterComponentWithWorld() []
0x00007ff6a73fe588 ZhiBo.exe!AActor::IncrementalRegisterComponents() []
0x00007ff6a7dbb012 ZhiBo.exe!ULevel::IncrementalUpdateComponents() []
0x00007ff6a8a36c65 ZhiBo.exe!UWorld::UpdateWorldComponents() []
0x00007ff6a8a0f5c4 ZhiBo.exe!UWorld::InitializeActorsForPlay() []
0x00007ff6a88ba84a ZhiBo.exe!UEngine::LoadMap() []
0x00007ff6a884107d ZhiBo.exe!UEngine::Browse() []
0x00007ff6a7be3da2 ZhiBo.exe!UGameInstance::StartGameInstance() []
0x00007ff6a7be3711 ZhiBo.exe!UGameEngine::Start() []
0x00007ff69fbb3c66 ZhiBo.exe!FEngineLoop::Init() []
0x00007ff69fbd3b96 ZhiBo.exe!GuardedMain() []
0x00007ff69fbd3d8a ZhiBo.exe!GuardedMainWrapper() []
0x00007ff69fbd6c96 ZhiBo.exe!LaunchWindowsStartup() []
0x00007ff69fbe99c4 ZhiBo.exe!WinMain() []
0x00007ff6a9e6d9ca ZhiBo.exe!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
0x00007ffb584a7614 KERNEL32.DLL!UnknownFunction []
0x00007ffb59ea26f1 ntdll.dll!UnknownFunction []

从中,我们可以看出,这个错误可能涉及到控制骨骼的动画蓝图或者控制脚本。

FRigVMMemoryHandle::GetData_Internal(): 出错的函数名,表明断言失败发生在获取虚拟机内存数据的过程中。

FRigUnit_GetTransform::RigVMExecute(): 与断言失败相关联的脚本单元的执行函数。

URigVM::ExecuteInstructions(): 执行脚本指令的函数。

UControlRig::Execute_Internal(): 控制骨骼执行脚本的内部函数。

于是笔者将所有后期动画蓝图删除后打包发现,成功启动了,但毫无疑问,这并不是我们想要的打包方式,因为各种各样的原因,我们必然会有许多逻辑在后期动画蓝图中,所以笔者开始调查起数字人的后期动画蓝图。

但笔者的运气比较好,因为当时笔者的metahuman身体并不需要后期动画蓝图,所以第一个就删除了,所以笔者就看向了头部后期动画处理蓝图

发现里面就动画图表中调用了control rig!!!

解决方法:

之前笔者在写关于control rig的相关文章的时候,就有人问笔者关于打包后的问题,答案是:将所有的语音改为英文

相关文章:

UE4/5Control Rig绑定(向前解析)_ue5骨骼绑定_多方通行8的博客-CSDN博客

而现在,笔者直接使用这个方案。

打包成功了!

07-15 08:44