VRM 1.0ではカプセル型や板型の当たり判定が使用できる新しい揺れものシステム(SpringBone)を使用することができます。

VRM 1.0で揺れものをセットアップする
VRM 1.0では、VRM 0.xとSpring Boneのセットアップ手順が異なります。
現在は、VRM 0.xから変換することで自動的に揺れものをVRM 1.0に対応させることが可能ですが、新たにVRM化したいアバターがある場合は、VRM 1.0での揺れもののセットアップが必要になります。
そこで今回は、VRM 1.0での揺れもののセットアップ手順を簡単に紹介します。
VRM10 Spring BoneとColliderの構造について

各BoneのJointやColliderは、VRMInstanceコンポーネントとVRM10 Spring Bone Collider Groupコンポーネントで管理されています。ColliderはVRM10 Spring Bone Collider Groupに追加し、さらにVRM10 Spring Bone Collider GroupをVRMInstanceのSpring Bone内のCollider Groupsに追加する構造になっています。
具体的な手順
では、具体的な追加手順を説明していきます。
作業前に、HierarchyからInspectorにドラッグアンドドロップする作業が多くなるため、Hierarchyの横にInspectorを持ってくるのがおすすめです。

揺らしたいBoneにVRM10 Spring Bone Jointを追加
- Alt+左クリックで揺らしたいBoneの根本をクリックするとBoneの末端まで表示されるので、Shift+左クリックでまとめて選択します。
- その後、「Add Component」からVRM10 Spring Bone Jointを追加してください。

コライダー用のオブジェクトを作成し、VRM10 Spring Bone Colliderを追加
揺れものは通常当たり判定がありませんが、VRM10 Spring Bone Colliderを付与したオブジェクトに当たり判定をつけることができます。
VRM10 Spring Bone ColliderはBoneに直接つけることもできますが、ひとつのBoneに複数のコライダーを持たせたり、回転や位置調整を行うことがあるため、emptyを作成しそこにSpring Bone Colliderを付けるのがおすすめです。
- Hierarchy上でコライダーを付けたいBoneを右クリックして「Create Empty」を選択します。
- 作成したemptyに分かりやすいように右クリック→「Rename」で名前を付けます。

- 次に、そのオブジェクトを選択し、Inspector上の「Add Component」からVRM10 Spring Bone Colliderを追加します。
- Collider Typeから当たり判定を付けたい部分に近いCollider Typeを選びサイズを調整してください。
- 位置と回転の調整はOffsetで調整する方法とTransformで調整する方法がありますが、今回はTransformで調整します。
- 作成したコライダーすべてにVRM10 Spring Bone Colliderを付けます。

アバター直下にsecondaryを作成し、VRM10 Spring Bone Collider Groupを追加
- アバターを右クリックして「Create Empty」を選択、作成した空のGameObjectを右クリック→Renameで名前を「secondary」に変更します。

- その後、secondaryに「Add Component」からVRM10 Spring Bone Collider Groupを追加します。
- VRM10 Spring Bone Collider GroupのName項目には大まかな部位の名前(head、hand、chest等)を付けてわかりやすくしておきます。

- 他の部位のコライダーを追加する場合は、secondaryに「Add Component」からVRM10 Spring Bone Collider Groupをさらに追加します。

- 先ほど作成したコライダーを「Colliders」の文字部分にドラッグアンドドロップして追加します
- 同じ部位に複数作成した場合は、Shift+左クリックでコライダーをまとめて選択し、「Colliders」の文字部分にドラッグアンドドロップでまとめて追加できます。

Inspectorを二窓にしておく
作業しやすくするために、Inspectorを二窓に増やし、VRMInstanceを常に表示しておくと便利です。
- アバターを選択するとVRMInstanceが表示されるので、右上の鍵マークを押してロックしておきます。

- Inspectorの右上の︙マークから「Addタブ」でInspectorを追加し、マウスでひっぱりInspectorの横に新しいInspectorを配置します。

VRMInstanceのSpring Bone項目のCollider Groupsに作成したVRM10 Spring Bone Collider Groupを追加
- VRMInstanceのSpring Bone項目内の「Collider Groups」の文字に向かって、VRM10 Spring Bone Collider Groupコンポーネントをドラッグアンドドロップしてください。

VRMInstanceのSpring Bone項目のSpringsに枠を追加し、名前を付ける
- VRMInstanceのSpring Bone項目内の「Springs」の右下にある「+」を押して枠を追加します。Spring Boneの房毎に追加し、「Name」のところに名前を入力してわかりやすくしておきましょう。

SpringsのJointsにVRM10 Spring Bone Jointの入ったBoneを追加
- Shift+左クリックでBoneをまとめて選択し、「Joints」部分にドラッグアンドドロップでまとめて追加します。

- JointsはSpring Bone Joint同士の接続を管理する項目で、追加したSpring Bone Jointを上から順に接続する仕様となっています。そのため、Jointsへは上の階層から順にBoneを追加してください。

- 「Center」にアバターのボーンの根本(今回のアバターではskeleton)を設定することで、アバターがワールド内を移動した際にボーンが揺れすぎるのを防ぐことができます。逆に、イヤリングなどのたくさん揺れても良いものの場合、「Center」はnoneのままでも大丈夫です!

Springs内のCollider Groupsに対応したCollider Groupを追加
- 房毎に異なるCollider Groupを追加することで、それぞれ別々のCollider GroupにSpring Boneを反応させることが可能です。
- 例えば今回の場合、後ろ側の髪の毛が左手や右手のコライダーに反応しないように別々に追加しています。

VRM10 Spring Bone Jointの数値を調整
- Unity画面上の再生ボタンを押すと、Spring Boneが揺れるようになります。
- この状態でhipsを移動させてみて揺れ具合を確認したり、VRM10 Spring Bone Joint内のJoint Settingsの数値調整を行ってください。

- ただし、再生を停止すると再生前の数値に戻ってしまうため、VRM10 Spring Bone Jointコンポーネントの横の︙をクリックして「Copy Component」でコピーし、再生を停止後に「Paste Component Values」で数値を貼り付けするのが良いでしょう。
- こうすることで、揺れ具合を見ながら調整した数値をそのままSpring Boneに設定できます。

揺れものを設定することでアバターの表現力に幅が生まれます。設定は少々難しいですが、興味のある方はぜひ挑戦してみてください!

















