Appearance
MikuMikuAR v1.3.3
发布日期:2026-07-13 类型:功能更新版
本版亮点
- ADR-097 资源库浏览与恢复决策汇总(含模型记忆):将原先散布于 ADR-066/090/094/095 的「本地模型资源库浏览与恢复」决策统一汇总,并新增 RecentModels 模型记忆 与「更换模型接入模型记忆」两项能力。
library-core.ts重构,打开模型浏览器时按记忆恢复上次位置/模型,替换模式保持替换状态并自动返回模型列表。 - ADR-096 通用 Helper 单点收敛(已完成):将散落于 renderer / env / camera / outfit 等处的 5+ 套
clamp、lerp、19 处Color3三元组构造、手写深拷贝、3 套时间戳 helper 统一收敛至core/utils.ts与新建core/color-helpers.ts,消除重复实现、统一语义。 - ADR-095 路径归一化与归属判定统一:合并两套并存的路径归一化实现,将至少 7 处手写「是否在某根下 / 求相对路径」边界判定收敛为
isUnderRoot/computeLibraryRef工厂,修复大小写漏判与GetLastBrowseDir返回单字符串被误解构为'C'的 bug。 - 资源库路径边界加固:拒绝
..路径逃逸与跨盘串台,提升导入/恢复安全性。 - 环境功能层级增强:环境功能层级控制与 UI 联动进一步完善(天空/地面/水面/风/云/阴影/雾)。
主要改动
| 类型 | 内容 | ADR |
|---|---|---|
| feat | 资源库浏览与恢复决策汇总 + 模型记忆(RecentModels) | ADR-097 |
| feat | 环境功能层级控制与 UI 联动 | — |
| refactor | 通用 Helper 单点收敛(clamp/lerp/Color3/深拷贝/时间戳) | ADR-096 |
| refactor | 路径归一化与归属判定统一(isUnderRoot 工厂) | ADR-095 |
| fix | 资源库路径边界加固,拒绝 .. 逃逸与同盘串台 | ADR-095 |
| fix | GetLastBrowseDir 返回单字符串被误解构为 'C' | ADR-095/097 |
| docs | ADR-066/090/094/095 状态更新 + ADR-097 新增 + buglog | — |
| test | config.test.ts 同步 ADR-095 路径归一化 | ADR-095 |
技术栈
| 组件 | 版本 |
|---|---|
| Go | 1.25.0 |
| Wails | v3.0.0-alpha2.105 |
| Node.js | 24 |
| Babylon.js | 9.14.0 |
已知限制
| 限制 | 说明 |
|---|---|
| Windows 端目录选择器 | SelectDir 仍受 Wails v3 CanChooseDirectories 缺陷影响,弹出文件选择器而非目录选择器(待修复,见 ADR-023 §4) |
| Android localStorage 容量 | 场景自动保存写 localStorage,Android 有 5MB 限制,大场景可能写满 |
| AudioContext 惰性创建 | Android WebView 需用户交互后才能创建 AudioContext,首次无声音频可能失败 |
构建验证
- ✅ Go build — 通过
- ✅ TypeScript — 通过
- ✅ Vite production build — 通过
更新方式
Windows:下载 MikuMikuAR-1.3.3-windows-amd64.exe,覆盖安装即可。
Linux:下载 mikumikuar-1.3.3-linux-amd64,赋予执行权限后运行。
Android:下载 MikuMikuAR-1.3.3-android-arm64.apk 安装(Release 签名版本)。
升级注意
- 配置文件(
.mmascene/ 用户设置)向后兼容,无需迁移。 - 若出现异常,可尝试
Ctrl+Shift+R重置本地缓存后重启。