轮子关节 WheelJoint
Author : Charley
关节的通用属性(编辑关节连线、绑定另一刚体、设置锚点、振动频率、阻尼、碰撞连接刚体)请查看 2D物理编辑总览 中关节通用功能章节。
轮子关节是一种可以模拟车辆轮子挂载以及悬挂系统的关节。这种关节允许一个物体在另一个物体上以固定的轴向转动,同时还能沿着轴向弹簧回弹。轮子关节广泛用于模拟车辆动力学,如摩托车、汽车等在游戏中的行为。利用轮子关节,可以轻松实现车辆的平滑行驶、跳跃和过弯等复杂动作。
一、启用马达 enableMotor
启用马达在前文中介绍过,基础的使用完全一样,这里只说一下需要注意的要点。
由于轮子关节通常是应用于模拟车辆,所以我们通常会将多个轮子连接到同一个车身刚体。例如摩托车的两个轮子关节的另一刚体都连接到同一个车身节点的刚体。
需要注意的是,我们保持至少有一个轮子启用马达,用于模拟车辆的驱动力,但无需所有轮子都要启用马达,这相当于摩托车是后轮驱动还是前轮驱动的效果。当然,如果您需要全轮驱动(全部轮子都启用马达)的效果,也是允许的。
效果如动图1所示:

(动图1)
二、弹性方向 angle
弹性方向是一个角度值,用于定义模拟悬挂的弹性运动方向,即轮子在哪个方向可以如弹簧一样压缩和伸展,比如0度是沿X轴向右, 90度是沿Y轴向下的方向。
更多弹性方向的介绍与移动限制结合起来介绍
三、移动限制 enableLimit
弹性方向的设置,只是定义了悬挂模拟的弹簧方向,移动限制勾选后,定义了在这个方向上的移动范围。如图2所示:

(图2)
这个范围是的基于弹性方向和锚点位置的线性范围区间。
当运行后,如果我们勾选了绘制关节,那我们可以直观的看到移动的范围区间,如图3所示:

(图3)
有了这个范围区间,我们就可以爬坡、落地的时候,直观的感受到悬挂模拟效果受这个范围的限制后,会更加的稳定。否则可能会出现不真实的弹性效果。对比效果如动图4所示:

(动图4)
实现悬挂的效果还要配合振动频率,太低和太高均会影响最终效果。
如果移动上限与移动下限均为0,那即便是设置了弹性的方向,也无法得到悬挂的效果。对比效果如动图5所示:

(动图5)