🏆 导航菜单
🎪 扩展内容
🎯 沙盘引擎文档
🕹️ 文章及书籍&教程
🎖️ 外部的链接
🏆 导航菜单
🎪 扩展内容
🎯 沙盘引擎文档
🕹️ 文章及书籍&教程
🎖️ 外部的链接
在《沙盘引擎》扩展中,载具扩展是多数玩法不可缺少的存在。
引擎默认内置了许多常见的载具类型,并且全部基于Json
配置文件存在,如果开发者需要增加外部载具或新增载具,则需要了解载具扩展说明。
注意:在新版《沙盘引擎》中增加了【实验工坊】,使用此功能可进行可视化编辑载具等对象,为自定义扩展提供更高效的方式。
在世界中,每个【载具】都被认定为可驾驶、拥有操控性等实体,包括但不限于二轮车、多轮车、船舶、飞机、直升飞机这些基础类型,其他类型载具也应遵循以上类型进行扩展(如UFO可以用直升飞机的逻辑\配置文件来制作,只不过看起来模型是UFO)。
言简意赅,载具实际上就是静态模型+绑定功能性载具脚本+其他扩展组成的。
每个载具的配置文件都是独立的,一个配置文件代表一个载具,同时配置文件命名将直接关乎于绑定给哪个载具。
例如:10000_Car.json
表示给ID为10000的载具指定配置。
配置文件目录:模组目录\Store\Data\Vehicle
以下内容为引擎默认载具【警车ID10
】的配置示例,如你所见,警车模型+Json文件组成了这台可驾驶、外表为警车、可使用警报、性能声音等配置如下的世界载具。
基于Json的配置特性,以下部分内容如不需要可进行删除省略,同时每行配置信息均代表此载具的某个配置(如Handling.Acceleration
代表加速度)。
{ "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": 2 }, { "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 (选装螺旋桨,仅限飞行类载具) |