VRChat にアバターをアップロードしようとして詰まったこと[Unity]

はじめてのアバターアップロードを試してみたところ、詰まるところが何箇所かあったので、忘れないうちに書き残しておきます。

# 前提条件
https://astoness.com/blogs/times/how-to-upload-avatar-vrchat
こちらの記事のような手順で準備を進め、
**【5】カスタムアバターの導入**
この辺りまでやってみたけど、下記のような症状が出ている、という方向けです。

- 何故かアップロードできない
- エラーが出る
- **アップロードできてもアバター一覧に出てこない**

# アップロードに挑む

## unsupported platform: couldn't get group name for target %i

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/61af23f7-6129-09f5-e871-197d84d4ac32.png)

```
unsupported platform: couldn't get group name for target %i
```

こんな感じのエラーがコンソールに出ている場合は **Unity のバージョンを合わせる** ことでエラーを解決できます。

### Unity のバージョンを合わせる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/f8fc91f6-5973-93ec-26e2-879226b6e873.png)

VRchat SDK いわく、 `2018.4.20f1` が必要らしいので、これを使えるようにします。

#### サポートされているバージョンの Unity をインストールする

https://unity3d.com/jp/get-unity/download/archive
このページにアクセスして、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/e0c343e2-7dea-b03e-2b19-c096098fed67.png)


ここをクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/0cda765b-84fe-8a43-a94d-722f3f63fba1.png)

Unity Hub でインストールの一覧に対象のバージョンが表示されていればOK。

#### 指定したバージョンの Unity でプロジェクトを作成する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/a12ec1f0-a7d0-493e-cca8-2b72ea8ce914.png)

プロジェクトタブで **新規作成** の右側にある矢印をクリックし、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/912f9c08-a314-9138-8e34-53f2f297aeca.png)
 
対象のバージョンを選択することで

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/cf0a6b55-ee81-d607-11d3-5a0c0b864232.png)

指定したバージョンでプロジェクトが作成できる。

(エラーはまだまだ続く。)

## File Not Found Exception

**Build & Publish** をクリックして、処理が始まったのに、なぜか止まった…
そして、Unity の下のほうには赤い文字。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/b4e727fb-6160-ef29-6e2e-b32d74ee0d05.png)

よく見てみると、

```
FileNotFoundException: XXXXXXXXXXX/AppData/Local/Temp/DefaultCompany/New Unity Project/prefab-id-v1_avtr_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.prefab.unity3d does not exist
```

みたいなことが書いてある。

コンソールを開いて詳しく見てみるとこんな感じ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/7b739631-6c8d-dae4-ff30-4c580b23eceb.png)

これは、**Dynamic Bone** 関連でエラーが起きていると表示される警告です。

解決方法としては、下記の３つくらいが考えられるのではないかと思います。

- Dynamic Bone を導入する
- Dynamic Bone の使われていないアバターを使う
- Dynamic Bone 関連のスクリプトを削除する

### Dynamic Bone を導入する

**※ Dynamic Bone をまだ購入していないため、未検証。購入後追記予定。**

Dynamic Bone についての詳しい話はこのあたりの記事を。
https://pikali.hatenablog.com/entry/2019/01/14/101628

インポートしたアバターに Dynamic Bone 関連の設定が入っている場合、有料アセットの **Dynamic Bone 本体** を別途インポートしてあげる必要があります。
別記事で見かけた記述に、『Dynamic Bone はアバターより前にインポートすべし』というものもありました。
(該当記事は紛失しました…すみませんm(_ _)m)

### Dynamic Bone の使われていないアバターを使う

入手したアバターパッケージの中に、Dynamic Bone が使われていない Scene が用意されている場合があります。
見つかった場合は、その Scene のインポートを試してみてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/66e3d479-ee3d-e819-a61a-777f1878d0c2.png)

上のファイルは Dynamic Bone あり。下のファイルは Dynamic Bone なし。

### Dynamic Bone 関連のスクリプトを削除する

Dynamic Bone でエラーが出ているのであればそのスクリプトを削除してやればスッキリ!
するんじゃないかなとは思うのですが、 **削除しても正常に動くのか という問題** や、 **そんなことができる人は、こんなところで詰まっていない問題** があります。

**そんなことができる人は、こんなところで詰まっていない問題** は、こちらの

**Missing Remover**
https://booth.pm/ja/items/1969758

で解決できるかもしれません。
使用することで、 `missing script` のエラーが出ている箇所を一括削除できます。(すごい！)

ただ、余計な箇所も削除されてしまう可能性があると思うので、**自己責任&治ったらラッキー** くらいの気持ちで使ってみてください。

## Error saving blueprint.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/fd20aa70-50eb-b425-a9dd-b2f1343ad5d1.png)

アップロードを実行すると、 `Error saving blueprint.` のポップアップが表示されることがあります。
この問題は、空の BlueprintID を設定してアップロードしなおすことで解決できます。

### BluePrintID を空にする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/31059894-c9cb-87c0-5f0c-97988b5e2d7e.png)

アバターの Prefab にアタッチされている PipelineManager を探して **Detach** をクリックすることで、BlueprintID を空にすることができます。

## アバターのアップロードに成功しても、一覧に表示されない

アップロードには成功していて、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/08173732-25c0-c735-058a-b0cc22833d28.png)

Content Manager から確認できるし、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/524ce410-6d26-10ca-a105-7bc38eccb796.png)

VRChat のマイページからでも確認できるけど、

肝心の **VRChat 内ではアバターが一覧に表示されない** という場合は、**アバターの名前を変更する** ことで問題を解決できるかもしれません。

### アバターの名前を変更する

*この方法は、有用なのかいまいちはっきりしていません。*
*再現できたのは最初の一度だけで、それ以降は、時間経過によって自動的にアバター一覧に表示されるようになりました。*

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/41166b9a-44dc-8098-3e6b-4a9baadbc6a8.png)

もしかすると、誰かがすでに使っているアバター名だと使用できない、というようなことがあるのかもしれません。
一度、『誰もそんな名前は付けないだろう』というような名前を入力してアップロードしてみてください。

## 成功

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252342/620d20f2-e06d-2db2-0eba-47fff1c4521b.png)

# まとめ

自分でアップロードを行おうとして詰まったところを一通り書いてみました。
なにかおかしな点、その他関連する情報などがあれば教えていただけると幸いです。