剛体表示(修正)
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時に呼ばれる。>|cpp|
以下のようにしてkinematic ObjectにするとstepSimulation時には呼ばれなくなるみたいだ。
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で入ってきたものをそのまま出すだけ。
なんか違う。
ちゃんと理解できてから書き直す。