vrm-specification
vrm-specification copied to clipboard
ヒューマノイドのローカル軸を決める
目的・機能
- オイラー角でポーズ付けができるようにする
- (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);
}
- オプションで正規化済みの骨格に追加で保存する。無い場合はワールド軸と同じにフォールバック
#34
TODO
各ヒューマンボーンの軸の向きを記述する。
- X軸。進行方向固定
- Y軸。軸と+回転時の人体の動き
- Z軸。軸と+回転時の人体の動き