通过随机种子生成的世界,角色网络同步错误

在做随机种子生成世界,​有的Actor是通过随机种子生成的,这个actor中有模型,客户端角色走在这个actor上,会导致角色碰撞不正常,比如无法正确上楼梯,这个生成的actor不同步,但是服务器和客户端上都有这个模型,并且在同一位置。

会导致角色状态不同步,比如即使停下来了,角色动画依然显示奔跑中。

有任何方法或者思路可以解决这个问题吗? 角色使用的是Lyra作为模板​

附近中是重现的视频

感谢​

你好,即使是随机生成的世界,生成还是在服务端生成同步到客户端上的吧,没太明白会影响同步哪方面,从视频上看,一个是主控端一个是模拟端,如果主控端立即停下,模拟端同步下来需要同步下来再停止也是正常的

服务端只生成随机种子,后续的所有模型都是由种子生成的,这样生成的模型,UE的角色走在这样的模型是上面就会出错。 比如视频中的 客户端角色就无法上楼梯

不确定随机的时候楼梯生成的高度是否不一致,但从视频上看可能是CMC的MaxStepHeight和Walkable Floor Angle/WalkableFloorZ值较小导致的​

不是 位置确定是一样的 而且服务端完全可以很顺畅的上去 客户端上去的时候就触发了网络同步的位置纠正 初步判断是两边的MovementBase不一致导致的 毕竟Actor只是“意义”上的同步

所以主控端上不去但是服务端能上去?视频上显示的应该是客户端没有看到服务端的情况,可以通过cmc的调试p.NetShowCorrections等控制台看下主控端是在哪个时刻出现校正的更有助于看下细节,除了调整上面的参数外,也可以检查下楼梯的碰撞可以使用平滑的简化碰撞替代逐级细小台阶碰撞。

我看之前有人似乎遇到了你说的这种情况,看上去他是将楼梯的actor的可移动性从movable改成静态来解决这个问题的,你可以参考一下

https://www.reddit.com/r/unrealengine/comments/1aca5mp/client\_cant\_walk\_on\_spawned\_actors\_but\_server\_can/\#:\~:text\=•%20%202y%20ago

确实改为静态以后解决了 感谢