更好的战斗动画
约 487 字大约 2 分钟
2026-01-04
2.6.0 版本对 Better Combat 的联动做了进一步完善,并修复了此前不兼容的多项问题。
现在在使用 Better Combat 模组时,玩家挥动武器可以正常触发 YSM 默认的 swing 动画。并且第一人称下不会再出现头部遮挡的问题了。
Better Combat 本身不提供独立的动画文件,而是默认复用 YSM 的 arm.animation.json 中的 swing 挥动动画。 你可以通过 Molang 变量驱动动画控制器的条件,从而实现更精细的战斗动画效果。
新增 Molang 变量
为方便编写 Better Combat 的动画控制器,2.6.0 版本新增了以下 Molang 变量:
| Molang | 描述 |
|---|---|
| ctrl.bcombat_attack_animation | 当前正在播放的 Better Combat 攻击动画名称 |
| ysm.swinging | 布尔值:玩家挥动时返回 true |
| ysm.swing_time | 整数:玩家挥动时返回挥动计数(通常在 10 以内) |
| ysm.swinging_arm | 整数:挥动的手臂,主手为 0,副手为 1 |
| ysm.attack_time | 浮点数:攻击前摇计数器,范围 0-1;到 1 时触发攻击 |
攻击动画变量说明
ctrl.bcombat_attack_animation 变量会输出 Better Combat 当前播放的攻击动画名称。
Better Combat 原版仅提供了少量武器的攻击动画(例如剑、三叉戟、斧等),并且动画名不会区分主/副手与具体武器类型,故你需要配合上述的其他变量来编写更精细的动画控制器。
下表仅列出 Better Combat 原版模组中常见的动画名称:
| Molang 值 | 动作描述 |
|---|---|
| one_handed_slash_horizontal_right | 单手武器由右向左劈 |
| one_handed_slash_horizontal_left | 单手武器由左向右劈 |
| one_handed_stab | 单手武器刺击 |
如果安装了其他 Better Combat 附属模组,该变量可能会输出更多动画名称。 你可以使用下面的指令实时查看当前值,以便确认要匹配的动画名:
/ysmclient watch var ctrl.bcombat_attack_animation