VRMのアバターをQuest2用にVRChatへアップロードする方法

# はじめに
Cluster用に作成したリアルアバターの[ガチ本](https://hub.vroid.com/characters/612726967960673858/models/4183815573896732931)をQuest2用にVRChatへアップロードする方法をまとめました。VRM形式のアバターなのですが、Quest2用に5000ポリゴン以下にする必要があり、Blenderでのポリゴン削減やリグの修正が面倒だったので、Unityだけで完結したく、お金（Mesh Simplifyを用いて）で解決しました。


# システム環境
- Windows 10
- Oculus Quest2
- Unity 2018.4.20f1
- VRCSDK2
- VRM Converter for VRChat 

# 導入
1．Unityプロジェクトを作成します。

2．VRCSDK2をインポートします。

3．[【¥0】 VRM Converter for VRChat](https://booth.pm/ja/items/1025226)のVRM Converter for VRChat-24.0.2 + UniVRM-0.61.1.unitypackageをインポートします。

4．VRMアバターをProjectビューへD&Dします。ガチ本の[リアルアバター](https://hub.vroid.com/characters/612726967960673858/models/4183815573896732931)を使用しています。

5．VRMアバターのプレハブをHierarchyビューへD&Dします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/28deca80-66be-7170-3b76-4cfae719627a.png)

<!--
6．VRC_AVATAR DescriptorをAddComponentし、View Pointを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/846d07c2-c7fc-e28b-228b-1f231733e575.png)

7．VRChat SDKにサインインします。Builderを開き、Switch Build Target to Androidをクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/66579a6a-548d-1a75-48c1-e2e67f468e3c.png)

8．cluster用に作っていたのでエラーが下記のようにでます。AutoFixできるものはクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/152d3a1b-8982-f23a-fcda-bc1c9f02bf88.png)

9．VRChat/Mobile/の中からモデルのテクスチャを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/a2d73615-6567-e856-76aa-62eefff9fac4.png)

10．Quest2用にポリゴン数を5000ポリゴン以下に削減します。Mesh Simplifyを用います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/8f13c02f-392d-a918-2ba6-451c40cba094.png)

11．5000ポリゴン以下になるようにVertex %を設定し、Compute meshをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/4fd4a931-29b5-e3eb-3954-a7cc6cdde32c.png)

12．なんじゃこりゃああ！！！顔だけは削減しないように工夫する必要がありますね… 取り急ぎこれで。やっぱりBlenderへ一旦…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/fc2a4b95-10a9-082f-6c2a-f055c486af01.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/0ac670cf-a43e-070b-3747-4f220b9ef2a8.png)

-->

6．VRM->Duplicate and Convert for VRChatをクリックし、VRMアバターをVRChat用に変換します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/60370eed-88d7-87f3-0c40-7eee263a131d.png)

7．複製して変換をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/619fe786-2008-397b-1f0d-bd8a9ffa9e18.png)

8．VRChat SDKのControl Panelを開き、VRChatにサインインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/55d9c886-8ca1-8cad-9adf-cb96974fef4b.png)

9．Builderを開きます。Windows用だと問題なくそのままアップロードできます。ポリゴン数は3万ポリゴン程度です。Quest2用にアップロードするため、Switch Build Target to Androidをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/6cdcf604-c4aa-e4a5-0228-c40e6603ae26.png)

10．ポリゴン数が多すぎる警告が出ています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/8a310dbf-947e-c961-a960-6a6d7fbca4b3.png)

11．Quest2用にポリゴン数を5000ポリゴン以下に削減します。Mesh Simplifyをインポートします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/8f13c02f-392d-a918-2ba6-451c40cba094.png)

12．BodyにMesh SimplifyをAdd Componentし、5000ポリゴン以下になるようにVertex %を設定し、Enable Prefab Usageにチェックを入れ、Compute meshをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/5edae0a6-c4d8-1b62-76f3-247d07a377fe.png)

13．なんじゃこりゃああ！！！顔だけは削減しないように工夫する必要がありますね… 取り急ぎこれでww やっぱりBlenderか… 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/81f70859-b90a-0367-71aa-26096fb8880d.png)

14．アップロードしようとするとMesh Simplifyがあることでエラーが出てしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/8a67359d-e2c1-5d83-5506-aef360cfe9be.png)

15．Mesh Simplifyを用いたプレハブは一旦削除して、ポリゴン削減する前のプレハブをHierarchyビューに持ってきて、Body->Skinned Mesh Renderer->Meshを生成されたmesh_Body-xxxxに置き換えます。あとBodyについてるAnimatorをRemove Componentします。これでAnimator Count:2の警告がなくなり、Overall Performance:Excellentになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/1fd4d2e2-e3b4-904f-0cb1-c5db433a96a3.png)

16．VRC Avatar DescriptorのView Positionを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/0a7b41a0-3518-9c11-39d1-bc43349678e0.png)

17．VRChat SDKのControl Panelを開いて、アップロードしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/d44178a0-b930-252e-d993-42dae684650d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/a27153da-31fa-f96f-4484-2c6ad052f9cf.png)

18．Quest2でVRChatを起動し、アバターを確認します。
![122502595_675025096773945_6506687710201066345_n.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/a57cd2f1-6098-4a4a-1c4f-52006ebf91ed.jpeg)

できました！

# 追記
19．顔だけポリゴンを残すために、Vertex Relevance Modifiers->Add New Sphereをクリックし、青透明の球体が顔に入るようにSphere情報を変更します。Relevanceを1.0にして、Compute Meshをクリックしましょう。すると、顔だけ保持されていい感じになりました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/8e9a9598-ca7a-5822-a3f6-3577e5df80c8.png)

20．逆はこちらw
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/214e5e24-5742-e126-bada-b11718bca41d.png)