PhysBone とは
PhysBone は VRChat が提供するアバター用の揺れもの物理演算システムです。髪、スカート、しっぽ、耳など、重力や動きに合わせてなめらかに揺れるパーツを実現するために使います。以前は「Dynamic Bone」という外部アセットが主流でしたが、VRChat SDK に組み込まれた PhysBone が現在の標準となっています。
BOOTH で購入したアバターや衣装には、PhysBone の設定がすでに含まれていることが多いです。このガイドでは、設定済みの PhysBone を微調整したい場合や、新たに設定を追加したい場合の基礎知識を紹介します。
基本的な揺れもの設定の手順
- Unity の Hierarchy でアバターオブジェクトを展開し、揺れさせたいボーン(例: Hair_Root など)を見つけます。
- 揺れの「根元」となるボーンを選択し、Inspector から「Add Component」→「VRC Phys Bone」を追加します。
- 「Root Transform」に揺れ始めのボーンをアサインします。空欄の場合はコンポーネントがついているボーン自身が根元として扱われます。
- 「Pull」は元の位置に戻る力(硬さ)、「Spring」は慣性の大きさを表します。柔らかく揺れる髪には Pull を低め(0.1〜0.3)、Spring を高め(0.3〜0.5)に設定するのが一般的ですが、バージョンや好みによって変わります。
- Play モードで動作を確認します。Scene ビューで骨格を動かしながら揺れを調整してください。
ヒント:すでに設定済みの PhysBone を微調整する場合は、元の値をメモしてから変更しましょう。Pull / Spring / Gravity / Stiffness の4値が揺れの基本パラメータです。
コライダー(Collider)の設定
PhysBone Collider は、揺れもの同士やアバターの身体と干渉させないために使う当たり判定です。たとえば、髪が身体や胸に埋まるのを防ぐために頭や胸部分にコライダーを設定します。
- コライダーを配置したいボーン(例: Chest、Head など)に「VRC Phys Bone Collider」コンポーネントを追加します。
- 「Shape Type」は Capsule(カプセル型)が最もよく使われます。半径(Radius)と高さ(Height)を調整して身体の形に合わせます。
- PhysBone コンポーネントの「Colliders」欄に、作成したコライダーを登録することで干渉が有効になります。
パフォーマンスランクへの影響
VRChat にはアバターのパフォーマンスを「Excellent / Good / Medium / Poor / Very Poor」の5段階で評価する仕組みがあります。PhysBone の数と影響を受けるボーンの数がこの評価に大きく影響します。
PhysBone コンポーネントの数と、それが制御するボーン数の合計がランクを決定します。具体的な閾値は VRChat のバージョンによって変わることがあるため、現在の公式ドキュメントを参照してください。ランクが低すぎると他のユーザーに「Safety Settings」でアバターが非表示にされやすくなります。
ヒント:SDK の「Avatar Descriptor」ビュー上部にある「Check Performance」ボタンでランクを確認できます。Poor 以上を目指すのが目安です。
よくある失敗と対処法
よくある失敗
- 揺れがガクガクする・暴れる: Spring(慣性)が大きすぎるか、Pull(収束力)が小さすぎます。Pull を少し上げるか、Limit Rotation を有効にして動く範囲を制限してみてください。
- 髪が身体に埋まる: コライダーの設定が不足しているか、コライダーが PhysBone に登録されていません。頭・胸・腰付近にコライダーを追加し、PhysBone の Colliders 欄に登録してください。
- VRChat にアップロードしたら揺れが止まっている: PhysBone の設定が正しくアバターに適用されていない場合があります。VRC Avatar Descriptor が正しく設定されているか確認し、再度ビルドしてください。
- パフォーマンスランクが Very Poor になる: 不要な PhysBone コンポーネントを削除するか、ボーン数を減らした軽量版モデルを別途用意する選択肢があります。
- Quest ではなぜか揺れない: Quest 版では PhysBone の仕様に制限がある場合があります。Quest 向けにパラメータを調整するか、簡易版ボーン設定を検討してください。