创建船只
intermediate
:::警告 需要格式版本1.16.100或更低
当前行为格式版本要求1.16.100或更低才能使minecraft:behavior.rise_to_liquid_level和minecraft:buoyant方法生效。 如果您发现新格式版本中可用的新方法,请考虑通过更新Wiki来帮助贡献内容。 :::
使用运行时标识符
您可以在此处了解更多关于运行时标识符的信息。使用运行时标识符,您可以实现大部分船只的硬编码行为。但您的船只不会随玩家旋转,且始终面向北方。
使用组件
目前创建船只实体的最佳方式是使用组件。1.16版本引入了我们可以利用的新组件:minecraft:behavior.rise_to_liquid_level和minecraft:buoyant。原版中炽足兽使用第一个组件使其能在熔岩上漂浮,但我们也可以将其改造用于水面。
方法一:minecraft:behavior.rise_to_liquid_level
BP/entities/bar
json
{
"minecraft:entity": {
"format_version": "1.14.0",
"description": {
"identifier": "wiki:boat",
"is_summonable": true,
"is_spawnable": true,
"is_experimental": false
},
"components": {
//这个组件实现了核心功能
"minecraft:behavior.rise_to_liquid_level": {
"priority": 0,
//该属性可调整船只在水面上的高度
"liquid_y_offset": 0.5,
//正垂直位移,即船只上浮量
"rise_delta": 0.05,
//负垂直位移,即船只下沉量
"sink_delta": 0.05
//使用rise_delta和sink_delta可模拟波浪/弹跳效果
},
//设置水中移动速度
"minecraft:underwater_movement": {
"value": 5
},
//重要组件,缺少会导致船只下沉
"minecraft:navigation.walk": {
"can_sink": false
},
"minecraft:rideable": {
"seat_count": 1,
"family_types": ["player"],
"interact_text": "action.interact.enter_boat",
"seats": {
"position": [0, 0, 0]
}
},
//添加此组件可使船只通过WASD控制
"minecraft:input_ground_controlled": {},
"minecraft:health": {
"value": 10,
"max": 10
},
//设置地面移动速度(若不需要船只陆地移动可设为零)
"minecraft:movement": {
"value": 3
},
//防止玩家下船后船只无法停止
"minecraft:movement.basic": {},
"minecraft:collision_box": {
"width": 1,
"height": 1
},
"minecraft:physics": {}
}
}
}方法二:minecraft:buoyant
json
{
"minecraft:entity": {
"format_version": "1.14.0",
"description": {
"identifier": "wiki:boat",
"is_summonable": true,
"is_spawnable": true,
"is_experimental": false
},
"components": {
"minecraft:buoyant": {
//是否考虑重力(适用于瀑布场景)
"apply_gravity": true,
//范围0-1,控制船只水面高度
"base_buoyancy": 1.0,
//"波浪"使实体上下浮动。大波浪会放大此效果。注意:设为false不会完全消除效果
"simulate_waves": true,
//出现"大浪"的概率
"big_wave_probability": 0.03,
//"大浪"强度
"big_wave_speed": 10.0,
//移除该组件时船只的下沉力度
"drag_down_on_buoyancy_removed": 0,
//可产生浮力的方块(仅限真实液体:水和熔岩)
"liquid_blocks": ["water"]
},
//设置水中移动速度
"minecraft:underwater_movement": {
"value": 5
},
//重要组件,缺少会导致船只下沉
"minecraft:navigation.walk": {
"can_sink": false
},
"minecraft:rideable": {
"seat_count": 1,
"family_types": ["player"],
"interact_text": "action.interact.enter_boat",
"seats": {
"position": [0, 0, 0]
}
},
//添加此组件可使船只通过WASD控制
"minecraft:input_ground_controlled": {},
"minecraft:health": {
"value": 10,
"max": 10
},
//设置地面移动速度(若不需要船只陆地移动可设为零)
"minecraft:movement": {
"value": 3
},
//防止玩家下船后船只无法停止
"minecraft:movement.basic": {},
"minecraft:collision_box": {
"width": 1,
"height": 1
},
"minecraft:physics": {}
}
}
}方法选择
两种方法各有优劣。如需禁用弹跳效果,请使用第一种方法;如需更精细控制,请使用第二种方法。作者通常将第二种方法用于静态物体(如浮标),第一种方法用于可移动实体(如船只)以模拟原版行为。
自定义受伤动画
您可能还对自定义受伤动画感兴趣。




