VRCアバター Quest対応メモ

Questではダイナミックボーンやコライダー・クロス・ライトなどが使えないためQuest用アバターをアップロードするためにはそれらを削除する必要がある。また可能であればQuestの性能を考慮し軽量化を図りたい。

最低限必要な所まで行うのが下記の(1)~(2)・(5)~(6)、更に軽量化を行うためには(3)~(4)も行うなど。
(5や3~4は2より先に行っても良いはず。)

(1)まずPC用プロジェクトをコピーしてQuest用プロジェクトを作成する。
(2)VRCQuestToolsを使って、ダイナミックボーン等を削除する。
(3)ポリゴン数を削減する。
(4)メッシュ・マテリアル数を削減する。
(5)プロジェクトをAndroid対応(=Quest対応)に変換する。
(6)アップロードする。


ただ、PC用のアバターをQuest対応してもまずQuest基準としてはVery Poorになってしまい、QuestでのVeryPoorはShow Avatorしなければ表示されないというのがあります…。Quest対応版が用意されているアバターなら(2)~(4)などを行うよりそちらを使用して(5)~(6)でアップロードする方を推奨。

そしてQuest用アップロードをしても、Quest/Quest2等のスタンドアローンでVRCを実行できるHMDを持っていない場合、その確認ができないという問題点が存在する…。

(1)プロジェクトコピー

エクスプローラを使って、Unityプロジェクトフォルダ配下にquest用フォルダを作成する(下記例だとPCフォルダ名+アンダーバー+quest)。
PCプロジェクトフォルダの下のLogsフォルダ(あとあるならTempフォルダ)を除いて全てコピーし、quest用フォルダに張り付ける。
Unityを立ち上げてquest用フォルダを開けばPCプロジェクトのままのプロジェクトが開かれます。
(※PC用のプロジェクトをそのまま(5)の変換しても良いが、またPC用にアップロードしたいときは、Windows用変換で戻さなくては行けなくなる。)

画像1

画像2

(2)VRCQuestToolsを使って、Questで使えないものを削除する。

以下のBOOTHのツールをプロジェクトにインポートし、メニューの[VRCQuestTools]-[Convert Avator for Quest]よりQuest対応したいアバターを指定し、変換ボタンを押下する。
Hierarchy内に対象のアバターのコピーが作成され、そのコピーQuestで使えないものが削除された状態になります。
これを行えばQuest対応として最低限はOK。

画像3

(2.5)Questのアバターパフォーマンスランクについて

下記ページにある通り、QuestでPoorランクまで落とすためには20000ポリゴンである必要があり、通常のPCアバターではまず難しいライン。
QuestではVeryPoorのアバターはデフォルトでは表示されず、Show Avatorしなければ表示されません。

画像4

(3)ポリゴン数削減

もし行う場合。取れる方法を取って頑張るしかない。が、PC用アバターをQuest用Poor基準の2万に納めるのは中々至難の業。せめて①ぐらいはしておきたいか。

①Quest向けに要らない衣装などはHierarchyから削除するか、InspectorのTagをEditorOnlyにする(EditorOnlyにした対象はVRCにアップロードされない)。
②BOOTHのMeshDeleteWithTexture等を使って服の下の身体など表示が要らない部分を削除する。

③メッシュ間引きツールを使う。
 UnityAssetStoreのMesh Simplify(有料)など。ただ使ってみた感じ、ポリゴン欠け?が生じたりであんまりうまくいかない…。Blenderが触れるならそちらでポリゴン削減もできるようだがそっちは全然わからない。

(4)メッシュ・マテリアル数削減

AvatorToolsのSkinnedMeshCombinerを使って、メッシュを結合する。
メッシュを結合する事で、複数メッシュで使っているマテリアルが共通で使えるようになるので、結果的にマテリアルも削減されることが多い。
(例えばスカートと上着が別メッシュになって居て同じマテリアルAを使っている場合、スカート側と上着でAマテリアルをそれぞれ使っていて、マテリアル数は2となるが、メッシュを結合することでそこのマテリアル数は1となる)

(5)プロジェクトをQuest変換する

VRChat SDKタブのSwitch Build Target to Androidを押下する。のですが、「Androidビルドに切り替えますか?と聞かれてConfirmを押す動作」に入らない場合は使用しているUnityにAndroid用SDKが入っていない状態です。[File]-[Build Setting]メニューからAndroidを選んでOpen Download Pageを。頑張って。

画像5

画像6

※この画像はiOS用SDK。(私のUnityには既にAndroid SDKが入ってしまってるので、ボタンを見せるためにiOSのスクリーンショット)

(6)アバターをアップロードする

後はいつも通り「Build & Publish for Android」を押下する。
Blueprint IDはPC用にアップロードしているIDと同じままアップロードすること。ここでBlueprint IDをQuest対応したのとは別のアバターのIDを指定して、そちらのアバターでもこのQuest対応したアバターを表示させるなども可能。

画像7

参考サイトなど

多少か古い情報や、今回意識しなくて良い情報など混じっているが、上記でわからない場合などに参考にできるかも。


この記事が気に入ったらサポートをしてみませんか?