沙盘引擎 (SEngine)

创意诞生沙盘世界,不止如此想象!

用户工具

站点工具


extend:vehicle

这是本文档旧的修订版!




📚 游戏载具扩展

在《沙盘引擎》扩展中,载具扩展是多数玩法不可缺少的存在。 引擎默认内置了许多常见的载具类型,并且全部基于Json配置文件存在,如果开发者需要增加外部载具或新增载具,则需要了解载具扩展说明。

📒 载具框架

在世界中,每个【载具】都被认定为可驾驶、拥有操控性等实体,包括但不限于二轮车、多轮车、船舶、飞机、直升飞机这些基础类型,其他类型载具也应遵循以上类型进行扩展(如UFO可以用直升飞机的逻辑来制作,只不过模型是UFO)。 言简意赅,载具实际上就是静态模型+绑定功能性载具脚本+其他扩展组成的。

📒 载具配置

每个载具的配置文件都是独立的,一个配置文件代表一个载具,同时配置文件命名将直接关乎于绑定给哪个载具

例如:10000_Car.json表示给ID为10000的载具指定配置。 配置文件目录:模组目录\Data\Vehicle

📘 配置Json解析

以下内容为引擎默认载具【警车】的配置示例,如你所见,警车模型+Json文件组成了这台可驾驶、外表为警车、可使用警报、性能声音等配置如下的世界载具。

基于Json的配置特性,以下部分内容如不需要可进行删除省略,同时每行配置信息均代表此载具的某个配置(如Handling.Acceleration代表加速度)。

{
	"Name": "Police",
	"Model": 410,
	"Type": 1,
	"Scale": 0.8,
	"Collision": {"x": 2.0, "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,
		"OilRate": 80.0,
		"MaxOil": 1000.0,
		"MaxHealth": 1000,
		"DamageMultiple": 1.0,
		"Immunnity": 0,
		"Acceleration": 100.0,
		"Deceleration": 100.0,
		"VerticalStrength": 0.0,
		"Sensitivity": 3.0,
		"SteeringLock": 35.0,
		"SteeringSpeed": 0.0
	},
	"Audio": {
		"Collision": 110,
		"Engine": 250,
		"Wake": 200,
		"Brake": 430,
		"Horn": 350,
		"HornPitch": 1.0,
		"Door": 420,
		"Alarm": 400
	},
	"Extend": {
		"AllowShoot": false,
		"Colors": []
	},
	"Seats": [
		{"Pos": {"x": -0.75, "y": -0.3, "z": 0.15}},
		{"Pos": {"x": 0.75, "y": -0.3, "z": 0.15}},
		{"Pos": {"x": -0.75, "y": -0.3, "z": -0.15}},
		{"Pos": {"x": 0.75, "y": -0.3, "z": -0.15}}
	],
	"Wheels": [
		{
			"Model": 300,
			"Steering": true,
			"Pos": {"x": -1.2, "y": 0.0, "z": 2},
			"Angle": {"x": 0.0, "y": 0.0, "z": 0.0},
			"Scale": 1.0
		},
		{
			"Model": 300,
			"Steering": true,
			"Pos": {"x": 1.2, "y": 0.0, "z": 2},
			"Angle": {"x": 0.0, "y": 180.0, "z": 0.0},
			"Scale": 1.0
		},
		{
			"Model": 300,
			"Steering": false,
			"Pos": {"x": -1.2, "y": 0.0, "z": -2.0},
			"Angle": {"x": 0.0, "y": 0.0, "z": 0.0},
			"Scale": 1.0
		},
		{
			"Model": 300,
			"Steering": false,
			"Pos": {"x": 1.2, "y": 0.0, "z": -2.0},
			"Angle": {"x": 0.0, "y": 180.0, "z": 0.0},
			"Scale": 1.0
		}
	],
	"Additions": [
		{
			"Type": 1,
			"Pos": {"x": 0, "y": 1.0, "z": 2.7},
			"Angle": {"x": 12.0, "y": 0.0, "z": 0.0},
			"Color": {"r": 255, "g": 255, "b": 255},
			"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": 4,
			"Enum": 2,
			"Pos": {"x": 0.8, "y": 1.6, "z": -0.2},
			"Color": {"r": 255, "g": 0, "b": 0},
			"Range": 2.5,
			"Intensity": 1.0
		},
		{
			"Type": 4,
			"Enum": 1,
			"Pos": {"x": -0.8, "y": 1.6, "z": -0.2},
			"Color": {"r": 0, "g": 192, "b": 255},
			"Range": 2.5,
			"Intensity": 1.0
		}
	]
}

📘 部分参数解释

注意:由于扩展类型指向意义广泛,但公开属性是有限的,所以不同类型的扩展可能有不同的属性含义,具体效果可参考其他Json配置或顾名思义、经验尝试。

AdditionComType 说明
0 Light(点光源)
1 SpotLight(射灯)
2 HealthParticle(血量粒子,损耗)
3 EngineParticle(引擎粒子,排气)
4 Alarm(闪烁警报,灯光)
5 LensFlare(光晕,刹车灯)

extend/vehicle.1683681718.txt.gz · 最后更改: 2023/05/10 09:21 由 bibiboxs