在Work线程执行的FAnimInstanceProxy::UpdateAnimation()中,会调用UAnimInstance中的NativeThreadSafeUpdateAnimation()和BlueprintThreadSafeUpdateAnimation()这两个方法,它们与前面提到的在主线程中更新动画数据的方法相对应,这是它们的Work线程版本: FAnimInstanceProxy::UpdateAnimation() FAnimInstanceProxy::UpdateAnimatio...
可以看对应节点的该函数FAnimNode_TwoWayBlend::Evaluate_AnyThread: voidFAnimNode_TwoWayBlend::Evaluate_AnyThread(FPoseContext&Output){//从Output中获取一些上下文的信息FPoseContextPose1(Output);FPoseContextPose2(Output);//分别从A,B两个连接读取Pose,也就是骨骼的TransformA.Evaluate(Pose1);B.Eval...
the foot location to find the geometry. If the surface is walkable, save the impact location and normal.autoFootLocation{FinalLocation};FootLocation.Z=GetProxyOnAnyThread<FAnimInstanceProxy>().GetComponentTransform().GetLocation().Z;FHitResultHit;GetWorld()->LineTraceSingleByChannel(Hit,FootLocation...
先从AnimInstanceProxy中根据SlotName来获取Slot Weight和Source Weight 其中AnimInstanceProxy是AnimationInstance用于做多线程数据交换的代理结构 属于多线程优化动画系统的核心对象,他可以分担动画蓝图的更新工作 将部分动画蓝图的任务分配到其他线程去做。 AnimInstanceProxy会直接遍历当前活跃的Montage列表 不考虑叠加蒙太奇的...