带撬的车辆物理


13

我将如何为可能失去牵引力的汽车创建汽车物理特性?我希望驾驶员的脚看起来很平坦,所以当您踩油门时,他们的汽车(后轮)的牵引力会松散,并且很难控制。我还希望能够在各个角落进行甜甜圈和“漂流”。

我还需要知道发生了多少“打滑”,因此我可以按比例添加烟雾和轮胎痕迹。

假设一个2D,自上而下的风格的汽车游戏。

谢谢

Answers:


10

这是一个非常简化的版本,但对大多数街机类型的游戏来说都不错。您需要以下属性:

positionX, positionY - where the car is
velocityX, velocityY - speed on each axis
drag - how fast the car slows down
angle - the rotation of the car, in radians
angularVelocity - speed the car is spinning, in radians
angularDrag - how fast the car stops spinning
power - how fast car can accelerate
turnSpeed - how fast to turn

每帧:

positionX += velocityX
positionY += velocityY
velocityX *= drag
velocityY *= drag
angle += angularVelocity
angularVelocity *= angularDrag

加速

velocityX += sin(angle) * power;
velocityY += cos(angle) * power;

向左转

angularVelocity -= turnSpeed;

引导正确

angularVelocity += turnSpeed;

为了获得良好的漂移,请将drag和angularDrag设置为非常接近1,例如0.9


那么控制将是功率(油门)和角速度(转向)?还是我错过了一些转变?
drxzcl 2010年

不,就是这样-忘了解释如何操纵。更新了新的turnSpeed变量。
伊恩

2

我今天正在阅读一篇论文,该论文模拟了碰撞和旋转时的一些车辆动力学:

荆州 剑波路 彭辉,“车辆动力学对精确固定技术的反应”,2008年ASME动力系统与控制会议论文集

它包含一个物理模型,该模型表示侧倾力矩和故意碰撞力引起的偏航期间后轮胎牵引力的损失。对于对碰撞期间的车辆动力学感兴趣的游戏程序员来说,这似乎很有趣。


相当多的研究,但不幸的是不适合当前的问题。本文是3D分析,包括车辆侧倾和所有情况。问题与2D顶视图游戏有关。因此是2D物理,而不是3D。
布拉姆'18

1

我通常不推荐Bourg的《面向游戏程序员物理学》,但他在第10章(第171页左右)中谈到了这一点,可能会为您提供一个起点。

不幸的是,PhysX中的车辆代码仍然是“示例”,并且没有很好的文档记录,因此您不容易弄清楚它是如何工作的。我相信我已经看过从他们的示例中获得的代码可以显示您在3D中寻找的行为类型,但这是比我想的要低的模拟。


1

您需要了解的第一件事是“滑移率”和“牵引圈”。滑移率非常适合轮胎性能,在角度差和轮胎横向力之间具有非线性关系。它还为您提供驾驶员扭矩反馈信息(用于力反馈方向盘)。

这两个概念的超级简单形式如下:滚动方向和运动方向之间的角度差越大,垂直于滚动方向的力(横向力)就越大。如果轮胎角度增加,它会在(通常)5°至8°达到峰值,然后从那里掉落。

牵引圆基本上是一种限制器,可限制任何超出其的力矢量。它模拟了剧烈的加速/制动会降低转向能力的方式,反之亦然。牵引圆的大小(最大牵引力矢量)与将轮胎压到地面上的力成比例。

您需要分别将横向(转向)力与驱动/制动(旋转)转矩以及与地面相反的牵引力建模。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.