分からないことや間違っていること、やってはいけないことあったらTwitterID: @Purane_vrc まで教えてくれるとありがたいです。記事を修正します。
DM送れなかったら一時的でもいいので相互フォローも大丈夫です。
記事が古かったりして使えない情報があったときも、教えていただけるとありがたいです。
VRChat Quest対応
身近にQuest単機がいてQuest対応したい、またはQuest単機でPC版しか対応していないというアバターをQuest対応したいという方に向けた記事です。
下の記事はめんどくさい人向けの記事です。表情がおかしくても見えればいいんだ、完璧でなくても見えることが大切なんだ、という方は下の記事の方が参考になると思います。
参考記事【【VRChat】PC版アバターを大体10回クリックしてQuest対応させる】
-前提条件-
PC版でアップロードしたことがある。
(Quest版でアップロードしようとしたことがあるが、エラーが出てしまった。)
※エラーの種類について
最初に
そもそもの話ですが、Questは単体でVRChatができます。
PCに繋がなくてもできるというのはとてもすごいことだと思います。
しかし、PCとQuestでは性能的にPCの方が上なので、クエストだと重たいアバターではラグくなってしまいやすいです。
そのためQuestでは負荷が掛からないようにアップロード時に制限がかけられています。
その制限を満たすようにすることを”Quest対応をする”といいます。
制限を満たすとアップロードできるようになります。
いくつか制限には基準がありますが、VeryPoorの基準を満たすようにします。
VetyPoorの基準は、Questでアップロードできる ぎりぎりの基準です。
下の写真は「アバター導入方法 Step.ExtraB : Quest対応アバターアップロード」より使用してます。
※Mediumとか、VeryPoorって何?
アバターランクをVeryPoorでアップロードするには、以下の制限を満たす必要があります。
・シェーダーはVRchat/Mobileのみ
・アバター容量:10.00MB 以内
・PhysBonesコンポーネント の数 8以下
・PhysBoneコライダー の数 16以下?
以下に、この4つについて説明しているので、なんとなくで読み飛ばしてしまって大丈夫です。
使うツール
- VCCの ”GestureManager” (GestureManagerは表情の確認に使います。あると便利です)
※GestureManagerの導入方法 - VRCQuestTools
- MeshDeleterWithTexture
注意事項
着せる服の数について
Quest対応するのにAvatarに着せる服はなるべく1セットのほうが良いです。1アバター1衣装です。
なぜなら、Questはアップロードするのに容量の制限があり、10.00MBまでのアバターしかアップロードできないからです。何着もアバターに入れていると、容量を超えてしまいます。基本は1つのアバターに1つの服を着せると良いです。
Quest対応で使えないものについて
Constraint(コンストレイント)呼ばれるものや、マシュマロPB、liltoonの距離フェードなどのQuestでは使えないものがあります。
処理負荷が重くて使えないものがあるんだ、という認識で大丈夫です。
Quest対応の手順
やることは全部で2つです
- VRCQuestToolsを使う
- 頬染めを削除する
今回、KarinちゃんをQuest対応していきます。
まず、VCCでプロジェクトを作り、アバターとシェーダーと、以下の2つを導入(インポート)します。
- VRCQuestTools (これを使うとエラーが何個か減ります)
- MeshDeleterWithTexture(おかしな表情を整えるの使います)
VRCSDKが表示されている段と同じ段にVRCQuestToolsとGatoToolsが追加されていれていれば大丈夫です。
・VRCQuestToolsを使う
”シェーダー”と”揺れもの(VRCPhysbone)”をQuest対応します。
・シェーダーについては説明を割愛します。VRCQuestToolsが自動でQuestで使えるものに変換してくれます。
・揺れものについてですが、Questは髪やスカートなどの”揺れもの”の数に制限があります。
例えば、アバターの中で、
『揺れる箇所が髪や服(スカート)、胸などの中で1か所しか揺らせないといわれたらどこを揺らしますか?』
Questでは、合計8か所まで揺らすことができます。
VRCQuestToolsでは
・シェーダーをQuestで使えるものに自動で書き換えてくれます。
・アバターに入っている揺れ物の数を自動で検出してリスト化してくれます、あなたはその中から8か所手動で選び その他を消すという作業をする必要があります。
結局のところ、 VRCQuestToolsを使うとアップロードできるようになるんだ! ということです。
それではやっていきましょう。
VRCQuestToolsをクリックして、さらにConvert Avatar for Questをクリックして開きます。
"アバター None (VRC Avatar Descriptor) " と書いてあるところにHierarchyの中にあるKarinをクリックしてつかんで "アバター None (VRC Avatar Descriptor) " と書かれているところに持っていって離す(ドラック&ドロップします)
Karinちゃんは全部で39個の揺れ物が設定されています。この中から8つを選びます。
まず"すべて残す"をクリックしてすべてのチェックを外します。
・選び方について
自分が選びたいものを残します。私は髪とケモ耳と尻尾を中心に残しました。
どれがどこに対応しているかは、例えばEar_L(PhysBone)と書いてあるところをダブルクリックすれば、Scene内のEar_L(PhysBone)が選択されます。
そうしてひとつずつ見ていって自分の残したい揺れる設定を残しましょう。
8つを選び終わったら、一番下の"選択していないコンポーネントを削除"を押します。
私はカリンちゃんだったら以下の8つを残します。
Scene内のKarinちゃんはちょっと変換前のKarinちゃんより色が薄くなってしまってます。
原因に心当たりはあるのですが、説明するのと直すのが難しいので割愛します。
・頬染めをクエスト対応する
透かしの表情を消します。PCからだとこのように見えている表情が、
Questからだとこんな風に見えているかもしれません。
Questでは、この頬染めが透けなくなって四角く見えてしまっているのを修正します。
Questでは、半透明に透けるという表現ができません。
-補足-シェーダーとは?
シェーダーがなかったら、このようにアバターがピンクになってしまいます。
いわゆるマテリアルエラーのピンク色です。
シェーダーは、色や影の描写に関する部分の設定という認識で大丈夫です。
-頬染めの表情自体を消す(MeshDeleterWithTextureを使う)-
MeshDeleterWithTextureをインポートする
VRChatSDKの4つ右のGatoToolをクリックして、さらにMeshDeleter with Textureをクリックします。
すると、MeshDeleter with Textureの画面が出てきます。まずは、言語設定をEN(英語)からJA(日本語)に変更しましょう。
変更できた画面がこちらです。次に頬染めの表情は、▶Karin(Quest)の中のBodyに入っています。
Bodyをクリックして掴んで、None(Renderer)のところに持っていって離します。
すると顔の展開図が表示されます。透かしの表情はここにはありません。だいたい透かしの表情はまとまって1つになっています。
テクスチャ(マテリアル)のKarin_Face_from_...と書かれているところをクリックして、Karin_Alpha_from_...と書かれている方に切り替えます。
すると頬染めの表情が入っている方のテクスチャの方に切り替わります。
描画ツールの"選択"をクリックします。
そしたら、くるっと頬染めの展開図の部分を囲みます。
選択範囲を塗るを押します。
続いて、メッシュを削除を押します。すると、頬染めの部分が消されました。
残っている部分は涙の展開図で、透けなくても大丈夫と思ったのでそのままにしています。
以上で頬染めのQuest対応が完了です。
Karinちゃんでないアバターについては名前が違うと思うので対応する箇所を見つけてください。
表情の確認
表情の確認には、GestureManagerを使います。
GestureManagerは、VRChatSDKの左隣にあるToolsをクリックすると"Gesture Manager Emulatar"出てくるので、もう一度クリックしてください。
クリックするとHierarchyにGestureManagerが追加されます。
GestureManagerを起動する方法は二種類あります。
再生ボタンを押してHierarchyにあるGestureManagerをクリックするか、
もしくはHierarchyにあるGestureManagerをクリックしたあと
Inspector内の"Enter Play-Mode"をクリックするかです。
この画面になっていれば大丈夫です。左の映像がGameのほうの画面に自動で切り替わるので、Sceneを押しなおしましょう。
GestureManagerの使い方
Inspector内の下の方にエクスプレッションメニューがあります。そこでVRChat上と同じように操作することができます。
そこでLeftのFingerPointを選択するとKarinちゃんの左手に入っている指差しの表情になります。
頬染めの表情を確認します。
青色の再生ボタンを押して再生モードから戻るのを忘れないようにしましょう。
アップロードする方法
アップロードするときは、PCのアバターはPCのアバターでアップロードして、
Quest対応したアバターはQuest対応したアバターでアップロードする必要があります。
つまり、二回アップロードする必要があります。
そのとき、「PCのアバター」 と「クエスト対応したアバター」を同じ識別番号でアップロードする必要があります。
-補足-BlueprintIDについて
例えば私が作ってアップロードした このかぼちゃのアバター識別番号は「avtr_64a1b3a2-30bb-4803-83c3-3f7ff6394578」です。ちなみにこの番号は基本的に他人に知られてはいけません。
この番号を他人が知っていると、アバター情報を盗むことができるからです。
【第1回】ワニでもできる!モデリングforVRChat - Blender2.8さわってみよう
同じアバターとしてアップロードするには、このBlueprintIDを二つとも同じにしてアップロードする必要があります。
-BlueprintIDの場所について-
アバター全体を選択します。するとInspectorに詳細が表示されるので、下にスクロールしていくとBlueprintIDがあります。このアバターはまだアップロードしていないので、なにも表示されていません。アップロードするときに自動で付与されます。
アップロードの方法
PCの方でアップロードした後Questの方でアップロードする順番は守ったほうが良いです。
-PCの方でアップロードする
SDKを開いてアップロードしましょう。
そしたらSDKのパネルの方から"Switch Build Target to Android"を押す。
または画面左上のFile、Build settingの順にクリックしたら切り替えができます。
するとこの画面が表示されるので"Android"をクリックして、"Build"を押します。
これでSDKを用いてアップロードすればQuestでアップロードします。
ただし、BluePrintIDは同じにします。
Hierarchy内にある"Karin"のPCのアバターにBlueprintIDが付与されているはずです。
"Karin"に付与されたBlueprintIDをマウスで選択して、コピーしましょう。そしたら、"Karin(Quest)"の中の入力できそうなところに、入力しましょう。
(BlueprintIDがうつってますが、このIDは無効なものにしたので大丈夫です。)
これを
こうしてペーストして"Attach (Optional)"を押します。
するとこうなります。同じ識別番号が入力された状態です。
この状態でアップロードすれば問題ないです。
細かい補足説明を除けば、説明は以上で終わりとなります。
アップロードできない場合はこちらや補足説明を見てみてください。
※エラーの種類について
※Karinちゃんの場合、すべて作業をしたのにアップロードボタンが押せない
この記事が役に立ったならうれしいです。
補足説明もぜひ読んでみてください。
補足
補足1その他便利なツールの紹介
- VRCAvatarEditor(表情を自分で作成するときに使います)
- Kisetene(服を着せるのに便利です)
補足2unityのエラーについて
赤い八角形のビックリマークがあるとアップロードができません。
丸いビックリマークであったり、三角のビックリマークがあってもアップロードはできます。アップロードするためには、この赤い八角形のビックリマークのエラーを解決し、なくす必要があります。
エラーの種類について
・Avatar uses unsupported shader 'Hidden/lilToonOutline'. You can use the shaders provided in 'VRChat/Mobile' for Quest avatars.
→シェーダーのエラーです。Questでも使えるシェーダーに変えなくてはいけません。
基本的にはVRCQuestToolsが自動で変えてくれます。
・Phys Bone Collision Check Count: 164 (Maximum: 64, Recommemded: 0) - This avatar has too many VRCPhysBoneColliders. All PhysBone colliders will be removed at runtime.
→Phys Bone Colliderとは、髪などの揺れ物が体の中を貫通しないようにするための設定です。それの数が64個を超えるとQuestでアップロードできません。そういう感じのエラーです。
・Phys Bone Components: 39(Maximum: 8, Recommemded: 0) - This avatar has too many VRCPhysBone components. All PhysBone components will be removed at runtime.
→揺れ物の数が8個を超えるとアップロードできないというエラーです。
他のエラーの種類を見かけたら教えてくださると嬉しいです。
【最初にもどる】
補足3Karinちゃんの場合説明をすべてやったのにアップロードできない
赤い六角形のエラーは、PhysboneColliederが多いので減らしてくださいと言っています。
VRCSDKの右隣のVRCQuestToolsをクリックして、Remove Physbonesをクリックします。
Karin(Quest)をつかんで、None(VRC Avatar Description)に入れます。
するとPhysBones Collidersが表示されます。PhysBones Collidersは髪の毛とかが体の中とかを貫通しないようにするための設定です。
髪の毛を中心に残したのでお尻のPhysBones Colliderは要らないかなと思ったのでHipsのチェックを外して、"選択していないコンポーネントを削除"を押します。そしたらエラーが消えてアップロードできるようになっているはずです。
-補足4-容量が10.00MBを超えてアップロードできない。
この場合、テクスチャを圧縮するか、いらない服を消すか、AvatarOptimizerを使うと軽量化できるみたいです。
いらない服を消す、AvatarOptimizerを使う、テクスチャを圧縮するの順番におすすめします。
テクスチャを圧縮する
ProjectからTextureのところまでいって、そのうち一つをクリックします。
Defaultが全体の設定、真ん中がPCの設定、右がQuestの設定です。
Questの設定をクリックします。
Override for Androidにチェックを入れて、Max Sizeを適度に下げて、Applyを押します。
ちなみにMax Sizeを下げすぎるとこうなります。
顔だけMax Sizeを32にしました。解像度が悪くなります。解像度は下げすぎない方がいいですし、
それに、テクスチャを圧縮するなら服とかのテクスチャのほうがいいと思います。
いらない服を消す
いらない服とはどういうことかというと、例えば服を買って着せ替えをしたときなどです。
こちらは、デフォルトのカリンちゃんの服とBoothにあるプリンこうぼうさんのグレーズドピンクです。
ヒエラルキーの階層は、画像の通りとなっています。
kiseteneという自動で服を着せてくれるツールを導入して服を着せました。
デフォルトの服であるpullover、skirt、knee-socks、shoesの四つは服が重なってしまうので非表示にしています。
このままクエスト対応してアップロードすると、容量が10.00MBを越えてアップロードできないかもしれません。
そんなときには非表示にしている服を削除してください。
非表示にしただけでは完全には消えておらず、容量を無駄に使ってしまいます。
非表示にした服を消しました。
AvatarOptimizer
二つ紹介します。どちらもとても役に立ちます。
1.Avatar Optimizerの自動最適化がすごいので全人類使って欲しい
2.【AvatarOptimizer】非破壊でメッシュやPhysBone統合が可能なアバター軽量化ツールの話(VRChat,Unity)
こちらの方はverypoorよりのpoorアバターをmediumアバターにすることに成功しています。
たぶんPCアバターの方の基準だど思います。
補足5アバターランクについて
下の写真は「UnityだけでVRChatアバターのVeryPoorを脱出する方法」より、使用しています。
これは、VRChatが決めた、アバターの処理負荷の重さを表すランクです。
Excellentが一番軽く、VeryPoorが一番重いです。重いとラグくなります。
販売されているアバターはだいたいverypoorなのでアバター容量が100MBとか超えなけければ気にする必要はないです。
アバターにもよるのですが、私が使っているアバターは15MBぐらいにしています。軽い方です。
PC版とQuest版で分類される基準は異なります。例えば、PCだとMediumだけどQuestだとPoorになってしまったり、PCだとPoorだけどQuestからだとVeryPoorになってしまうなどがあります。
Questの方の基準の方が厳しいということです。
相手からデフォルトで表示されるか否か
Questだと、Medium以上でShowAvatar等 何もしなくても表示されるようになります。
Poor以下だと、ShowAvatarをして相手に見えるようにする動作をおこなってもらう必要があります。
ただ、アバターランクをMediumにしようと思うとすごく大変なので、覚悟を決めて挑んだ方がいいです。
補足6_VRCQuestToolsにいれたあとのカリンちゃんの髪の色がおかしい
これは、カリンちゃんの髪の設定にQuestでは使えない設定が含まれていたためです。
VRCQuestToolがその使えない設定を削除したため、色が変わってしまったということです。
その設定とは、色のメタリック(金属光沢)の設定です。驚くかもしれませんが、カリンちゃんの髪の色はメタリック(金属光沢)の数値が 1 で設定されています。最大で 1 で、最小で 0 です。VRCQuestToolを使うとメタリックの値を 0 にされます。
元の色に戻すには色改変をしなくてはいけません。
補足7_色改変のやりかたについて
色改変のやりかたはいろいろありますが、ここでは大枠だけ紹介しておきます。
1.GIMPを使う
フリーソフトです。色改変だけできます。
2.Clip Studio を使う
有料です。私が買ったときは5000円でした。
ただ、これは絵や漫画を描く人が使うソフトです。だいたい何でもできます。
3.Unity だけでなんとかする。
簡単にできますが、元の色から変えすぎると単色になるイメージです。
調べて一番上にでてきた記事ですが貼っておきます。
上の三パターンについて分かりやすく説明されています。
【初心者向け】VRChat用アバターの改変方法:色替え編(3パターン)
---詳細な情報未記入---
gesturemanagerをaddする方法
右側の画面を下にスクロールしていくとGestureManagerがあるのでAddをクリックします。
著者はよくわかってないですけどAvators 3.0 Managerも追加しています。
メモ
シェーダ名VRCHAT/MOBILE/PARTICLE/MULTIPULYは透明になる。
つまり、不透明表現はできないが、メガネなどでVRCQuestToolによって曇ってしまったような感じになるのをシェーダを上のものに変更することで透過率100%、屈折率0%にすることができる。