Version: 2023.2
Create a ragdoll
布料

关节和布娃娃稳定性

本页提供有关改善关节布娃娃稳定性的技巧。

  • 避免将 Angular Y LimitAngular Z Limit 设置为较小的关节角度。根据具体设置,为了保持稳定,最小角度应在 5 到 15 度左右。尝试将角度设置为零,而不是使用小角度。这样会锁定轴并提供稳定的模拟。
  • 取消选中关节的 Enable Preprocessing 属性。通过禁用预处理,可在关节被强制进入无法满足关节约束条件的情况时帮助防止关节不规律地分离或移动。如果通过关节连接的刚体组件被静态碰撞几何体拉开(例如,在墙内不完整生成布娃娃),则会发生这种情况。
  • 在极端情况下(例如在墙内不完整生成布娃娃或用大力推动布娃娃),关节解算器无法将布娃娃的刚体组件保持在一起。这种情况下可能导致拉伸。要解决此问题,请使用 ConfigurableJoint.projectionModeCharacterJoint.enableProjection 在关节上启用投影。
  • 如果与关节连接的刚体组件抖动,请打开 Physics 窗口(__Edit__ > Project Settings__,然后选择 Physics__ 类别)并尝试将 Default Solver Iterations 值增加到 10 到 20 之间。
  • 如果与关节连接的刚体组件未准确响应反弹,请打开 Physics 窗口(__Edit__ > Project Settings__,然后选择 Physics__ 类别)并尝试将 Default Solver Velocity Iterations 值增加到 10 到 20 之间。
  • Never use direct Transform access with Kinematic Rigidbody components connected by Joints to other Rigidbody components. Doing so skips the step where PhysX computes internal velocities of corresponding Rigidbody components, making the solver provide unwanted results. A common example of bad practice is using direct Transform access in 2D projects to flip characters, by altering Transform.TransformDirection on the root bone of the rig. This behaves much better if you use Rigidbody2D.MovePosition and Rigidbody2D.MoveRotation instead.
  • 避免关节连接的刚体组件之间的质量差异过大。一个刚体质量是另一个刚体质量的两倍是可以的,但当一个刚体质量比另一个刚体质量大十倍时,模拟就会变得不稳定。
  • 尽量避免在包含刚体或关节的变换组件中使用不等于 1 的缩放。这样的缩放不可能在所有情况下都可靠。
  • 如果刚体组件在插入到世界后发生重叠,并且无法避免重叠,请尝试降低 Rigidbody.maxDepenetrationVelocity 使刚体组件更加平滑地相互退出。
Create a ragdoll
布料