我正在制作一款力量帝国游戏,The Last Kilowatt,并希望有一辆小型电动沙漠车可以在城镇中驾驶。目标感觉是“需要速度/福尔扎地平线,不能太重,美丽的漂移周边”。

为了实现这一目标,我花了比预期更多的尝试。

设置

我建造了一个测试场景,三辆车并排停放。它们共享同样的650kg车身,电动机,输入平滑化和升级。只有轮胎和悬挂模型不同,所以这是公平的比较。

A:自定义光线追踪汽车(重建三次)

  • 首先是一个光线追踪汽车带有抓握曲线。感觉很糟糕。
  • 然后是一个基于球体的卡车。容易制作好玩,但永远感觉不到真正的汽车。
  • 最后,光线追踪弹簧与侧方倾斜胎式轮胎,漂移作为一个辅助状态:手煞车,刹车点按或太多功率开始它,方向盘设置漂移角度,汽车的速度通过角度转过。
  • 教训:后轮需要比前轮更好的抓握,否则正常的转弯变成侧向的蟾蜍。

B:Unity的轮胎碰撞器,设置正确

默认值很糟糕:几乎无限的抓握力,汽车倾倒。

一旦你:
* 工作出弹簧和阻尼从行驶频率和阻尼比率(35000/4500的默认值假设1500kg的汽车)
* 将侧方渐近线设置为极值,抓握力平稳而不是掉落悬崖
* 使后轮比前轮更坚固
* 在行走速度下降侧向刚度
* 将forceAppPointDistance设置为0.3m以下的中心质量(从来不是0)
* 添加抗翻转杆,ConfigureVehicleSubsteps和牵引控制
* 对手煞车,锁定后轮并降低其侧向抓握力。

第一次评价:“更好,但漂移太像冰鞋滑行”。

PhysX胎式轮胎没有摩擦圆,所以我用一个伪造的:旋转的后轮失去侧向抓握力。增加更多后胎抓握力和短暂的抓握恢复时间解决了这个问题。

C:Pacejka“魔法公式”

真实胎式轮胎,旋转轮胎,结合滑行和有限分离差动。陷阱:简单的逐步积分使轮胎速度振荡。它需要小的隐式(反向欧拉)子步骤才能稳定。

获胜者:B

简单的轮胎碰撞器,调整后,感觉最好驾驶。它稳定可预测,并且带有伪造的摩擦圆,它漂移足够好以至于好玩。

与机器人一起测试,不仅仅是感觉

我还编写了一个自动化测试,驾驶每个模型通过相同的动作并记录数字。它捕捉到了我从手动测试中永远不会发现的东西:

  • 普通弹簧跳动的缓冲区将原始沙漠车抛到空中 4秒。它现在是非弹性。
  • 只需保持方向盘向内转弯,就会使每辆车都旋转。机器人必须反方向转向并减慢油门,像人一样做。
  • 反方向转向必须从汽车的实际速度测量。否则,50公里/小时的30°滑行只得到14°的校正。

很高兴回答问题。

你在Unity中使用什么样的汽车物理:轮胎碰撞器,光线追踪汽车或自定义的什么?

The Last Kilowatt在Steam上:[steampage](https://store.steampowered.com/app/5380800/The_Last_Kilowatt/)

愿望清单真的很有帮助!