最近研究UE4的多人联网游戏,遇到一个问题:角色移动动画可以正确同步到其他客户端,但是动作播放蒙太奇的时候总是无法正确同步。通过各种查找资料终于发现了一个解决方案,在此记录一下,希望可以帮到遇到同样困扰的小伙伴。
举例说明,如果按照单人游戏开发思路,只需要在角色蓝图中如下设置翻滚蒙太奇的播放逻辑。这样做在单人游戏中没有问题,但是多人游戏中就会出现蒙太奇无法正确同步到其他客户端的问题。

单人游戏中的角色蓝图设置

只有本机能正确播放动画,其他客户端只能看到移动动作,无法看到翻滚动作。
下面给出一种解决方案,也许不是最优雅,但是是我亲测可行的一种方案:
在角色蓝图中添加两个自定义事件,MultiCast_PlayMontage和RPC_PlayMontage(事件名可自定义),其中MultiCast_PlayMontage设置为组播可靠函数,RPC_PlayMontage设置为在服务器运行的可靠函数。然后用RPC_PlayMontage调用MultiCast_PlayMontage。
最后输入操作直接调用RPC_PlayMontage即可。
具体蓝图如下:

多人游戏角色蓝图设置

MultiCast_PlayMontage设置为组播可靠函数

RPC_PlayMontage设置为在服务器运行的可靠函数

最终效果