でん⚡きかいでんのブログ

3Dプリンター、3DCG、PC、電子工作、HTML、CSS、ミシン、ペンタブレット、アイデア・材料・道具の紹介。PCデータのわかりやすいバックアップ方法。PC関連機器の使用感レビューなど。

正当なCSSです! クリエイティブ・コモンズ・ライセンス表示

2021.11.13 [土]

ゆれモノ、ボーン、スキニング、Unity、SpringBone、設定値

VRM Live Viewer で使うことが前提です。

自然な感じで、下品になりすぎないようにゆれて欲しい。


HTT03_09_A.jpg



数年前に少しボーンやアンカーなどをいじってたことはあったけど、その後やらなくなっていたので、また最初から一歩ずつやり直し中という感じです。

無料で使える高性能なソフトも増えましたし。



今回のポイントだけ先に箇条書き

  • ゆらしたいモノはボーン1本ではなく、2本以上にしておいた方がいいかもしれない。
  • ボーンというものは、各ボーンの根元がメインでその先の枝(えだ)を動かしてる。
    ので、最後の先端部は_end なのであまり強い影響は出さない、と覚えておく。(スキニングを塗る時に)
  • スキニング(スキンウェイト)(ボーンの影響範囲を塗って調整すること)は重要なので、どう曲げたいかイメージしながら強から弱までをグラデーションのようにきれいに塗ること。
  • Unityのヒエラルキー(リスト)にはボーン名だけでなくオブジェクト名も列挙されるので、「オブジェクト名には、ボーン名とは違う名前をつけておく」方がわかりやすい。
    というより、「あらかじめモデリングソフト上で、違う名前を付けておきましょう!」
    ボーンに設定したいのに、どっちがボーンなのかわからなくなるので。
  • 親ボーン(の影響)が一番強いので、とにかく最初は親ボーンのゆれ具合を納得いくまで「Unityで調整↔実際に使用するソフト上で確認」を繰り返すべし。
    子ボーンの設定値はデフォルトのままでいい。子ボーンの値を変更するのは親ボーンの設定値が確定してから。
  • 今回のゆれモノに関しては、Unity の SpringBone の Stiffness と DragForce の設定を3:1くらいの数値にしておくと良い感じだった。
  • VRM Live Viewer で使うことが前提なので。
    激しく踊ったりもするのであまりやわらかすぎると下品な感じにゆれすぎるので、Unityで確認した時にリアルなゆれ感よりも、もっと硬めの方がちょうど良い加減だった。
    まあこれはその人の好みもあるので。



まずは3Dソフトでボーンとスキニング

私が使用している3DモデリングソフトはMetasequoia4です。


まずボーンを入れて、その後でスキニングです。

柔らかく丁寧に曲げたい場合はボーンを2本以上入れた方がいいみたい。

最初は1本でやってましたが、範囲内が丸ごと動いてしまい、思ったように曲がってくれないので2本にしました。


metasequoiaSkinning_Loppa01.jpg

metasequoiaSkinning_Loppa02.jpg

metasequoiaSkinning_Loppa_end.jpg


ボーンを入れると自動でスキニング(ウェイト)設定してくれるんですが、複雑な形状の場合は自分のイメージ通り変形してくれないので、塗り直しました。


metasequoiaSkinning_Loppa01A.jpg

metasequoiaSkinning_Loppa02A.jpg

metasequoiaSkinning_Loppa_endA.jpg


metasequoiaSkinning_Loppa01B.jpg

metasequoiaSkinning_Loppa02B.jpg

metasequoiaSkinning_Loppa_endB.jpg


metasequoiaSkinning_Loppa01C.jpg

metasequoiaSkinning_Loppa02C.jpg

metasequoiaSkinning_Loppa_endC.jpg



色で影響力の強さがわかりやすいようになっています。

このモデルはまだ面の割数が少ないので大雑把な数字で塗っていますが、もっと面が割ってあるハイポリモデルならペンタブレットなどを使って丁寧にきれいなグラデーションになるように塗ればきれいに曲がってくれるはず。


Metasequoia4のスキニングの色の数値はこう。


SkinningColor100.jpg SkinningColor75.jpg SkinningColor50.jpg SkinningColor25.jpg SkinningColor0.jpg



次はUnityで設定と確認

  • Unity : 2020.3.21f1
  • UniVRM : 0.88.0

fbx 形式で別名保存して、UnityのASSETSへドラッグ&ドロップします。

ゆらしたいボーン全部に「コンポーネントを追加」で、SpringBoneを設定していきます。

意外なことに、これには何段階かの手間が必要です。



ボーンは「Hips」が最上部の親で、その下に子ボーンが連なっていきます。


UnityHierarchyList01.jpg


ので、最初はUnityのヒエラルキー(リスト)で、設置したいボーンまで開いていく必要があります。


Hips→Spine→Chest→UpperChest→目的のボーン


UnityHierarchyList02.jpg


目的のボーンまで開いたら、Unity画面の右側にある「インスペクター」内で「コンポーネントを追加」、「VRM Spring Bone」をクリックして追加します。


UnityAddComponetVRMSpringBone01.jpg


これだけだとなぜかまだボーンに関連付けられておらず、「リストは空(カラ)です」となったままなので


UnityAddComponetVRMSpringBone02.jpg


+(プラス)をクリックして、更に丸十字を押して、目的のボーンを指定します。


UnityAddComponetVRMSpringBone03.jpg

UnityAddComponetVRMSpringBone04.jpg

UnityAddComponetVRMSpringBone05.jpg


この時、このボーンと同じ柔らかさでいいのであれば子ボーンも更にここに追加してしまいます。


個別に違う硬さを設定したい場合は、ヒエラルキー(リスト)からそのボーンを選択して同じように「コンポーネントを追加」から「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しておきます

今回動画で使用した3種のテストモデルをBOOTHへUPしておきます。


VRM Live Viewer で踊らせてみると違いがわかると思います。



BOOTH : ゆれモノテスト3種 (無料)




関連記事

« NEW  | HOME |  OLD »

コメント

コメントの投稿


「コメント非表示」管理人しか閲覧できないコメントにする。

 | HOME |