ページ 11

2Dアクションの空中での慣性について

Posted: 2011年10月24日(月) 18:31
by nil
現在,ゲームプログラミングの館様等を参考にさせて頂いて,
2Dのアクションゲーム(マリオ,洞窟物語のような)を作成しております。

その際に,主人公のキャラクタ(自機)に慣性移動をさせたく,
試行錯誤し,地面に接している状態での慣性移動についてはひと通り実装致しましたが,

タイトルの通り空中での慣性移動でどうしても不自然な挙動をしてしまいます。

どのようにすれば自然な空中での慣性移動が行えるでしょうか?

ちなみに現在の方法は,


キャラクターのパラメータに加速度を設定,

1.地面に接しているときには入力に応じて移動速度に加速度を加算(減算)
この時に移動速度が一定の値に達していればそれ以上加速しないようにする。

2.キーもしくはパッドの十字ボタンが離されていれば
速度から加速度を減算(加算)
この時に速度の絶対値が加速度よりも小さければ速度を0に

空中では2.の減速処理を行わずに1.の処理のみを行う。
ただし、加速度/2の値を速度に加算するで地面に接している時よりも動きづらい。

必要であればコードも記載いたしますので,これよりも良い方法,または皆様方が使われているような
方法をお教えいただければ幸いです。乱文失礼致しました。

Re: 2Dアクションの空中での慣性について

Posted: 2011年10月24日(月) 19:43
by softya(ソフト屋)
どう不自然なのか感覚的には分かりづらいですね。
イメージとずれている点を説明できますでしょうか?
ソースコードを貼ってもらった方が良いかも知れません。

Re: 2Dアクションの空中での慣性について

Posted: 2011年10月24日(月) 20:39
by KEYONN_
乱文失礼します。
洞窟物語とか、スーパーマリオブラザーズは、ジャンプが可変長ジャンプですね。
押した時間だけジャンプする感じでしょうか?

一方、
その涼雅さんの作ったアクションゲームのキャラクターの
ジャンプの加速度がそれとは違い違和感を感じるのではないですか?

Re: 2Dアクションの空中での慣性について

Posted: 2011年10月24日(月) 22:36
by nil
softya(ソフト屋)様,KEYONN_様返答有難うござます。

返答を頂いたところ心苦しいのですが,
自分なりにイメージを組み直して,微調整を試みたところ,
自己解決できましたので,解決にさせて頂きます。

わざわざご返答ありがとうございました。