見出し画像

【VRChat】超簡単(?)アバターのごり押しQuest対応化【Unityあんまわからん人向け】


はじめに

調べれば出てきたりはするけど情報の山に埋もれて意外と出てこないアバターのQuest対応化、「難しいんじゃないの?」という問いに対し「いいえ、とても簡単で単純な作業です」と答えておきます。
ただし、こちらでやるVRChatアバターのQuest対応化はかなり「ごり押し戦法」ですので、必ずアバターやマテリアル、プロジェクトのバックアップを取ることをオススメします(元に戻すのが大変なので)

何をすればQuest対応化できるのか

普通のアバターでも改変したアバターでも基本的に「ほぼ同じ見た目のまま」対応化できますので手順を説明していきたいと思います。

まずは通常通りquest対応化させたいアバターを事前にPC版としてアップロードしておきます。
今回はポンデロニウム研究所の桔梗ちゃんを使います。


次に「Selected Platform」を押して「Windows」から「Android」に切り替えてください。


quest対応環境用にまず再読み込みが行われます、プロジェクトに入れているものが多いほど時間がかかりますのでじっくり待ちましょう。


沢山のエラーが出てきます、落ち着いてください…単純な話です。

AutoFIxできないような角ばり赤丸エラーが沢山出てきたと思います、Fixできちゃうところはしちゃいますがそれ以外の項目、実は多いように見えますが少なく単純です。


こちらの項目は「シェーダーがquest対応ではない」という内容。
今現在の国産アバターですとLiltoonが多めですが、対応していませんのでこれを修正します。


こちらの項目は「PhysBoneの数が多すぎる」という内容。
最低でもカッコ内に記載されている数までコンポーネントを削っていきます。
アバターやギミックによってはそのほかにもエラーが出てきますが、たいていはコンポーネントの数が多いだけなので諦めて削ればOKです。

ではエラーを修正していきます。

っとその前に・・・。

「めちゃくちゃベリプってるけど大丈夫なのか?」
安心してください、平気です。
quest単機ユーザーにはベリプでアップロードしても他のユーザーからはデフォルトで非表示でフォールバックアバターが表示されるので、アバターを表示してもらうことで他のユーザーも見れるようになります。
自分から見た時は最初から表示されていると思います。


事前に対応化させたいもののマテリアルやパーティクルなどをすべて


マテリアルを左クリックしてCtrl+Dなどを押してコピーしてバックアップを取っておいてください。
何かあってもとに戻す時に「あれ?このマテリアル設定だったっけ?」とならずに済みます。
というのも、「アバターに割り当てられているLiltoonシェーダーをそのままToonlitに変える」だけなので、手作業で元に戻した際に透過やアウトライン等が消えていたりするのでどの設定だったか思い出しやすくなります。
やること自体マジでゴリ押しで戻すのが大変なので大事。

では、いろいろ修正するにあたってダウンロードとインポートしてほしいものがあります。


「lilAvatarUtils」
こちらの画像で言うと右上当たりのところからダウンロードできます。


「Avatar Optimizer」
Boothからダウンロードできます。


「FaceEmo」
Boothからダウンロードできます。

上記3点をダウンロード、インポートしたらアバター編集に戻ります。

ゴリ押し対応化開始!!


アバターを選択


アバターのinspectorから「AAO Trance And Optimize」を追加します。
aaoとかで検索かければ出てきます。
これがあるとちょっとした軽量化作業をビルド中に行ってくれます。


「Window」→「_lil」→「AvatarUtils」を開きます。


None(Game Object)にscene上のアバターのPrefabをドラッグドロップするなりして登録してください。


アバターに割り当てられているシェーダー、マテリアルに使われているテクスチャが出てきます、見てもらうと分かりますが「解像度が高すぎて赤文字」になっています、画質はとても良いのですがその分容量が重く、現在のVRChatではアップロード容量に制限がかかったのもあり、その容量を抑えるためにもこちらのツールで解像度自体を下げていきます。
マップやマスクやマットキャップなどはquest対応に当たって使わないので別に下げなくてもいいですが、一応。


Max Resolutionを下げたいところまで下げたら


ウィンドウ左上の「Apply」を押して解像度を変換します。


変換が終わった後、Applyの上部にある更新アイコンを押してください、反映された後の解像度や容量を確認できます。


こんな感じになりました、ガッツリ容量が削れました。
元に戻したり修正する場合は同様の手順でできますので、都度調整してください。


実際にテクスチャ解像度を落とされた桔梗ちゃん、正直1024px程度であればあまり変わりません。
512pxまで下げてくると粗が目立つのでお好みでどうぞ。


ここからはアバターのマテリアルのシェーダーを変えていきます、変えていきたいオブジェクトのメッシュのマテリアルを見て行きましょう。


こちらはBodyのinspector割り当てられているマテリアルです、
上から「顔に使われている照れ顔等の赤みのLiltoon透過マテリアル」
下の物は「顔に使われているLiltoonの輪郭線つきマテリアル」です。
これらを・・・。


「Shader」横のシェーダーボックスをクリックして「VRChat」の


「Mobile」の


「Toon Lit」をクリックして選択。


こんな感じ、他の対象のマテリアルも同様の手順で変えていきます。
なお、オブジェクトによってはこの手順で変更できないものがあったりするので、先ほどコピーしたマテリアルから変えてマテリアルをオブジェクトにドラッグドロップするなりで割り当ててあげてください、他のやり方なんて知らん、とにかくゴリ押しです。

パーティクルに関してはToonlitには変えず、Quest対応用のパーティクルシェーダーに変えるか、オブジェクトごと消してください、負荷軽減ってやつです。


こちらは全てToonlitに変え終わった桔梗ちゃんです、アウトラインやマスクやマップなどが消えて色見が変わっていると思います、アバターのメッシュによってはこの手順で上手くいかないものもあるので素直に諦めるか消すかMatcaplitとかで金属化とかにすればいいんじゃないかな・・・。


再びアバター自体をクリックしてみます、割り当てられているPhysboneやコライダーなど色々表示されるとおもいますが可能な限り削っていきます。

アバターによってはPrefab下にダイナミクスとしてPhysbone等が格納されていてそれを削除するだけで終わりなので楽なのですが、桔梗ちゃん等の場合はArmatureのボーンに直接PhysBoneコンポーネントが割り当てられているので、不要な揺れ物は消していきます。


「VRC Phys Bone(Script)」を右クリックして「Remove Component」を押してください。


この表示でOK、完全適当してコンポーネント自体をやっつけちゃってもいいですが元に戻せなくなる可能性があるからやめておこうね。

こんな感じで割り当てられているコンポーネントを消してQuest対応化の条件を満たす最低限まで削っていきます

「ところでPhysBoneを消すとどうなるの?」→動いたときの揺れ物が揺れなくなるので「カチカチに固まった感じになります」
ふんわりとしたものがカチカチになるので違和感がでちゃいますが、どうしても削りたくないものを除いては削ってください。


こちらが最低限のPhysBoneを削って見たもの、すべては削っていません。
前髪とケモミミとお胸部分の揺れ物は消しませんでした、これぐらいであれば全然OKです!


Validationsで割り当てられているコンポーネントが要件を満たしているのでエラーは無くなりましたが、このままアップロードしないでください。


アバターPrefab横の「Emo」をクリックしてFaceemoを起動して表情パターンを読み込んでください。


Faceemoを使った経験がある方は分かると思いますが、ジェスチャーで表情を細かく割り当てられ、まばたき等の有効無効設定もできるのでそこらへんもいじりつつ。
透過テクスチャがToonlitにしたことによりアルファ値が無くなったため「照れ顔等の赤み部分の表示がおかしなことになっているのが分かると思います。」


表情サムネイル右下のペンのアイコンを押して表情エディタを開いて修正していきます。


こちらでいうと「頬染め」のシェイプ値が原因でおかしなことになっているため、


スライダーを0にするかその右の×を押して無効化してください。
同様の手順で変なことになっている表情の対象シェイプを無効にするなりして修正していきます。


こんな感じで、アバターによってはかなり色みも失われてしまいますが諦めるか自分でテクスチャ編集して合成でもしてください。


MMDワールド等に互換を持たせるため「WriteDefaults オフ」にチェックを入れて(お好みで)右下の「アバターに適用」を押します。

アップロードします。

問題ないことを確認したら、プラットフォームはAndroidのままでアップロードします。
間違えてWindowsでアップロードしちゃわないように!!
もしアバターを別でコピーしていてアップロードする際はブループリントIDのお間違いのないように。


無事quest用としてアップロードできました、単機の方に直接ショーアバして確認してもらうか、ご自身でquest単機で立ち上げて鏡をご覧ください。


おまけ、もし非表示でフォールバック表示にされてもアバターを表示したいとかそういうのであればVRChatの公式ページからアップロードしたアバターのページに飛んで対象のアバターを選択してください。


Imposterを作っちゃいましょう、フォールバックアバターが優先表示されちゃいますが使っていない場合や相手がImposter表示してくれた場合は


かなりガビガビで表情も変わらないですがそれとなく再現されて表示されますよ!!


クロスプラットフォーム+インポスター対応になっていますね!
こんな感じでゴリ押しで頑張ってみてください。


こちらの記事もかなりのゴリ押しの勢いで書きました、おつかれさまでしたー!

最後に。

Xをよく覗いていると未だに「Quest化わからねぇよぉ!!」って声がかなり聞こえるため、記事を書きました。
同様の記事は複数存在するため、自分なりの方法でQuest対応化を試してみてくださいね!

桔梗ちゃんは良いぞ!


Q.「ところで元の戻し方については解説して無いけど?」
A.「時間ないので自分で頑張って。」

さようなら!

いいなと思ったら応援しよう!

まぐでる(INFJ)
心からのお礼で十分です、しいて言うならフォローやメタバースでのフレンド申請ください!!