【VRChatアバター改変・軽量化基礎】DynamicBoneを未所持の状態でもPhysBoneに変換する

アバター「ほしうさ」を例とする。

このアバターはDynamicBoneが設定されているのだが、このコンポーネントは有料であり、別途購入して導入していない場合はエラーが表示されてしまう。


DynamicBoneコンポーネントがないためエラーが出ている。
この状態ではDynamicBoneへの変換は不可能。

2024/04時点ではDynamicBoneのVRChatでの使用は非推奨であり、PhysBoneに変換することが推奨されるのだが、困ったことにDynamicBoneを所持していない場合はPhysBoneへの変換もできない。

ちなみに正常にDynamicBoneが読み込まれている場合はこのような表示になる。
DynamicBoneが読み込まれている場合はこのようにVRChatSDKにPhysBoneへ変換するように案内が表示される。


ことVRChatでの使用を想定した場合でもワールド製作時にはどのみち必要になるためその予定があるのなら購入してしまったほうが後々楽ではあるが、ワールド制作には手を出す気がない場合やすぐにお金の用意ができない場合もあるだろう。

実は現在は"anatawa12's gists pack"を導入することでDynamicBoneを購入していなくともPhysBoneに変換することが可能になる。

以下ではその手順を記す。

まずは以下からVPMリポジトリをVCC/VPMに追加する。
すでに行っている場合は飛ばして良い。

追加ができたらDynamicBone→PhysBone変換を行いたいプロジェクトにVCCなどで"anatawa12's gists pack"を導入する。
導入ができたらUnityでプロジェクトを開き、ツール(Tools)→"anatawa12's gist selector"を開く。

anawata12's gist selector
"Fake DynamicBone Compornents"にチェックを入れて"Apply Changes"

ウィンドウが開いたら"Fake DynamicBone Compornents"にチェックを入れて"Apply Changes"。
すると、エラーが出ていたコンポーネントの表示が変化し中身が表示されるようになるはずだ。

Fake DynamicBone Compornentsを導入したところ

この状態であればVRChat SDKからDynamicBone→PhysBone変換の案内が表示されるようになる。内容を確認したらFix NowをクリックしてProceedをクリックしよう。

SDKにDynamicBoneを使っている、PhysBoneに移行せよ、という表示が出るようになる。
AutoFixをクリックすることで自動で移行が可能。


すべてのDynamicBoneをPhysBoneで置き換えるぞ、という警告。Proceedで続行。


DynamicBoneコンポーネントが削除され、PhysBoneに置き換わった。

これでDynamicBoneを未所持でもPhysBoneに置き換わり、ゆれものが有効になる。

なお、注意点として、2024/04現在のDynamicBone→PhysBone変換はDynamicBoneのコライダーの設定が正常にPhysBoneに移行されないケースがあることを確認している。これはDynamicBoneを所持しているいない関わらず発生する。
DynamicBoneコライダーが存在している場合は手動で設定し直す必要がある。

また、先述のとおりワールド制作となるとワールド用の揺れものは2024/04現在DynamicBoneが引き続き必要となるため購入が必須となる他、PhysBoneはVRChat独自のものであるためVRChat以外の用途となるとやはりDynamicBoneが必要になる。これらの予定があるのなら頃合いを見て購入しておくとよいだろう。

この記事が気に入ったらサポートをしてみませんか?