UE4联网多人游戏动画蒙太奇复制
春风中的少年
2020年12月27日 11:17
收录于文集
共4篇

最近研究UE4的多人联网游戏,遇到一个问题:角色移动动画可以正确同步到其他客户端,但是动作播放蒙太奇的时候总是无法正确同步。通过各种查找资料终于发现了一个解决方案,在此记录一下,希望可以帮到遇到同样困扰的小伙伴。

举例说明,如果按照单人游戏开发思路,只需要在角色蓝图中如下设置翻滚蒙太奇的播放逻辑。这样做在单人游戏中没有问题,但是多人游戏中就会出现蒙太奇无法正确同步到其他客户端的问题。

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

只有本机能正确播放动画,其他客户端只能看到移动动作,无法看到翻滚动作。

下面给出一种解决方案,也许不是最优雅,但是是我亲测可行的一种方案:

在角色蓝图中添加两个自定义事件,MultiCast_PlayMontage和RPC_PlayMontage(事件名可自定义),其中MultiCast_PlayMontage设置为组播可靠函数,RPC_PlayMontage设置为在服务器运行的可靠函数。然后用RPC_PlayMontage调用MultiCast_PlayMontage。

最后输入操作直接调用RPC_PlayMontage即可。

具体蓝图如下:

多人游戏角色蓝图设置

MultiCast_PlayMontage设置为组播可靠函数

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

最终效果