VRoidアバターをVRChatのQuestへ対応させる
Vroidでアバターを作ったもののMeta Questで表示するとなると最適化や軽量化が必要です。
アバターをVRCへアップロードできる方向けの記事なのでVRoidやVRCSDK、Unityなどの説明は省いています。
おおまかに流れですが
Vroidから軽量化したVRMの作成
Unityでのマテリアルの設定
Unityからのアップロード方法
となります。
1.Vroidから軽量化したVRMの作成
軽量化も様々ですが今回はVRoidでこのような対応をしています。
不要な透過マテリアルを使用しているものを削除、調整
眉毛、まつ毛の統合
揺れもの削除
VRMエクスポートの設定
不要な透過マテリアルを使用しているものを削除、調整
これはのちにUnityからマテリアルを変更するため、透過の処理ができなくなる対応です。※後述します。
今回はアクセサリ、眼鏡のガラス部分は非表示にして対応しました。
必要に応じて設定を変更してみてください。
眉毛、まつ毛の統合
こちらも透過を使用しているので顔のテクスチャに書き込む形で統合しました。そのためVRoidの設定ではまゆげとまぶた、アイライン、目の周りのものは非表示にして肌にすべて書き込んでください。
髪も透過が使われてていることが多いのですが
その場合はBlenderなどDCCツールで調整など必要です。※後述します。
揺れもの削除
リボンなど揺れもののPhysBoneは削除。
VRMエクスポートの設定
VroidのVRMエクスポートから書き出しを設定。
VRCのQuest向けにPoor判定になる設定を見直します。
透明メッシュを削除するにチェック
髪 59
顔 100
体 77
衣装 100
マテリアル数を2に変更
テクスチャアトラス解像度 2048
にしました。設定は以上です。
都度数字の調整は必要ですがエクスポート情報のポリゴン数が15,000以下にしてください。
2.Unityでのマテリアルの設定
書き出されたVRMをUnityへ読み込みます。
ヘッダーメニューのVRM0からImport from VRM 0.xでVRMファイルを読み込みます。
読み込まれたPrefabを選択しVRM0のDeplicate and Convert for VRChatから変換をします。
Prefabを展開
Bodyを選択してinspectorのシェーダーをVRM/MToonから
変換したファイルのマテリアルをToon Litに変更します。表示されているマテリアルすべてに適用します。
この時顔がおかしくなったらテクスチャを調整してみてください。
目の周りのポリゴンが表示されている可能性があります。
3.Unityからのアップロード方法
上記うまくいけばそのままアップロードするだけです。
保存したファイルを新規シーンのHierarchyにドラック。
ヘッダーメニューのVRChat SDKからShow Control Panelを選択。
Show Control PanelタブをBuilderに切り替えてSwitch Build Target to Androidをクリック。
Build & Publish for Androidに変更されたらクリック。
Update AvatarからThis above〰にチェックマークを入れてUploadで完了です。VRChat SDKタブのContent Managerを見るとアップされていることがわかります。
お疲れ様でした。
その他エラーなど
VRChat SDKが以下のようになっているとアップロードができません。赤い!マークになっている箇所でエラーとなっています。
このケースはマテリアルの変更とPhysBoneの設定がおかしいといわれているので上記で記載しているマテリアルの変更、PhysBoneの設定を見直してください。
サムネイル
設定しないとT字でサムネイルが作成されるため必要があればサムネイルを調整しましょう。UnityでQuadを作成 3:2のサイズにしてマテリアルをはめ込みます。Build & Publish for Androidをクリックした後
Update AvatarでUpload Imageにチェック Sceneビューで位置やサイズを調整してみてください。
DCCツールでの調整
髪の毛先の部分は透過されているので目立つところをBlenderのナイフツールで削ります。
追記
Quest3のリリースも控えていますが根本的なところは変わってなさそうなので単体で動かすなら必須になるのでは?VRChatはモバイル版もリリースのニュースがあるのでまだしばらく対応が必要そうですね。
なおclusterなら特に削減がなく使えます。