SpringBoneをPhysBoneに変換する

こんにちは、ユーゴです。
今回は、VRMSpringBone(以下SpringBone)を、VRCPhysBone(以下PhysBone)に変換するツールを作成したので、紹介します。特に、**VRoid Studioでアバターを作成した人**にオススメの記事です！

ツールは以下から、無料ダウンロードできます！
[【無料あり】SpringBone → PhysBone 変換ツール](https://mu5dvlp.booth.pm/items/3996623)

# 課題
VRoidで髪など揺れ物を設定したが、VRChatで動かすと揺れ物が動かない！

# 原因
VRoidで設定した揺れ物は、Unityにインポートした時**SpringBone**という仕組みになる。しかし、VRChatの揺れ物は**PhysBone**という仕組みでしか動かせない

# 解決策
以下のツールを使用し、SpringBoneをPhysBoneに変換する。
[【無料あり】SpringBone → PhysBone 変換ツール](https://mu5dvlp.booth.pm/items/3996623)

# 使用方法
UniVRMとVRCSDKの導入が完了している人は手順0を飛ばしてください。
### 0. UniVRMとVRCSDKの導入
**0-1. UniVRMを導入**
以下から、UniVRMをダウンロードします。バージョンは、おそらく「v0.99.2」でないとダメでしょう。(VRCSDKが2019.4.31fでないとダメなため)
[Releases · vrm-c/UniVRM · GitHub](https://github.com/vrm-c/UniVRM/releases)![スクリーンショット 2022-07-13 9.23.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/dcc08809-cf69-0fb3-7fec-9e20679ea113.png)

ダウンロードできたら、UnityにUniVRM-0.99.2_0dc9.unitypackageをドラッグ&ドロップで追加します。

**0-2. VRCSDKの導入
VRChatの各自のプロフィールページから、VRCSDKをダウンロードします。
[Home - VRChat](https://vrchat.com/home/login)
![スクリーンショット 2022-07-13 9.31.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/1d73a6be-bd8c-3efc-7654-891279dbf446.png)

### 1. 「PhysBoneConverter.unitypackage」をインポート
以下のツールをダウンロードします。無料版で問題ありません。
[【無料あり】SpringBone → PhysBone 変換ツール](https://mu5dvlp.booth.pm/items/3996623)
![スクリーンショット 2022-07-13 9.52.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/45bb1aaf-399e-2049-d6af-ef0235a2ceaa.png)

PhysBoneConverter_ver0.0.2.unitypackage.zipを解凍し、PhysBoneConverter_ver0.0.2.unitypackageにします。
(PhysBoneConverter_ver{バージョン番号}なので、0.0.2である必要はありません)

### 2. PhysBoneConverterオブジェクトを配置
「Assets > MU5VRC > Prefabs > PhysBoneConverter」をヒエラルキーに配置します。
![PhysBoneConverter_shop_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/97b62850-76f4-5f20-2c83-173ea42cec49.png)

### 3. モデルをヒエラルキーに配置
VRMをまだインポートしていない場合、Unityにドラッグ＆ドロップでインポートしてください。
そして、モデルをドラッグ＆ドロップでヒエラルキーに配置しましょう。
![PhysBoneConverter_shop_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/55fa0055-0a13-d6d4-6678-f2901999e245.png)

### 4. PhysBoneConverterの対象アバターに、変換したいアバターを指定
手順2のPhysBoneConverterのインスペクタに、「モデル(model)」という項目があります(言語設定に依存)。そこに、手順3のアバターをドラッグ＆ドロップで指定します。
![PhysBoneConverter_shop_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/f18b751d-764e-20eb-c7ad-b170ac2f2810.png)

### 5. 変換する
PhysBoneConverterのインスペクターに「変換」と書かれたボタンがあると思うので、押しましょう。
![PhysBoneConverter_shop_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/8f622fc7-90fa-784a-a01d-ab6900e50d5b.png)
ログで黄色エラーが出た場合、「〜が見つかりません」と書いてあると思います。それは、揺れ物・揺れ物の当たり判定が設定されていないということです。最悪、問題はありません。

### 6. 実行して確認
※必ずしも試す必要はありません。やりたい人だけやってみてください。
中央上の再生ボタンを押します。
シーンウィンドウの矢印でアバターを動かすと、揺れ物がちゃんと揺れます。
![PhysBoneConverter_yure.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2607452/4d1b8813-9d71-a672-44c9-b8d46878a571.gif)

# まとめ
いかがだったでしょうか。
今回は、PhysBoneConverterの使い方を紹介しました。VRoidでは誰でも手軽にアバターを作成できるので、使っている方も多いと思います。
せっかくVRoidで設定した揺れ物が使えないと寂しいので、PhysBoneConverterを使用して揺れ物をVRChat用に変換してあげましょう。

よろしければ、フォローの方よろしくお願いします。

## 関連する記事
[自動で表情アニメーションを作成！BlendShapeAnimationGenerator](https://qiita.com/mu5dvlp/items/403955c0acbc7ef8d0ba)