PhysBones
PhysBones is a set of components that lets you add secondary motion to avatars.
Secondary motion lets parts of your avatar move given some physical parameters, making avatars feel much more real and dynamic with little effort. PhysBones can be used to animate hair, tails, ears, clothing, and much, much more.
PhysBones: A free, direct and significantly more performant (we’re talking roughly a 12–20x improvement) replacement for Dynamic bones in VRChat that will be included with our SDK. Additionally, PhysBones allows touching, grabbing, and posing bones on your own avatar or on other people’s avatars! 応用例
@33linn: 好きな眼鏡モデルをPhysBone対応して動かせるプレハブを公開しました! 解説
Pull:
小さいほどボーンが元に戻り辛い
Momentum:
大きいほど激しく揺れるようになる
Stiffness:
小さいほどシルクのように柔らかく
Inmobile:
歩いたり走ったりでどのくらい揺れるか
Gravity:
重力。下へ引っ張る力
なので、これを元に決めると割と想像通り動く。
VRCPhysboneの{parameter}はローカルで動くしローカル使用推奨だけれど、物の出し入れなど長時間値が保持される物への使用の場合特定の人に同期されない可能性がある
特定の人というのは後からインスタンスに入ってきた人などの値を初期値に戻す操作をしたユーザ
ローカルパラメータといえどそれをトリガーに再生されたアニメーションは残るのでその場にいる人なら同期されるけど、発火した後に別の要因で値が初期値になると同期が切れる
その場合、{parameter}でEXParamに登録したグローバルパラメータをParameterDriverで書き換えれば値が保持されるため同期できる
数秒だけ再生されるものなら良いけど、何分も残るものだとこういう同期ズレがどんどん起きるので、その場合はグローバルパラメータを直接書き換えた方が同期されるよねっていう
個人的な見解です()
パフォーマンス