揺れ骨の設定 (PhysBone)
このガイドでは、VRChat の PhysBone システムを使って、髪やスカート、しっぽ、アクセサリーに自然な揺れの動きを付ける方法を解説します。プリセットを使った簡単な設定から、パラメータを細かく調整する手動設定まで、すべてを網羅します。
PhysBone とは
PhysBone は、VRChat 独自の物理シミュレーションシステムです。アバターのボーン(骨格)に物理演算を適用して、髪やスカートなどが動きに合わせて自然に揺れるようにします。
PhysBone で実現できること:
- 髪の毛が歩くたびにふわりと揺れる
- スカートが動きに合わせて自然になびく
- しっぽがしなやかに動く
- イヤリングやリボンなどのアクセサリーが揺れる
- 他のプレイヤーが触ると反応する(Grab 機能)
プリセットを使った設定
OpenForge MCP では、用途に応じたプリセットが用意されています。
髪の PhysBone (setup_hair_physbone)
ロングヘアの場合
あなた:
髪の毛に PhysBone を設定して。腰まであるロングヘアで、ゆったり揺れるようにして
AI の動き: setup_hair_physbone がロングヘアプリセットで実行されます。
AI の返答例:
PhysBone 設定完了 (ロングヘア):
対象ボーン: Hair_Root 以下 24 ボーン
Pull: 0.1
Spring: 0.3
Stiffness: 0.2
Gravity: 0.05
GravityFalloff: 0.5
Immobile: 0.3
Radius: 0.02
ショートヘアの場合
あなた:
ショートヘアの揺れを設定して。あまり大きく揺れないように
AI の動き: setup_hair_physbone がショートヘアプリセットで実行されます。
AI の返答例:
PhysBone 設定完了 (ショートヘア):
対象ボーン: Hair_Root 以下 12 ボーン
Pull: 0.2
Spring: 0.5
Stiffness: 0.4
Gravity: 0.03
GravityFalloff: 0.8
Immobile: 0.5
Radius: 0.01
スカートの PhysBone (setup_skirt_physbone)
あなた:
スカートに PhysBone を設定して。膝丈のプリーツスカートで
AI の動き: setup_skirt_physbone が実行されます。
AI の返答例:
PhysBone 設定完了 (スカート):
対象ボーン: Skirt_Root 以下 16 ボーン
Pull: 0.15
Spring: 0.4
Stiffness: 0.3
Gravity: 0.08
GravityFalloff: 0.6
Immobile: 0.2
Radius: 0.03
コライダー: 自動追加 (左脚、右脚、腰)
スカートの PhysBone には、脚や腰のコライダー(衝突判定)が自動的に追加されます。これにより、スカートが脚を貫通するのを防ぎます。
しっぽの PhysBone (setup_tail_physbone)
あなた:
しっぽに PhysBone を設定して。猫のしっぽで、しなやかに動くようにして
AI の動き: setup_tail_physbone が実行されます。
AI の返答例:
PhysBone 設定完了 (しっぽ):
対象ボーン: Tail_Root 以下 6 ボーン
Pull: 0.08
Spring: 0.2
Stiffness: 0.15
Gravity: 0.1
GravityFalloff: 0.4
Immobile: 0.2
Radius: 0.02
Grab: 有効(他のプレイヤーが掴める)
アクセサリーの PhysBone (setup_accessory_physbone)
あなた:
イヤリングに PhysBone を設定して。小さな揺れで
AI の動き: setup_accessory_physbone が実行されます。
AI の返答例:
PhysBone 設定完了 (アクセサリー - イヤリング):
対象ボーン: Earring_L, Earring_R 以下各 2 ボーン
Pull: 0.05
Spring: 0.6
Stiffness: 0.1
Gravity: 0.15
GravityFalloff: 0.3
Immobile: 0.1
Radius: 0.005
あなた:
リボンにも PhysBone を設定して。後ろ髪のリボンで、ひらひら揺れる感じで
AI の動き: setup_accessory_physbone がリボン向けの設定で実行されます。
手動設定: パラメータの解説 (configure_physbone)
プリセットでは対応しきれない場合や、細かい調整が必要な場合は、パラメータを直接指定します。
パラメータ一覧と効果
| パラメータ | 範囲 | 説明 | 値が大きいと | 値が小さいと |
|---|---|---|---|---|
| Pull | 0.0 - 1.0 | 元の姿勢に戻ろうとする力 | すぐに元に戻る | ゆっくり戻る |
| Spring | 0.0 - 1.0 | バネの弾力 | 弾むような動き | 鈍い動き |
| Stiffness | 0.0 - 1.0 | 動きへの抵抗力 | 硬い、動きにくい | 柔らかい、揺れやすい |
| Gravity | -1.0 - 1.0 | 重力の影響度 | 強く垂れ下がる | 重力の影響が少ない |
| GravityFalloff | 0.0 - 1.0 | 姿勢による重力の変化 | 姿勢で重力が変わる | 姿勢に関係なく一定 |
| Immobile | 0.0 - 1.0 | 移動時に動かない割合 | 動きに追従しにくい | 動きに敏感に反応 |
| Radius | 0.0 以上 | コリジョンの半径 | 太い当たり判定 | 細い当たり判定 |
パラメータの調整例
あなた:
髪の PhysBone の Spring を 0.5 に上げて。もう少し弾むような動きにしたい
AI の動き: configure_physbone が実行され、Hair_Root の PhysBone の Spring パラメータが 0.5 に変更されます。
あなた:
しっぽの Gravity を 0.15 にして。もう少し垂れ下がる感じにして
AI の動き: Tail_Root の PhysBone の Gravity が 0.15 に更新されます。
パラメータの組み合わせ例
用途別の推奨パラメータの組み合わせです。
やわらかい長髪
Pull: 0.08, Spring: 0.25, Stiffness: 0.15,
Gravity: 0.05, Immobile: 0.3
特徴: ゆっくりと揺れ、ふわりと元に戻る。重力の影響は控えめ。
硬めのツインテール
Pull: 0.2, Spring: 0.5, Stiffness: 0.4,
Gravity: 0.03, Immobile: 0.5
特徴: 素早く元に戻る。大きく揺れにくいが、弾力がある。
軽いフリルスカート
Pull: 0.1, Spring: 0.4, Stiffness: 0.2,
Gravity: 0.1, Immobile: 0.15
特徴: 軽やかにひらひら動く。動きに敏感に反応する。
重めのロングスカート
Pull: 0.2, Spring: 0.3, Stiffness: 0.35,
Gravity: 0.12, Immobile: 0.3
特徴: ゆったりとした動き。重力でしっかり垂れ下がる。
コライダーの設定 (add_physbone_collider)
コライダーは、PhysBone が特定のオブジェクトを貫通しないようにする衝突判定です。
よくあるコライダーの配置
あなた:
スカートが脚を貫通しないようにコライダーを追加して
AI の動き: add_physbone_collider が実行され、左右の脚にカプセル型のコライダーが追加されます。
AI の返答例:
PhysBone コライダー追加:
LeftUpperLeg: カプセルコライダー (半径 0.04, 高さ 0.35)
LeftLowerLeg: カプセルコライダー (半径 0.035, 高さ 0.35)
RightUpperLeg: カプセルコライダー (半径 0.04, 高さ 0.35)
RightLowerLeg: カプセルコライダー (半径 0.035, 高さ 0.35)
Hips: 球コライダー (半径 0.08)
→ スカートの PhysBone にコライダーを関連付けました
あなた:
髪が体を貫通しないように、胸と背中にもコライダーを追加して
AI の動き: 胸(Chest)と背中(Spine)にコライダーが追加され、髪の PhysBone に関連付けられます。
コライダーの種類
| 種類 | 形状 | 用途 |
|---|---|---|
| Sphere | 球 | 頭、関節、胴体の大まかな判定 |
| Capsule | カプセル(円柱 + 半球) | 腕、脚などの細長い部位 |
| Plane | 無限平面 | 地面や壁(特殊用途) |
コライダーの調整
あなた:
脚のコライダーの半径を少し大きくして。スカートが脚の間に入り込むことがあるから
AI の動き: コライダーの半径が拡大されます。
コライダーの半径を大きくしすぎると、スカートや髪が体から不自然に離れてしまいます。少しずつ調整して、貫通が防げる最小限の大きさにするのがコツです。
自然な揺れを作るコツ
基本方針
- まずプリセットで設定する: プリセットは多くのアバターでバランスの良い値に調整されています
- Spring と Pull のバランス: Spring を上げると弾力が増し、Pull を上げると元に戻る速度が上がります。両方を上げすぎると落ち着きのない動きになります
- Stiffness は控えめに: Stiffness が高すぎるとほとんど揺れなくなります。0.1 から 0.3 の範囲が自然に見えることが多いです
- Gravity は控えめに: 強すぎると常にだらんと垂れ下がります。0.03 から 0.1 程度が多くの場合で適切です
調整のワークフロー
あなた:
髪の揺れを再生モードでテストして
AI の動き: Unity のプレイモードが開始され、PhysBone のシミュレーションが実行されます。
あなた:
少し揺れすぎている。Stiffness を上げて、Spring を下げて
AI の動き: パラメータが調整されます。
あなた:
いい感じ。今の設定値を表示して
AI の返答例:
現在の PhysBone 設定 (Hair_Root):
Pull: 0.1
Spring: 0.2
Stiffness: 0.3
Gravity: 0.05
GravityFalloff: 0.5
Immobile: 0.3
パフォーマンスへの影響
PhysBone はパフォーマンスランクに影響します。
| ランク | PhysBone コンポーネント数 | 影響ボーン数 | コライダー数 |
|---|---|---|---|
| Excellent | 0 | 0 | 0 |
| Good | 4 以下 | 16 以下 | 8 以下 |
| Medium | 8 以下 | 64 以下 | 16 以下 |
| Poor | 16 以下 | 256 以下 | 32 以下 |
PhysBone コンポーネントの数を減らすには、複数のボーンチェーンを 1 つのルートボーンにまとめる方法があります。例えば、前髪と横髪を別々のコンポーネントにするのではなく、共通の Hair_Root から設定することで、コンポーネント数を削減できます。
次のステップ
PhysBone の設定が完了したら、以下のガイドも参考にしてください。
- アバターセットアップ -- アバターの全体的なセットアップ
- 衣装の着せ替え (Modular Avatar) -- 衣装にも PhysBone を設定する
- パフォーマンス最適化 -- PhysBone のパフォーマンス影響を管理する
- アップロード -- VRChat へのアップロード