WorldのQuest対応何も分からんが、とにかくやらなければならない時用のメモ
やや古いけどまずはこちらの記事から見ていくと良いかも。
(古いので3-2:負荷の最適化以降から)
https://qiita.com/Kazu_Sack/items/0d0eee26fd6282ec134a
やること
参考記事に書いてあるように、最適化は終わりのないエンドコンテンツなのでとりあえず2つだけやる。
- 色々設定してライトベイクをする
- ShaderをすべてStandard Liteに変更する
詳細
ライトベイクについて
リアルタイムライトは重い。
けどVRChatではプレイヤーやミラーなど特定のオブジェクトへのリアルタイムライトは必要。
そのため、リアルタイムライトは対象を限定して使用する。
それ以外のオブジェクトへはライトベイクを行って負荷を軽減する。
ライトベイクのやりかたは以下の記事
https://creator.cluster.mu/2022/04/19/masaki-light-bake/#container
Directional lightの設定
- ワールド全体を照らすベイク用(UnityProject作成時のデフォルトのDirectional light)
- Mode : Baked
- Culling Mask : Everything
- プレイヤーアバターなどを照らす用
- Mode : Realtime
- Culling Mask : Water / Player / Playerlocal / Pickup / MirrorReflection
Objectの設定
ObjectのUV2の自動生成設定
ライトベイクで影がいまいちな場合は、fbxのUV2自動生成をONすると良い。
というか基本的にONでいいかも。

Light Probeを使う
Light Probeよくわかんねー!
けど設定はものすごく簡単の上、効果的らしいので分かんないなりにとりあえずやっとけという。
設定の仕方の参考記事
https://creator.cluster.mu/2022/04/20/misaka-2/
シェーダー
基本は全てStandard Liteに置き換える。
表現力が落ちるがとりあえず飲み込む。
Quest用のmobile向けシェーダーには以下の特徴がある
- 半透明の表現ができない
- 裏面の描画ができない(裏面culling offのシェーダーが無い)
裏面描画への対応
裏面用のメッシュを生成するしかない。
blenderなどでメッシュに厚みをつけるなど。(モディファイアのソリッド化)
その他
さらに最適化を進めるにはこの記事が詳しい
https://p2pzen.com/vr/unity-vrchat-cluster-summary-of-how-to-reduce-the-weight-of-the-world/

