黒猫のLive2D研究レポート 【物理演算による揺れについて】
暇すぎてやることがない黒猫のLive2D研究レポートである。
■物理演算について
最初に元々Live2Dには物理演算という機能は無く、すべてアニメーション【パラメータ】を付ける形でありました。また3Dでよくある重力の動作をLive2Dで行うことを目的にしてたと記憶しています。ですが実際の使われ方は少し違うだろうと感じています。それは重力という力の設定が無く力に対しての反応を個人がアニメーション【パラメータ】を付ける形で行っているためです。
前提として位置Xと書かれてるからと言ってX方向だけしか使えない訳ではなく、単純に振り子がX方向にしか動かないだけです。
なので揺らしたいモノが縦揺れだろうが斜め揺れだろうが動く。
■物理演算の位置Xと角度による出力
位置Xは横方向に動くことで振り子が動く、角度は回転方向に動くことで振り子が動きます。
位置Xは初期位置に最終的に戻るが角度は入力された位置に留まる。入力が外れないと初期位置に戻らない。
そして角度入力だけで振り子を作成し1,2,3とつなげた振り子の場合。1は角度の動きだが2からは位置Xと同じような動きをする。
1は入力位置に留まると出力されたまま維持されるが2以降は出力は0になる特性があります。
■物理演算で表現したい事
重力で動かしたいモノを質量に対して空気が影響与える動きを考える必要が出てくる。つまり質量に合わせて動きを変えていきたい。
重力による動作または風による動作など表現に合わせて使い分ける必要があると考える。
■解決方法論
振り子の使い方として極端にした場合、最後の振り子をふり幅短くして振りを早くするか、最後の振り子をふり幅大きくして遅れた揺れにするかだと思います。単純にすべての振り子を同じ幅、同じ揺れにしている人もいるでしょう。
コレらは物理演算の位置Xと角度で動く出力の仕方ですが、機能として入力の仕方を別々にした方が表現の幅が拡がるのではないか?と考えました。
・位置X型
単純な振り子による動作で入力してすぐに0値に戻ろうとするので質量が少し重く揺れやすいものに使用すると良い。
・角度型
入力されたままだと一番最初の振り子は出力されたままの状態になるため、振り子の動作を遅くしやすく安定してる。
質量が軽いモノか入力されたままの状態を維持したい時に使用すると良い。
・逆出力位置X型
出力を逆順にしたモノ、通常はモデルからの力が加わり振り子で動かす訳だが、風や外界から力が加わり逆から動くようなイメージを作るための方法。
■結論と応用
表現したい事に合わせて解決方法論の入力と出力を試すのが良いでしょう。
他にも方法はあるとは思いますが大まかに実用的な動作方法は解決方法論にある入力と出力だと考えています。
コレを応用すると全体の動きを角度でやり、端を位置X入力にする事で入力動作のスピードの関係で揺れ方が変わるモノが出来ます。
【後ろ髪】
髪の毛XYZは角度型でXは体の傾きにYは縦のゆっくりした入力にZは首の動きにそれぞれ反応して動きます。これらは髪の毛全体の動きです。
後髪XYは位置X型と逆出力位置X型で頭の動きに連動してます。X方向は遅めでY方向は速めの出力になってます。こちらは髪の毛の端が動くようにしています。
■注意事項
・最大出力は100%ちょうどぐらいを目指す
パラメータの最大値に一定時間留めたい場合はわざと超えることで表現する方法もありますが、その限りではないのであればやめましょう。
・一番避けなければならない事
振り子が1回転または順になっている前の振り子を超えてしまうと
動作不順を起こすためバグのような動作をモデルがしてしまいます。
Live2Dモデルを活用するツールによっても動作が変わることがあるため不自然な動きをしていたらコレが原因です。
・活用するモデルfps値を一緒にする
調整時に同じfps値でないと全く違う動きをしていることがあります。
【30fps】
【60fps】
【120fps】
■最後に
物理演算による揺れについて記述しましたが物理演算を使用した全く別の動作があり瞳孔の伸縮だとかアクセサリーのハイライトなどに使用されることがあるので模索してみては?
以上【物理演算による揺れについて】
■参照モデル
--------------------------------------------------------------------------------------
漆黒の絵描きLive2Dクリエイト野良猫
|twitter|skeb|
--------------------------------------------------------------------------------------
この記事が気に入ったらサポートをしてみませんか?