何故か物理エンジンを見てるでござるよの巻

3Dだったらやっぱり行列まわりのライブラリ欲しいよねぇと思って,どうせなら物理エンジンで使ってるやつを使っちゃおうかな,ということでODEをいじってみる.調べた感じでは四元数を覚えた方が良い?あと,ODEだけでも必要な分は描画できるかも.内部でOpenGL使ってるらしいので,物理エンジン+OpenGLに結果的になってるけど.


うちのノートパソコンでもきちんと物理エンジンが動くのを確認して一安心.重力方向も鉛直方向以外をセットできることを確認した.

  • Wiiコンに合わせてフィールドを動かす場合
    • フィールドの各構成要素に対して移動先などを計算する必要がある
    • もしかしたら,フィールドにパーツを固定することで,フィールド動かすだけで良いかも
    • 要確認:フィールド上にパーツを固定できるか
  • Wiiコンに合わせて重力方向を変える場合
    • ボール以外は基本的に動かさずに済むので,処理の軽減が可能.
    • 傾きの表現のためにカメラの方を動かす必要がある
    • 要確認:動的に重力方向が変更可能か・重力や衝突で移動しない物体が設定可能か

ぶっちゃけ,傾きの計算とか面倒なので,動的に重力方向を変えられるならその方向で行くことにした.


ODE本は5月中旬に出るらしい.ゴールデンウィーク前だったら嬉しかったのだけど仕方がない.


///////////


dBodySetGravityMode(BodyID, 0)で重力の影響オン
dBodySetGravityMode(BodyID, 1)で重力の影響オフ


dBodyDisable(BodyID)で物理シミュレーションオフ.ただし,何かとぶつかればシミュレーションを再開する模様.


dJointSetFixed(JointID)で固定するしか方法ないのか?毎回dBodySetPosition呼ぶのも嫌だぞ.