【VRChat】Unity2019への移行 -Avatar(SDK3)編-

皆さん明けましておめでとうございます！
ついにUnity2019への移行の時期がやって参りました！

こんにちはー。NitRoです。

というわけで、公式ドキュメントを熟読して移行作業していきましょうということで。
公式ドキュメントの内容を元に手順をまとめてみました。

本日のお題目は以下の通り。
0. Unity Hubをインストールする
1. Unity2019をインストールする
2. SDK3をダウンロードする
3. プロジェクトを移行する 

それではやっていきましょう～

# 0. Unity Hubをインストールする
今までUnity Hubを使ってなかったよ:sob:という方、便利なのでこれを機に入れてしまいましょう:relaxed:
すでに使ってるよ:triumph:という方、ここは読み飛ばしてください！

## ダウンロード
以下からダウンロードできます。
[https://unity3d.com/jp/get-unity/download](https://unity3d.com/jp/get-unity/download)
![1_unity_hub.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/41083eb9-d569-45cd-e97a-d701095f51f2.png)

## インストール
ダウンロードしたインストーラを実行して`同意する`をクリック。
![2_unity_hub.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/fed4a28e-5293-8424-6397-b46e33d3910d.png)

インストール先フォルダを選択して`インストール`をクリック。
![3_unity_hub.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/399d72e3-a479-2dcb-3975-5911a023a65c.png)

立ち上げるとこんな感じ。
最初はプロジェクトは何もないと思います。
![4_unity_hub.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/7922dd66-88b9-21dc-f569-1bb731a12630.png)

## UnityIDへのサインイン
Unityのライセンス認証のために、UnityIDへサインインする必要があります！

画面右上の`人間マーク`をクリックして、`サインイン`をクリック。
UnityIDにサインインしてください。
![5_unity_hub_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/160bee72-df5b-6175-b7a8-a5e66c8b341a.png)

メールアドレスとパスワードを入れて、`サインイン`をクリック。
忘れてしまった人は:muscle:気合:muscle:で思い出すか、`パスワードを忘れましたか？`をクリックするかしてなんとしてでもサインインしてください！
![6_unity_hub.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/db03b4d3-18ce-79e6-46a8-6266c584f68e.png)

サインインに成功すると、右上にあった人間マークがアカウントのアイコンに変わります。
![7_unity_hub_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/e1dfb29f-f130-54b7-b7ab-89ed479ff539.png)

## ライセンス認証
Unityを使用するためにライセンスを認証しましょう！

画面右上の`歯車マーク`をクリックします。
![8_unity_hub_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/b649eaae-dec0-631f-dd75-7cb1cea785d0.png)

画面左のカラムから`ライセンス管理`をクリック。
するとライセンスの画面が表示されます。
多分初期状態では何もライセンスが無いと思います。
![9_unity_hub_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/9a4896e5-0ab5-06a7-b71b-828203e27088.png)

画面上部の`新規ライセンスの認証`をクリック。
![9_unity_hub_edit2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/cbed4977-4eb7-2c90-b183-53a15d45a3e0.png)

オプションを選ぶように言われます。
普通の人は`Unity Personal`だと思います。
![10_unity_hub.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/df0d8404-45f0-5fda-e799-e7ee9fa14221.png)
![11_unity_hub.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/9dd41336-fd13-3892-15a9-f74c6de7f85f.png)

以上でUnity Hubのダウンロードとインストールは完了になります。
疲れた方はここで一旦お茶でも飲みましょう:coffee::coffee::coffee::coffee::coffee:

# 1. Unity2019をインストールする
続いて、Unity Hubを使ってUnity2019をインストールしてゆきます。
今回VRChatが指定しているUnityのバージョンは**<font color="Red">Unity 2019.4.29f1(2021年8月5日現在)</font>**です！
**必ず同じバージョンを使いましょう！お間違いなきよう！！！**

Unity Hubの画面を出してください。
画面左のカラムから`インストール`をクリック。
![1_unity2019_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/a858f658-66d0-8b28-ee1f-f76e20e0fa9e.png)

こんな画面が出ます。
初めて起動された方は空っぽだと思います。
![2_unity2019.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/234abbbb-2942-40ba-17b1-506827b01ba8.png)

画面右上の`インストール`をクリック。
![2_unity2019_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/878dc806-d5bf-1508-fd6e-ac66695926ec.png)

`Unity 2019.4.29f1 (LTS)`を選びます。これが正解です。これ以外はダメです。
![3_unity2019_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/fe5103da-cc73-ef04-1d03-6afe2810cb60.png)

`Microsoft Visual Studio Community 2019`はお好みでチェック入れてください。
Udon触る人はあったほうが良いと思います。もうインストール済みの方はチェック要りません。
`Android Build Support`はQuest版アバターをアップロードする方はチェック入れておいたほうが良いかもです。
![4_unity2019.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/cd6907f2-9783-6195-116b-b27db265d7fc.png)

エンドユーザーライセンス契約を熟読して、`上記の利用規約を理解し、同意します`にチェックを入れます。
チェックを入れたら画面右下の`実行`をクリック。
![5_unity2019_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/7c048a50-985c-cefe-1c92-5db5a440af56.png)

そうするとこんな画面になるので、後はひたすら待ちます。
待っている間にお茶でも飲んでいましょう:coffee::coffee::coffee::coffee::coffee::coffee::coffee::coffee::coffee::coffee:
或いは元気な人は次の手順（2. SDK3をダウンロードする）に進んでしまっても問題ありません。
![6_unity2019.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/19f259ad-3450-8a5b-4acf-292c4c31ac07.png)

インストールが完了すると実体化します。
![7_unity2019.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/50f406e3-99f6-e8a2-fcf3-5c50d65f7c54.png)

# 2. SDK3をダウンロードする
VRChat公式からダウンロードしましょう。
[https://vrchat.com/home/download](https://vrchat.com/home/download)

今回使うのはSDK3-Avatarsです。`Download SDK3 -Avatars`をクリックしましょう。
![1_SDK3_download.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/e5bdfb74-3d86-3471-c9ad-9dfae82178cf.png)

お茶どうぞ！:coffee:

# 3. プロジェクトを移行する
それではメインの作業になります。
Unity2018のプロジェクトをUnity2019に移行してゆきます。
今回の対象は、SDK3(Avatars3.0)のアバターのプロジェクトです。

## プロジェクトをコピーする
まずプロジェクトのファイルをすべてコピーします。
**<font color="Red">この手順は必ず実施してください。</font>**コピーを取らずに実行してプロジェクトがパァになっても責任は取れません。

プロジェクトのフォルダごとコピーします。
![1_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/6e688f78-609b-4ce2-58db-b04969b02620.png)

コピーしたフォルダはフォルダ名の後ろに`-2019`をつけておきました。
重複しなければ何でも良いです。明日の自分がなんのフォルダか読み取れるように名前をつけましょう。
この先、この`-2019`を付けたフォルダを触っていきます。コピー元のフォルダ(`-2019`がついてない方)は大事に保管しておきましょう。
![2_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/33b9e6fa-6a99-8d97-599c-adeb50547546.png)

## コピーしたプロジェクトをUnity Hubに登録する
先程コピーしたプロジェクトをUnity Hubに登録していきます。

Unity Hubの画面を出してください。
画面右上の`リストに追加`をクリック。
![3_SDK3_avatar_update_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/c3b12fb5-d677-fa7a-180a-996c587395ca.png)

プロジェクト選択のダイアログが出現するので、先程コピーしたプロジェクトのフォルダを選択し、`フォルダーの選択`をクリック。
![4_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/b3e8f96c-7104-6fed-f683-69b44b1dfad5.png)

プロジェクトのリストに該当のプロジェクトが追加されていればオッケー:ok_hand:です。
![5_SDK3_avatar_update_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/a0679dcf-6f89-d796-e58e-e74b35c8f9db.png)

## Unity2018でプロジェクトを開く
先程コピーしたプロジェクト(フォルダ名に`-2019`をつけた方)を**Unity2018**で開いてください。
古い方です。一度古い方で開きます。
![6_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/6f7e78b4-8ba4-f955-3bab-c5a58ed759a2.png)

## SDKのアップデート
Unity2018上で、最新のSDKにアップデートします。
2. SDK3をダウンロードする の手順でダウンロードしたSDKをUnity上にドラッグします。
念の為VRCSDK以外が更新されないか確認し、`import`をクリック。
![18_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/32d8d746-5259-9cae-5768-b466544318b3.png)

アップデートが済みました。
コンソールが**<font color="Red">地獄の赤</font>**に染まりますが気にしないでください:relieved:
Unityに余裕を見せつけていきましょう:muscle::muscle::muscle::muscle::muscle:
![19_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/4a03ca75-34c2-e369-3834-138a5c6916f5.png)

## Clothの処理
:::note warn
アバターにClothを含む場合のみこの手順が必要になります。
アバターにClothを含まない場合は読み飛ばしてください。
:::

### Clothを適用する必要があるメッシュを探す
HierarchyからClothが入っているオブジェクトを選びます。
![7_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/befaddcb-8477-ab0b-8b5b-7fd8421cdf69.png)

Inspectorを見てください。
Skinned Mesh Rendererメニューから、Meshの欄を探しましょう。
赤枠のところです。
![8_SDK3_avatar_update_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/657c2f61-ba1d-08e9-ccbb-9788d76f48cd.png)

Mesh欄をクリックすると、Project画面上でどこにあるかをハイライト表示してくれます。
黄色いやつです。これをこの後コピーします。
FBX内のメッシュがハイライトされると思います。
![8_SDK3_avatar_update_edit2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/c0046b3f-9103-ce6d-0d80-a1b256f44437.png)

### メッシュのコピー
黄色くハイライトされたメッシュを選択して`Ctrl + D`でコピーします。
コピーするとメッシュがFBXの外に出てきますが正しい挙動のようです。
![9_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/a35b9d0d-2b48-fdf0-6ab7-7e3e063b6851.png)

### Clothコンポーネントの設定のコピー
HierarchyからClothが入っているオブジェクトを選択して、
Clothコンポーネントの右上の`歯車`をクリックして、`Copy Component`をクリック。
![10_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/7d01639d-36d8-1d90-18dc-30b9f48eacd9.png)

その後Clothコンポーネントの右上の`歯車`をクリックして、`Remove Component`をクリック。
![11_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/da166b15-a91c-c203-ae38-9cc53f2c22e6.png)

### メッシュの付け替え
InspectorのSkinned Mesh RendererメニューのMesh欄に、先程コピーしたメッシュをドラッグします。
![12_SDK3_avatar_update_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/cc73d3f3-55aa-d5b2-97ee-55e0e30ca620.png)

Clothを追加します。
`AddComponent`ボタンをクリックして、検索窓に「Cloth」と入力します。
Clothコンポーネントがヒットするので、クリックするとClothを追加できます。
![14_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/9b7aa2c2-4461-7b5b-35a9-2c5f3e0a3346.png)

Clothコンポーネント右上の`歯車`をクリックし、`Paste Component Values`します。
![15_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/f36f84ae-f096-5296-af10-ad48f6c6547b.png)

これにて完了です。

僕の場合はアバターをPrefab Variantにしていたので、変更を保存しておきました。
Skinned Mesh Rendererの右上の`歯車`をクリックして、`Modified Component`→`[保存先のPrefab]`をクリックします。
![17_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/eef82332-98e3-d35a-24d1-68c96e11f949.png)

同様の処理をClothでも行います。

## Unityのアップデート
Unity2018からUnity2019にアップデートしていきます。
Unity Hubの画面を開いてください。

アップデートするプロジェクトの行を見てください。
Unity バージョンの列をクリックすると、利用できるバージョンが表示されます。
![20_SDK3_avatar_update_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/bfa8e1c6-3aef-e41c-126f-c501e7cc9780.png)

**<font color="Red">2019.4.29f1</font>**を選択します。
![20_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/0378fde5-28d1-2097-2ccc-51ba14716eda.png)

色々聞いてきます。
`確認`をクリック。
![21_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/3b405949-8b65-0343-ad2d-ac5785071001.png)

`Yes`をクリック。
![22_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/595f3c53-9907-fc46-e91a-d2451d0e60c4.png)

公式によると他にも聞いてくることがあるみたいです。
僕の場合特に出て来ませんでした。
`Continue`とか`I Made a Backup. Go Ahead!`とか押していけば良いようです。

しばらくの間アセットの読み込みが走ります。
お茶を飲みながら待ちましょう:coffee::coffee::coffee:

待っているとUnity2019の画面が開きます。
![23_SDK3_avatar_update.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/436991/85430991-9d88-aef4-a137-0a3cd5805696.png)

これにて完了です:clap::clap::clap::clap::clap::clap:
後はいつものようにアバターをアップロードしてみてください。
出来るはず…です:pray:

お疲れさまでした！！！！！!
:bow::bow::bow::bow::bow::bow: