骑乘实体动画
约 523 字大约 2 分钟
2025-09-18
2.5.0
版本添加了骑乘实体模型的替换
可以将玩家骑乘实体(比如马)的模型替换成自定义的模型,并且支持自定义的动画和动画控制器。
添加定位文件
首先你需要去你的 ysm.json
的 files
字段里添加一个新的字段 vehicles
,如下图所示:
ysm.json
{
// ...
"files": {
// ...
"vehicles": {
// 这里填写你要替换掉的实体 ID
// 仅支持实体 ID,不限于原版
"minecraft:horse": {
"model": "models/horse.json",
"texture": "textures/horse.png",
"animation": "animations/vehicle/horse.animation.json",
// 实体也是支持动画控制器的
"controller": "controllers/vehicle/horse.controller.json"
},
"minecraft:boat": {
"model": "models/boat.json",
// 也可以使用 PBR 材质
"texture": {
"uv": "textures/boat.png",
"normal": "textures/boat_n.png",
"specular": "textures/boat_s.png"
}
},
// 同样支持模组的实体
"man_of_many_planes:scarlet_biplane": {
"model": "models/plane.json",
"texture": "textures/plane.png",
"animation": "animations/vehicle/plane.animation.json"
}
}
}
}
在模型中添加定位组
名称 | 作用 | 备注 |
---|---|---|
PassengerLocator PassengerLocator2 PassengerLocator3 PassengerLocator4 PassengerLocator5 PassengerLocator6 PassengerLocator7 PassengerLocator8 | 可以控制玩家的渲染位置 玩家的原点和这个载具的定位点衔接 | 按照顺序依次排列坐下 |
骑乘实体动画清单
名称 | 作用 | 备注 |
---|---|---|
idle | 实体待命时的动画 | |
water | 实体在水中时的动画 | |
ground | 实体在地上时的动画 | |
fly | 实体飞行时的动画 | |
forward | 实体前进时的动画 | |
has_ride | 实体被骑乘时播放的动画 | |
not_ride | 实体没有被骑乘时播放的动画 | |
pre_parallel0 pre_parallel1 pre_parallel2 pre_parallel3 pre_parallel4 pre_parallel5 pre_parallel6 pre_parallel7 | 低并行动画 | 和玩家动画一样 与主动画互相独立,优先级最低 不同pre_parallel动画的优先度 按照数字的大小依次增高 |
parallel0 parallel1 parallel2 parallel3 parallel4 parallel5 parallel6 parallel7 | 并行动画 | 和玩家动画一样 与主动画互相独立,优先级最高 不同parallel动画的优先度 按照数字的大小依次增高 |
并行动画分两个大类 pre_parallel
和 parallel
。其中前者比主动画优先级低,会被主动画覆盖。后者比主动画游戏级高, 同样采用了特殊的混合动画。