UniVRM icon indicating copy to clipboard operation
UniVRM copied to clipboard

VRM1.0のRoll Constraintの挙動について/Behavioral of Roll Constraint in VRM 1.0

Open MelvinaSakura opened this issue 6 months ago • 1 comments

公式でコンストレイントの仕様を確認しても、理解できなかったのでご質問します。 (VRM Add-on for Blender開発者様にも同様の質問をしているので、内容に重複する部分があります)

着物の袖部分のリグを構築しているところですが、腕を上げた時、裾が持ち上げられないようにするため、スプリングボーンのルートにRoll Constraintを設定して地面方向に向く工夫ができないか考えていました。

まず、リグの構造をBlender3Dビューポートで説明します

Image

VRM1.0のRoll Constraintの条件では、反転は設定できないとのことで、コンストレイントを設定するボーンのロールを90から-90にすると、Fig.1のようにBlenderの3Dビューポート上では、反転動作が確認できます。 (図中では、upper_arm.L を親とする roll_sleeve.L にコンストレイントを設定しています.ローカルのX軸を制限します)

しかし、UniVRM上では(three-vrmも含む)、反転動作は表れません(Fig.2)。

Image

一方、対称軸を全て指定するRotation Constraintでは、UniVRMやthree-vrmをプラットフォームとするアプリでも回転方向の逆転が現れます(Fig.3)。

Image

ただし、目的外の軸も動いてしまうので、それを打ち消す工夫が必要になります。

以上の現象は、本来の仕様に由来するものでしょうか。それとも、バグを利用しているだけで、今後の動作が変わる可能性があるのでしょうか。 よろしくお願いします。

環境情報

  • UniVRM version: 0.129.2
  • Unity version: Unity-2022.3.22f1
  • OS: Windows 11

MelvinaSakura avatar Jun 29 '25 07:06 MelvinaSakura

仕様書の、This extension defines the Rotation Constraint in Local-Local. の文言において、Local-Localの解釈は、ともにローカル空間で扱うことを意味するのでであれは、設置したボーンのロール角が変われば、回転方向が変わるのは、仕様範囲内に思えますが、いかがでしょうか?

MelvinaSakura avatar Jul 02 '25 04:07 MelvinaSakura