メインコンテンツまでスキップ

centerで揺れを抑制する

SpringBoneにはCenterというプロパティが存在し、設定することで揺れを制御することができます。

Centerは、SpringBoneそれぞれに設定することができる、揺れの計算を行う際の相対的な原点を示すプロパティです。 Centerが設定されていない場合、SpringBoneはワールド座標の原点を基準として揺れを計算します。 アプリケーションの実装によっては、ワールド原点ではなく、シーン内の特定のオブジェクトやVRMモデルのルートを基準として揺れが計算されることがあります。

平行移動による揺れの抑制

SpringBoneのCenterを設定していない場合と設定した場合の揺れ方の比較
SpringBoneのCenterを設定していない場合と設定した場合の揺れ方の比較

アプリケーション内でVRMモデルが平行移動した際の揺れの抑制を行うには、VRMモデルのルート位置に配置したGameObjectをCenterに設定します。

警告

UniVRMの仕様上、VRMモデルのルートとなるGameObjectをCenterに設定することはできません。 これは、VRMモデルのルートがglTF上ではnodeとして扱われないためです。 詳しくは、 Root Node の仕様 を参照してください。

VRMモデルのルート直下にCenterとなる空のGameObjectを作成します。

モデルのルート直下にCenterとなる空のGameObjectを作成
モデルのルート直下にCenterとなる空のGameObjectを作成

VRMモデルのルートにある VRMInstance コンポーネントの Spring Bone > Springs よりSpringBoneの一覧を開き、SpringBoneごとの Center に上で作成した空のGameObjectを設定します。

SpringBoneごとのCenterに空のGameObjectを設定
SpringBoneごとのCenterに空のGameObjectを設定