vrm-c / vrm-specification

vrm specification
235 stars 37 forks source link

docs (1.0, springBone): slightly update a non-normative document about center space #376

Closed 0b5vr closed 2 years ago

0b5vr commented 2 years ago

Description

SpringBoneの実装に関するnon-normativeなドキュメントに対する軽微な追記です。

SpringBoneの計算について、すべての計算をcenter spaceで計算してしまうとcollisionに不整合が発生してしまうので、これを慣性計算のみに適用するべき旨を明示しました。

ousttrue commented 2 years ago

collisionに不整合 が何を指しているのか分からない感じです。 collision の場合、どの空間で計算しても同じ結果になりそうな気がしますが、どうなんだろう。

0b5vr commented 2 years ago

例えば、shoulderに入っているcolliderをchestからのcenter spaceで計算してしまうと、hipsの回転がcolliderに適用されず、変なところにcolliderが残ってしまう、みたいな感じです。これで伝わりますでしょうか……?

ousttrue commented 2 years ago

🤔 実装の仕方によりますが Collider の位置は、所属するノード子供としてワールドで位置を解決 => 衝突判定の springBone の空間に変換 => 判定 というのを想定してまして、 center space 出てこないような・・・ center space は spring tail の慣性移動の速さを決めるところにだけ影響するような・・・。 全体として world スペースの代わりに center space を使うという実装の詳細はありですが、それによって値が影響をうけるのは、やはり 慣性移動の速さ だけ、のような気がするのです。

0b5vr commented 2 years ago

はい。そのため、実装方針の混乱を防ぐために慣性の計算以外にcenter spaceが関与しないことを明示するのが良いかと思いました。