見出し画像

VRChatの負荷対策(2023年8月確認)

VRChat上でDJ・歌や演奏・ダンスなどのパフォーマンスをされる方は、たくさんのお客さんを視界に入れながらになるため負荷対策に悩む方は多いと思います。
またリアルからお呼びした方にどのような負荷対策をしておけばいいか伝えるのが難しいことも多々あるかと思います。

ということで、2023年8月時点でのVRChatでの負荷対策の効果をそれぞれ計測しまとめてみました。
(VRChat 2023.2.2 - Release 3 May 2023 - Build 1304)
(最終更新日:2023/08/09)


まず結論から

「アバター表示制限(15人以下)」「Steam 表示解像度50-20%」
基本的にこの2つをやればバランス良くかなりの負荷が抑えられます。

以下、効果が高い順の解説です。
点数は一番効果が高かった「アバター表示人数0人」を100点としてGPU・CPUそれぞれで簡易的に点数化したものです。
厳密な計測・点数化ではないので、あくまで大体の傾向と思ってください。
(計測結果は最後に記載しています)


負荷対策比較

アバターの表示人数を制限する

  • 0人表示: GPU 100点、CPU 100点

  • 15人表示: GPU 67点、CPU 94点

  • 30人表示: GPU 42点、CPU 50点

一番負荷が軽減されました。
GPU負荷はもちろんVRAMにも優しく必須の対策と言っていいと思います。
また下がりにくいCPU負荷の軽減率が高いことも大きいです。

一番近い10-15人が見えれば最前で盛り上がってくれてる人はほぼ見えるので、この辺りが見やすさと負荷軽減のバランスが良いでしょう。
声が聞こえれば十分な場合は、0人にして「Allow Override With "Show Avatar"」を使い共演者だけ見えるようにするのも手です。

LaunchPadの設定 → Avatar Culling

Steamの表示解像度を下げる

  • 表示解像度20%: GPU 47点、CPU 3点

こちらも大きいです。
VRChat外で設定出来るので画面がガクガクして操作不能なときにはとりあえずやってみると良いでしょう、GPU負荷が原因の場合は一瞬で治ります。

50-20%で少しずつ下げながら試してみるとよいでしょう。20%でも近くは意外と見えますので、パフォーマンス時だけなら20%もアリだと思います。

SteamVRの設定 → レンダリング解像度

VeryPoorアバター非表示

  • VeryPoor非表示: GPU 55点、CPU 57点 ※表示人数は無制限

日本のイベントはVeryPoorの方が多いためか結構効果がありました。
表示人数を制限している場合はここまで効果はなさそうです。
また海外では(条件が違いますが)少し効果が低かったです(46点/10点)

見た目的にも、多くのアバターがフォールバックになり会場の雰囲気が変わってしまうので、表示人数制限で十分ならやらなくて良い でしょう。

詳細設定 → Avatars → Avatar Optimizations

(余談ですがイベントに参加する方は、色々詰め込みまくった超VeryPoorはパフォーマーの方にかなり負荷を掛けていることを理解しておいた方が良いと思います。特に海外の方は真っ先にVeryPoorを切っているので、Twitch同時配信などではまずフォールバックのフランクフルトとかになっていますよ!)

グラフィックス設定を下げる

  • 各種High→Low: GPU 24点、CPU 7点

グラフィックス・アンチエイリアス・影表現など軒並み下げてみました。
GPU負荷は多少下がるのでやって損は無いですが、それほど効果的という訳ではありません。

アバター表示数制限と解像度を下げてもまだGPU負荷が高い場合にはやってみると良いでしょう。

詳細設定 → Graphics → Graphics Quality

その他

  • デスクトップモード: GPU 80点、CPU 134点

VR前提の話なので「その他」にしましたがさすがに効果あります。
やっぱり自分も動いて盛り上げたい方も多いと思うので難しい所ですが……
あとGPU負荷は意外と下がらないので、デスクトップでもやはり表示人数は制限した方が良いでしょう。

  • ウィンドウ縮小: GPU 3点、CPU 0点

効果0ではないですが、強迫観念的に縮小化する必要は無さそうです。
ウィンドウ縮小は4Kぐらいとなら差があるのかも?

  • ネームタグ非表示: GPU 0点、CPU 0点

たまに聞く対策ですが今のVRChatでは効果がないようです。
昔は(最近のユーザ一覧みたいに)ユーザデータ周りの最適化が不十分で体感が遅かったのかも?

まとめ

まずは「アバター表示人数制限(0-15人)」と「Steam表示解像度20%」
それでも厳しい場合は「グラフィック設定Low」
さらに追加したければ「VeryPoor表示制限」
というところでしょうか。

なお「表示人数15人 + Steam解像度20%」を点数化すると次の通りです。

  • GPU 102点、CPU 92点

具体的に私の環境ではGPU使用率が94%→40%、CPU使用率が42%→30% となりました。かなり十分な負荷軽減だと思います。
(RTX 3080 + Ryzen 7 5800X3D)

その他考慮すべきこと

私はDJなのでDJとして分かる範囲のことを書いておきます。

Rekordboxは意外とGPUを使う

Rekordboxは立ち上げてるだけで(私の環境で)GPUを約10%使います。
またv6.7からのSTEM機能は曲選択時にCPU負荷が上がります。
なのでSTEMを使わない方は機能をオフ、使う方はVRChatのCPU負荷も気にした方が良いでしょう。

OBSなどのエンコードも意識する

1PCでGPU使用率がギリギリの状態でさらにGPUエンコードをさせると、エンコード・VRChat・DJソフト等が全て止まってしまう可能性があります。

OBSはGPU/CPU処理を選べるので、負荷の状況を考慮し、処理させる側の負荷を重点的に落とすと良いでしょう。
(「NVEnc」がGPU処理、「x264」がCPU処理です)
またVirtual Desktopは自動的にGPU処理のようです。

個人的にOBSの処理のお勧めはこんな感じでしょうか?
・Virtual Desktop使ってない:基本的にGPU
・Virtual Desktop環境:
 ・GPU負荷をきちんと下げるならGPU、そうでなければCPU
 ・4070Ti以上:基本的にGPU
※4070Ti以上になるとNVEnc encoderが2基になります

データなど

A・Bは日本のイベント、C・Dは海外の人数が多いインスタンス(全てVeryPoor制限無し)です。
計測方法は、設定変更後1分ほどして安定した時点でのfpsVRの数値を目視確認、です。
デスクトップモードのときはfpsVRが使えないためタスクマネージャーで使用率だけ見ています。

なお今後VRChatがアップデートして負荷対策に関わりそうな変更があればこの記事自体をアップデートしていく予定です。


更新履歴

  • 2023.12.22

    • X(Twitter)の仕様変更に合わせてカバー画像更新

    • (Unity 2022になったので近いうちに再調査する予定です)

  • 2023.8.09

    • 設定画面変更に伴い画像差し替え

    • 大まかにですが、現在でも負荷対策の大筋は変化ないことを確認

    • パフォーマー以外でも便利とよく言っていただいたのでタイトルも変えました笑

  • 2023.6.15

    • OBSとVirtual Desktopのエンコードに関する記述が間違っていたので修正

    • 目次の設定とそれに合わせて微調整

  • 2023.5.10

    • 公開

    • 誤字や説明不足の点をちょこちょこ修正

この記事が気に入ったらサポートをしてみませんか?