本日はホロ恋子モデルの作成枠です。
今回は VRM ファイルに VRMSpringBone を使って揺れ物の設定を行います。
3d.nicovideo.jp
SpringBone を使って揺れ物を設定する記事の続きになります。
bluebirdofoz.hatenablog.com
VRM Spring Bone (Script) の設定
VRM Spring Bone (Script) は UniVRM に含まれるスクリプトです。
UniVRM を使って VRM ファイルを取り込んだプロジェクトを開きます。
Unity パッケージ版に SpringBone を設定したときと同様に、ポニーテイルを揺らしてみます。
VRM Spring Bone (Script) は VRM ファイルの正規化時に自動で追加されています。
キャラクタオブジェクトの直下に追加されている[secondary]というノードです。
VRMSpringBone コンポーネントの設定を行います。
VRMSpringBone の各要素はそれぞれ以下の意味合いを持ちます。
Comment :揺れ物に関する説明を記載する。(オプション) Draw Gizmo :シーンビューに設定した揺れ物を確認するためのアイコンを表示する Gizmo Color:表示アイコンの色 StiffnessForce :揺れの固さ(値を小さくするほど元の形に戻りにくくなる) GravityPower :重力の強さ(値を小さくするほど重力の影響を受けない) GravityDir :XYZ軸ごとの重力補正値(オブジェクトのXYZ軸方向に値分の重力補正がかかる) DragForce :力の減衰(値を小さくするほど抵抗が減る) Center :揺れ物の中心オブジェクトを指定する(Noneの場合、個々のオブジェクトが中心になる) Root Bones :揺らしたい(揺れが始まる)オブジェクトの親オブジェクト一覧 HitRadius :揺れ物の当たり判定の半径 Collider Groups:揺れ物との衝突判定を行うコライダーオブジェクト
SpringBone と同名の変数は設定値を流用できます。
ただし StiffnessForce はかかっている係数が異なるようなので、値を大きめに修正する必要があります。
以下の通り設定しました。
最後に衝突判定を行うコライダーオブジェクトを設定します。
ポニーテイルの突き抜けを避けるため、頭部にコライダーオブジェクトを設定します。
head オブジェクトに[VRM Spring Bone Collider Group (Script)]コンポーネントを追加します。
VRMSpringBoneColliderGroup は複数のコライダーを追加したり、位置のオフセットを指定できます。
各要素はそれぞれ以下の意味合いを持ちます。
Coliders:衝突判定を行うコライダー設定 Size:コライダーの数 Offset:アタッチしたオブジェクトからのオフセット位置 Radius:コライダーの半径 Gizmo Color:表示アイコンの色
以下の通り、設定しました。
VRMSpringBone の Collider Groups に作成したコライダーオブジェクトを指定します。
これで設定完了です。
前回記事と同様の手順で動作確認と微調整を行います。
bluebirdofoz.hatenablog.com
アニメーションの確認が完了したら、確認用に設定したアニメーションコントローラ等を削除して VRM ファイルを保存します。