【VRChat】アバターをとりあえずQuest対応してみる
注意
記事の内容がちょっとだけ古いです。
VRCQuestToolsが更新されて最新のものは見た目とかちょっとだけ変わってます。
TL;DR
VRCQuestTools通して、透過するメッシュをMesh Deleterで消してアップロードする。これだけで何するかわかる人はこの先特に読まなくて大丈夫だと思います。
記事説明
この記事は、普段使っているアバターをQuest対応する手順を紹介する記事です。
ここでいうQuest対応とは
・Performance Rankは問わない(VeryPoorでも良い)
・Show Avatarすれば見える
・PCで見るのとある程度同じように見える
を目標にします。
事前準備
・PC版の改変を済ませておく
・アバターに服が複数入っている場合は、1つにしておく(1アバター1衣装)
・Android SDKをインストールしてAndroidビルドできるようにしておく
・VRCQuestToolsのダウンロード & インストール(VCC経由でもいいよ)
・MeshDeleterWithTexture betaのダウンロード & インストール
実作業
今回はトラスちゃんを使います。
1. VRCQuestToolsでマテリアルをMobile/ToonLitにする
自力で対応をしたい人はそのまま自分でやっても構いません。
とりあえずマテリアルをQuest対応させます。
ASTCでテクスチャを圧縮 -> 押してOK
Tools -> VRCQuestTools -> Convert Avatar for Androidを選択します。
新しく出てきたウィンドウのアバターの部分に、変換したいアバターをhieralchyからドラッグアンドドロップします。
ドラッグアンドドロップまでできたら、「変換の設定を始める」を押します
上の画像のようになったら、変換を押します。
Quest対応シェーダートラスちゃんになりました。
なんか出ましたね。
PhysBoneが多すぎるって言われているので次の手順ではPhysBoneを削除します。
2. PhysBoneを削除する
PhysBoneをAndroidで許容されている8つまで削除します。
削除する前に残すPhysBoneを選びましょう。
優先度は
・髪
・大きく動くもの(尻尾とか)
・顔周り(頬とか)
・その他
です。
今回は髪と頬のPhysBone以外消します。
削除するPBのチェックを外したら、「選択していないコンポーネントを削除」を押します。
削除できました
一旦この状態でUnityの再生ボタンを押して揺れを確認します。
再生ボタンを押したらGameビューに切り替わるので、Sceneを選択しなおします。
そのあと、対象のアバターを選択し、動かしてみて見た目に問題ないか確認します。
問題なければ、もう一度再生ボタンを押してPlayモードを終了し次の手順に移ります。(Playモードを終了し忘れると、この後の作業が戻っちゃいます。)
3. 透過メッシュを削除する
Mobile/ToonLitシェーダーは透過できないので、透過マテリアルが使われているメッシュ(顔のメッシュの頬染めなど)を削除します。
まずはMeshDeleterを起動します
GatoTool -> MeshDeleter with Texture のように選択します
起動しなければ、Androidビルドになっていると思うので、プラットフォームをWindowsに戻してください。
起動できたら、MeshDeleterのRendererに、透過マテリアルが使われているメッシュをドラッグアンドドロップします
ドラッグアンドドロップしたら、透過マテリアルのテクスチャに切り替えます。
右のTexture(material)を選択するとドロップダウンリストが出てくるので、そこから切り替えます。
透過マテリアルが使われているメッシュのUVが表示されていると思うので、その場所をペンで塗りつぶし、Delete Meshで削除します。
綺麗にメッシュが削除できていれば、右のTexture(material)に表示されなくなります。
Gameビューに戻り、無事メッシュが削除できているか、見た目に問題ないか、頬染めShapeKeyを動かしても見た目に変わりないかを確認します。
他に透過マテリアルが使われているメッシュがあれば、同様の手順を繰り返します。
問題なければ、次の手順に移ります。
4. 一旦PC版でアップロードして確認してみる
まだAndroidビルドは行いません。
変換元のアバターとは違うIDで、PC版としてアップロードをしましょう。
ここで一旦表情の確認などをします。
透過で変になる表情などがあれば、3の手順をもう一度確認します。
問題なければ、次の手順に移ります。
5. Androidビルドを行う
VRChat SDKのBuilder画面から、Selected Platformの変更を行います。
Selected Platformを押すと、ドロップダウンリストが出てくるので、「Android」を選択します。
「Confirm」を押してビルドターゲットを切り替えます。
Selected PlatformがAndroidになっていればOKです。
Quest対応アバターとしてアップロードするアバターを選択します。
Quest対応するには、変換元のPC版と同じIDでアップロードします。
かめ山さんのツイートがここら辺の概念は分かりやすいかもです。
PC版のPipeline Managerに設定されているIDをコピーし、Quest対応版に貼り付けてAttachします。
もし、Quest対応版にIDが既に設定されている場合は、DetachしてからPC版のIDをコピペしてください
上記完了したら、ちゃんとPC版と同じアバターとしてアップロードしようとしている事、Selected PlatformがAndroidになっているを確認して「Build & Publish」を押してアップロードします。
無事アップロードできました。
アバターの詳細画面でPC Onlyではなく、Any PlatformになっていればQuest対応OKです!
あとは実際にQuestで入って問題が無いか確認しましょう。
終わり
慣れればPlatformの変更時間除いて15分程度でできるようになります。
みんなQuest対応しようね。