vrm-specification
vrm-specification copied to clipboard
VRMSpringBoneを布モノに適用すると突き抜けてしまう
VRMSpringBoneをスカートに適用してみたのですが、ボーンの間隔がひろがって衝突判定のコライダの横をすり抜けてしまいしまいます。ボーンに回転制限を設定できるようにできないでしょうか? https://twitter.com/ROSTOCK_SP/status/1026457279694954497 https://twitter.com/ROSTOCK_SP/status/1026459877315555328
スプリングとスプリングの間に当たり判定付きのボーンが割り込んでしまうのは、なんらかの方法で対策したいと思います。
よろしくお願いいたします。
Ref: #96
#90 こちらのClothライブラリをスカート用途で使用できないか検討中です。
#96 とは別の解決手法がある可能性を鑑み、このissueは #96 とは関係なく開けてお居たほうが良さそうと思います。
Cloth とは別で回転の角度制限があるとメカ物のヒンジジョイントのような表現が可能となるので、 SpringBone への角度制限の実装を同じく希望します。
ただし、現在の VRM がローカル方向を破棄する以上 SpringBone は仮想ボーンを利用しているのに近い形ですので、例えばスカートのような放射状のボーンで Z 軸回転が起こらなくなるように制限したい時に、~~全てのスカートの骨が前後にしか揺れなくなる~~方向推定した軸基準でしか制限ができないというような事が予想されます(※1)。もし SpringBone が現在の実装を引き継ぐのであれば、 SpringBone のパラメータとして角度制限の項目に加え、仮想ボーンのロール値を設定するような(※2)項目を実装する事で任意の方向への角度制限が実現できるのではないかと考えられますが、節ごとに再設定が必要な実装は如何なものかと思います。
※1: 未検証です、間違っていたらすみません。多分ワールド軸であれば座標変換は必要だけど制限できるかも。 ※2: 例えばスカートの骨が 8 方向ある場合、斜めなら45°、横側なら 90° とすれば全て X 軸の制限のみで放射状に動かせるのではないでしょうか。