パフォーマンスランク
アバターパフォーマンスランキングシステムを使用すると、ユーザーのアバターに含まれるコンポーネントを分析することで、そのアバターがパフォーマンスにどの程度の影響を与えているかを確認できます。また、自分自身のアバターに対して使用し、パフォーマンスがどの程度良好かを確認することも可能です。
このシステムは、アバターの中でパフォーマンス負荷が最も高い可能性のあるコンポーネントをユーザーに知らせ、アバターを最適化する際に何を検討すべきかという基本的なアドバイスを提供するために用意されています。
また、本システムは最小表示パフォーマンスランクを決定する際にも利用されます。これは、ユーザーが自身のパフォーマンスランクに基づいて、どのアバターを表示するかを選択するための機能です。
このシステムはアバターのパフォーマンスを完全に決定づける絶対的な基準ではありませんが、アバターがより高いパフォーマンスを発揮するために調整が必要かどうかを示す、優れた一般的な指標となります。
パフォーマンスランクシステムはアバターのパフォーマンスにおける「最悪のケース」を判断しようと最善を尽くしていますが、適切に最適化されたアバターがVery Poorと判定されたり、逆にフレームレートを著しく低下させるアバターがExcellentと判定されたりするケースは多く存在します。
技術的な詳細として、パフォーマンスランクシステムはアニメーター、シェーダー、テクスチャ解像度、ピクセルライトなどの要素を考慮せず、アバターのプロパティを静的解析することに基づいています。しかしながら、このシステムは95%の確率で問題のあるアバターを検出するための非常に優れた試金石となります。
要約
Goodランクを目指しましょう。 もし難しい場合でも、Mediumランクであれば全く問題ありません。
アバター制作はただでさえ大変な作業ですが、最適化されたアバターを作るのはさらに困難です。これには長い時間をかけて培うスキルが必要となります!
VRChatのイベントやグループ、特定の場所では、Very Poorランクのアバターを使用していると変更を求められる場合があることに留意してください。そのため、少人数のフレンドとのインスタンスでVery Poorランクのアバターを使用する場合でも、大人数が集まる場所で使えるアバターを別に用意しておくようにしましょう。
あなたのアバターは他人のフレームレートにも影響を与えるため、自分の選択が周囲の体験にどう影響するかを意識してください。さもないと、他のユーザーからはあなたのFallbackアバターしか見えていないかもしれません!
パフォーマンスランクアイコン
クイックメニューを開くと、ユーザーのネームプレートの上にアイコンが表示されます。
ランクは以下の通りです。
| アイコン | パフォーマンスランク | 説明 |
|---|---|---|
| Excellent | これ以上ないほど最高な状態です。「冷蔵庫に貼る金の星」ランクです。 | |
| Good | 十分な状態です。目指すべき素晴らしいターゲットです。 | |
| Medium | 名前に惑わされないでください。Mediumでも十分良好です。このランクで、これ以上最適化するつもりがなければ、そのままで問題ありません。 | |
| Poor | 改善の余地があります。 | |
| Very Poor | このアバターには深刻なパフォーマンスの問題があります。このランクには上限がないため、このアバターが表示されることで、あなたの環境のパフォーマンスが低下している可能性が非常に高いです。 |
アバターの詳細な統計情報を表示する
クイックメニューを開いた状態でユーザーをクリックすると、左側に新しい "Show Avatar Stats" ボタンが表示されます。ここには、そのユーザーのパフォーマンスランクのアイコンが表示されています。
![]()
このアイコンをクリックすると、そのアバターの詳細な Avatar Stats を確認できます。自身のアバターについては、アバターメニューから任意のアバターを選択し、画面左下の Avatar Stats ボタンをクリックすることで確認可能です。
![]()
Avatar Stats ボタンをクリックすると、確認中のアバター(アバタータブでボタンを押した場合は自身のアバター)の詳細が表示されたウィンドウがポップアップします。
![]()
テキストの色は、その統計項目がアバターのランクを押し下げている要因となっているランクの色と対応しています。
また、"Original" と "Perf Filtered" という行で「適用前と適用後」の統計を確認できます。Minimum Displayed Performance Rank システムを使用している場合、システムによってコンポーネントが除外される前と後の統計を見ることができます。Minimum Displayed Performance Rank システムによってパフォーマンス上の理由でアバターが非表示になっている場合は、元の統計情報のみが表示されます。
上記の例では、制限を超過したために Lights と Particle Systems が無効化されています。Particle Systems はそれぞれ最低1つ以上のマテリアルを使用するため、Particle Systems に由来するマテリアル数も、フィルタリング前のアバターの統計から差し引かれています。
また、Documentation へのリンクも用意されており、特に Avatar Optimization Tips は役立つ情報となっています。
アバターパフォーマンスランクの統計情報
システムが参照するすべての統計情報と、その説明の一覧です。 太字の統計情報は、設定された「最小表示パフォーマンスランク(Minimum Displayed Performance Rank)」を超えると、アバターが完全に非表示となります。(境界値を除く)その他の統計情報が「最小表示パフォーマンスランク」を超えた場合、アバターは部分的に非表示となります。その際、上限を超えた統計情報に関連するコンポーネントが取り除かれた状態でアバターが表示されます。
例えば、「最小表示パフォーマンスランク」が「Poor」に設定されている場合、9つの Trail Renderer を持つアバター(Very Poor)は、すべての Trail Renderer が取り除かれた状態で表示されます。詳細については、Minimum Displayed Performance Rank を参照してください。
| アバターの品質項目 | 品質の説明 |
|---|---|
| Triangles | モデルの三角形(ポリゴン)数です。(以前は誤って「ポリゴン」と呼ばれていました。) |
| Bounds Size | アバターの全体的なサイズです。もし非常に巨大な場合は、アバター上に常に表示されているわけではない大きなアニメーションが存在している可能性があります。 重要な注意点: Bounds Size は「最低表示パフォーマンスランク」設定を下回っていても、アバターが非表示になる原因にはなりません。 |
| Texture Memory | アバターのテクスチャが使用していると推定されるメモリ量です。これらのテクスチャはシステムRAMとビデオカードのメモリの両方を占有します。 |
| Skinned Meshes | アバターに含まれる Skinned Mesh Renderer コンポーネントの数です。 |
| Basic Meshes | アバターに含まれる(スキニングされていない) Mesh Renderer コンポーネントの数です。 |
| Material Slots | アバターのマテリアルスロット数です。マテリアルスロットとは、メッシュ上でマテリアルを割り当てる場所のことです。これはサブメッシュの作成数にカウントされ、ドローコールをさらに発生させる要因となります。パーティクルシステムは1つのマテリアルスロットを使用し、軌跡(Trails)付きのパーティクルシステムは2つ、ラインレンダラーは1つのマテリアルスロットを使用することに留意してください。 |
| PhysBones Components | アバターに含まれる PhysBone コンポーネントの数です。 |
| PhysBones Affected Transforms | アバター上の PhysBone コンポーネントの影響を受けるトランスフォームの合計数です。 |
| PhysBones Colliders | アバターに含まれる PhysBone コライダー(Collider)スクリプトの数です。 |
| PhysBones Collision Check Count | 各コライダーが影響を与えうる PhysBone トランスフォーム数の合計です。1つのトランスフォームが複数のコライダーによって影響を受ける可能性があるため、この数値は重複してカウントされる場合があります。 |
| Contacts | アバターに含まれる Contacts の数です。フィルターが「Local Only」に設定されている Receiver はカウントされません。 |
| Constraint Count | アバター上のVRChatおよびUnityコンストレイント(Constraint)の合計数です。詳細はこちら。 |
| Constraint Depth | アバター上のすべてのコンストレイントにおける、依存関係の最も深い連鎖数です。詳細はこちら。 |
| Animators | アバターに含まれる Animator の数です。重要な注意点: ルートアニメーターがカウントされるため、この数値は必ず1以上になります。つまり、Excellentランクにするためには、追加の Animator を含めることはできません。 |
| Bones | アバターのリグ(Rig)に含まれるボーン(Bones)の数です。 |
| Lights | アバターに含まれる Light コンポーネントの数です。 |
| Particle Systems | アバターに含まれる Particle System コンポーネントの数です。 |
| Total Particles Active | アバター上の全パーティクルシステムにおける maxParticles の合計値です。 |
| Mesh Particle Active Polys | アクティブなパーティクルシステムから放出されるメッシュパーティクルの三角形の合計数です。つまり maxEmission * meshParticleVerts となります。 |
| Particle Trails Enabled | アバター上のいずれかのパーティクルシステムで Particle Trails が有効になっている場合、Trueとなります。 |
| Particle Collision Enabled | アバター上のいずれかのパーティクルシステムで Particle Collision が有効になっている場合、Trueとなります。 |
| Trail Renderers | アバターに含まれる Trail Renderer の数です。 |
| Line Renderers | アバターに含まれる Line Renderer の数です。 |
| Raycasts | アバターに含まれる VRCRaycast コンポーネントの数です。 |
| Cloths | アバターに含まれる Cloth コンポーネントの合計数です。 |
アバターパフォーマンスランク - ランクごとの最大値
以下に、各パフォーマンスランクの制限値を記載します。いずれかのカテゴリでこれらの数値を超えると、ランクが一段階下がります。
例えば(PC版において)、アバターの Skinned Meshes が2つある場合、そのアバターの評価は「Excellent(優良)」の基準を超えているものの「Good(良)」の基準内であるため、「Good」ランクとなります。
現在無効化されているものを含め、すべてのアバター内の GameObject および Component がアバターパフォーマンスランクの計算対象となります。
アバター上のいずれかのメッシュ(パーティクルシステムを含む)で Mesh Read/Write を無効にすると、「Triangles(ポリゴン数)」の表示が「Mesh Read/Write Disabled」となり、実際のポリゴン数にかかわらず、そのアバターのパフォーマンスランクは即座に「Very Poor(非常に悪い)」へと格下げされます。
SDKはこの点について警告を表示し、アップロード前に修正することを要求します。
PC Limits
| Avatar Quality | Excellent | Good | Medium | Poor |
|---|---|---|---|---|
| Triangles | 32,000 | 70,000 | 70,000 | 70,000 |
| Bounds Size1 | 2.5m x 2.5m x 2.5m | 4m x 4m x 4m | 5m x 6m x 5m | 5m x 6m x 5m |
| Texture Memory | 40 MB | 75 MB | 110 MB | 150 MB |
| Skinned Meshes | 1 | 2 | 8 | 16 |
| Basic Meshes | 4 | 8 | 16 | 24 |
| Material Slots | 4 | 8 | 16 | 32 |
| PhysBones Components | 4 | 8 | 16 | 32 |
| PhysBones Affected Transforms | 16 | 64 | 128 | 256 |
| PhysBones Colliders | 4 | 8 | 16 | 32 |
| PhysBones Collision Check Count | 32 | 128 | 256 | 512 |
| Contacts | 8 | 16 | 24 | 32 |
| Constraint Count | 100 | 250 | 300 | 350 |
| Constraint Depth | 20 | 50 | 80 | 100 |
| Animators | 1 | 4 | 16 | 32 |
| Bones | 75 | 150 | 256 | 400 |
| Lights | 0 | 0 | 0 | 1 |
| Particle Systems | 0 | 4 | 8 | 16 |
| Total Particles Active | 0 | 300 | 1000 | 2500 |
| Mesh Particle Active Polys | 0 | 1000 | 2000 | 5000 |
| Particle Trails Enabled | False | False | True | True |
| Particle Collision Enabled | False | False | True | True |
| Trail Renderers | 1 | 2 | 4 | 8 |
| Line Renderers | 1 | 2 | 4 | 8 |
| Raycasts3 | 1 | 4 | 8 | 15 |
| Cloths | 0 | 1 | 1 | 1 |
| Total Cloth Vertices | 0 | 50 | 100 | 200 |
| Physics Colliders | 0 | 1 | 8 | 8 |
| Physics Rigidbodies | 0 | 1 | 8 | 8 |
| Audio Sources | 1 | 4 | 8 | 8 |
以下の表は、PC用アバターが特定のパフォーマンスランクを得るための要件を示しています。
PCのデフォルトパフォーマンスランクによる制限
PC版VRChatでは、デフォルトの「表示する最小パフォーマンスランク」は「Very Poor」に設定されています。つまり、ユーザーはデフォルト設定のままでほとんどのアバターを表示できます。ユーザーが表示する最小パフォーマンスランク機能を有効にした場合、パフォーマンスが低いアバターを非表示にするように選択できます。
ただし、アバターの最適化が極端に進んでいない場合、VRChatはそのアバターの使用を制限する可能性があります。この問題は、パフォーマンスランクを改善し、VRChatのアバターサイズ制限を超えないようにした上で、アバターを再アップロードすることで解消できます。
モバイルの制限
AndroidおよびiOS(スマートフォン、タブレット、Meta Quest)上のVRChatには、PC版よりも厳しい制限が設けられています。 以下の表は、モバイル向けアバターが特定のパフォーマンスランクを取得するための要件を示しています。
| アバター品質 | Excellent | Good | Medium | Poor |
|---|---|---|---|---|
| Triangles | 7,500 | 10,000 | 15,000 | 20,000 |
| Bounds Size1 | 2.5m x 2.5m x 2.5m | 4m x 4m x 4m | 5m x 6m x 5m | 5m x 6m x 5m |
| Texture Memory | 10 MB | 18 MB | 25 MB | 40 MB |
| Skinned Meshes | 1 | 1 | 2 | 2 |
| Basic Meshes | 1 | 1 | 2 | 2 |
| Material Slots | 1 | 1 | 2 | 4 |
| Animators | 1 | 1 | 1 | 2 |
| Bones | 75 | 90 | 150 | 150 |
| PhysBones Components2 | 0 | 4 | 6 | 8 |
| PhysBones Affected Transforms2 | 0 | 16 | 32 | 64 |
| PhysBones Colliders2 | 0 | 4 | 8 | 16 |
| PhysBones Collision Check Count2 | 0 | 16 | 32 | 64 |
| Contacts2 | 2 | 4 | 8 | 16 |
| Constraint Count2 | 30 | 60 | 120 | 150 |
| Constraint Depth2 | 5 | 15 | 35 | 50 |
| Particle Systems | 0 | 0 | 0 | 2 |
| Total Particles Active | 0 | 0 | 0 | 200 |
| Mesh Particle Active Polys | 0 | 0 | 0 | 400 |
| Particle Trails Enabled | False | False | False | True |
| Particle Collision Enabled | False | False | False | True |
| Trail Renderers | 0 | 0 | 0 | 1 |
| Line Renderers | 0 | 0 | 0 | 1 |
| Raycasts3 | 1 | 2 | 4 | 8 |
モバイルのデフォルトパフォーマンスランク制限
モバイル版では、デフォルトのMinimum Displayed Performance Rankは「Medium」に設定されています。これは、ユーザーが「Poor」や「Very Poor」と判定されたアバターを表示できないことを意味します。 ユーザーは自身のPerformance Rank Blockレベルを「Poor」に設定することで「Poor」のアバターを表示できるようになりますが、レベルを「Very Poor」に設定することはできません。 例えば、モバイル向けアバターが20,000 Trianglesを超えた場合、そのランクは「Very Poor」となり、VRChat上で他ユーザーからは表示されません。ただし、ユーザーは対象のアバターを選択して「Show Avatar」をクリックすることで、強制的に表示させることが可能です。
将来的には、モバイルにおける「Very Poor」アバターの表示機能や、「Very Poor」アバターに対して「Show Avatar」を使用する機能が削除される可能性があります。モバイル向けアバターを作成する際は、この点に留意してください。
モバイルアバターのコンポーネント制限
一部の アバターコンポーネント は、モバイルアバターにおいて制限が設けられています。以下の制限を超えることはできません。
- 8 個の PhysBone コンポーネント
- 64 個の PhysBones 影響を受けるトランスフォーム
- 16 個の PhysBones コライダー
- 64 回の PhysBones Collision Check Count
- 16 個の Contacts
- 150 個の Constraint コンポーネント
- 50 階層の Constraints 依存関係の深さ
「アバターを表示 (Show Avatar)」機能を使用しても、上記の制限を回避することはできません。モバイルアバターがいずれかの制限を超えている場合、「アバターを表示」を有効にしていても、VRChat内では制限対象となるすべてのアバターコンポーネントがアバターから削除されます。
モバイルで削除されるコンポーネント
以下のコンポーネントは、アバター上で使用できないためモバイルデバイスでは無効化されます。
- Lights
- Cloths
- Total Cloth Vertices
- Physics Colliders
- Physics Rigidbodies
- Audio Sources
これらの値はVRChatのアバター詳細画面に表示される場合がありますが、常にゼロとなります。
表示する最低パフォーマンスランク
アバターのパフォーマンスランクに基づいてアバターの表示を管理するように設定できます。このオプションはPerformance Optionsメニューから利用可能です。このメニューには、メインメニューのSafetyタブの右上にあるボタンからアクセスできます。
VRChatのメニューでパフォーマンスランクを選択すると、そのランクを下回るすべてのアバターは、以下に説明するようにコンポーネントや表示が管理されます。
| Parameter | Description |
|---|---|
| Triangles | アバターが フォールバック に置き換えられます |
| Bounds Size | 変更なし |
| Texture Memory | アバターが フォールバック に置き換えられます |
| Skinned Meshes | アバターが フォールバック に置き換えられます |
| Basic Meshes | アバターが フォールバック に置き換えられます |
| Material Slots | アバターが フォールバック に置き換えられます |
| Physics Bone Components, Transforms, Colliders, CollisionCheckCount, or Contacts | すべての PhysBone、PhysBone Collider、および Contact コンポーネントが削除されます |
| Constraint Count or Depth | すべての Constraint コンポーネントが削除されます |
| Animators | すべての Animator(ルートの Animator を除く)が削除されます |
| 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版における最小表示パフォーマンスランク
VRChat for PC では、最小表示パフォーマンスランクはデフォルトで「Very Poor」に設定されています。つまり、PC版ではデフォルトで、パフォーマンス上の理由によってアバターのコンポーネントが削除されたり、表示が制限されたりすることはありません。この設定を変更したい場合は、「Medium」、「Poor」、「Very Poor」のオプションから選択できます。
モバイル版におけるアバターパフォーマンスランクの制限
VRChatのモバイル版では、アバターパフォーマンスランクの制限はデフォルトで「Medium」に設定されています。この設定を「Poor」に変更してそのランクのアバターを表示することも可能ですが、その結果としてパフォーマンスが低下する可能性があります。
モバイル版では、アバターパフォーマンスランクの制限システムを無効にすることはできません。つまり、「Very Poor」ランクのアバターは、VRChatによって常に表示が制御され、まったく表示されない場合があります。
設定にかかわらず、モバイルデバイスにおいてAvatar Componentの制限を超えた場合、それらのコンポーネントはすべて削除されます。要するに、モバイルアバターにおけるAvatar Componentには厳格な上限が設けられています。
個別のアバターに対する上書き
Very Poorのアバターに対する「Show Avatar(アバターを表示)」機能は将来的に削除される可能性があり、Very Poorのアバター自体がAndroidおよびiOSから完全に排除される可能性があります。モバイル版VRChat向けにアバターを作成する際は、この点にご留意ください。
表示したいユーザーごとに「Show Avatar」を選択することで、システム(およびセーフティシステム)全体の設定を個別に上書きすることができます。
最終更新: