Quest対応ガイド

Vket2021では「Questワールド」を設置しています。このガイドでは、来場者がOculus Questスタンドアロン環境からでも出展スペースを楽しめるよう、Quest対応を行うやり方を解説します。より詳しい情報はVRChatのGuidesを参照してください。

Quest対応を行うにあたって、良くある誤解は

「シェーダ―はToonLitじゃないと駄目なんでしょ?」

というものです。これは大きな誤解で、シェーダ―に制限が掛かるのはアバターのみです。

しかし、実際にQuestではうまく表示できないシェーダーがあるのも事実であり、Vket2021のQuest会場では以下のシェーダ―を許可しています。Vket5の頃と比べるとかなり増えています。

  • VRCSDK3-WORLD 同梱のシェーダーの内、
    • VRChat/Mobile/○○○○
    • VRChat/Panosphere
  • TextMeshPro 同梱のシェーダーの内、
    • TextMeshPro/Mobile/Distance Field
  • まんまるしぇーだー MnMrShader3_1_2 同梱のシェーダーの内、
    • MMS3/○○○○
  • ユニティちゃんトゥーンシェーダー 2.0.8 同梱のシェーダーの内、
    • UnityChanToonShader/Mobile/○○○○
  • Unlit_WF_ShaderSuite_20210905 同梱のシェーダー 全て
  • UniGLTF_VRMShaders-0.81.0_5126 同梱のシェーダーの内、
    • UniGLTF/○○○○
    • VRM/○○○○
  • noribenQuestWaterシェーダー 同梱のシェーダーの内、
    • Noriben/DepthWater
    • Noriben/noribenQuestWaterCubemap

これに加え、Unityの標準ビルトインシェーダー(Particles/Standard Unlitを除く)が許可されています。

ビルドサイズ

VRChatの仕様上最も厳しい制限ですが、大抵のコンセプトワールド向けブースは制限に収めることが出来ます。

そもそも「ビルドサイズ」とは

簡単に言うとワールドの容量です。Questではワールド全体のビルドサイズが50MBに制限されているので、1ブース当たり許可できる限界が3MBでした。

ビルドサイズの確認は以下の手順を踏むことで可能です。

  1. VRCSDKコントロールパネルのBuild & Publishボタンでビルドする
  2. Unityエディタのログを開く(Consoleウィンドウのメニューから「Open Editor Log」)

questguide

  1. 最新のcustomscene.vrcwを検索する

ここで表示されるCompressed Sizeがビルドサイズです。この容量ですが、多くの場合テクスチャが大部分を占めているはずです。

そこで、テクスチャ画像のInspectorから以下の操作を行います。

Max Sizeを下げる

テクスチャ解像度を下げます。画像では2048と設定されていますが、1024でも充分な場合もあります。

一段階下げる度にピクセル数は四分の一(二分の一の二乗)になるため、大きな効果があります。

Compression

Low Quality、Normal Quality、High Qualityを選択すると、それぞれのプラットフォームに合った形式を選んでテクスチャ画像を圧縮してくれます。

通常はLow Qualityで十分きれいに見えます。

Use Crunch Compressionをオンにする

ビルドサイズを下げるにはもはや必須レベルです。

Use Crunch Compressionをオンにすると、テクスチャにクランチ圧縮をかけます。下のCompressor Qualityの値が高いほど高品質大容量になります。

Compressor Qualityを下げるより、Max Sizeを下げてCompressor Qualityを高く保った方が良い結果が得られる場合もあります。

ファイルによっても違ったりする部分なので試すのが一番早いです。

questguide

音声ファイルがある場合はそれもかなりの容量を取ってしまうのですが、音声については品質≒容量な部分があるため、なかなか難しかったりします。

メッシュについて

メッシュについてもいくつかの設定で容量の削減を行うことができます。

Import BlendShapesのチェックを外す

ブレンドシェイプを使わない場合、ここを外すことで物凄く容量が落ちることがあります。

アバターを展示するが表情をアニメーションさせない場合などに有効です。

Mesh Compressionを使う

メッシュを圧縮してくれます。

見た目に影響する場合もあるので容量と相談

questguide

シェーダー

アバターを展示しない場合はかなりシンプルで、許可されたシェーダーに切り替えるのみです。

アバター

スペース内でアバターペデスタルを展示する場合、Questから表示できるようにするにはシェーダーをQuest用アバターに許可されたシェーダー(多くの場合ToonLit)に入れ替え、またDynamicBoneも削除する必要があります。

現状、ポリゴン数制限はありません。ただし、2万ポリゴンを超える場合Show AvatarするかフレンドになるかしないとQuestからは表示されません。なお、Very PoorアバターのShow Avatar将来的になくなる可能性があります。

「Quest対応 ツール」などでTwitterを検索すると、ワンクリックで最低限の設定を済ませてくれるツールも見つけられます。利用は自己責任でお願いします。

フォルダ構造

全てのテクスチャファイルを出展者ID/Textures以下、全てのマテリアルを出展者ID/Materialsに置いてください

テクスチャの総ピクセル数

Oculus QuestはRAMが4GBしかありません。あんまり大きなテクスチャを使用すると大変なことになってしまいます。

制限として各テクスチャは4の倍数ピクセル かつ 総ピクセル数4096*4096以下

つまり、2048*2048のテクスチャなら4枚、1024*1024のテクスチャなら16枚……ですが、入稿ルールで最大枚数を8枚としているため、8枚まで使用可能です。

異なるサイズのテクスチャを組み合わせることもこの制限の中でなら可能です。