物理点

物理点の作用

物理点はアートメッシュと紐づけることで「揺れ」「奥行き」「回転パラメータの再適用」の3種類の作用をもたらすことができます。

紐づけの追加や種類の変更は「ビューポート」の右クリックメニュー、または「詳細パレット」から行うことができます。

揺れ

物理点が運動したとき、元の位置からの動きに応じた変形をアートメッシュに加えます。

メッシュ変形の規則

アートメッシュの変換は以下のような手順で変形されます。

  • 各物理点について、物理演算を適用した場合と適用しなかった場合の座標を計算
  • それぞれキャンバス座標上に投影し、物理演算を適用しなかった場合を基準として物理点の移動と親の物理点の位置を中心とした回転角を計算 (下図左)
  • アートメッシュの各頂点に以下の計算を適用 (下図右)
    • 紐づけた物理点の親が移動したのと同じだけ頂点を移動
    • 求めた回転角と同じだけ親の物理点を中心に回転

また、カメラの視線と物理点の親と子を結ぶ線分の角度が平行に近ければ近いほど変形が抑制されます。
これは、見る角度によって揺れるべき部分が隠れてしまう場合に違和感のある動きをしてしまうのを避けることを想定した処理です。

前髪の髪先を揺らすために物理点が-Y方向に配置されている

頭上から見ると髪先が隠れてしまうが、物理点の配置がカメラの視線と平行に近いため動きが抑制されて余計な箇所が動いてしまうのを防いでいる

複数の物理点が紐づいている場合

アートメッシュの各頂点について、紐づいている全ての物理点との距離を計算して近いものの影響を強く受けるように重みを計算します。
物理点が動かなかった場合でも頂点を動かさないようにする影響を与えるため、回転の種類が「固定」の物理点を紐づけることでその周辺の変形を抑えることができます。

上図は物理点が頂点に対して最も強い影響を与える範囲を緑の線で大まかに区切ったもので、
回転が固定されている物理点を青字、弾性可動の物理点を黄色字でナンバリングしています。

1,2の物理点は回転が固定されているので、その周辺の頂点はあまり動かず、
3,4の物理点の周辺のメッシュ頂点が大きく動くようになります。

また、線の近くなど同じような距離に複数の物理点がある頂点はそれぞれから同程度の影響を受けます。

詳細パレットの「揺れタイプ」から「リンクに追従」を選択すると、上図のように物理点からの距離ではなくリンクからの距離に応じた影響を受けるようになります。

この場合は物理点2のリンクが、親である物理点1の周辺のメッシュ頂点を固定する役割を担っていて、物理点1のリンクが余分に影響を与えてしまうため、

物理点1の対応付けを外した方が多くの場合意図した動作をしやすくなります。

奥行き

物理点の奥行きを参照してアートメッシュの3D空間上の奥行きを設定することができます。

単にLive2Dの平面上に並べただけでは3Dモデルと干渉して前後関係が逆転してしまうような場合に、

この機能を使うことでそれを解消し、3次元的に違和感の無い前後関係を表現することができます。

パラメータYの値を大きくするとツインテールが前に突き出るようになり、
腕よりも前に来てしまう
物理点の奥行きと紐づけることで腕の後ろを通すことができる

奥行きの計算方法

奥行きの計算はアートメッシュの頂点毎に行われ、次のような計算によって決定されます。

  • 紐づけた物理点の親側のリンクを全てキャンバス座標に投影
  • 投影したリンク上で、アートメッシュの頂点と最も近い点を探す
  • 見つかった点と対応する投影前のリンク上の点を求め、その奥行きをアートメッシュ頂点の奥行きとす

但し、リンクと視線が平行に近く、キャンバスに投影したときにリンクが極端に短くなるような場合にはすべての頂点にカメラに近い方の物理点の奥行きが適用されます。

注意事項

この奥行きはあくまで3D空間上の前後関係を調整するものなので、Live2Dモデルとしての前後関係は「描画順」によって設定されたものが優先されます。

そのため、描画順では手前にいるが3D的には奥にいるというような矛盾した状況になったとき、「手前の描画順にあるアートメッシュが3Dモデルに隠されて描画されず、奥の描画順にあるアートメッシュが見えてしまう」ということが起こり得ます。

このような状況を避けるために、表示がちぐはぐになると困るもの同士は奥行きの設定を揃えておくことをお勧めします。

回転パラメータの再適用

Euclidの回転パラメータはカメラと接続ジョイントの位置や回転から計算されます。

回転パラメータの再適用では、接続ジョイントの代わりに物理点の位置と回転を使って回転パラメータを求め、紐づけたアートメッシュの補間に適用する機能です。

これによって個々のアートメッシュに異なる回転パラメータを与えることができるようになり、

物理演算等で物理点に大きな揺れや回転が生じた場合でも、紐づけたアートメッシュが表現する部位をより適切な角度から見た形状を表示することができます。

例として、お辞儀をしてツインテールを地面方向に垂らそうとした場合の挙動を示します。

回転パラメータの再適用を使用しない場合、
顔の向きからアートメッシュの補間を行うため、頭頂部の形状がそのまま表示される
使用した場合、物理点が垂れた分の回転がツインテールの回転パラメータに適用され、
正面に近い方向から見たときの形状が表示される

この機能では、回転パラメータが変化することで生じるアートメッシュの位置ずれを自動で補正する処理が含まれますが、その処理は物理点の位置を参考にして行われます。

この画像では、顔全体のパラメータはX=-5、Y=-80 、向かって右側のテールはX=-5、Y=-30で表現されます。(いずれもおおよその数値)

このとき後者の値で生成される補間形状をそのまま使用するとずれた位置にアートメッシュが表示されてしまうため、物理点のキャンバス上での位置を参照して自動的に補正を行います。

注意事項

角度によってアートメッシュと物理点の位置関係が大きく異なるような、所謂2次元の嘘が多分に含まれるモデルの場合

現状の仕様によるずれの補正では不完全な状態になってしまうため、期待したような挙動をさせることが難しくなっています。

Copyright © 2018 Live2D Inc.