动画蓝图同步问题(虚幻引擎)
问题描述
当两个动画蓝图需要联动(如武器 ABP 和手臂 ABP),如果各自独立计算动画切换变量,会因为异步计算导致动画不同步——短时间内动画反复切换、状态不一致。
问题详解
之前的状态(同时计算,容易产生延迟):
- Character 更新了数据
- 武器 ABP 和手臂 ABP 同时去获取这个数据
- 但电脑在计算这一帧时,可能先计算了武器 ABP,后计算手臂 ABP
- 计算时机不同 → 动画不同步
|
|
解决方案
单一计算源原则:动画切换的变量只在一个动画蓝图中计算,另一个蓝图从该蓝图中读取已计算好的数值。
|
|
为什么能解决同步问题
| 做法 | 结果 |
|---|---|
| 两个蓝图各自计算 | 异步执行,帧内计算顺序不确定,导致不同步 |
| 一个计算,另一个读取 | 同一帧内变量值一致,动画切换同步 |
典型应用场景
- 角色上下半身动画蓝图联动
- 角色与持有的武器/道具动画同步
- 多个骨骼网格体共享动画状态