ばーちゃるなれっじ Unityのエラー、アバター改変、イベントを検索 アプリで開く
‹ 戻る#ワールド

ワールド軽量化の基本 どこから手を付けると効くか

どんなに美しいワールドでも、重ければ人は集まりません。逆に、軽くて快適なワールドは何度も訪れてもらえます。この記事では、VRChatワールドの軽量化で効果の大きい順に手を付ける方法を整理します。

ワールド軽量化の基本 どこから手を付けると効くかの本文画像

まずミラーを疑う

ミラーは、ワールド全体をもう一度描画する仕組みです。負荷が文字通り倍増するため、常時オンのミラーは軽量化の最大の敵になります。

対策は「スイッチで必要なときだけ点ける」こと。VRChatワールドでは、これがほぼ鉄板のルールです。ミラー自体の解像度を落とす、映す対象を絞るといった設定でも負荷は変わります。ミラーの仕組みについては別記事「ミラーはなぜ重いのか 設置のベストプラクティス」でも解説しています。

引用記事ミラーはなぜ重いのか 設置のベストプラクティスワールド

リアルタイムライトを減らす

動かない光をリアルタイムで計算し続けるのは無駄です。ライトベイク(あらかじめ光を焼き込む処理)を使えば、見た目を保ったまま実行時の負荷を大きく下げられます。リアルタイムライトは、どうしても動かす必要がある光だけに絞りましょう。

マテリアル数とドローコール

ポリゴン数よりも先に効くことが多いのが、マテリアル数とドローコール(描画命令の回数)の削減です。同じマテリアルを使い回す、メッシュを結合する、遠くからは見えない小物を減らす、といった整理が有効です。

テクスチャも必要以上に大きくせず、圧縮設定を確認しましょう。考え方はアバターの場合と同じです。

オクルージョンカリング

壁の向こうにあるものを描画しないようにする仕組みです。部屋が分かれているワールドでは特に効果が大きく、設定しておくと視界外のオブジェクトの描画がスキップされます。逆に、見通しのよい広い平地では効果が出にくい仕組みでもあります。

その他に効くこと

・影の設定 — すべてのオブジェクトに影を落とさせる必要はありません
・パーティクル — 大量に出す演出は負荷が高くなりがちです
・動画プレイヤー — 便利ですが負荷もあります。必要な場面に絞りましょう
・Udonの毎フレーム処理 — 常時動く処理が積み上がると重くなります

ワールド軽量化の基本 どこから手を付けると効くかの本文画像

実機で確認する

ビルド前にUnityのStats表示やプロファイラで負荷を見る癖をつけましょう。感覚で判断するより、数値で重い箇所を特定するほうが確実です。

そして忘れがちなのが、自分の環境だけで判断しないことです。ハイエンドPCで快適でも、控えめな環境では動かないかもしれません。さらに実際の運用では、来場者のアバターの負荷が上乗せされます。自分ひとりで歩いて重いなら、人が入れば確実に厳しくなります。

Quest対応という選択肢

Quest(Android)向けにも対応すれば、来られる人が大きく増えます。ただし制限はPCより厳しく、使えるシェーダーも異なるため、同じデータをそのまま移すことはできません。まずPC版で軽量化の感覚を掴んでから、別作業として取り組むのが現実的です。

よくある質問

Q. どこまで軽くすればいい?
A. 明確な基準はありませんが、「性能控えめの環境でも人が数人いる状態で歩ける」を最低ラインにすると判断しやすくなります。

Q. 見た目を犠牲にしたくない
A. ライトベイクやオクルージョンカリングは、見た目をほぼ保ったまま負荷を下げられる手段です。まずここから試してください。

Q. 重い原因が分からない
A. プロファイラで、描画とスクリプトのどちらが重いかを切り分けるところから始めます。原因の系統が分かれば対策も絞れます。

Q. 公開の流れを知りたい
A. 別記事「ワールド公開の流れ PrivateからCommunity Labsへ」で解説しています。

引用記事ワールド公開の流れ PrivateからCommunity Labsへワールド