用于 VRChat Avatar 的 Modular Avatar 转 BlendTree 优化器
遇到问题可以在官方 QQ 群 1047423396 中反馈
MA2BT 会在 Modular Avatar 构建流程结束后运行,将符合条件的 Animator 层合并为一个 Direct BlendTree,从而减少 FX 层数量并提升 Avatar 性能。
Booth:https://puddingkc.booth.pm/items/8309096
Modular Avatar 会为每一个响应式属性(Object Toggle、Material Setter、Shape Changer 等)生成一个独立的 Animator 层,这些层在运行时会带来额外开销。
MA2BT 会在构建完成后分析这些生成的层,并将其中简单的结构转换为一个共享层中的 BlendTree 节点。
优化前:
MA Responsive: Hat (Layer)
MA Responsive: Glasses (Layer)
MA Responsive: Jacket (Layer)
MA Responsive: Shoes (Layer)
优化后:
MA_To_BlendTree_Layer (1 Layer, 1 Direct BlendTree)
├── hat_param → 1D BlendTree
├── glasses_param → 1D BlendTree
├── jacket_param → 1D BlendTree
└── shoes_param → 1D BlendTree
无法安全转换的层(例如多参数 AND 条件、非瞬时过渡等)将保持不变。
https://null-k.github.io/vpm-listing/index[MA2BT] 日志了解转换结果※ 如果你安装了 AAO 或其他会合并动画层的插件,生成的 MA_To_BlendTree_Layer 层会被这些插件进一步合并。可以先移除其他优化插件来测试合并的数量和效果。
| 选项 | 默认值 | 说明 |
|---|---|---|
| Compact Mode | 开启 | 仅在实际存在动画的数值上生成 BlendTree 阈值,减少空动画 |
| Multi-State Layers | 关闭 | 尝试转换包含多个条件状态的层(如多值 int 参数),默认关闭以保证安全 |
| Scan All Layers | 关闭 | 不仅扫描 MA 生成的层,也会扫描所有符合模式的 FX 层 |
当且仅当满足以下所有条件时,层才会被转换:
MA Responsive: 开头(或开启 Scan All Layers 时不限制)以下情况不会被转换:
__ActiveSelfProxy)丨丿・丶乛 - 视频提供了灵感。本插件最初基于 浊鸷 的插件进行修改,随后在保留部分命名的基础上对整体逻辑进行了重构。
com.puddingkc.ma2bt
未設定
2.0.2
2019.4 以降
なし
なし
未設定