版本:Unity 6 (6000.0)
语言:英语
创建 Ragdoll
布料

关节和 Ragdoll 稳定性

本页提供了一些关于如何改进关节允许在刚体组件之间建立动态连接的物理组件,通常允许一定程度的运动,例如铰链。 更多信息
术语表 中查看
Ragdoll 稳定性的技巧。

  • 避免使用较小的Angular Y LimitAngular Z Limit关节角度。根据您的设置,最小角度应该在 5 到 15 度之间才能保持稳定。不要使用较小的角度,而是尝试将角度设置为零。这会锁定轴并提供稳定的模拟。
  • 取消选中关节的Enable Preprocessing属性。如果关节被强制进入无法满足关节约束的情况,禁用预处理可以帮助防止关节分离或移动异常。如果通过关节连接的刚体允许游戏对象受到模拟重力和其它力的影响的组件。 更多信息
    术语表 中查看
    组件被静态碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,如果至少一个游戏对象具有刚体组件且处于运动状态,则会发生碰撞。 更多信息
    术语表 中查看
    几何体拉开(例如,将 Ragdoll 部分放置在墙内),就会发生这种情况。
  • 在极端情况下(例如,部分放置在墙内或受到强大力量的推动),关节求解器无法将 Ragdoll 的刚体组件保持在一起。这会导致拉伸。为了处理这种情况,使用ConfigurableJoint.projectionModeCharacterJoint.enableProjection在关节上启用投影。
  • 如果通过关节连接的刚体组件发生抖动,请打开物理窗口(编辑> 项目设置允许您配置物理、音频、网络、图形、输入和项目其它方面的行为的一组广泛的设置。 更多信息
    术语表 中查看
    ,然后选择物理类别),并尝试将默认求解器迭代值增加到 10 到 20 之间。
  • 如果通过关节连接的刚体组件对反弹的响应不准确,请打开物理窗口(编辑> 项目设置,然后选择物理__类别),并尝试将默认求解器速度迭代__值增加到 10 到 20 之间。
  • 永远不要对通过关节连接到其他刚体组件的运动学刚体组件使用直接的 Transform 访问。这样做会跳过 PhysX 计算相应刚体组件内部速度的步骤,导致求解器提供不希望的结果。一个常见的错误做法是在 2D 项目中使用直接的 Transform 访问来翻转角色,方法是更改刚体根骨骼的Transform.TransformDirection。如果您使用Rigidbody2D.MovePositionRigidbody2D.MoveRotation,效果会好很多。
  • 避免通过关节连接的刚体组件之间存在很大的质量差异。一个刚体质量是另一个刚体质量的两倍是可以的,但当一个质量是另一个质量的十倍时,模拟就会变得抖动。
  • 尝试避免在包含刚体或关节的 Transform 中使用与 1 不同的缩放比例。在所有情况下,缩放比例可能并不健壮。
  • 如果刚体组件在插入世界时发生重叠,并且您无法避免重叠,请尝试降低Rigidbody.maxDepenetrationVelocity,以便刚体组件更平滑地退出彼此。
创建 Ragdoll
布料