剛体表示(修正)


Irrlichtに乗せるにあたってBulletを調べていたら前の剛体表示はミスってたことが判明。
PMDにある3種類の剛体のうちボーン追従タイプが出ていなかった。
Cスタイルのキャストには注意しないといかん。dynamic_castを使っていればすぐに気付いたのに。

btMotionStateについて

http://www.bulletphysics.com/Bullet/BulletFull/classbtMotionState.html
http://bulletphysics.org/mediawiki-1.5.8/index.php/MotionStates

setWorldTransform

最初に初期位置を設定したときとstepSimulation時に呼ばれる。
以下のようにしてkinematic ObjectにするとstepSimulation時には呼ばれなくなるみたいだ。
>|cpp|
btRigidBody *body;
body->setActivationState(DISABLE_DEACTIVATION);
body->setCollisionFlags( body->getCollisionFlags() | btCollisionObject::CF_KINEMATIC_OBJECT);
|

http://sssiii.seesaa.net/article/139271643.html
これは勝手に動かないが衝突判定だけしたい場合に使うということだろうと思う。

詳細調べ中・・・

getWorldTransform

rigidBodyの位置を更新する。
defaultMotionStateではsetWorldTransformで入ってきたものをそのまま出すだけ。

なんか違う。
ちゃんと理解できてから書き直す。