用途:面向虚幻引擎(目标版本 UE 5.8,API 已对照 5.8 头文件核验)动画运行时的 C++ 编写与调试参考,涵盖 Engine 模块下的动画运行时路径,以及 5.8 内置动画插件。
主要能力与内容分区:AnimInstance 与代理(NativeUpdateAnimation 与 NativeThreadSafeUpdateAnimation 双阶段、FAnimInstanceProxy 覆写点、GetProxyOnGameThread/GetProxyOnAnyThread);蒙太奇(Montage_Play、Montage_PlayWithBlendIn/BlendSettings、Stop、Pause、Resume、JumpToSection、SetNextSection、SetPlayRate、位置与速率查询,以及 FOnMontageEnded、FOnMontageBlendingOutStarted 委托,注意混合淡出开始后 IsPlaying/IsActive 返回 false);动画通知与通知状态(Notify、BranchingPointNotify、NotifyBegin/Tick/End,MontageTickType 的 Queued 与 BranchingPoint 差异);动画曲线(按 FName 取值、GetCurveValue、SetMorphTarget、CurveMetaData);混合空间与状态机(UBlendSpace、UBlendSpace1D、UAimOffsetBlendSpace 与轴平滑参数);链接动画层;根运动;以及 PoseSearch、MotionWarping、Chooser、IKRig、ControlRig、BlendStack、OptimusCore、UAF 等 5.8 插件。
依赖模块:Runtime/Engine/Classes/Animation 下的内容需 Engine;FAnimNode_LayeredBoneBlend 等辅助动画节点需 AnimGraphRuntime;插件模块名按条目分别列出。
使用方式:先阅读项目中的 .agents/ue-project-context.md(若存在)了解模块名、约定、启用插件与 GAS/网络设置,缺失时继续;按请求领域定位对应章节;仅在两种合理解读会产生不同代码时追问。示例给出代理在游戏线程 PreUpdate 缓存数据、工作线程 Update 中仅访问代理成员的线程安全写法,以及先 Montage_Play 再设置委托的顺序要求。
限制:仅覆盖 5.8 已核验的 API,旧写法列为已废弃且不建议使用;多人环境下 GAS 项目应通过 UAbilityTask_PlayMontageAndWait 驱动蒙太奇,无 GAS 时需自行复制蒙太奇选择并在复制回调中调用,不应按网络角色各自独立调用;PlayAnimation(单节点模式)与 SetAnimInstanceClass(动画蓝图模式)不可在同一组件混用。文档未提供定价、平台兼容范围与实际效果数据。