Skip to main content

有关模型优化的注意事项

模型制作之”切勿“事项


切勿在模型上设置自动播放的音频(如加载时播放的音乐)。这种音频会在玩家重载模型时再次重放,比如每次更改安全设置时。这是您可以在模型上安装的最令人讨厌的组件之一,因为世界上的每个人都能以相同的,非空间化的音量听到它,所以请避免使用它。

切勿在模型中添加实时灯光。

切勿使用粒子特效;这些没有必要的特效会降低帧率,而且易使玩家恶心、癫痫和焦虑。

切勿在模型上使用屏幕扭曲效果。这是模型上最糟糕的组件,因为它同样易使玩家恶心、癫痫和焦虑。


模型优化技巧

请首先了解模型性能限制
并阅读 VRChat 官方模型优化技巧文档
尽量使用 Blender CATS 插件!
以及 Pumkin’s Avatar Tools ,它可以让您非常轻松地删除模型中不必要的内容!

模型下载大小

  1. 在每个纹理文件(图像,通常为 .jpg 或 .png)的对应检查器窗口上,
    在压缩选项中,选择中等质量或 Normal
  2. 开启 crunch compression
  3. 点击应用

(您可以在多选纹理的情况下进行此操作,以提高效率)


多边形数量

您可通过网格简化来降低模型面数。您可以直接使用 CATS 对模型进行快速减面,或者使用 CATS 将模型分为数个独立网格(如按松散部件),然后对这些网格单独应用精简修改器,以获得更好的效果。


材质数量

您可打开 CATS 侧边栏,在其中的 Optimization 下拉菜单中, 在“材质"选项卡中,一键合并相同的材质。
合并不同的材质,同时把多个纹理合并为一个图集,这样可以减少绘制调用并提高性能。

骨骼数量

越少越好。您可以通过将骨骼的权重并入父骨骼来减少骨骼的数量。许多 MMD 模型的衣服等部位的骨骼数量远远超过 VRChat 的最佳值。CATS 有一个骨骼合并部分。


Dynamic Bones

Dynamic Bone 来自一个付费的 Unity 插件,它允许骨骼利用物理原理延迟回到默认静止位置,并主要用于头发或动物耳朵。它们通常是模型上最耗费性能的组件,因此如果您想使用它们,请首先适当合并您的骨骼链,并尽可能将 Dynamic Bones 的使用量保持在较低的水平。

请注意,Oculus Quest 不支持 Dynamic Bone。


Dynamic Bone 组件

您应当将该组件,放在需被动态化的骨骼的父级骨骼上,组件数量越少越好。例如,如果你想在头发上设置 Dynamic Bone,可以在头部骨骼上设置一个 Dynamic Bone 组件(并排除所有非头发骨骼),而不是在每一串头发骨骼上设置一个单独的 Dynamic Bone 组件。


Dynamic Bone collider 组件

可使模型上的 Dynamic Bone 与该组件发生碰撞。一般情况下效果不佳,且对性能影响很大,最好不要使用,如果您确实需要使用它,推荐最多使用 2 个,每只手一个。

请注意,该组件的碰撞形状是一个胶囊,而不是一个球体。

您可通过 Pumkin’s Avatar Tools. 可以轻松移除碰撞器。

在 "安全设置 "的 "性能选项 "中有一项名为 "限制动态骨骼使用 "的功能,该功能默认已启用,可将 Dynamic Bone 骨骼数量的最大数量限制为 32 个,Dynamic Bone 组件的最大数量限制为 8 个。您可通过合并骨骼权重和使用较少的 Dynamic Bone 组件,并在这些组件上设置排除项(例如,在头部骨骼上设置一个用于头发的排除项,但排除所有非头发组件),尽量将骨骼与组件数量量控制在限制内。


针对 Quest 端的模型优化

请首先在这里,查看所有 Quest 端的模型限制。
并阅读针对 Quest 端的 VRChat 官方优化技巧文档

总结:渣优化模型之九宗罪

  • 过于离谱的材质数量 (在 CAT 中合并相同的材质,并使用 CATS 推荐的 Matcombiner 合并不同的材质)

  • 未指定的 dynamic bone 碰撞检查

  • 过于离谱的 dynamic bone collider 数量与碰撞检查数量

  • 过于离谱的 dynamic bone 组件数量

  • 过于离谱的 dynamic bone 骨骼变换数量 (请事先用 CATS 适当合并骨骼链!!!)

  • 容易让人发生眩晕与不舒服的特效

  • 过于离谱的多边形数量

  • 过于离谱的粒子数量

  • 实时灯光