ゆれモノ、ボーン、スキニング、Unity、SpringBone、設定値
VRM Live Viewer で使うことが前提です。
自然な感じで、下品になりすぎないようにゆれて欲しい。
数年前に少しボーンやアンカーなどをいじってたことはあったけど、その後やらなくなっていたので、また最初から一歩ずつやり直し中という感じです。
無料で使える高性能なソフトも増えましたし。
今回のポイントだけ先に箇条書き
- ゆらしたいモノはボーン1本ではなく、2本以上にしておいた方がいいかもしれない。
- ボーンというものは、各ボーンの根元がメインでその先の枝(えだ)を動かしてる。
ので、最後の先端部は_end なのであまり強い影響は出さない、と覚えておく。(スキニングを塗る時に) - スキニング(スキンウェイト)(ボーンの影響範囲を塗って調整すること)は重要なので、どう曲げたいかイメージしながら強から弱までをグラデーションのようにきれいに塗ること。
- Unityのヒエラルキー(リスト)にはボーン名だけでなくオブジェクト名も列挙されるので、「オブジェクト名には、ボーン名とは違う名前をつけておく」方がわかりやすい。
というより、「あらかじめモデリングソフト上で、違う名前を付けておきましょう!」
ボーンに設定したいのに、どっちがボーンなのかわからなくなるので。 - 親ボーン(の影響)が一番強いので、とにかく最初は親ボーンのゆれ具合を納得いくまで「Unityで調整↔実際に使用するソフト上で確認」を繰り返すべし。
子ボーンの設定値はデフォルトのままでいい。子ボーンの値を変更するのは親ボーンの設定値が確定してから。 - 今回のゆれモノに関しては、Unity の SpringBone の Stiffness と DragForce の設定を3:1くらいの数値にしておくと良い感じだった。
- VRM Live Viewer で使うことが前提なので。
激しく踊ったりもするのであまりやわらかすぎると下品な感じにゆれすぎるので、Unityで確認した時にリアルなゆれ感よりも、もっと硬めの方がちょうど良い加減だった。
まあこれはその人の好みもあるので。
まずは3Dソフトでボーンとスキニング
私が使用している3DモデリングソフトはMetasequoia4です。
まずボーンを入れて、その後でスキニングです。
柔らかく丁寧に曲げたい場合はボーンを2本以上入れた方がいいみたい。
最初は1本でやってましたが、範囲内が丸ごと動いてしまい、思ったように曲がってくれないので2本にしました。
ボーンを入れると自動でスキニング(ウェイト)設定してくれるんですが、複雑な形状の場合は自分のイメージ通り変形してくれないので、塗り直しました。
色で影響力の強さがわかりやすいようになっています。
このモデルはまだ面の割数が少ないので大雑把な数字で塗っていますが、もっと面が割ってあるハイポリモデルならペンタブレットなどを使って丁寧にきれいなグラデーションになるように塗ればきれいに曲がってくれるはず。
Metasequoia4のスキニングの色の数値はこう。
次はUnityで設定と確認
- Unity : 2020.3.21f1
- UniVRM : 0.88.0
fbx 形式で別名保存して、UnityのASSETSへドラッグ&ドロップします。
ゆらしたいボーン全部に「コンポーネントを追加」で、SpringBoneを設定していきます。
意外なことに、これには何段階かの手間が必要です。
ボーンは「Hips」が最上部の親で、その下に子ボーンが連なっていきます。
ので、最初はUnityのヒエラルキー(リスト)で、設置したいボーンまで開いていく必要があります。
Hips→Spine→Chest→UpperChest→目的のボーン
目的のボーンまで開いたら、Unity画面の右側にある「インスペクター」内で「コンポーネントを追加」、「VRM Spring Bone」をクリックして追加します。
これだけだとなぜかまだボーンに関連付けられておらず、「リストは空(カラ)です」となったままなので
+(プラス)をクリックして、更に丸十字を押して、目的のボーンを指定します。
この時、このボーンと同じ柔らかさでいいのであれば子ボーンも更にここに追加してしまいます。
個別に違う硬さを設定したい場合は、ヒエラルキー(リスト)からそのボーンを選択して同じように「コンポーネントを追加」から「VRM Spring Bone」を選択して追加していく必要があります。
ついさっきまで私はそのことに気付かなかったので、ずっと何度もすべての必要なボーン各個にSpringBoneを設定していました。
すごく面倒臭い作業です。
どの数値が最適だったか動画にしてみた
VRM Live Viewer で使うことが前提なので、Unity上で確認してはエクスポートして、VRM Live Viewer でゆれ具合を何度も確認しました。
その結果、Unity上ではリアルなゆれ感でも、VRM Live Viewer 上ではゆれすぎだったので、自分好みのゆれ感にたどりつくまで何度も「Unity数値設定→エクスポート→VRM Live Viewer で確認」を繰り返しました。
まだ完璧だとは思ってませんが、とりあえず「このくらいかな」というあたりを見いだしたので記録しておきます。
Unity Stiffness:0.15 , DragForce:0.05
Unity Stiffness:0.3 , DragForce:0.1
Unity Stiffness:0.9 , DragForce:0.3
Unity 上では1番目の動画くらいの硬さがリアルで良さげだと思ったのですが、VRM Live Viewer で踊らせてみると柔らかすぎて自分好みではありませんでした。
最終的に使用したのは最後の動画の数値でした。
Unity上で見るとけっこう硬めですよね。
ここに上げた動画以外にも何度も数値設定を繰り返して確認してみたのですが、今のところ「Stiffness : DragForce」の数値は「3:1」くらいが良さげだという感じです。
S0.9:D0.3(硬い)~S0.15:D0.05(柔らかい)の範囲内くらいかな。
個人的な好みも入ってくるので、これが正解とかそういうことではないです。
あくまでも、今回のこのモデル&ボーンに関しては、自分の好みだとこのくらいかなあという数値です。
モデルやボーン数やスキニング具合や使用するソフトによってもゆれ方が変わってしまうので、正解というのはありそうで無いと思います。
今回使った3種をBOOTHへUPしておきます
- 関連記事
-
-
Unity, texture, Transparent, png, material, 透過、割り当て、手順 2021/11/01
-
ゆれモノ、ボーン、スキニング、Unity、SpringBone、設定値 2021/11/13
-
Visual Scripting が見つからない 無い Unity 2021 以降なのに 2022/04/16
-
コメントの投稿