建模(Blender)
示例车的 examples/blender/whitebox_coupe.blend 就是按下面的约定搭的,可以打开对照。
集合
每个网格一个集合,集合名就是网格名:
| 集合 | 内容 | 贴图 |
|---|---|---|
<名字> | 车身外部:车身、车门、加油口盖、尾灯、后风挡 | <名字>.png |
<名字>_front | 车头:前脸、引擎盖、前风挡、大灯、转向灯 | <名字>.png |
<名字>_wheel | 一个右侧车轮,轮毂中心在原点,外侧朝 +X | <名字>.png |
<名字>_cab | 驾驶室:仪表台、方向盘、换挡杆、仪表 | <名字>_cab.png |
<名字>_seat | 座椅 | <名字>_cab.png |
<名字>_engine(可选) | 发动机舱,引擎盖打开才画 | <名字>_under.png |
<名字>_chassis(可选) | 底盘 | <名字>_under.png |
没有的集合就不画。车轮只做一个,Vettura 会按 VehicleSpec 的轮距、轴距和轮胎半径放到四个位置,左边的转 180°。
骨骼:用空物体(Empty)
会动的部件挂在一个空物体下面:空物体放在转轴上,名字是 Vettura 认识的骨骼名;网格物体以它为父级。没有父级的网格属于 body(不动)。
| 骨骼名 | 怎么动 | 放在哪个集合 |
|---|---|---|
door_l door_r | 绕竖直轴向外开(铰链在车门前缘) | <名字> |
hood | 绕横轴向上掀(铰链在引擎盖后缘) | <名字>_front |
fuel_door | 加油口盖,绕竖直轴(左侧,铰链在前缘) | <名字> |
tailgate | 皮卡尾门,绕横轴向下 | <名字> |
wheel | 车轮(原点) | <名字>_wheel |
steering | 方向盘,绕转向柱 | <名字>_cab |
shift | 换挡杆,绕防尘套顶部摆动 | <名字>_cab |
transfer | 分动箱杆(只有四驱车) | <名字>_cab |
tach speedo fuel_gauge temp_gauge | 仪表指针,绕垂直于仪表盘的轴(指针零位朝上) | <名字>_cab |
wiper_l wiper_r | 雨刮(臂,用姿态表时刮片可以单独做成 wiper_l_blade wiper_r_blade) | <名字>_front |
T15 还有 wiper_stalk、turn_stalk、light_knob、visor_l/r、glovebox、ashtray、key、hvac_*,新车可以不做。
部件:物体名决定怎么画
一个网格物体就是一个部件,名字写成 <骨骼>_<内容>,例如 door_l_paint、body_glass_front、wheel_tire。名字的结尾决定画法:
| 结尾 | 画法 |
|---|---|
_paint | 车漆主色(玩家选的颜色乘到贴图上,贴图这部分画浅灰或白色) |
_paint2 | 车漆副色(双色车) |
_lamp_low _lamp_high | 近光、远光,开灯时发光 |
_lamp_park_l _lamp_park_r | 示廓灯 |
_amber_l _amber_r | 左、右转向灯 |
_lamp_tail _lamp_reverse _lamp_plate _lamp_dome | 尾灯、倒车灯、牌照灯、顶灯 |
_dial _needle | 仪表盘和指针,通电时发光 |
_tire | 轮胎(爆胎时压扁) |
名字含 glass | 半透明玻璃 |
损伤系统认这四块玻璃:body_glass_front(前风挡)、body_glass_rear(后风挡)、door_l_glass、door_r_glass。名字对上才会碎。印在玻璃上的东西(加热丝、贴纸)单独做一个部件,名字是玻璃名加 _decal(例如 body_glass_rear_decal):按贴花画(不是半透明玻璃),玻璃碎了它一起消失。这四块玻璃下雨时也会挂水:Vettura 按网格自动算出玻璃的形状和弧度,前风挡上雨刮(wiper_l、wiper_r;有 wiper_l_blade 这类刮片骨骼就按刮片算)扫过的地方会被刮干净,不用另外配置。
同一骨骼下同名的多个物体会合并成一个部件(Blender 自动加的 .001 导出时去掉),例如四个尾灯都叫 body_lamp_tail。
尺寸和面数
- 1 米 = 1 格,按真实尺寸做。白模跑车是 4.70 × 1.85 × 1.32 米。
- 网格最终会转成三角形;面积为零的三角形会被丢掉。
- 光滑:导出按 50° 折角自动分组,硬边不用手动标。
- 每个网格文件的上限(Vextris 0.1.1 起):262144 个三角形、786432 个顶点、512 个部件、64 MiB 的 JSON。超了整份网格不加载,那部分车身就看不见;导出脚本超限时会打印 WARNING。
- 不要为了省面数对整车统一减面:大面板会被压皱,格栅会碎成三角形。外观部分保持原网格,只压看不清的地方(发动机、底盘)。高精度的车,单个外部网格十几万个三角形是可以的。

