Quest対応メモ

Last-modified: 2023-10-08 (日) 09:24:29

WorldのQuest対応何も分からんが、とにかくやらなければならない時用のメモ

やや古いけどまずはこちらの記事から見ていくと良いかも。
(古いので3-2:負荷の最適化以降から)
https://qiita.com/Kazu_Sack/items/0d0eee26fd6282ec134a

やること

参考記事に書いてあるように、最適化は終わりのないエンドコンテンツなのでとりあえず2つだけやる。

  1. 色々設定してライトベイクをする
  2. ShaderをすべてStandard Liteに変更する

詳細

ライトベイクについて

リアルタイムライトは重い。
けどVRChatではプレイヤーやミラーなど特定のオブジェクトへのリアルタイムライトは必要。
そのため、リアルタイムライトは対象を限定して使用する。
それ以外のオブジェクトへはライトベイクを行って負荷を軽減する。

ライトベイクのやりかたは以下の記事
https://creator.cluster.mu/2022/04/19/masaki-light-bake/#container

Directional lightの設定

2個作る。
light.png

  • ワールド全体を照らすベイク用(UnityProject作成時のデフォルトのDirectional light)
    • Mode : Baked
    • Culling Mask : Everything
  • プレイヤーアバターなどを照らす用
    • Mode : Realtime
    • Culling Mask : Water / Player / Playerlocal / Pickup / MirrorReflection

Objectの設定

動かないものはStaticに設定にする。
static.png

ObjectのUV2の自動生成設定

ライトベイクで影がいまいちな場合は、fbxのUV2自動生成をONすると良い。
というか基本的にONでいいかも。
uv.png

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/