2023年3月1日

车辆物理 

随着 Evergine 的发布,开发者现在可以轻松创建 车辆物理 模拟。车辆物理模型经过简化,无需将每个车轮和底盘作为由关节连接的独立刚体进行模拟。相反,整个车辆被表示为一个单一的刚体,这不仅简化了物理模型,还提高了性能。

为了模拟车轮的碰撞检测,Evergine 使用 射线投射,这近似于真实车辆的行为。该解决方案还能精确模拟轮胎与表面之间的 摩擦力。

开发者拥有极大的灵活性,可以创建具有任意数量车轮、悬挂属性、旋转轴等的不同类型车辆。这使得创建逼真且复杂的车辆模拟成为可能。

要在 Evergine 中开始使用车辆物理,开发者需要使用两个组件:PhysicVehicle3D 和 PhysicWheel3D。

 

PhysicsVehicle3D 组件

PhysicVehicle3D 组件应添加到开发者希望转换为车辆的底盘刚体上。该组件将向物理体施加力,以模拟悬挂、发动机扭矩和制动力。

实用属性

以下属性可用于自定义您的车辆:

  • SuspensionStiffness: 悬挂刚度是衡量压缩车辆悬挂所需力大小的指标。
  • SuspensionCompression:此属性决定车轮碰到凸起或障碍物时悬挂的压缩程度。
  • SuspensionCompression:此属性决定悬挂弹簧压缩和回弹的速率。它控制车辆遇到颠簸或不平坦地形时施加到悬挂上的阻尼力大小。
  • MaxSuspensionTravel: 表示悬挂可被压缩或伸展的最大距离。它以长度单位计量。
  • FrictionSlip: 指运动过程中轮胎与地面之间发生的滑移量。摩擦滑移通常使用摩擦系数来建模,该系数表示轮胎与地面之间切向力与法向力的比率。可以调整此系数,以模拟不同类型车辆和表面的不同滑移和牵引力水平。
  • MaxSuspensionForce: 指定悬挂可施加到车辆底盘的最大力。它用于限制悬挂在压缩或拉伸时的效果,防止车辆过度弹跳或失去稳定性。

控制车辆!

如果您希望开始操控车辆,以下方法可能会很有用:

  • ApplyEngineForce(force):此方法用于施加将作用于车辆的引擎力。可调整该值以增加或降低车速,并可设为负值以实现倒车。引擎力仅作用于驱动轮。 
  • SetSteeringValue(steering): 此方法用于设置车辆的转向角度。使用此方法可改变车辆方向。转向值仅作用于可转向轮。 
  • SetBrake(brake):指示车辆施加的制动力。制动力仅作用于可制动轮。 

Physic Wheel 组件

PhysicWheel3D组件应添加到开发者希望作为车辆车轮的每个实体上。  

以下属性有助于定义车轮的悬架和旋转方向等: 

  • WheelRadius:确定车轮半径。  
  • RotationAxis:用于定义车轮旋转所围绕的轴。它也指示施加引擎力时的前进方向。该值在车轮实体的局部空间中指定。 
  • SuspensionDirection:指示车轮悬架的工作方向。它也定义转向轮方向。该值在车轮实体的局部空间中指定。 
  • SuspensionRestLength:定义车辆处于静止位置时车轮悬架的长度。 

总结 

PhysicVehicle3D和PhysicWheel3D组件已与Evergine物理系统完全集成。这意味着开发者在创建车辆模拟时,可以利用Evergine物理引擎的所有特性和功能。 

总之,Evergine的车辆物理模型通过允许开发者将整个车辆表示为单个刚体,简化了车辆模拟的创建过程。这种方法不仅简化了物理模型,还提高了性能。开发者拥有极大的灵活性,可通过可自定义的属性创建不同类型的车辆,从而能够构建逼真且复杂的车辆模拟。PhysicVehicle3D和PhysicWheel3D组件与Evergine的物理引擎完全集成,使开发者能够轻松利用引擎的所有特性和功能。通过此新版本,Evergine让开发者比以往任何时候都更容易创建高质量的车辆模拟。 

David avila
作者
David Ávila
Plain Concepts Research