LoginSignup
0
0

More than 3 years have passed since last update.

bowling の physical simulation で Springhead を使ってみた C++ (4)

Last updated at Posted at 2020-06-30

レーンコンディションを変更出来るようにした。

当初はレーンの板パーツ毎に 600 x 39 個程度の(レーン長さ方向は 0.1 feet 刻み。レーン幅方向は板パーツの枚数。) PHSolid を造ってオイルのパラメータを μ0 と μ で設定しようとしたが、パーツが多すぎて overflow するらしいのと、パーツ毎の位置を float で指定しているためかどうしても隙間が出来る様で現実的ではないと判明。
また simulation するにしても ball の軌道以外の場所は殆ど計算に無関係なのでパーツ全てを PHSolid にする意味が無さそうということで、レーンは一枚で simulation の Step() が呼ばれる直前にレーン全体の μ0 と μ を毎回変更するようにしてみた。 μ0 と μ は simulation 中のボールの位置に合わせて map から取得すれば良い。

所謂フックボールのような軌道で投げられるようになった。

投球開始位置を「レーン手前 0 feet 中央 20 枚目」にしてそこから外に出す投球設定。
SetVelocity で右前方への初速。
SetAngularVelocity で適当な回転方向(多分今は AT=0 AR=90 に近いはず)
各種物理 parameter の選択は要注意。

test_Springhead_bowling_1scene_20200630.gif

ロールアウトしている様にも観える。

補足

前回 ボールの軸が PHSolid と GRMesh で π/2 ずれていたようなので修正。(図柄を変更して texture を貼ると判明。特に回転中の表面の動きと転がる方向が一致していなくて不自然に観えた。)

ソース

まだまだ続く

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0