Перейти к основному содержимому

Оптимизация характеристик ранга производительности

Описание

В разделе приведены инструкции по оптимизации до Poor/Medium/Good/Excellent аватара.

Система оценки производительности аватаров в VRChat учитывает далеко не все (аниматоры, шейдеры, прочие вещи), а описываемое считает для худшего случая (когда все включено). Про это сказано и на официальной странице документации ранга производительности в самом начале. Но, ИМХО, если автор адекватный чел и смог сделать медиум/гуд аватар, то и не в отслеживаемых рангом производительности вещах скорее всего должно быть все нормально (аватару good бублика с fur-шейдером привет!). Когда-нибудь VRChat научится отслеживать и такие вещи, но имеем что имеем, а наличие хотя бы такой системы - это гораздо лучше, чем ничего. Хотите оптимизироваться полностью по хардкору - профайлер в юнити вам в помощь и сто якорей в ж... сто аватаров на сцену, а дальше только менять настройки всего подряд в аватаре и смотреть насколько изменяется фпс на вашей системе.

На 19.08.25 на сайте VRChat'а для рангов производительности назначены следующие характеристики (названия на сайте и в игре немного отличаются в паре мест, в таблице используются названия из игры):

Лимиты для ПК-версии

Ранг аватараExcellentGoodMediumPoor
Triangles32000700007000070000
Bounds2.5 x 2.5 x 2.5 м4 х 4 х 4 м5 х 6 х 5 м5 х 6 х 5 м
Texture Memory40 мБ75 мБ110 мБ150 мБ
Skinned Meshes12816
Basic Meshes481632
Material Slots481632
PhysBone Components481632
PhysBone Transforms1664128256
PhysBone Colliders481632
PhysBone Collision Check Count32128256512
Contact Count8162432
Constraints100250300350
Constraint Depth205080100
Animators141632
Bones75150256400
Lights0001
Particle Systems04816
Total Max Particles030010002500
Mesh Particle Triangles0100020005000
Particle TrailsFalseFalseTrueTrue
Particle CollisionsFalseFalseTrueTrue
Trail Renderers1248
Cloth Meshes0111
Cloth Max Vertices050100200
Colliders Count0188
Rigidbodies0188
Audio Sources1488

Лимиты для Android-версии

Ранг аватараExcellentGoodMediumPoor
Triangles7500100001500020000
Bounds2.5 x 2.5 x 2.5 м4 x 4 x 4 м5 x 6 x 5 м5 x 6 x 5 м
Texture Memory10 мБ18 мБ25 мБ40 мБ
Skinned Meshes1122
Basic Meshes1122
Material Slots1124
Animators1112
Bones7590150150
PhysBone Components0468
PhysBone Transforms0163264
PhysBone Colliders04816
PhysBone Collision Check Count0163264
Contact Count24816
Constraints3060120150
Constraint Depth5153550
Particle Systems0002
Total Max Particles000200
Mesh Particle Triangles000400
Particle TrailsFalseFalseFalseTrue
Particle CollisionsFalseFalseFalseTrue
Trail Renderers0001
Line Renderers0001
Lights0000
Cloth Meshes0000
Cloth Max Vertices0000
Colliders Count0000
Rigidbodies0000
Audio Sources0000

Содержание

📄️ Bones (кости)

Компонент AAO Trace And Optimize в корне вашего аватара с настройкой Delete Unused Objects удалит все кости, не используемые в PhysBones и не являющиеся частью рига аватара (руки, ноги, тело, голова, глаза и т.д.). Поэтому из возможных ручных операций остается только оптимизация PhysBones по количеству костей.

📄️ Lights (Источники освещения)

Если на вашем аватаре должно быть много Lights - оптимизация на нем вам особо не нужна, он должен выглядеть максимально хорошо (грузите такую версию аватара отдельно от основной ради б-га), хотя сделать для него оптимизацию по гайду тоже не помешает.

📄️ Audio Sources

Когда-то давно звуки на аватаре можно было воспроизводить только включением/выключением GameObject с компонентом Audio Source и галочкой Play on Load. В префабах тех времен на каждый отдельный звук мог использоваться отдельный GameObject, из-за чего количество Audio Sources могло быть очень большим. Сейчас же любое количество звуков может запускаться аниматором при использовании State Behavior VRC Animator Play Audio из одного Audio Source, и современные префабы скорее всего используют его и не имеют большого количества Audio Sources на аватаре. Много звуков разве что увеличат вес аватара.