100日チャレンジ『100日で50弾!』第27回、バウンスショットです。撃たれた弾が空間内でピョン、ピョンと跳ねます。動画はこちらです。
スマホの人はこちらの方がよく見えます。
https://www.youtube.com/watch?v=RWKosg5urZw
飛んだ軌跡がある程度分かるよう、トレイルを付けています。
Unityではオブジェクトに重力を働かせて移動させることができ、多分これを使っても実現できるのだと思います。しかし今回はそうでなく、物理で出てくる知識を使っています。重力加速度がg、高さy0の点から上向きに速さv0で打ち上げると、t秒後の高さyは次の通りです。
y = y0 + v0*t - 0.5*g*t*t
また、ピョン、と跳ねたあとは下向きの速さがそのまま上向きに変わればよいだけです。単純に画面手前に向かって進んでくるのでは軌跡が放物線であることが分かりづらいので、打ち上げの時に乱数で方向を左右に変化させています。
高校生の頃、物理が得意でした。巡り合わせで大学は数学科に進み、まあそれはそれでよかったけれど、たいした数でもない法則からいろんなことが分かる、というのが物理の面白いところでした。上の簡単な式で投げ上げられた物体の運動が記述できる、というのはやはり凄いです。当たり前ですがホントにそれっぽく見える!