sn0w75/MikuMikuPenguin — pull request #62 by yocchi (2014-02-23 14:57:31+00:00)
Title: Fixed Movement of Type 2 (Physics Calc. + Bone Pos. Matching) RigidBodies

#### タイプ２剛体（物理＋ボーン位置合わせ）の動きを修正しました(#45)

TDA式
http://embedmyvideo.com/?vid=1393165909154-s7wqj5&t=html5

Apearance
http://embedmyvideo.com/?vid=1393165987540-jokge1&t=html5

それっぽいんじゃないかと思います．

#### 変更点リスト

- タイプ２剛体（物理＋ボーン位置合わせ）の動きを修正
- 剛体の動きのチューニング
- 重力を典型的なPMXモデルのサイズに合わせた
- 物理演算の更新周期を1/120秒に(1/60秒だとTDAミクのしっぽやアピミクのネクタイが暴れる)
- 必要そうなところにDirect3D -> OpenGL変換を足した
- リファクタリング
- pmx.h内の構造体のプリントデバッグコード
- pmx.h内のシンボル的なマクロをenumにした

#### 精度と効率について（つぶやき）

剛体の動きをボーンに反映する部分は **近似** かつ **ちょっと効率の悪い** 実装になっています．
見た目でわかるほどの問題はなさそうなので今は良しとしました．

現在のPMXBoneのメンバ変数の構成だと仕方がなかったです．
IKのコードも同じ原因で効率の問題を抱えているようです．
コードをいじってて効率アップの方法は見えた（PMXBoneにLocalだけではなくGlobalを持たせ，FKの関数を追加するとか）ので別のプルリクエストでやらせてもらおうかなと思います．