見出し画像

Resonite軽量化設定のススメ!

Resoniteを遊んでみて、動作が微妙に重たい!FPSが思うほど出ない!
やはりハイエンドPCでないとダメなのか?とあきらめる前に!お使いのPCやResonite内の設定の変更を行うことで、ある程度負荷を軽減(軽量化)させることができるかもしれません。
Resoniteは最近のアプデで細かくグラフィックの設定が調整できるようになりました!その主要な設定項目の解説とオススメの設定値、またResonite以前のパソコンやSteamVRの設定の変更で、Resoniteをちょっとだけ快適にできる方法をこの記事で解説します!

※この記事の対象者として、RTX3070程度のミドルレンジのゲーミングPCを使用し、現状ある程度遊べているが、さらにパフォーマンスを伸ばしたいという方を対象としています。
例えばデフォルト状態のホームワールドで10FPS程度しか出ないPCをお使いの場合、残念ながらこの記事の調整範囲では賄えない可能性が高いです。
ちなみに、重い/軽いのだいたいの基準として、歴戦のResonite民にはVRモードで40FPS出ていればまあ良い方で、30FPSを割り始めると重い、くらいの温度感の人が多い印象があります。


この記事では特におすすめの軽量化設定を3つのカテゴリに分けて紹介していきます。
まずは「Resonite外の軽量化Tips」「初心者向けTips」の2つを設定してください!
その上で、まだどうしても重い!という方は「上級者向けTips」をお試しください。

留意事項
この記事は2024/09/18時点の情報を記載しています。
情報が古くなっている可能性に留意ください。
またこの記事ではFPS値の計測など定量的なパフォーマンス比較は行いません。
Resoniteは発展途上のプラットフォームであり、現時点で定量的なパフォーマンスの計測を行っても、今後の更新でパフォーマンスが変わる可能性が高いこと、またVRSNSの特性上、ワールドやアバターの一般的な条件を統一することが難しいこと、プロファイリングツールを使用した解析が未発達であること等の理由から、定量的なパフォーマンスを計測することをしていません。
あくまでこの傾向にあるという体感や、理論に基づいた推測に留めています。

また、私自身もまだまだ勉強中のため、指摘はウェルカムです。
もしこの記事内で誤りや、その後のアプデなどで変更があった場合、X: @akiram_vr へ報告して頂き、記事の質向上にご協力をお願いします。


Resonite外の軽量化Tips

VRヘッドセットの画面解像度を下げる

まず第一にやるべきことは、VRの画面の解像度を下げることです。特にグラフィックボードの性能が低い場合、FPSが劇的に上がる可能性が高いです。
ただし解像度=表示される画面の精細さですので、画面解像度を下げるだけ視界がぼやけていきます。設定値を色々と試しつつ、許せるバランスを探りましょう。
※筆者はVIVE Pro環境で、大人数が参加するイベントの際は50%程度まで落としています。

SteamVRの場合は以下の手順です。Vritual Desktop等でも同様の設定項目があるはずです。

SteamVRウィンドウのハンバーガーメニュー(三)を押下したあと、「設定」を押下
一般」タブ>レンダリング解像度を「カスタム」に変更し、下のスライダーを変更して解像度を調整します。

モーションスムーシングをオフにする

また、低FPS時に視界がグラついてVR酔いを起こしてしまう場合、モーションスムーシングを切ることでグラグラとした印象が薄れ、快適になる可能性があります。
軽量化とは直接関係がないですが、酔いやすい方はお試しください。

一般」>モーションスムージングを「オフ

PCの電源オプションを変える

そもそもの話になりますが、電源オプションが省電力モードになっており、機器の本来の性能を活用していない場合もあります。
これは意外と落とし穴として存在する場合があるため、チェックしておくとよいでしょう。
コントロールパネルの電源オプションから、「パフォーマンス優先モード」「Performance」などの設定に変更しましょう。
※PCメーカーによって項目名が異なります。


初心者向けTips(まずはここから)

鏡を閉じる

さて、ここからResoniteの話です。
ホームワールドにもあるResonite標準の鏡は、非常に描画負荷が高いです!VRモードではこれで10~20FPS落ちます。
必要な時以外は閉じておくとよいでしょう。
また、開きっぱなしにする場合は、「設定」から解像度を下げたりすることで大幅に描画負荷を減らすことができます。

CloudHomeに設置された鏡。中央の紫色のマークを押すと、鏡が出現します。
鏡を出現させたところ。標準設定は高画質で重いです。
下部の「設定」を押下すると設定画面が開きます。
下の「閉じる」を押下で鏡を閉じることができます。
設定画面から「影-オフ」にしたり、解像度を「1024」にすることで鏡の画質の粗さと引き換えに、
負荷を大幅に減らすことができます。

ResoniteのHomeを開かないようにする

Resoniteでは起動時に自分のお気に入りを「クラウドホーム」として開くようになっています。
これは便利ですが、Resoniteは存在しているセッションの裏で開いているセッションの情報もメモリ上に維持するため、ホームワールド分のメモリを無駄に消費することになります。
そこで、設定画面からクラウドホームの読み込みを停止させるとよいでしょう。

設定」>「プロフィール」>「起動時にクラウドホームを読み込む」のオプションを「0」にする

上記設定後、Resoniteを再起動してください。

※ここで読み込まれなくなったクラウドホームは、ダッシュメニューの「ホーム」タブ>「ホームワールドへ移動」ボタンからいつでも移動することができます。

任意にホームワールドへ移動したい場合は「ホーム」>「ホームワールドへ移動」を押下する。

前に開いていたセッションから必ず抜ける

1つ上に関連して、Resoniteではセッションを移動した後も、それまで居たセッションのワールドや他のユーザのアバターがずっとメモリ上に保持される設計になっています。
これがかなり負荷になるため、セッションを移動した後は元のセッションを「切断する」(抜ける)ことで、メモリ負荷軽減になります。

元のセッションを抜ける操作はセッションタブから行います。以下がその手順です。

ダッシュメニュー「ワールド」タブを開き、「全てのワールド」タブを開きます。
自分のいるセッションが左上に表示されます。赤い「X」ボタンが表示されているのが、自分の開いているセッションです。
この赤い「X」ボタンを押すと、セッションを切断(抜ける)ことができます。

Resoniteの画面ウィンドウを小さくする

Resoniteはデフォルトではフルスクリーンモードで起動しますが、ウィンドウモードにし、ウィンドウを小さくすることで描画に必要な負荷を軽減させることができます。
特に、VRモードで遊ぶ場合はデスクトップ画面側の表示は画面を小さくしても問題ありません。(そもそも画面を見ないため)

Alt+Enterでフルスクリーンを解除したのち、ウィンドウの枠をドラッグして画面を小さくすることもできますが、「設定」タブの中に解像度を直接指定する項目があるので、そこで任意の解像度を設定できます。
なおResonite終了時の設定が保持されるようです。

グラフィック」タブの中の「解像度」で任意の解像度を指定できます。
ウィンドウの解像度を指定したのち、「変更を適用」ボタンを押してください。

モーションブラーを切る

「ポストプロセッシング」タブの中のモーションブラーを切ることで、軽量化に繋がります。
特に低FPS時には画面が見辛くなるだけですので、「0%」(オフ)にすることを推奨します。

上級者向けTips(見た目に影響あり・要注意)

以下はResoniteの見た目に影響が発生するため、要注意の項目です。
これらのパラメータを変更することで、Resoniteの見た目が大きく変わる可能性があることを理解の上、必ず元の設定値を記録の上、設定変更をお願いします。
(当記事は設定変更により発生した不利益に責任を取りません。)

読み込む最大テクスチャ解像度を制限する

テクスチャ画像の読み込み制限を行うことで、VRAMの使用率を下げることが可能になっています。
以下、設定項目の簡単な説明とオススメ設定値を記載します。

  • 相対テクスチャサイズ:元のテクスチャサイズから、何分の1として読み込むか指定できます。とりあえず「HalfSize」(半分のサイズ)などでよいでしょう。

  • 最大テクスチャサイズ:読み込む最大のテクスチャサイズを指定します。とりあえず「Tex1K」(1k=1024pixel四方のテクスチャまで読み込み)でよいでしょう。

  • このサイズを超えるテクスチャを制限:この値より大きなテクスチャサイズに対して、上2つの制限設定を反映させます。小さいタイリングテクスチャ等の解像度が低くなりすぎるのを防ぐための設定です。
    例えば「512」にしておくことで。512px四方までのテクスチャはそのまま読み込まれ、それ以上のテクスチャサイズは、上の設定項目により1024 px四方まで自動的に圧縮された状態で読み込まれます。

  • テクスチャフィルタリング:どうしてもVRAMが少ない場合、「Bilinear」にすると軽くなるかも。

おすすめ軽量化設定

設定変更後、「すべてのテクスチャを再度読み込む」を押下してください。

以下が結果の比較です。(FPSは参考にしないでください)

元アバターに収録されていた最大サイズである4Kの解像度まで読み込ませた状態。
軽量化のため、最大テクスチャサイズを1Kの解像度まで圧縮させた状態。
4Kと同じ設定値だが、筆者の普段使いアバターは既に2Kテクスチャまで圧縮されていたので、
これは2Kテクスチャ。
軽量化のため、1Kテクスチャまでに制限した状態

違いがわかりますでしょうか。
細部を見るとテクスチャの微細な柄や、ノーマルマップの凹凸がちょっと荒くなっているなど差がありますが、ほぼ間違い探しのレベルで、データ量は大幅に減っているにも関わらず、見た目の印象はほとんど左右されないはずです。

※余談ですが、集会などの一般的な交流イベントの場合、お互い自然に1メートル程度以上の距離を維持して会話するような傾向にあります。
その際、アバターのテクスチャ解像度が4Kであっても1Kであっても、見た目の印象には大きな差はないという意見を筆者は持っています。

逆に、ここで試しに、極端な数値、例えば128ピクセルまで制限してみると以下のように明らかに画質が劣化しているのが分かります。
(でも、ポリゴン数やシルエットに変化はないため、意外と印象に差がないですね?)

128ピクセル
ガビガビ

ライトの当たる数を制限する

ピクセル単位でシミュレートする光源の数を制限することで、GPU負荷の軽減になります。
これはライト(光源)が密集しているワールドで大きな効果を発揮します。
※PBS系のシェーダーには効果がありません。
だいたい「4」程度まで下げてもほとんどの場合大きな影響は無いのではという印象ですが、おびただしい光源が使われているワールド演出で意図しない見た目になってしまう場合があります。(例えば、ライブステージなど)

具体的にどのように変化するかを以下に示します。
以下のデモシーンではアバターの周りの玉がそれぞれの色のPointLightになっており、同時に最大4つの光源が当たるようになっています。
このシーン上で、「ピクセルあたりのライト」の設定値を変化させます。
※アバターの脇の球はPBS Metallic製で、この設定値の影響を受けません。

設定値「4」の場合。4方向からの光源に照らされています。
設定値「2」の場合。黄色、緑からの光源のみ照らされて、他の光源は無視されています。
設定値「1」の場合。黄色からの光源のみ照らされ、他の光源は無視されています。

また動画のほうが効果が分かりやすいため、同じシーンのデモ動画を以下に貼ります。


アンチエイリアシングを無効にする

特に高解像度なディスプレイやHMDを使用している場合、アンチエイリアシングを無効にすることで大幅にVRAM使用量が減り、描画負荷が軽減されます。
アンチエイリアシングは隣接するピクセルの間をスムーズに補完させ、ギザギザ(ジャギー)な印象になるのを防ぐ技術です。

Offにした際、画面のギザギザ感が出ますので、それがちらついて見辛い・目が疲れるという方が一定数居ますが、試してみて問題なさそうであれば「Off」でよいと思います。

FXAA
一部の拡大。ピクセル同士が滑らかに補完され、ギザギザ感はそこまで目立たない。
AA OFF
一部の拡大。樹木類と空の切れ目などピクセル補完されず、ギザギザした印象が目立つ。

シャドウカスケード・影の解像度を下げる

影の解像度を下げることで、VRAMに掛かる負荷を軽減することができます。
どうしても重い時は、「None」及び「Low」に変更することで、影の表示の荒さを犠牲に、負荷を軽減させることができます。

シャドウカスケード「Fourcascade」影の解像度「High
アバターの影が正確に地面に投影されています。
シャドウカスケード「None」影の解像度「Low
3体あるアバターの境界がわからないほど解像度が粗くなっています。

頂点に与える影響のボーン数上限を設定する

アバターに仕込まれた揺れもの(髪の毛やしっぽ、スカートの裾など)の物理演算はCPUに負荷を掛けることになります。
この「スキンウェイト」の項目は、「1つの頂点」へ影響を与える「ボーンの本数」を減らすことにより、CPUの負荷が軽減されます。
ただし、なめらかに曲がる表現は犠牲になり、急に大きな角度で曲がるような、カクカクとした不自然な曲がり方になります。
(また、低FPS時にボーンが暴れてしまうことは改善されません)


補足情報

「アバターを非表示にする」の効果は非常に限定的

フレンドタブから特定のユーザの「アバターを非表示」にすることが可能ですが、テクスチャは通常と同じようにロードされ、IKや揺れもののリアルタイム物理計算は続くため、負荷軽減にはあまり効果がありません。
非常にエッジケースですが、ポリゴン数が数百ポリゴン以上など尋常でなく多いアバターは「非表示」にすることでMeshRendererがオフになるため軽量化につながる可能性は、「まったく無いという訳ではない」程度。

アバターを非表示にしても、DynamicBoneがリアルタイムで計算され続ける様子

SteamVR Homeを無効にする意味はあまりない(が、やった方が良さげ)

まれに聞く言説で「SteamVR Home」を起動しているとResoniteが重いという説ですが、SteamVR上からResoniteを起動することで、SteamVR Homeのアプリケーションが自動的に終了するので、常時負荷は掛かっているわけではありません。

しかし、それとは別にSteamVRの起動時やResonite等の別のアプリの終了後、使わないゲームを起動するのと同じ負荷がPCに掛かるので、使っていないのであれば停止するのがよいでしょう。

停止する手順は以下です。

SteamVRの「ハンバーガーメニュー(三)」>「設定」を押下
「一般」>SteamVRホームで「オフ」を選択

おわりに

Resoniteは、他VRSNSと比べてリアルタイムに制御できる部分が多く、自由度の高いプラットフォームであることの引き換えに、やはりマシンスペックを要求されます。

なお現在(2024年9月時点)、開発チームでも軽量化(パフォーマンス向上)が急務という認識を持っており、急ピッチで軽量化に向けた開発が進んでいます。
願わくばあなたがこの記事を読む頃には、そのアップデートが実現され、この記事で紹介するような調整が不要なものになっていますように。

おわり

いいなと思ったら応援しよう!