タグ

gameとverletに関するrydotのブックマーク (2)

  • 超シンプル物理 / CEDEC 2011 中継よりメモ - 迷宮調査報告書

    前半 Verlet(ベルレ)積分 前の位置と現在の位置の差で、速度を表す 位置を直接動かすことができる特徴が重要 力を掛ける場合は、から。 スティック拘束 2点の長さを維持する 位置を書き換えればよい チェイン(揺れもの) スティック拘束を順に繰り返す 全体をイテレーションする回数→伸びの許容とパフォーマンスのトレードオフ sqrt近似: sqrt() = r + (a - r^2) / 2r コリジョン 以上に対するデモ : 髪の毛 チェインの姿勢と角度制限 姿勢はバインドポーズからの最小回転で算出 平面上で角度制限。超えていたら制限値に戻し、ワールド座標へ ヘビIK 1. 目標位置を決める 2. 現在位置と目標位置との間にバネ(力) 3. あとはVerlet積分と拘束が面倒みてくれる デモ : 頭を動かすと、体がついてくる。体にコリジョンが当たれば、それなりの形に変形 デモ : Dra

    超シンプル物理 / CEDEC 2011 中継よりメモ - 迷宮調査報告書
  • マリオのジャンプ実装法とVerlet積分 - Gemmaの日記

    (追記)JavaScriptで実装してみました 昔、何かの雑誌*1でマリオのジャンプの実装法を見た覚えがあって、あの放物線運動は、 マリオの速度ベクトルを保存しておいて座標を計算するんじゃなくて、 マリオの前回の座標を保存しておいて座標を計算しているんだそうです。 y_temp = Mario.y; Mario.y += (Mario.y - Mario.y_prev) + F; Mario.y_prev = y_temp;Fはその瞬間の力で、ジャンプの瞬間はF=10にして、空中ではF=-1にします。 するとこんな放物線になります。 [0,10,19, 27, 34, 40, 45, 49, 52, 54, 55, 55, 54, 52, 49, 45, 40, 34, 27, 19, 10, 0] 加減算しか使わないので、非常に高速にできたと。 これがVerlet積分に似ているなと思った

    マリオのジャンプ実装法とVerlet積分 - Gemmaの日記
  • 1