2.5.0 更新日志
约 2284 字大约 8 分钟
更新日志
2025-10-01
性能优化
- 优化 molang 粒子性能,改进随机粒子生成
- 对生成粒子、播放声音等相关 molang 增加执行限制,避免异常多次触发
- 现在仅能在动画指令关键帧、动画控制器进入离开部分、自定义 GUI 和 execute 指令才可以使用这些 molang
- 在动画控制器的多动画状态中,未应用的动画不执行上述 molang
- 降低 molang 错误日志等级,现在正常环境下重载模型不会在后台大篇幅刷新错误日志了
- 模型同步机制优化
- 由批次同步更改为实时同步,避免玩家等待较长时间
- 改进服务端模型分发顺序,依据周围玩家的距离远近优先分发这些模型
- 优化网络拥塞算法,现在首次从服务端获取模型时不会占用大量带宽,从而导致进服长时间未响应或频繁掉线
- 客户端模型机制修改为懒加载机制,提高客户端模型加载速度,同时避免大批量加载模型导致影响正常游玩
- 优化模型压缩算法,现在传输的模型体积能够减少约 20%
- 新增模型同步信息界面,实时查看模型同步、加载进度
- 使用懒加载 cap 降低客户端内存占用
模组兼容
- 完成卓越前线 1.20.1 forge / 1.21.1 neoforge 的兼容
- 修正跑酷模组动画在第一人称下不终止的问题
- 兼容 Fabric 版本的车万女仆、TACZ 和拔刀剑
- 安装 better combat 时仅在场景中渲染模型时隐藏头部,不再影响 iris 阴影、背包内以及其它模组的额外渲染
- 修正与 Replay 模组兼容问题,现在能正常使用 Replay 模组导出带有动画的视频了
- 添加 TOP 和 jade 信息显示,现在能够显示指向玩家所使用的模型包
- 添加机械动力 6.x 版本的悬链行为的动画支持
默认模型更新
- 内置模型移动至独立的 builtin 目录
- 修正 tacz 加特林动画错误
- 完善酒狐动画,现在可以播放随机空闲动画了
- 完善酒狐爬梯动画
- 新增宇航员酒狐、魔女酒狐、店员酒狐、功夫酒狐、汉服酒狐模型
- 新增新年海螺螺和新年纸板狐模型
- 新增斯塔·柏模型
- 新增默认模型的船、箱子船和矿车模型
- 默认模型分成了子文件夹,方便管理查看
- 移除晴路卡 alex 模型
- 默认控制器模型动画修正
Bug 修正
- 修正因材质剔除错误,导致进服后模型全部为黑色材质的问题
- 提高提醒服务端未安装 YSM 前的等待时间至 60s,避免因丢包或网络拥塞误报 “YSM 版本不匹配” 信息
- 修复服务端关闭时无法正常退出的问题
- 修复部分模组在服务端加载 remote player entity 导致的问题
- 修复部分不规范的服务端假人射箭导致毁档的问题
- 修正过去按键输入的检测问题,现在能正确检测组合键了
- 修正打开轮盘设置时偶发性的除0崩溃问题
- 渲染修正
- 调整渲染器的创建阶段,避免与其它模组冲突
- 正确处理单人游戏暂停期间的动画更新
- GUI 内模型预览的动画不再受玩家状态影响了
- TextureButton 内不禁用预览旋转(因为不播放预览动画)
- 修复女仆模型选择界面内女仆预览异常偏移的问题
- 模型清单添加
gui_no_lighting
选项,可在 GUI 内显示时关闭环境光照 - 修复模型收藏标志被预览动画背景遮挡的问题
- 修复 GUI 实体意外渲染名称标签的问题
- 修复第一人称手臂变黑的问题
- 修正模型选择界面、纸娃娃界面的物理动画错乱问题
新功能
- 在不支持的平台或系统上不使游戏报错退出,而是停用模组功能并发送一条提示消息
- 多语言支持:现在模型名、模型描述、作者名称、轮盘按钮、轮盘名称都可以通过语言文件进行本地化了
- 强化模型搜索功能:
- 正常情况下搜索模型 ID,名称,文本提示和作者名
- @ 开头仅搜索作者
- # 开头仅搜索文件夹
- 子文件夹分包模型设计
- 现在模型更换界面会对子文件夹进行分类显示
- 子文件夹还支持自定义图片和文本
- 第一人称动画支持
- 第一人称支持动画和动画控制器
- 第一人称能够使用主动画的 roaming 变量
- 投掷物模型替换
- 现在能够替换任意投掷物模型了
- 支持自定义动画和动画控制器
- 现在玩家投掷投掷物时,会把自身的 roaming 变量复制到投掷物上
- 骑乘实体模型替换
- 现在能够替换任意玩家骑乘的实体模型了
- 支持自定义动画和动画控制器
- 在玩家骑乘实体时,会把自身的 roaming 变量复制到该实体上
- 模型更换界面添加前景图和背景图功能
- 模型界面文本提示按住 shift 能够显示详细信息了
动画修正与新增
- 修复 HOLD_ON_LAST_FRAME 类型动画的问题,现在可以正常使用 HOLD_ON_LAST_FRAME 动画了
- 修复模型未加载完毕时,临时使用的默认模型没有动画的问题
- 修复高并行硬编码动画控制器对过渡动画旋转参数的错误混合,导致模型抽搐的问题
- 修复带权重的缩放混合表现与 Blockbench 不一致的问题
- 为硬编码动画控制器提供更详细的调试信息
- 修复 swing 动画、进食动画异常重置的问题
- 重写动画的结尾过渡,使骨骼参数能够在不同动画控制器之间平滑过渡
- 将所有的手部动画全部改为动画文件控制的播放类型
- 修复异步动画更新可能跨越作用域导致的诸多问题
- 修正玩家重生时的 roaming 变量丢失问题
molang 语法修正与新增
- 添加 molang 自定义函数的指令补全
- 修复 v.* 变量的指令补全
- 添加数组访问功能(只能访问,不能创建)
- 修复 Molang ExecutionScope 中的最后一个表达式以 ';' 结尾导致报错的问题
- 允许 molang 无参函数像访问变量一样调用
- 新增 molang 自定义函数与事件订阅系统(详见 wiki 自定义函数篇章)
- 新增 molang sync 主动同步机制(详见 wiki 自定义函数篇章)
- 修复获取方块信息的 molang 函数执行结果不正确的问题
- 缩小获取周围方块信息的范围(由原来的 r<=8 改为 r<=5,避免制作出过于 OP 的矿追模型)
- 修正 fly 状态、药水效果、玩家经验等级、饱食度、生命值、最大生命值的同步问题
- 改进 roaming 和服务端属性同步机制
- 现在每个模型都有独立的 roaming 变量存储位置。在反复切换模型时,先前保存的 roaming 变量不会丢失
- 添加基于 molang 事件的动画控制器
- 改进 molang 栈内存的实现
- 改进 molang 运算中的浮点处理
- 改进一阶、二阶物理系统的上下文管理
- 修复 q.position_delta 变量问题
- 提高 q.yaw_speed 变量的更新率修复 ysm.input_vertical/horizontal 不稳定的问题
- 添加 molang 函数 ysm.relative_block_name_any
- 修改获取方块信息的 molang 函数 y 坐标计算,与之前版本保持一致
- 添加 curios 相关 molang
- 改进 molang dump 函数的输出信息
- 获取药水效果和附魔的 molang 现在可以接收多个参数
- 新增 ctrl.playing_extra_animation 变量,当轮盘动画正在播放时,此变量为 true
- 修正 ctrl.hold 的问题
- ysm.throwable_item 物品类型投掷物的物品 id
- ysm.hooked_in 鱼钩勾住的实体 id,不存在时为空字符串
- ysm.is_biting 布尔值,鱼钩是否咬钩
- ysm.in_shield_block_cooldown 布尔值,当玩家成功格挡并处于格挡冷却时间时,为 true(默认冷却时长为 5 tick)
- 添加 ysm.play_sound 等相关 molang
- 新增亮度相关 molang
- 新增 ctrl.set_beginning_transition_length 函数,用来修正动画的过渡时长
- 新增 ysm.mouse 和 ysm.keyboard molang,检测鼠标与键盘按键情况
- 添加 molang 变量 ysm.time_delta
已知问题
- 女仆的 roaming 变量全部失效,无法持久化保存
- 女仆雕像动画只会停留在第一帧,无法播放
- 带有载具的模型会阻挡第一人称视野