超シンプル物理 / CEDEC 2011 中継よりメモ
前半
スティック拘束
- 2点の長さを維持する
- 位置を書き換えればよい
コリジョン
- 以上に対するデモ : 髪の毛
チェインの姿勢と角度制限
- 姿勢はバインドポーズからの最小回転で算出
- 平面上で角度制限。超えていたら制限値に戻し、ワールド座標へ
ヘビIK
1. 目標位置を決める
2. 現在位置と目標位置との間にバネ(力)
3. あとはVerlet積分と拘束が面倒みてくれる
布、髪
- メッシュをそのままパーティクル+スティック拘束に
バッチング
- Lost Planet 2のヤシの木
- SPUではLS(ローカルストレージ)に入る分を送る
後半: 以降の内容はDragon's Dogmaで使われていない
Verlet 剛体 (VRB)
- 四面体
- 4パーティクル
- 6スティック拘束
- 質量は4つのパーティクルの合計
- 慣性テンソル : 4パーティクルの質量配分と配置から
- なぜ四面体?
- 剛体の座標系に変換
- 重心座標系(後で重要)
- 多面体で最小の頂点・辺・面
衝突応答
- Verlet積分なので位置を移動するだけ
- 複数VRBの衝突はこの処理を逐次繰り返す
重心座標系
- 任意の位置
(移動量)
- 〜:重心座標で分配
摩擦
- 疑似摩擦
- デモ : スタッキングなどには向いていない
ボールジョイント
最大距離ジョイント
まとめ
- 仕組みがわかりやすく〜
- 重心座標のあたりはちょっと複雑だが
- 正確さには劣る
- より正確なものが必要な場合→速度ベース、インパルスベース
- それなりの挙動を簡単に生み出せる