こんにちは。VR事業部の加藤です。
今回はVRM Spring Boneの設定でふわふわな髪を表現します。
VRM Spring BoneとはuniVRMを使用しVRMモデルをセットアップする際に使うことのできる揺れ物用のスクリプトです。Boneが入った3Dモデルに対して髪の揺れ感や、体との接触判定などを設定することができます。これにより3Dモデルにファンタジー調のふわふわした揺れ感や、現実のような重力感などを表現することができます。
動作環境
今回使用した環境は下記の通りです。
- Unity 2018.2.10f1
- UniVRM v0.48 github.com
- ニコニ立体ちゃん(VRM) ver 1 3d.nicovideo.jp
使用するアセット
- "Unity-Chan!" Model ver 1.2.1 assetstore.unity.com
手順
環境構築
- UniVRM v0.48をインポート
- ニコニ立体ちゃん(VRM)をインポート
- "Unity-Chan" Modelをインポート
調整準備
新規Sceneにニコニ立体ちゃんをインポートした際に生成されたAliciaSolid.prefabを配置します。
次に揺れ感を確認するためにアニメーションを使用したいので今回はインポート済みのUnity-Chanのunitychan_WIN00を使用します。 unitychan_WIN00のLoop Timeにチェックを入れ、Animatorに配置して調整や確認をします。
パラメータの項目について
VRM Spring Boneで髪揺れ感を制御するのは主に以下の項目になります。
- Stiffness Force : 剛性の設定用
- Gravity Power : 重力設定用
- Gravity Dir : 重力の働く方向
- Drag Force : ボーンの跳ね方
パラメータ調整
現在の揺れ方は髪が波打ち少しふわふわしているので、これを更にゆっくり元の状態に戻るように調整していきます。
VRM Spring Bone は Sceneに配置したAliciaSolidの子のsecondaryにアタッチされています。 髪に関係のある hair1_L(Transform)などがRoot Bonesに設定されたVRM Spring Boneを調整していきます。 ※髪の房ごとに調整したい場合は VRM Spring Boneを新たに追加し、Root Bonesにセットして調整ができます。
髪にふわふわ感を出したいのでStiffness ForceとDrag Forceを調整します。 ※Stiffness Forceは0にすると元座標に固定されるので0は入れないほうが良いです。
今回はStiffness Forceに0.65、Drag Forceに0.4がデフォルトで設定されているので値を修正していきます。
柔らかさと髪が下りてくる速さを調整することでふわふわ感を演出します。 Stiffness Froceに0.6、Drag Forceに0.8を設定してみた結果がこちらです。
Stiffness Force と Drag Forceを調整するだけで髪の揺れをふわふわにすることができます。 もっとこだわりたい場合には髪をまとめずに複数のVRM Spring Boneに分けて、前髪や横髪ごとに分けるといいと思います。
まとめ
今回は現実的な揺れ感ではなく、ゲームやファンタジー調のふわふわした揺れ感を出してみました。 Boneが入ってるスカートやアクセサリにも適用して、自分だけの好みな揺れ感のVRMモデルを作成してみましょう。