vrm-specification icon indicating copy to clipboard operation
vrm-specification copied to clipboard

ヒューマノイドのローカル軸を決める

Open ousttrue opened this issue 5 years ago • 3 comments

目的・機能

  • オイラー角でポーズ付けができるようにする
    • (degree? radian?) GLTFは角度は radian を使う指針があるが、これに関しては degree の方が使いやすいような
  • ポーズ・モーションの定義をするときに手付で作るときに使うかもしれない
  • 親指が曖昧である問題が改善するかもしれないが、手がフルコントロールできるアプリの存在が先に必要かもしれない
  • オイラー角で各関節の角度を記述したリストがポーズとなり、VRMで互換性がある

参考

  • https://docs.microsoft.com/en-us/azure/kinect-dk/body-joints

と同じでよいのではないか。 目が無いけど、目は正規化済みでワールド軸と同じで良いのでは?

Unity はこれをさらに進めて

という概念があるが、ここまで決めてしまう材料は無い。

実装

ヒューマノイドのボーンに関して

  • ローカル軸の向き
  • ローカル軸の乗算順

を確定させる

if(use_local_axis){
  // ローカルを使うアプリは、ロード後に追加の処理
  apply_local_rotation(hierarchy);
  calc_bind_matrices(hierarchy);
}
  • オプションで正規化済みの骨格に追加で保存する。無い場合はワールド軸と同じにフォールバック

ousttrue avatar Sep 30 '20 10:09 ousttrue

#34

ousttrue avatar Sep 30 '20 10:09 ousttrue

TODO

各ヒューマンボーンの軸の向きを記述する。

  • X軸。進行方向固定
  • Y軸。軸と+回転時の人体の動き
  • Z軸。軸と+回転時の人体の動き

ousttrue avatar Sep 30 '20 10:09 ousttrue