<aside> ⚠️ この記事は公式ドキュメンテーションの非公式翻訳です。VRChat運営の監修などは一切受けていません。誤訳があるかもしれないけどご了承くださいね。

</aside>

<aside> ⚠️ 翻訳の最終更新:2022/04/21

</aside>

PhysBonesとは、二次モーションをアバターに追加できるコンポーネントです。二次モーションで、物理演算でアバターの一部を動かして、低努力でよりリアルにできます。PhysBonesで髪の毛、耳、しっぽ、服などいろんなものをアニメーションできます!

PhysBonesはDynamic Bonesの後継機能です。基本が同じな部分が多いけど、大きな変更点も多いので、そのまま変換できない場合もあります。

PhysBonesの使い方サンプルがSDKのVRCSDK\\Examples3\\Dynamics\\Robot Avatarにあります。

VRCPhysBone

PhysBonesでアニメーションされるボーンの連鎖を指定します。ソフトボディや二次移動(髪の毛、しっぽ、耳など)を表現できます。設定が豊富で、いろいろとせってできます。

さらに、PhysBonesが自分、または他人で触れます!許可を出しているなら、他の人が自分のアバターのPhysBonesを掴んだり、掴みながらトリガーを押すことで固定できます。設定で固定を無効にしたり、掴みを無効にしたり、またはコリジョンを完全に外せます。

想定された使い方とは違いますが、独自のクロスコンポーネントを作るまでつなぎとしては、それなりのクロスシミュレーションとしても使えます。

Untitled

Transforms

Root Transform - このコンポーネントの管轄のはじめとなるTransform。空欄の場合は、このオブジェクトで始まります。

Ignore Transforms - このコンポーネントから影響を受けない、無視されるTransformのリスト。無視されたTransformの子も無視される。

Endpoint Position - ボーンの連鎖の末端に追加ボーンを作るためのベクター。ゼロ以外の場合のみ有効

<aside> 🚧 ルートボーンが一つで、子が複数で、孫がない場合は、Endpoint Positionが必須です!

例えば、下の例のRootBoneにPhysBoneを設定した場合、PhysBoneが動くためにはEndpoint Positionを設定することが必須です。これはDynamic Bonesとは違うので注意!

シングルボーンの場合

同じルーツの複数のボーンの場合

ChildBone毎に、その子に「エンドボーン」を追加することでも対策できますが、アーマチュア編集が必要になります。

</aside>

Forces

Integration Typeで、このコンポーネントに影響される計算の種類を指定します。設定によっては、Forces部分の選択肢が変わります。

デフォルト設定ではどちらも似たような動きですが、設定をいじってみれば違いが判るはずです。