
VMD 动画缓存
逐帧缓存用于SlashBlade MMD动画
查看大图概述
VMD 动画缓存 消除了拔刀剑重铸版(SlashBlade Resharped)中冗余的 MMD 动作计算,当拔刀剑实体在屏幕上显示时,可为您提供 约 3.8 倍的 FPS 提升(50 → 190 FPS)。
当拔刀剑渲染基于 MMD 的刀剑动画时,每帧每个实体会调用 VmdAnimation.setupAnim() 60 到 120 次——每次查询骨骼变换时都会调用一次。但刻(tick)和局部刻(partialTick)在同一帧内不会改变。这 120 次调用会产生完全相同的结果,浪费了约 20% 的渲染线程。
此模组添加了一个微小的逐帧缓存:如果使用相同的刻和局部刻再次调用 setupAnim,则会跳过整个 MMD 管线。每帧每个实体 120 次调用 → 1 次调用。
性能
| 场景 | 之前 | 之后 |
|---|---|---|
| 第三人称 FPS(拔刀剑可见时) | ~50 | ~190 |
在 Minecraft 1.20.1、Forge 47、拔刀剑重铸版 1.9.65 环境下测试。视野中只有一个拔刀剑实体。
需求
- Minecraft 1.20.1
- Forge 47+
- 拔刀剑重铸版 1.9.65
安装
- 下载 jar 文件并放入您的
mods/文件夹 - 启动游戏
兼容性
请勿与 AntiEntropyCore 同时使用——这两个模组都会注入同一个 Mixin 目标(VmdAnimation),将会产生冲突。
工作原理
一个单一的 Mixin 注入到 VmdAnimation.setupAnim() 的开头。它会记住上一次的 (currentTick, partialTick) 组合。命中缓存 -> 取消方法执行。未命中缓存 -> 更新缓存,正常运行。
仅 32 行代码。仅客户端。无需核心模组(coremod)黑科技。
链接
- 源码:GitHub
- 许可协议:MIT
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。