黒猫のLive2D研究レポート 【揺れモノに関するXYについて】
暇すぎてやることがない黒猫のLive2D研究レポートである。
■簡易的な髪の揺れLive2D公式モデルを参考
Live2D公式が出している標準パラメータのモデルを参考にした場合、
主に【パラメータ角度X】を位置X100入力の物理演算で髪揺れ:前・横・後に出力されます。物理の角度は【パラメータ角度Z】になってますが今回は使用した記述を行わない事とします。
■Y方向における問題提起
上記に追加で角度Y入力の物理演算で同時出力する方が多いのですがコレは問題が生じます。
【角度Xに位置X50と角度Yに位置X50にした場合】
X方向
Y方向
斜め方向
X方向-1入力+Y方向1入力またはX方向1入力+Y方向-1入力=出力0になるため動かない方向が出てきます。さらに髪の毛の場合Y方向の動作として縮める又は左右の髪位置によって中と外に揺れる必要があると考えます。
■解決方法論
①ワープデフォーマを二つ作りX方向とY方向でパラメータを作成する。
一番効率的に揺れが作れる。ワープデフォーマの親子関係でハミ出すと容量が重くなる。
②回転デフォーマを二つ作りX方向とY方向でパラメータを作成する。
回転するだけなので揺れる時のたゆみが出ない。
③回転とワープデフォーマを作りX方向とY方向でパラメータを作成する。
上記を統合したハイブリット型。一番安定する。
④回転かワープデフォーマとメッシュでX方向とY方向のパラメータを作成する。
揺れ方を細かく調整できるがメッシュの頂点を一つ一つ動かす必要があるので大変。
⑤一つのデフォーマでX方向とY方向のパラメータを作成する。
顔【パレメータ角度XY】の応用
▼解決方法論⑤の作例と問題
・ワープデフォーマだけの場合
顔【パラメータ角度XY】の応用ではあるがY方向は髪の伸び縮みだけでなく揺れを意識すると良く。全方向を動く形をとるのがベストだと考えます。
・回転デフォーマだけの場合
X方向-10,0,10とY方向-10,0,10だけで使うと動きが悪くなります。
理由として数値が方向で被る事または【Y方向の問題提起】で書いた入力値がぶつかり合い±0が出力されてる可能性があります。
解決策として斜め方向に+αする。Yの-値のXを反転することで同数値の間隔を減らし左右で反転した動きにする事で動かない方向をカバーする。または回転動作だけでなく軸の位置を変えるなどありますがこの方法に関してはあまり得策ではない思っています。
回転デフォーマだけでXYを作るのはおすすめ出来ません。
▼結論
ここまでいくつか方法論を書いてありますが気づいた方もいるでしょう。
極論XY方向で別々のパラメータを用意し物理演算でもXY別々の振り子を用意し割り振れば良いだけの事です。
前提として物理演算で位置Xと書かれてるからX方向だけしか使えない訳ではなく、単純に振り子がX方向にしか動いてないだけです。
なので揺らしたいモノが縦揺れだろうが斜め揺れだろうが動きます。
おすすめは解決方法論③とワープデフォーマです。
■解決補法論③を使用したスキニング応用
解決方法論③はワープデフォーマを親として子に回転デフォーマを付ける事で解決方法論⑤のワープデフォーマ動作を回転デフォーマに数値を入れなくてもワープデフォーマに追従して向きを変えることが出来ます。つまり回転デフォーマを無理やりXYに動作するようにしないで別の動作として回転動作だけ機能出来る可能性があります。
スキニングを使用すると回転デフォーマ【X方向】とテクスチャが分割された状態で複製されるのだがテクスチャにワープデフォーマ【Y方向】を挿むことが可能なためY方向のパラメータを作成することが出来る。
X方向
ただしY方向に伸び縮みするだけの動作の場合1,2,3と振り子にパラメータを配置しても上手く動きません。理由は分割した伸縮だと一部分が伸び一部分が縮み±0になり全体の大きさが伸縮しないためです。一つにまとめた方が動きとしては良くなります。
Y方向
斜め方向
また疑似的にスキニングと同じ構造を作成することは可能です。
スキニングは回転デフォーマとテクスチャとグルーの混合物であるため
長物の絵ではなくてもスキニングと同じ効果を発揮するXYに揺れる制作物を作ることが出来ます。
上記の事からも回転デフォーマに数値を入れなくてもワープデフォーマに追従して向き変わる動作が出来るため揺れ感を損なわず、上手く使用できると良い動きが作れるでしょう。
以上【揺れモノに関するXYについて】
■参照モデル
●origami
--------------------------------------------------------------------------------------
漆黒の絵描きLive2Dクリエイト野良猫
|twitter|skeb|
--------------------------------------------------------------------------------------