Cars(汽车)
由于City Traffic(城市交通)系统是在Game Framework(游戏框架)的基础上建立的,因此每一种车辆都是一个分配有节点引用的实体(entity)。 车辆的基类被命名为"Car"。 并且每辆car的变种都应保存为单独的.node文件。
Car(汽车)的设置
ObjectMeshStatic应是car的节点引用的根节点。
对象应具有带所需形状的BodyRigid型body。 而且,连接器(joint)也要分配给该BodyRigid。
Car的几何体的另一个重要元素就是可复制car的包围盒的表面。 该表面被用来通过相交射线检测car。 其相交掩码应为0x00000100。
对于汽车的专用信号灯(转向灯,前车灯,停车灯),您需要为它们设置特殊的"signal_surface"属性并指定Signal Type(信号类型)参数。 该参数的值可以是:turn_left,turn_right,stop,reverse,headlight,dipped_light。
专用信号灯的逻辑很简单:如果某个信号灯被打开,那它的表面也就被启用和禁用了。
Wheels(车轮)的设置
系统会自动为每个wheel创建JointWheel对象并将其与car的BodyRigid绑定。 为此,您需要执行如下操作:
- 将车轮放置到正确的位置上。
- 确保这些车轮成为car的ObjectMeshStatic的子节点。
- 为这些车轮创建不带形状的BodyRigid型body。
- 为该body分配"car_wheel"属性。
"car_wheel"属性拥有3个开关参数:
- Steering(转弯) - 用于方向盘。
- Driving(行车) - 用于汽车车轮。
- Hand-brake(手刹) - 用于按下手刹就会被锁住的车轮。
物理设置和动力学设置
质量和重心可在car的节点中调节。
其它的物理参数和动力学参数可在您car类的Fields(字段)标签页内调节,该类从Car类继承而来:
- Gear Ratio(传动比) - 指car的变速箱转数与车轮转数的比值。
- Gear Ratio Reverse(倒档传动比) - 指倒档传动比。
- Gear Ratio One(传动比1) - 指1档变速器传动比。
- Gear Ratio Two(传动比2) - 指2档变速器传动比。
- Gear Ratio Three(传动比3) - 指3档变速器传动比。
- Gear Ratio Four(传动比4) - 指4档变速器传动比。
- Gear Ratio Five(传动比5) - 指5档变速器传动比。
- Gear Ratio Six(传动比6) - 指6档变速器传动比。
- Gear Ratio Seven(传动比7) - 指7档变速器传动比。
所有的传动比变量都取自真实车辆。 您可在所需car的规范中查找该参数。 例如,参阅福特福克斯的变速器传动比。
- Final Drive(主传动) - 指引擎转数与变速箱转数的比值。
- Number Gears(齿轮数) - 指变速箱中的齿轮数。
- Drive Efficiency(传动效率) - 指主动齿轮的效率(例如,假如该参数被设置为0.7 (70%),那效率损失就是30%)。
- Max Steer Speed(最大转向速度) - 指最大车轮旋转速度,按度/秒计算。
- Min Steer Speed(最小转向速度) - 指最小车轮旋转速度,按度/秒计算。
- Max Rpm(最大转数) - 指每分钟最大转数。
- Min Rpm(最大转数) - 指每分钟最小转数。
- Max Torque(最大扭矩) - 指车轮的最大扭矩。 该参数由simulated_car_mass (kg) * real_car_torque (Nm) / 实际汽车的质量(kg)计算所得。
- Max Angular Damping(最大角阻尼) - 指按下刹车时的最大车轮角阻力。
- Min Angular Damping(最小角阻尼) - 指车轮的恒定角阻力。
- Hand Brake Angular Damping(手刹角阻尼) - 指按下手刹时的车轮角阻力。
- Max Steer Angle(最大转向角) - 指车轮旋转的最大角。
- Suspension Spring(悬挂弹簧) - 指悬架刚度。
- Suspension Damping(悬架阻尼) - 指线性悬架阻尼系数。
- Suspension Limit From(悬挂上限) - 指悬挂的上限。
- Suspension Limit To(悬挂下限) - 指悬挂的下限。
- Wheel Threshold(车轮门限值) - 指车轮门限值。
- Wheel Tangent Friction(车轮切线摩擦) - 指轮胎的线性磨损。
- Wheel Tangent Angle(车轮切线角) - 指用来指定可获得多快的线性力的系数。
- Wheel Binormal Friction(车轮副法线摩擦) - 指轮胎的侧向磨损。
- Wheel Binormal Angle(车轮副法线角) - 指用来指定可获得多快的侧向力的系数。
- Gear Shifting Schedule(换挡方案) - 指存放XML文件的路径,该文件包含了自动变速箱的规则。 对变速器的每一档而言,"油门"/"速度"坐标系中都用2条曲线表示升降转换。
换挡规则的设置举例:
<?xml version="1.0" encoding="utf-8"?>
<lines>
<up>
<line> <!-- 从1档升 -->
<point throttle="0" speed="16"/>
<point throttle="25" speed="16"/>
<point throttle="90" speed="48"/>
<point throttle="100" speed="48"/>
</line>
<line> <!-- 从2档升 -->
<point throttle="0" speed="48"/>
<point throttle="35" speed="48"/>
<point throttle="90" speed="90"/>
<point throttle="100" speed="90"/>
</line>
<line> <!-- 从3档升 -->
<point throttle="0" speed="80"/>
<point throttle="35" speed="80"/>
<point throttle="90" speed="140"/>
<point throttle="100" speed="140"/>
</line>
</up>
<down>
<line> <!-- 从2档降 -->
<point throttle="0" speed="8"/>
<point throttle="50" speed="8"/>
<point throttle="90" speed="46"/>
<point throttle="100" speed="46"/>
</line>
<line> <!-- 从3档降 -->
<point throttle="0" speed="32"/>
<point throttle="50" speed="32"/>
<point throttle="90" speed="80"/>
<point throttle="100" speed="80"/>
</line>
<line> <!-- 从4档降 -->
<point throttle="0" speed="56"/>
<point throttle="50" speed="56"/>
<point throttle="90" speed="128"/>
<point throttle="100" speed="128"/>
</line>
</down>
</lines>
执行结果为:
Colors(颜色)的设置
要想使虚拟世界中的汽车多样化,您就可以使用不同的颜色和材质。 对于材质的设置,有一套基于Unigine属性的特殊内置系统可供其使用。
要想设置材质,您就需要为每一种类型的汽车都创建一种从"car_colors"属性继承来的属性。
"car_colors"属性拥有2个参数:
- Material - 指材质的名称
- Surface - 指材质将被分配其上的表面的数量
"car_colors"属性需要在您car的实体的Color Base Property(颜色基本属性)字段中指定。
该属性的所有子属性代表的就是所列出的car的可能颜色。 要想指定所有的表面以及它们的材质,您就需要创建从某个列表元素继承来的辅助子属性:
在car创建时,颜色将被随机选取。 而属性则会检查其所有的子属性,并会将材质分配给所需表面。