Skip to main content

Avatar Optimizer 的基本概念

本章节介绍 Avatar Optimizer 的基本概念。

什么是 Avatar Optimizer?

Avatar Optimizer 是一个帮助你优化虚拟形象的工具。 此工具最初是为 VRChat 虚拟形象设计的,但它也可用于 NDMF 支持的其它模型。

非 VRChat 虚拟形象的支持完全基于社区,Avatar Optimizer 开发团队可能不会支持。

Avatar Optimizer 的目标是什么?

此工具旨在帮助你优化模型的性能,且不对外观产生太大影响。
因此,它不会试图更改模型的行为。

模型行为中所有未配置的更改都被视为 bug,即使它在某些用例中可能有用。
如果该 bug 不影响大多数用例,我们可能会暂时暂停修复该 bug。
但其他组件可能不会考虑该 bug 的行为。

例如,AAO Merge Skinned Mesh 的 1.7.x 或更早版本组件会合并具有相同名称的 BlendShapes。
此行为被视为 bug,因为这样就无法单独对它们进行动画处理。
你可以使用此 bug 将蒙皮网格渲染器的 BlendShape 动画与另一个蒙皮网格渲染器同步。
但这是不受支持的行为,其它的一些组件因此可能会破坏该行为。
例如,Automatically Freeze BlendShape 的 AAO Trace and Optimize 组件将冻结 BlendShapes,该 BlendShapes 可能会通过被 AAO Merge Skinned Mesh 组件合并来使用此错误行为进行动画处理。

Avatar Optimizer 的行为在未来版本中如何稳定?

Avatar Optimizer 使用 语义化版本控制 进行版本控制,并且主要将语义化版本控制的规则应用于组件的行为。

这意味着已附加到模型的组件的行为可以保证不会在同一主要版本中更改。
但是,我们可能会为已经实现的组件添加新功能,并且新添加的组件的行为可能会有所不同。

在某些 bug 中,修复它们可能会显著改变组件的行为。
在这种情况下,我们通常会添加新选项以启用新行为。
对于已附加到头像的组件,默认情况下可以禁用此选项以保持以前的行为。
默认情况下,新添加到头像的组件将具有新行为,并修复了错误,方法是启用此选项。

维护这些组件的行为有一些例外。

  • 专用于调试组件的功能不保证遵循上述规则。
    例如,AAO Trace and Optimize 组件上的 Debug Options 在未来任何版本中都可能发生更改。
  • 标记为实验性的功能不保证遵循上述规则。
  • AAO Trace and Optimize 组件的行为会因为新的优化方案而被更改。
    但是,AAO Trace and Optimize 组件的默认设置永远不会更改头像的行为和外观,因此更改不会影响模型。

当你遇到除这些例外情况以外的任何不自然或奇怪的行为时,请先查看 常见问题解答。