Articles of 汽车

根据汽车的bezierpath转动汽车的前轮

我有一个3D汽车,它遵循预定义的3D Bezierpath。 我希望汽车的前轮转动,以适应汽车的变化方向。 我的想法是将车轮的方向与path方向的导数 (3D向量)相匹配,也就是贝塞尔path的二阶导数。 出于某种原因,这几乎不起作用。 在某些时候,它似乎工作得很好,而在其他地方,轮子就像地狱一样旋转。 我注意到即使Bezierpath是直线,二阶导数也会改变:在这种情况下,AFAIK应该是0 。 所以, 我的第一个问题是,如果我的想法匹配车轮的旋转到二度是要走的路。 如果是的话, 我的第二个问题到底是怎么回事? 这是我的贝塞尔三维曲线代码: package fanlib.math { import flash.geom.Vector3D; public class BezierCubic3D { public const anchor1:Vector3D = new Vector3D(); public const anchor2:Vector3D = new Vector3D(); public const control1:Vector3D = new Vector3D(); public const control2:Vector3D = new Vector3D(); /** * Gets values from both 'getPointAt' and […]

创造地形

我正在创建一个2D横向滚动的汽车游戏 。 我的问题是产生的地形。 在创建地形时,我需要将其随机并logging下来,以便稍后创建碰撞。 我不能使用任何外部资产。 var keys = []; var keyPressed = function() { keys[keyCode] = true; }; var keyReleased = function() { keys[keyCode] = false; }; var car = function(locatio, accel, image, dragcoof) { this.loc = locatio; this.accel = accel; this.image = image; this.volocity = new PVector(0, 0); this.acceleration = new PVector(0, 0); this.drag […]

汽车的横向滑动

我一直在关注这个游戏学院的教程,并试图在Blender Game Engine中制作汽车物理系统。 https://www.youtube.com/watch?v=EdjUS85yVuI&list=PLMT7gzj_bnSu7aENsf7_4tuvWadOzu4hY&index=3 然而,一旦我到了1:47:30,他开始谈论横向滑动速度,我感到困惑(可能是因为我不知道Unity的脚本是如何工作的)。 所以有人告诉我们: lateral slip speed is equal to car speed dotted by wheel sideways transform 。 但是,我不知道如何正确地做到这一点。 我的意思是说,我不知道是否需要在本地(乘以世界变换matrix的游戏引擎的工作方式)或全球车速。 我也不知道是否使用向量(1, 0, 0) wheel.getAxisVect((1, 0, 0)) (1, 0, 0)或全局向量(在BGE它是wheel.getAxisVect((1, 0, 0))作为第二个input。

使用物理引擎创建车辆

在物理引擎中创建通用3D车辆的理论是什么? 我想知道的是,我应该把哪些零件粘在一起来制造车辆,零件应该如何粘在一起,以及如何使车辆具有所期望的车辆的感觉和运动。 我不是在寻找任何代码,或者如何使用特定的引擎来做到这一点。 只是理论背后是如何完成的。

neural network控制的汽车

我试图制造一个由neural network控制的AI车。 我看到了这两个video: neural network演示和Q学习和2D驾驶的neural network ,我想复制它。 我已经有了neural network代码,使用了反向传播algorithm。 事情是,我不知道如何加强networking的学习。 我应该使用什么样的价值来计算错误? 我的车目前有5个input(类似于第一个video),并输出2个数字,1插入汽车的旋转扭矩,如果它是正的,它将顺时针旋转,如果逆时针是负的,它会转多less根据它的大小,范围从-1〜1,我把它映射到所需的最小 – 最大旋转。 第二个输出数字是加速度,从0〜1,但映射到-10〜100(这样可以反转)。

如何模拟车辆驾驶物理?

如何在赛车游戏中模拟汽车的物理特性? 在现实生活中,车辆的运动是从车轮上inheritance下来的。 但是在阅读了一些关于这个主题的文章(其中很多是10岁)之后,我意识到“现实世界”物理学实际上常常被伪造成各种方程和常量。 我想创建自定义的驾驶模型,以了解它,但我不想开始错误,所以这就是为什么我在这里。

如何模拟汽车传动系统(在Unity中)?

我的一个爱好项目涉及汽车。 到目前为止,我有一个快速和肮脏的“一级”实施发动机+变速箱+车轮,但我认为这是丑陋的,我想要更现实一点。 可悲的是,我无法在Google上find很多(无论是错误的search条件,或者真的没有什么是我想要的)。 这好像是 在场景中设置:四个wheelcolliders附加到一个大boxcollider。 我想在系统中的东西: 发动机,离合器,变速箱,差速器和车轮(以及其他任何有扭矩的东西)的单独课程。 Throttlecontrol与revlimiter(工作!),转向(工作太!),刹车(尚未制造,但也不是很复杂,可能会工作)。 我试过的第一件事: 主要是围绕着如何告诉发动机车轮实际上正在使用或给(发动机制动)动力给系统旋转。 所以首先我创建了所有的类都有自己的updatemethod (不是直接由mainloop调用,而是从controllerclass的fixedupdate中调用)。 发动机更新方法根据节气门,扭矩曲线(animation曲线)和发动机摩擦来计算发动机扭矩。 然后用于加速具有自身惯性的虚拟曲轴。 但在加速前,我决定在发动机扭矩上加一些反馈扭矩,所以如果车轮不能跟上,发动机就不能加速,甚至减速。 这样的反馈扭矩例如由齿轮箱增加,齿轮箱又具有来自差速器和车轮的反馈力。 车轮计算出转速达到从变速箱出来的轴的转速所需的转矩,然后通过几次更新将其全部传回发动机。 问题在于,扭矩反馈并没有真正做到发动机制动,而是瞬间将其转化为几百万RPM。 反馈扭矩除以1000确实有效,但是汽车根本没有动作。 所以这是第一个失败。 失败数字2: 好吧,把这个拧紧,我想,整理所有的东西。 这不再使用几个updatemethod ,而是recursion更新。 基本上,我把引擎更新,然后计算出它有多less扭矩。 这就告诉变速器它在r RPM时有扭矩。 变速箱根据当前档位改变数值,然后再将这些数值放入差速器中。 差速器应该在其输出之间分配扭矩。 要做到这一点,我计算输出(在这种情况下,车轮)需要加速到r RPM多less扭矩。 我为每个输出做这个,并为每个输出做一个列表。 我也保存这些值的总和。 有了这个,我可以得到每个输出的值为0…1 ,这决定了每个输出在更新方法中有多less扭矩。 它基本上是一个智能差速器,给出需要更多扭矩,更多扭矩的输出。 我想建模一个真正的差异会涉及一些更复杂的东西。 现在扭矩在车轮上,并被放入车轮扭矩传感器的扭矩特性中。 直到这里它的工作。 如果我加油,然后放开它的车轮开始倒退。 这基本上就像第一次尝试一样。 所以也失败了 而失败3: 而不是返回剩下的扭矩,而是试着将RPM反向传播给发动机。 所以我施加扭矩,并得到RPMs回来。 但是,再一次,所有的事情都试图将汽车转向我想要的方向。 这是我的想法。 我想要一个相对现实的传动系统,这是模块化的,可以做引擎制动。 购买资产很可能不会解决我的问题,我也想了解它是如何工作的,而不仅仅是使用它。 有没有人有如何正确建模传动系统的经验? 如果我忘记提及某事,请询问。

math驾驶汽车

我正处于一个城市驾驶模拟项目的早期阶段,而我在math上遇到了麻烦,以决定AI如何驾驶汽车。 我的汽车模型很简单,没有任何物理轮子或摩擦; 人工智能只需设置一个转弯半径(FLT_MAX表示直线行驶)和每一帧的加速度。 我的问题是, 从一开始的位置和方向,我该如何计算每个车架的转弯半径以使车辆到达目的地的位置和方向? 举一个例子,想想一辆停在停车标志处的汽车,准备好转弯。 汽车应该沿着一条曲线行驶,以便当它到达那条路的“起点”时,沿着它转向的道路指向。 我认为贝塞尔曲线是有帮助的,因为它们可以用来创建与我的初始和最终方向相切的平滑曲线,但是我不能准确地找出如何沿曲线前进一点来select一个点, 。 我也打开完全不同的想法。 这是我的汽车更新代码供参考。 mSpeed += mAcceleration * deltaTime; float distance = mSpeed * deltaTime; float theta = distance / mTurningRadius; mPosition += mTurningRadius * sin(theta) * mDirection + mTurningRadius *(1.0f – cos(theta)) * mLeft; mDirection = rotate(mDirection, theta * 180.0f / PI, mUp); mLeft = -cross(mDirection, mUp);

如何在Unity 5中为汽车添加防摇摆杆?

我已经研究了Unity的防滚杆的一些例子,但是它们都是统一的4和波纹管,所以它们不能统一工作5.有人可以帮助我在Unity 5中制作一个反滚动脚本脚本吗? 这是我能find的最好的例子(我不知道如何将它转换为统一的5): using System.Collections; public class AntiRollBar : MonoBehaviour { var WheelL : WheelCollider; var WheelR : WheelCollider; var AntiRoll = 5000.0; // Use this for initialization void Start () { } // Update is called once per frame void fixedUpdate () { var hit : WheelHit; var travelL = 1.0; var travelR = […]

我应该以米还是像素来计算

在我的汽车模拟中,我以标准单位进行计算,除了以像素为单位的距离。 这是否仍然是正确的(我的猜测是否定的)还是应该使用米? 如果我要用米,最好的方法是什么? 我应该select一个比例尺10px = 1m还是有更好的方法来做到这一点? 提前致谢。 一些额外的信息:我正在使用Unity3D并使用其物理引擎。