Skip to content

车身布局 VehicleLayout ​

车包里写在 vehicles/<名字>.json 的 layout 节,字段名同下表(Java:new VehicleLayout.Builder(),填完 build())。下面除了标注「模型坐标」的,都是车身坐标(前、右、上)。

字段含义
body停着时的碰撞盒(玩家能站在车顶、被车挡住),几个 Box 拼出车形
rainShell挡雨的外壳(RainPart:一个盒子,可以用一个斜面切掉一角,不切写 0, 0, 1)
cabCushion cabFloor前排坐垫顶面高度、驾驶室地板高度
seats座位:第 1 个是驾驶座,第 2 个是副驾驶;Seat(前, 右, 坐垫高, 朝向, 转头角度, 在驾驶室里, 在右边)
wheelX wheelY wheelZ方向盘中心(模型坐标)
columnY columnZ转向柱方向(模型坐标,单位向量的 Y 和 Z,指向仪表台)
rim方向盘半径
steeringRatio方向盘转角和前轮转角之比
hingeX hingeZ车门铰链(模型坐标;左右对称)
pull outer entry车门内拉手、外把手、上车时人站的位置
shiftPivot shiftKnob换挡杆转轴、挡把中心(模型坐标,空挡竖直时)
exitF exitR下车落脚点
hood hoodUp引擎盖关着、打开时能点到的范围
door doorSwung左门关着、打开时能点到的范围(右门对称)
filler fillNeck加油口盖能点到的范围、加油管口位置

皮卡的车斗、尾门、分动箱杆(bed、tailgate、transferPivot 等)不填就是没有。

可选项(不填就从上面的盒子和点自动推算):

字段含义
exhaust exhaustOut排气口位置(可以多个:{ {前, 右, 上}, ... })和尾气喷出的方向。不填:车尾右侧一个,向后喷
engineVisible发动机网格(<名字>_engine)不用开盖也看得见(中置发动机的玻璃盖、敞开的发动机舱):靠近时一直画。不填:只在引擎盖打开时画
wiperY wiperZ雨刮转轴(模型坐标的 Y、Z,大致是风挡玻璃的法线)。不填:T15 风挡的角度。风挡弧度大、绕一根轴转刮片会离开玻璃的车用 wiperPoses:{"wiper_l": [[进度, dx, dy, dz, qx, qy, qz, qw], ...], "wiper_l_blade": [...], ...},进度从 0 到 1 递增,每行是骨骼在这个进度的位移和旋转(四元数,模型坐标,绕骨骼枢轴),中间插值
points交互提示、各种声音、两个点击块的位置(VehicleLayout.Points)。一般不用填

油箱容量在物理参数里:b.tank = 73;(升,默认 60)。

这些数值和 Blender 里的空物体位置要对得上:例如方向盘骨骼 steering 放在 Blender 的 (wheelX, −wheelZ, wheelY)。