[技术预研]terrain-adaptive locomotion准备(1)

terrain-adaptive locomotion-在不平坦非规则环境上traverseal。

需求:

在P.d中,我们的主人公需要在经过末世灾难的环境中旅行行动。所以在末世的复杂环境下作出合理置信的运动是我们要面对的挑战之一。

设计层面上,我们采用了自适应移动的设计,玩家不需要碰上障碍时候按下指定按键才能进行攀爬等行动。这样在游戏过程,玩家可以把更多的精力放在感受在终末环境中旅行的感觉和应对更高层的空间规划挑战上。

这就要求我们的角色需要能够适应在各种不平坦的环境中的运动。

因为环境的不规则,传统的基于ledge的建筑攀爬行动某种程度上难于满足对不规则环境的应对的适配和表现需求。

所我们需要能够应对杂乱的地表环境布局也能有很好表现的适应性的Traversal方案。

角色要能处理在废墟,雪地,不规则的自然地貌等环境也能畅通地进行穿越。

应对细粒低的不规则环境应该能够有置信合理的traversal表现
SigGraph2017的《Phase-Functioned Neural Networks for Character Control》基于神经网络的Match实现有着相当优秀的地形适应性

初步的分析工作和想法

* 根据概设和环境弄清楚游戏中出现的几个常见的Auto Traversal情境。

* 分析运动的类型,比如Step, Climb, Jump等。在不同的地形下需要采用不同的对应行动,高低差,阻挡都会对Traversal造成影响。

* 废墟残骸的类别:小碎块,大碎块,不规则的巨型建筑破片。如果在体力有限的情况。角色的运动行为将会受到对应的影响。比如更容易绊倒。

几种类型的场景阻挡物

测试场景的制作

菠萝试着帮忙做了一个Box碎块的生成场景来测试角色在非规则环境中的适应性。目前的版本大致如下。

当前的处理

当前基本依赖Final IK的Grounded FBBIK的接地功能来保证角色的稳定性。但是跑起来的效果并不理想。同时这种不规则环境的地面会对Penetration Avoidance的检测产生影响。

Grounded FBBIK在凹凸不平的环境下运动的效果
能看到明显的脚步抖动

引出的问题:

  • Grounded IK抖动问题

问题分析:

  • 当前抖动的原因是Grounded  IK在脚抬起的过程中做检测导致的,抖动看起来是由于表面的不规则导致抬起脚的高度重计算导致的。
  • 因为测试环境的物件不规则度高,经常各种对象混合散落在一起,比粗尺度的地形有着更高的复杂度。
  • IK方案正常运转的时候可以,可以处理碎石等细粒度的适配问题。但是无法处理有一定体积大小的不规则形状适配问题。

解决方法:

  • 方案1:菠萝提及可行的方法是用ubi采用的footstep lock预测法(预测脚的落点,保证接地脚LOCK住)。
  • 方案2:或者也可以试着让Grounded FBBIK在脚离地一定时间内不要做实时检测。(可以尝试Foot Velocity检测的方案和基于动画事件触发窗口)
  • 晚上试了下方案了,还是会抖动,看来还是得靠锁脚。

和其他技术的混用和进一步的实验:

* 需要为Motion Matching添加垂直维度的查询。这样可以Matching指定的Traversal Pose,并用IK进行定位。

无法实现的退化方案:

  • 为了防止技术挑战过高带来的风险,我想了几级的备选方案。
  • 在自适配方案不可行或者投入成本太高时,我们转用基于检测的方案。针对每个情况和情境进行分开的处理。
  • 在传统方案依然成本的时候,我们可以回到类似传统游戏的规定关卡设计方案,限定关卡中出现的各种环境物的标准,比如台子的高度,距离等。(新战神这种Room流的游戏采用了这种方案)

衍生的挑战设计:

  • 在复杂地形上运动对体力管理和路径规划的需要。
  • 就拿当前这个地形来说,基本运动速度和步态应该会受到。
  • 需要留意平坦和不平坦环境在美学和情感上给人什么样的情感影响。

Posted in 技术预研

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.