Skip to main content

性能评级

虚拟形象性能评级系统允许你通过分析用户虚拟形象上的组件来了解该虚拟形象对性能的影响程度。你也可以用它来查看自己的虚拟形象性能表现。

该系统旨在告知用户其虚拟形象上哪些组件可能是最影响性能的,并提供关于优化虚拟形象时应注意哪些方面的基本建议。

它还用于驱动最低显示性能评级系统,这是一种让用户根据性能评级决定显示哪些虚拟形象的方式。

该系统并非虚拟形象性能的最终权威标准,但它是判断虚拟形象是否需要进一步优化以达到良好性能的通用指南。

性能评级并非最终定论!

尽管性能评级系统尽可能地判断虚拟形象性能的"最坏情况",但有很多方式可以让一个优化良好的虚拟形象显示为"非常差",而让一个 FPS 杀手评级为"优秀"。

对于喜欢钻研技术的人:性能评级系统基于对虚拟形象属性的静态分析,而不考虑动画器、着色器、纹理分辨率、像素光源等诸多因素。然而,它在 95% 的情况下都能很好地作为检测问题虚拟形象的试金石!

简要说明​

目标是良好(Good)评级。 如果达不到,中等(Medium)也完全没问题。

创建虚拟形象已经很难了,创建优化的虚拟形象则更难。这是一项需要长期积累的技能!

请记住,VRChat 中的许多活动、群组和地点可能会要求你在使用"非常差"评级的虚拟形象时更换它。因此,即使你选择在与朋友的小规模实例中使用"非常差"的虚拟形象,也请确保你还有一个适用于更多人数的实例的虚拟形象。

你的虚拟形象会影响其他所有人的帧率,所以请注意你的选择如何影响他人的体验。否则,他们可能只能看到你的回退虚拟形象!

性能评级图标​

当你打开快速菜单时,你会看到用户名牌上方出现的图标。

评级如下:

图标性能评级描述
image优秀(Excellent)这是你能达到的最好级别!如同"冰箱上的金星"般的评级。
image良好(Good)足够好了!一个很好的目标。
image中等(Medium)别被名字误导了,中等已经相当不错了。如果你达到了这个级别且不想再进一步优化,完全没问题。
image差(Poor)还需要一些优化。
image非常差(Very Poor)这个虚拟形象存在严重的性能问题。由于此评级没有上限,这个虚拟形象可见时很可能导致你的性能受到影响。

查看详细虚拟形象统计​

当你打开快速菜单点击一个用户时,你会注意到左侧有一个新的 "Show Avatar Stats" 按钮,显示该用户虚拟形象性能评级的图标。

avatar-perormance-breakdown.gif

点击此图标,你可以查看该虚拟形象的详细虚拟形象统计。你可以在自己的虚拟形象菜单中,点击某个虚拟形象,然后点击屏幕左下角的 Avatar Stats 按钮来查看自己的虚拟形象统计。

avatar-perormance-breakdown.gif

点击 Avatar Stats 按钮后,会弹出一个窗口,显示你正在查看的虚拟形象的详细信息,或者你自己的虚拟形象(如果你在虚拟形象选项卡中点击了该按钮)。

avatar-perormance-breakdown.gif

文本的颜色对应于该特定统计项将评级"拉低"到的等级。

你还会看到"Original"和"Perf Filtered"行形式的"前后对比"。如果你正在使用最低显示性能评级系统,你可以看到系统移除组件前后的统计数据。如果最低显示性能评级系统因性能原因阻止了某个虚拟形象,你将只能看到原始统计数据。

在上面的示例中,光源和粒子系统因超过定义的限制而被禁用。由于粒子系统每个至少使用一个材质,粒子系统的材质数量也会从过滤前的虚拟形象中减去。

你还可以看到我们链接到了我们的文档,特别是虚拟形象优化技巧。

虚拟形象性能评级统计项​

以下是系统检查的所有统计项及其描述。

加粗的统计项如果超过最低显示性能评级,将导致虚拟形象被完全阻止。如果其他统计项(边界大小除外)超过最低显示性能评级,虚拟形象将仅被部分阻止。虚拟形象将移除与超出统计项相关的任何组件后显示。

例如,当最低显示性能评级设置为"差"时,一个带有 9 个拖尾渲染器("非常差")的虚拟形象将显示为移除了所有拖尾渲染器。有关更多信息,请参阅最低显示性能评级。

虚拟形象质量质量描述
Triangles模型的三角面数量。(过去曾被错误地称为"多边形"。)
Bounds Size虚拟形象的总大小。如果这个值非常大,用户可能在虚拟形象上有一个不总是显示的大型动画。
重要提示:边界大小不会导致虚拟形象被阻止,即使它低于"最低显示性能评级"设置。
Texture Memory虚拟形象纹理估计使用的内存量。这些纹理占用系统 RAM 和显存中的空间。
Skinned Meshes虚拟形象上蒙皮网格渲染器组件的数量。
Basic Meshes虚拟形象上(非蒙皮)网格渲染器组件的数量。
Material Slots虚拟形象上的材质槽数量。材质槽是网格上放置材质的位置。这计入子网格创建,从而产生更多的 draw call。请记住,粒子系统使用一个材质槽,带拖尾的粒子系统使用两个,线条渲染器使用一个材质槽。
PhysBones Components虚拟形象上 PhysBone 组件的数量。
PhysBones Affected Transforms虚拟形象上受 PhysBones 组件影响的变换总数。
PhysBones Colliders虚拟形象上 PhysBone 碰撞体脚本的数量。
PhysBones Collision Check Count每个碰撞体可以影响多少个 PhysBone 变换的总和。这可能会重复计算变换,因为单个变换可能受多个碰撞体影响。
Contacts虚拟形象上 Contact 的数量。不统计筛选设置为"Local Only"的接收器。
Constraint Count虚拟形象上 VRChat Constraints 和 Unity Constraints 的总数。点击此处获取更详细信息。
Constraint Depth虚拟形象上所有约束中最深的依赖链。点击此处获取更详细信息。
Animators虚拟形象上 Animator 的数量。重要提示:由于根动画器被计入,此值至少为 1。这意味着要获得"优秀"评级,你不能有额外的动画器。
Bones虚拟形象骨骼中的骨骼数量。
Lights虚拟形象上 Light 组件的数量。
Particle Systems虚拟形象上 Particle System 组件的数量。
Total Particles Active虚拟形象上所有粒子系统的 maxParticles 之和。
Mesh Particle Active Polys活跃粒子系统发射的网格粒子的总三角面数。即 maxEmission * meshParticleVerts。
Particle Trails Enabled如果虚拟形象上的任何粒子系统启用了粒子拖尾,此项将为 True。
Particle Collision Enabled如果虚拟形象上的任何粒子系统启用了粒子碰撞,此项将为 True。
Trail Renderers虚拟形象上 Trail Renderer 的数量。
Line Renderers虚拟形象上 Line Renderer 的数量。
Raycasts虚拟形象上 VRCRaycast 组件的数量。
Cloths虚拟形象上 Cloth 组件的总数。

虚拟形象性能评级 - 每个评级的最大值​

下面你将找到每个性能评级的限制。如果你的任何类别超过了这些数值,你的评级将降级到下一等级。

例如(在 PC 上),如果你的虚拟形象有 2 个蒙皮网格,你的虚拟形象将被评为"良好",因为这超过了"优秀"的标准,但未超过"良好"的标准。

所有 GameObject 和组件都被计算在内!

所有 GameObject 和组件,包括当前已禁用的,都会计入虚拟形象性能评级。

网格读写已禁用

如果你在虚拟形象的任何网格上禁用了 Mesh Read/Write(包括粒子系统),"Triangles"计数将显示"Mesh Read/Write Disabled",并且无论虚拟形象的实际三角面数量如何,虚拟形象的性能评级将立即降级为"非常差"。

SDK 会对此发出警告,并要求你在上传前修复此问题。

PC 限制​

虚拟形象质量优秀良好中等差
Triangles32,00070,00070,00070,000
Bounds Size12.5m x 2.5m x 2.5m4m x 4m x 4m5m x 6m x 5m5m x 6m x 5m
Texture Memory40 MB75 MB110 MB150 MB
Skinned Meshes12816
Basic Meshes481624
Material Slots481632
PhysBones 组件481632
PhysBones 受影响的变换1664128256
PhysBones 碰撞体481632
PhysBones 碰撞检测次数32128256512
Contacts8162432
Constraint 数量100250300350
Constraint 深度205080100
Animators141632
Bones75150256400
Lights0001
Particle Systems04816
Total Particles Active030010002500
Mesh Particle Active Polys0100020005000
Particle Trails EnabledFalseFalseTrueTrue
Particle Collision EnabledFalseFalseTrueTrue
Trail Renderers1248
Line Renderers1248
Raycasts214815
Cloths0111
Total Cloth Vertices050100200
Physics Colliders0188
Physics Rigidbodies0188
Audio Sources1488

下表描述了 PC 虚拟形象获得特定性能评级的要求:

PC 默认性能评级阻止​

在 PC 上,默认的最低显示性能评级级别为"非常差"。这意味着默认情况下用户可以看到大多数虚拟形象。如果用户启用了最低显示性能评级系统,他们可以选择隐藏性能较差的虚拟形象。

然而,如果你的虚拟形象极其未经优化,VRChat 可能会阻止你使用它。你可以通过提高其性能评级、确保不超过 VRChat 的虚拟形象大小限制然后重新上传虚拟形象来解决此问题。

移动端限制​

Android 和 iOS(手机、平板和 Meta Quest)上的 VRChat 比 PC 上的 VRChat 有更严格的限制。

下表描述了移动端虚拟形象获得特定性能评级的要求:

虚拟形象质量优秀良好中等差
Triangles7,50010,00015,00020,000
Bounds Size12.5m x 2.5m x 2.5m4m x 4m x 4m5m x 6m x 5m5m x 6m x 5m
Texture Memory10 MB18 MB25 MB40 MB
Skinned Meshes1122
Basic Meshes1122
Material Slots1124
Animators1112
Bones7590150150
PhysBones 组件30468
PhysBones 受影响的变换30163264
PhysBones 碰撞体304816
PhysBones 碰撞检测次数30163264
Contacts324816
Constraint 数量33060120150
Constraint 深度35153550
Particle Systems0002
Total Particles Active000200
Mesh Particle Active Polys000400
Particle Trails EnabledFalseFalseFalseTrue
Particle Collision EnabledFalseFalseFalseTrue
Trail Renderers0001
Line Renderers0001
Raycasts21248

移动端默认性能评级阻止​

在移动端,默认的最低显示性能评级为"中等"。这意味着用户无法看到评级为"差"或"非常差"的任何虚拟形象。

用户可以将他们的性能评级阻止级别设置为"差",从而允许他们看到"差"评级的虚拟形象。但是,他们不能将性能评级阻止级别设置为"非常差"。

例如,如果一个移动端虚拟形象超过 20,000 个三角面,它将被评为"非常差",用户将无法在 VRChat 中看到它。但是,用户可以通过选择该用户并点击"Show Avatar"来强制显示"非常差"的虚拟形象。

warning

未来,VRChat 可能会移除"非常差"评级的移动端虚拟形象以及为"非常差"的移动端虚拟形象使用"Show Avatar"的功能。在创建移动端虚拟形象时请牢记这一点。

移动端虚拟形象组件限制​

某些虚拟形象组件在移动端虚拟形象上受到限制。你不能超过以下限制:

你不能通过使用"Show Avatar"来绕过上述限制。如果移动端虚拟形象超过了某个限制,即使你启用了"Show Avatar",所有受限的虚拟形象组件也会在 VRChat 中从该虚拟形象上移除。

移动端已移除的组件​

以下组件在移动设备上被禁用,因为它们永远不会出现在虚拟形象上:

  • Lights
  • Cloths
  • Total Cloth Vertices
  • Physics Colliders
  • Physics Rigidbodies
  • Audio Sources

这些值可能仍然会出现在 VRChat 的虚拟形象详情屏幕中,但它们始终为零。

最低显示性能评级​

你可以选择根据虚拟形象的性能评级来管理虚拟形象。此选项在性能选项菜单中可用,该菜单可在主菜单的 Safety 选项卡右上角的一个按钮中找到。

当你在 VRChat 菜单中选择一个性能评级时,所有低于该级别的虚拟形象将按照以下方式管理其组件/显示。

参数描述
Triangles虚拟形象被替换为回退虚拟形象
Bounds Size无变化
Texture Memory虚拟形象被替换为回退虚拟形象
Skinned Meshes虚拟形象被替换为回退虚拟形象
Basic Meshes虚拟形象被替换为回退虚拟形象
Material Slots虚拟形象被替换为回退虚拟形象
PhysBone 组件、变换、碰撞体、碰撞检测次数或 Contacts移除所有 PhysBone、PhysBone Collider 和 Contact 组件
Constraint 数量或深度移除所有 Constraint 组件
Animators移除所有动画器(根动画器除外)
Bones虚拟形象被替换为回退虚拟形象
Lights移除所有 Light
Particle Systems移除所有 Particle System
Total Particles Active移除所有 Particle System
Mesh Particle Active Polys移除所有 Particle System
Particle Trails Enabled移除所有 Particle System
Particle Collision Enabled移除所有 Particle System
Trail Renderers移除所有 Trail Renderer
Line Renderers移除所有 Line Renderer
Raycasts移除所有 Raycast
Cloths移除所有 Cloth 组件
Total Cloth Vertices移除所有 Cloth 组件
Physics Colliders移除所有 Physics Collider
Physics Rigidbodies移除所有 Physics Rigidbody
Audio Sources移除所有 Audio Source

PC 上的最低显示性能评级​

在 PC 版 VRChat 中,最低显示性能评级默认设置为"非常差"。这意味着在 PC 上,默认情况下没有虚拟形象会因性能原因而影响其组件或显示。如果你想更改此设置,可以在"中等"、"差"或"非常差"选项中选择。

移动端虚拟形象性能评级阻止​

在移动设备版 VRChat 中,虚拟形象性能评级阻止默认设置为"中等"。你可以选择将其更改为"差"以查看该评级的虚拟形象,但你的性能可能会因此受到影响。

在移动端,你不能禁用虚拟形象性能评级阻止系统。换句话说,评级为"非常差"的虚拟形象在移动端 VRChat 中始终会受到显示管理,甚至可能完全不显示。

无论你选择什么设置,如果在移动设备上超过了虚拟形象组件的限制,所有这些组件都将被移除。简而言之,移动端虚拟形象的虚拟形象组件存在硬上限。

覆盖单个虚拟形象​

danger

"非常差"虚拟形象的"Show Avatar"功能可能会在未来被移除,并且"非常差"的虚拟形象可能会从 Android 和 iOS 中完全移除。 在为移动设备上的 VRChat 创建虚拟形象时请牢记这一点。

你可以通过在每个你想要显示的用户上选择"Show Avatar"来覆盖整个系统(和安全系统)。

Footnotes​

  1. 边界大小由虚拟形象上所有组件的最大尺寸决定。拖尾和线条渲染器不计入此计算。 ↩ ↩2

  2. VRCRaycast 组件在所有平台上每个虚拟形象有 80 个组件的硬上限。 ↩ ↩2

  3. 如果在移动端超过了"非常差"的值,无论虚拟形象的当前"Show Avatar"状态如何,虚拟形象上的所有 PhysBones、Contacts 和 VRChat Constraints 都将被移除。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7