Skip to main content

基本用法

使用自动优化

有些优化项目可以自动为模型执行。

  • 移除未使用的 BlendShape1
    • 对于值不为零的 Blendshape,冻结 Blendshape 将降低处理成本。
    • 即使值为零,移除 Blendshape 也会有助于减小模型大小。
  • 移除未使用的行为,例如 PhyBone
    • 如果存在不需要运动的已启用 PhysBone(例如:运动目标 Mesh2 始终被禁用),这会导致额外的性能占用。
  • 使用 PhysBone 来合并未动画化或运动的骨骼
    • 如果衣物骨骼嵌套在身体骨骼中,将会导致许多骨骼从未局部移动。这些骨骼将导致额外的性能占用。
  • 合并同时开关或者永远不会被开关的网格
    • 如果你的模型只有一件衣物,那么可能没有必要为身体、头发和衣物分别设置不同的网格。
    • 即使你有多件可切换的衣物,也可能没必要将身体、头发和内衣分开。

通过 AvatarOptimizer,只需要将 AAO Trace And Optimize 组件添加到模型父级中,即可自动执行这些优化功能!

add-trace-and-optimize.png

上传模型

现在你已经添加了 AAO Trace And Optimize 组件,开始尝试上传你的模型吧!AAO: Avatar Optimizer 是一种非破坏性的模型修改工具,可以在进入播放模式或者构建模型时自动处理模型。因此,上传不需要任何特殊步骤。就像平常一样通过 VRCSDK Control Panal 上传模型即可。(译者注:保险起见,建议清空蓝图 ID 并上传为新模型。)

在不上传模型的情况下检查性能排名
当使用非破坏性模型修改工具时,VRCSDK Control Panel 的性能等级是不可靠的。
相反,你可以使用 anatawa12 的 Gist Pack 实时性能窗口来在播放模式下实时检查模型的性能排名。请查看 anatawa12 的 Gisk Pack 基本用法Actual Performance Window 文档 来了解更多详细信息。

通过使用 BlendShape 移除身体部位的面,来减少总面数的数量

通过移除被衣物或者其它东西遮住的面,可以降低渲染成本以及 Blendshape 处理成本等,而且不会对外观产生太大的影响。为了简化此操作,AvatarOptimizer 运行你使用 Blendshape 来移除不需要的面,这在许多模型中都有应用!

让我们在 Body Mesh 中添加 AAO Remove Mesh By Blendshape 组件!

启用 Automatically set BlendShape weight for preview when toggled 选项,以确保你可以预览移除的效果,然后从下方的 BlendShape 列表中选择你想要移除的身体部位的 BlendShape!

如果你想要移除的面未被移除,或者你不想移除的面被移除了,则需要调整 Tolerance 的值!Tolerance 决定了顶点被 BlendShape 移除的程度。对于第一种情况,稍微增加该值;对于第二种情况,稍微减少该值!

remove-mesh-by-blendshape.png


  1. BlendShape 是 Morphing 在 Unity 中的名称。Maya 称它们为 Target Shape(混合变形),Blender 称它们为 Shape Key(形态键),Metasequoia 和 MMD 称它们为 Morph。
  2. 在本文档中,Mesh 是指 SkinnedMeshRenderer 或 MeshRenderer,而不是 Unity 中的 Mesh 资产。