物理エンジンの MuJoCo を使って、ビリヤードのシミュレーションを作ってみました。
ビリヤード台やボールのサイズ・形・重さなどは、実物にできるだけ合わせてあります。
さらに、実際のビリヤードのプレイ動画を参考に、摩擦や反発係数などのパラメータも調整して、リアルな挙動になるよう工夫しました。
今回のシミュレーションでは、ナインボールの「ブレイクショット」を題材にしています。
手玉の位置や速度(方向含む)を少しずつ変えて試行し、「ブレイクエース(ゴールデンブレイク)」が起きる条件を探ってみました。
ちなみに、ラックの組み方にも一工夫しました。球同士をピッタリ密着させるとブレイクエースが出にくいので、ほんの少し隙間を空けています。
以下に、シミュレーションで見つけたブレイクエースの例をいくつか紹介します。
通常速度の10秒動画のあとに、同じシーンのスローの動画が続いています。
MuJoCoでビリヤードをやってみてわかったのですが、ボールの動きは想像以上に複雑でした。
timestep
の値を細かく設定しないと、変な動きになってしまうことも多かったです。
実際、ビリヤードの球の挙動を解析した論文 もあるようで、物理的に奥が深い世界だなと実感しました。
今後は、ビリヤードにおけるボールの物理についてもっと掘り下げてみようと思っています。
参考文献
- MATHAVAN, S., JACKSON, M.R. and PARKIN, R.M., 2010. A theoretical analysis of billiard ball dynamics under cushion impacts. Proceedings of the Institution of Mechanical Engineers, Part C: Journal of Mechanical Engineering Science, 224 (9), pp. 1863 – 1873.