新型人形物理控制器测试版

新型人形物理控制器测试版

我们在人形组件化方面的第一步(更多信息即将发布)从一个新的物理控制器开始。我们利用构成我们物理引擎其余部分的相同内部对象和约束,从头开始重建该控制器,使之更耐用、物理上更精确,进而提供更多定制选项,简化后续优化。

此外,我们的目标是修复明显的漏洞,消除神秘的极端力量,并保持与传统控制器相同的使用感受。通过使用此测试版您便有机会与我们合作参与新控制器试验。

关键行为变化:

  • 站立和地面运动更像碰撞。地面上的力等于角色静止时身体的重量,运动受摩擦力限制。

  • 跳跃时的空气控制默认保存动量,以便在移动部件之间跳跃时获得更好的体验。

  • 攀爬会将您限制在您攀爬的部位,意味着您将可以继续在移动的梯子上攀爬。

如何开始:

启用 Beta 功能:

image

新的控制器系统通过几个新实例来操纵。最重要的是ControllerManager。此实例指定要激活的运动控制器以及角色所需的速度。

将 Humanoid设置为ControllerManager 的父代,覆盖旧控制器并使用我们的新移动控制器。目前,只有一种方法可以做到这一点:

image

将 StarterPlayer设置为StarterHumanoid 的父代 ,然后将 Humanoid作为ControllerManager 的父代。尝试在运行时将 ControllerManager 插入到 Humanoid 中将无法正常工作。

除了ControllerManager之外,我们还有四种类型的ControllerBase 实例,都是ControllerManager的子代,都有各自的作用。这些实例是角色可以执行的不同运动模式:

GroundController

处理沿基础部件底部的地面运动。

AirController

处理跳跃和横向运动/空中自由落体。

ClimbController

沿基础部件(梯子)上下运动。

SwimController

处理各个方向的游泳运动。

目前,ControllerManager将自动创建这些ControllerBase实例,并在内部将它们映射到Humanoid状态。相同类型的控制器有不同的名称。

  • 自由落体→AirController “AirController”
  • 攀爬→ClimbController “ClimbController”
  • 起立 → GroundController “GettingUpController”
  • 跳跃→AirController “JumpController”
  • 运行和着陆→GroundController “RunningController”
  • 游泳→SwimController “SwimController”

执行上述步骤时,角色的Humanoid在加载到世界后将如下所示:

image

从这里,您可以选择不同的控制器并在运行时编辑其属性。

如要设置角色加载的默认属性,您可以插入恰当类型和匹配名称的控制器(如上所示),然后再使用。这与定义StarterHumanoid 的典型工作流一样。

现在的情况:

在这个早期的测试版本中,除了默认状态映射控制器之外的自定义都是有限的。现在,我们只想让您参与试验,并且思考的一些问题:

  • 与旧控制器相比,您发现哪些显著差异?
  • ControllerBase 实例上的默认属性值是否合理?
  • 是否有足够的属性来调整角色运动以符合您的喜好?
  • 您是否希望通过某种特定的方式让角色运动,而您无法做到?

在这个早期阶段,API仍然可以变动。我们可以根据您的反馈对名称进行更改,这也是我们目前在测试阶段关注的重点。

一旦我们认为事情已经解决,我们将退出测试版,并让您在实时体验中使用新的控制器。我们会继续将之作为一种可选选项,同时我们会继续与开发人员合作,使其达到普适标准。

已知问题:

  • 碰撞和一般不稳定仍然存在。使用时自行承担风险。
  • 控制器上的一些属性尚未发挥作用。虽然API中有这些属性,“属性”窗口会将其隐藏,当他们能够正常工作时我们会进行宣布。
  • 减速动画不正确,因为它们显示您在滑动(就好像您的摩擦力很小)。未来将显示您正在减慢运行动画的速度。
  • 默认跳跃高度比旧控制器略高。我们会修复这一问题,使之相匹配。现在,您可以降低 JumpController.VectorForce 来降低跳跃高度。
  • 我们还知道新旧控制器之间其他一些已知微小差异。对此,我们将根据您的反馈来判断其严重性,并且会着重实现新旧匹配。

展望未来:

我们有多个旨在提高新API的灵活性的更新计划。首先,我们将使ActiveController属性可写。这样,无论出于何种原因,您都可以随时选择要激活的控制器。然后,除了Humanoid,我们将开放在任何部件/模型上使用ControllerManager的功能。

关于我们    加入我们    条款    隐私政策
©2021 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。
粤ICP备20013629号