コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
あんちもん ◆8qCJSJ1bKTIQ
2024/4/14 4:03
質問
ジャンプ時の放物線
Aボタンを離すと落下が始まる仕様のジャンプで、どのタイミングで落下してもキャラの軌道が綺麗な放物線を描く方法はあるでしょうか?

コメント

アバター
あんちもん 2024/4/14 4:04 ◆8qCJSJ1bKTIQ
上記コードの実行画面。
18行目でDY=0とするよりはマシですが。。
アバター
あきと 2024/4/14 13:00 ◆Bz8zeG7wRHNQ
スナップショットのジャンプは長押しの方が低くなってますね。
アバター
Jun_ 2024/4/14 14:58 ◆kRVY2/y4UN74
図示するとだいたいこういう状態ですよね。
放物線(凸の二次関数でかつ1点が頂点であるとわかっている場合)は2点の座標の情報があれば1つに定まるので、まずこの場合はジャンプした場所の座標とボタンを放した座標の2つで放物線が定まることになると思います。
しかしジャンプし始めたその時点ではボタンを離す座標の情報が不明なため放物線が1つに定まらない…なのでどのタイミングで落下してもキャラの軌道が綺麗に放物線を描くようにする方法というのは存在しないと思います…
アバター
Jun_ 2024/4/14 15:04 ◆kRVY2/y4UN74
代替案としてジェットパックのような軌道(ジェット噴射で上に上がってから自由落下する)は自然で良いのかなと思いましたが物理の知識がないのでこれ以上は分かりませんね…
アバター
あまさとしおん 2024/4/14 18:23 ◆mzDKTVUAtwqE
なんとなくの話なのであれなんだけど、Aを離す瞬間までに上がってきた形を左右反転した感じで動けばイメージしてることができそう、という気がする

ちゃんとした放物線を求めるのではなく、動きをコピーする…というイメージ(イメージばっかりの人)
アバター
こういち 2024/4/14 19:28 ◆ou0jbJnEJ0Kb
数学的には確かに不可能ですね。(放物線は全て相似であるため)
なので、何かしら諦める必要があると思います。(例えば、放物線を諦めるなど。どうせプレイヤーは放物線かどうかなんて分かりません)
以前サンプルを作った場合はボタンを押している間だけ重力加速度を小さくするという処理で作った記憶があります。(これは重力に従いつつボタンを離した瞬間落下を開始するのを諦めてる)
アバター
こういち 2024/4/14 19:36 ◆ou0jbJnEJ0Kb
例えば、ボタンを離した瞬間の速度がほとんど0で徐々に加速するような動作にしたい場合、双曲線や指数関数のような0に漸近するような曲線にすればそれっぽくなる…ような気がします。
…まぁ、あまさとさんのそれが手っ取り早いと思います。

どうしても放物線に拘る場合は、リアルタイム性を犠牲にして、ボタンを離した瞬間にジャンプを「開始」するとかになると思います。ボタンを押した長さに応じて初速が決まる感じですね(チャージジャンプみたいな)
アバター
あんちもん 2024/4/15 21:29 ◆8qCJSJ1bKTIQ
定義とかよく考えずに放物線と言ってしまったので意図していない方向に話が進んでしまったようです、すみません。(というか空中でキャラが左右に動いたらその時点で放物線ではなくなる)
上昇時と下降時でキャラのY軸方向の速度の変化(加速度?)を対称にしたいという方が正しかったかも。
アバター
おちゃめ 2024/4/16 23:16 ◆jH1opV6FnGyx
最大ジャンプの高さは決まっていてボタンを離すのが早ければそれよりもジャンプを低くしたいということですよね。
その際に上昇時と下降時の加速度を同じにしたいというだけであればAボタンを離した瞬間に速度をプラスマイナス反転させれば良いだけだと思います。
速度が変化するということは外部から何らかの力が加わっているためなのでその力が何かは自分のゲームの設定でカバーすれば良いでしょう、

常に自然な放物線を描きたいのであればジャンプ中に重力以外の力が外部から加わらないようにするしかないですね。
ジャンプする前にボタンを押した長さに応じてジャンプの高さを決定して、ジャンプ中は水平方向には等速運動をさせる(ジャンプ中は左右移動はできない)という感じにすればジャンプの高さを変えつつ常に自然な放物線になります。
アバター
あんちもん 2024/4/17 0:07 ◆8qCJSJ1bKTIQ
ありゃ、加速度一致させるとこんな感じなんですね、思ってたのと違った。
放物線は諦めることにします、回答いただいた皆さんありがとうございました!

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -