首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NetworkTransform & NetworkAnimator的流畅运动

使用NetworkTransform & NetworkAnimator的流畅运动
EN

Stack Overflow用户
提问于 2017-06-29 15:26:46
回答 1查看 1.5K关注 0票数 4

我的玩家角色在世界各地移动使用动画与根运动激活。基本上,人工智能系统设定动画的速度,反过来控制动画剪辑来控制人物的运动。由于这是一个标准的功能,以确保非常现实的动画不明显滑动,我认为这是一个好主意,...until我添加了网络同步。

使用NetworkTransform和NetworkAnimation对网络上的字符进行同步会导致这两个组件发生冲突:

  • NetworkTransform将字符移动到主机命令的任何位置。
  • NetworkAnimator同步动画动画和播放动画剪辑作为主机指示它,而那些动画剪辑也应用根运动。

结果是精确的(意味着字符到达了确切的目标目的地),但是非常口吃的移动(明显的跳跃)。

删除NetworkTransform,字符的主机和客户端实例去同步非常快,这意味着他们将结束在世界上的不同位置时,完全控制时间依赖动画。

如果删除NetworkAnimator,客户机实例将不会播放与主机相同的动画,如果有任何动画的话。

我尝试保留这两个组件,同时禁用动画的根运动(仅在客户端)。然而,在这种情况下,NetworkTransform似乎根本没有插值。该字符只是从同步位置跳转到同步位置,步骤约0.02单位。旋转也一样。

NetworkTransform被配置为“同步转换”,因为字符既没有RigidBody也没有CharacterController。所有其他值都是缺省值:同步率为9(也尝试过更高的值)、移动阈值为0.001、快照阈值为5、内插移动= 1。

如何在网络上获得流畅的根运动?我以为这是个标准的场景..。

EN

回答 1

Stack Overflow用户

发布于 2017-11-14 14:05:20

您需要的是在非本地实例上消除根运动标志,但也需要插值旋转,而不仅仅是运动。

此外,1的插值值似乎很高,与5的值相同:除非你没有使用1单位=1米的统一标准,否则这看起来不太现实。我将有一个25厘米(0.25)内插的运动和3度的旋转。同步速率9可能就足够了,但根据我的经验,它必须根据数据包丢失重新计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44829294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档