meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
extend:vehicle [2023/04/04 22:58] – 创建 bibiboxsextend:vehicle [2025/08/05 16:12] (当前版本) bibiboxs
行 1: 行 1:
 <markdown> <markdown>
 # 游戏载具扩展 # 游戏载具扩展
-==(内容等步更新完善)==+在《沙盘引擎》扩展中,载具扩展是多数玩法不可缺少的存在。 
 +引擎默认内置了许多常见的载具类型,并且全部基于`Json`配置文件存在,如果开发者需要**增加外部载具**或**新增载具**,则需要了解**载具扩展**说明。 
 + 
 +> **注意:在**新版引擎**中增加了[实验工坊](::manual/workshop "实验工坊"),使用功能可进行可视化编辑载具等对象,为自定义扩展提供更高效的方式。** 
 + 
 +## 载具框架 
 +在世界中,每个【载具】都被认定为可驾驶、拥有操控性等实体,包括但不限于**二轮车、多轮车、船舶、飞机、直升飞机**这些基础类型,其他类型载具也应遵循以上类型进行扩展(如UFO可以用直升飞机的逻辑\配置文件来制作,只不过看起来模型是UFO)。 
 + 
 +> 言简意赅,载具实际上就是**静态模型+绑定功能性载具脚本+其他扩展**组成的。 
 + 
 +## 载具配置 
 +每个载具的配置文件都是独立的,一个配置文件代表一个载具,同时配置文件命名将直接关乎于**绑定给哪个载具**。 
 +> 例如:`10000_Car.json`表示给ID为10000的载具指定配置。 
 +> **配置文件目录:`模组目录\Store\Data\Vehicle`** 
 + 
 +### 配置Json解析 
 +以下内容为引擎载具**警车**(`ID 10`)的配置示例,**警车模型+Json文件**组成了这台**可驾驶、外表为警车、可使用警报、性能声音配置如下**的世界载具。 
 + 
 +基于Json的配置特性,以下部分内容如不需要可进行删除省略,时每行配置信息均代表此载具的**某个配置**(如`Handling.Acceleration`代表加速度)。 
 +```javascript 
 +
 + "Name": "Police", //载具名称 
 + "Model": 410, //载具模型 
 + "Type": 1, //载具类型 
 + "Scale": 0.8, //整体缩放 
 + "Collision": {"x": 2.6, "y": 2.0, "z": 6.0}, //碰撞盒尺寸 
 + "CollisionCenter": {"x": 0.0, "y": 0.0, "z": 0.0}, //碰撞盒偏移 
 + "Handling":
 + "Mass": 1500.0, //重量 
 + "CenterOfMass": {"x": 0.0, "y": -0.3, "z": 0.0}, //重心 
 + "MaxSpeed": 180.0, //最大速度 
 + "MaxHealth": 1000, //最大(默认)血量 
 + "DamageMultiple": 1.0, //伤害叠加 
 + "Immunnity": 0, //默认免疫Flag 
 + "Acceleration": 100.0, //加速度 
 + "Deceleration": 100.0, //减速度 
 + "Sensitivity": 3.0, //灵活度 
 + "SteeringLock": 35.0 //转向最大角度 
 + }, 
 + "Extend":
 + "CustomColors": [] //自定义颜色节点(将指定颜色部分替换为`Vehicle.Color`) 
 + }, 
 + "Audios":
 + "Collision": 150, //碰撞声音 
 + "Engine": 255, //引擎声音(持续) 
 + "Wake": 203, //启动声音 
 + "Brake": 430, //刹车声音 
 + "Horn": 350, //喇叭声音 
 + "HornPitch": 1.0, //喇叭声调 
 + "Door": 420, //进出声音 
 + "Alarm": 400 //特殊功能声音(如警笛) 
 + }, 
 + "Seats": [ //乘客配置数组(Vector 
 + {"Pos": {"x": -0.55, "y": -0.1, "z": 0.4}}, 
 + {"Pos": {"x": 0.55, "y": -0.1, "z": 0.4}}, 
 + {"Pos": {"x": -0.55, "y": -0.1, "z": -0.6}}, 
 + {"Pos": {"x": 0.55, "y": -0.1, "z": -0.6}} 
 + ], 
 + "Wheels": [ //轮胎配置数组 
 +
 + "Model": 550, 
 + "Steering": true, 
 + "Pos": {"x": -1.2, "y": 0.0, "z": 2.2}, 
 + "Angle": {"x": 0.0, "y": 0.0, "z": 0.0}, 
 + "Scale": 1.0 
 + }, 
 +
 + "Model": 550, 
 + "Steering": true, 
 + "Pos": {"x": 1.2, "y": 0.0, "z": 2.2}, 
 + "Angle": {"x": 0.0, "y": 180.0, "z": 0.0}, 
 + "Scale": 1.0 
 + }, 
 +
 + "Model": 550, 
 + "Steering": false, 
 + "Pos": {"x": -1.2, "y": 0.0, "z": -2.3}, 
 + "Angle": {"x": 0.0, "y": 0.0, "z": 0.0}, 
 + "Scale": 1.0 
 + }, 
 +
 + "Model": 550, 
 + "Steering": false, 
 + "Pos": {"x": 1.2, "y": 0.0, "z": -2.3}, 
 + "Angle": {"x": 0.0, "y": 180.0, "z": 0.0}, 
 + "Scale": 1.0 
 +
 + ], 
 + "Additions": [ //附加属性,参考本文下方说明 
 +
 + "Type": 1, 
 + "Pos": {"x": 0, "y": 1.0, "z": 3}, 
 + "Angle": {"x": 12.0, "y": 0.0, "z": 0.0}, 
 + "Color": {"r": 255, "g": 255, "b": 255}, 
 + "Switch": true, 
 + "Range": 100, 
 + "Intensity": 1.0 
 + }, 
 +
 + "Type": 0, 
 + "Pos": {"x": 0, "y": 1.0, "z": -3.3}, 
 + "Color": {"r": 255, "g": 0, "b": 0}, 
 + "Range": 8, 
 + "Intensity": 1.0 
 + }, 
 +
 + "Type": 2, 
 + "Enum": 7, 
 + "Pos": {"x": 0, "y": 0.8, "z": 2.4}, 
 + "Color": {"r": 150, "g": 150, "b": 150}, 
 + "Intensity": 2.0, 
 + "Range": 0.7, 
 + "Scale":
 + }, 
 +
 + "Type": 3, 
 + "Enum": 7, 
 + "Pos": {"x": 0.4, "y": 0.5, "z": -3}, 
 + "Color": {"r": 180, "g": 180, "b": 180}, 
 + "Intensity": 3.0, 
 + "Range": 0.5, 
 + "Scale": 1.5 
 + }, 
 +
 + "Type": 5, 
 + "Enum": 1, 
 + "Pos": {"x": 0, "y": 1.0, "z": -3}, 
 + "Color": {"r": 255, "g": 0, "b": 0}, 
 + "Range": 3, 
 + "Intensity": 1.0 
 + }, 
 +
 + "Type": 4, 
 + "Enum": 2, 
 + "Pos": {"x": 0.8, "y": 2.3, "z": -0.2}, 
 + "Color": {"r": 255, "g": 0, "b": 0}, 
 + "Range": 18, 
 + "Intensity": 1.0 
 + }, 
 +
 + "Type": 4, 
 + "Enum": 1, 
 + "Pos": {"x": -0.8, "y": 2.3, "z": -0.2}, 
 + "Color": {"r": 0, "g": 192, "b": 255}, 
 + "Range": 18 
 +
 +
 +
 +``` 
 + 
 +### 附加组件解释 
 +==注意:由于扩展类型指向意义广泛,但公开属性是有限的,所以**不同类型的扩展可能有不同的属性含义**,具体效果可参考其他Json配置或顾名思义、通过经验尝试看看。== 
 + 
 +| AdditionType | 说明                                                         | 
 +| ------------ | ------------------------------------------------------------ | 
 +| 0            | `Light`(点光源,`Light == true`时生效)                     | 
 +| 1            | `SpotLight`(射灯,`Light == true`时生效)                   | 
 +| 2            | `HealthParticle`(血量粒子,根据损耗动态显示)               | 
 +| 3            | `EngineParticle`(引擎粒子,排气,`Engine == true`后生效)   | 
 +| 4            | `Alarm`(闪烁警报,灯光,`Alarm == true`时生效)             | 
 +| 5            | `PowerLensFlare`(光晕,刹车灯、后退及刹车时生效)           | 
 +| 6            | `LensFlare`(光晕,一直生效)                                | 
 +| 7            | `Collider`(碰撞盒,用于补充细节碰撞,==已弃用==) | 
 +| 8            | `ChildModel`(子模型对象)                                   | 
 +| 10           | `Turret`(发射炮台)                                         | 
 +| 11           | `Propeller`(选装螺旋桨,**仅限飞行类载具**)                | 
 + 
 + 
 + 
 + 
 + 
 + 
  
 </markdown> </markdown>