雑学豚の巣穴

盛大なメモ帳

物理を切って物理をやる

ジャンプの動きは物理法則!

…に従うと空中ダッシュとかレッドアリーマーさんの挙動とかは難しいからリジッドボディは設定するけど重力は0でやるよ!

重力切ったけどやっぱりジャンプや落下はそれっぽく見せたい

ばびゅーんと飛んでふわっと落ちたい

 

初速は高めで飛ぶけどだんだん失速して0になったら落下開始でーと日本語で書くとそうなんだけど。

じゃあ数字で実現して?

移動距離はどうやって判明するのグーグル先生!

 

・ジャンプ

高さと射角わかれば初速もわかるよ?

ゲームだし射角は難しいから90固定でいいよサインθは1だよ

重力加速度も定数でいいよ9.8でいいよ

じゃあ高度はゲーム中に取らなきゃだよね?

 

ジャンプボタン押した時間計測しとけば小ジャンと大ジャンは事前にわかるよね?

今いる自分の位置とジャンプ開始位置も記憶できるよね?

飛び初めの位置、今の位置、目標高度…と。

 

v=ルート2gh

ルートはMathクラスにあるよ2とgは定数でhがheightだよ

じゃがんばって

 

・落下

初速0だし落下時間わかるだけでいいよね?

v=gt

gは定数でtはタイムだよ

じゃがんばって

 

「なんかこれのせいで要らなくなった設定がすっごいある」

「あ、頂点付近は速度が落ちて0.00…単位で動けるから隙間絶対許さないマンになれるぞ!壁にこすりつけながらジャンプしたらタイルマップの初期設定でめり込むぞ!」

「地面に居る判定を隣は壁判定に流用できない?」

「隣が壁なら進行できないにしよう」

「システムで移動制御してコライダー要らなくなってない?」

 「あ、これ空気抵抗無いじゃん無限に落下してきたらyの位置がぶっ飛ぶから壁すり抜けるよ」

 

縦方向の移動力がジャンプ力に置き換えられる事になったり。

進行方向が床ならx方向の移動は0にしたり。

特殊ケースすぎるし、まいっかと言ったり。

らじばんだり。

 

f:id:rrroo:20200325001837g:plain

物理切ってジャンプ制御

ジャンプ力、重力、動きやすさって設定が副産物で出来たからステージによってこの値を変えるだけで氷ステージとか出来そう。

 

プレイヤーの速度だけ1/100くらいにしてテストすると色々不具合が見つかるなーっていうのは注意である。