プレイ日記
おちゃめ ochame_nako
自作ゲーム等でスライドパッドを十字ボタンの代わりに使っている人も多いと思いますが、その際の注意点について書いておきます。
16そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
まず、よく使われているのがSTICKの戻り値であるX、Yの値を特定のしきい値と比較することで8方向を計算する方法です。 例えばしきい値(このプログラムでは変数SLVの値)を0.5に設定した場合は戻り値のXが0.5より大きければ右方向とみなし、Yが0.5より大きければ上方向とみなし両方を満たしていれば右上という感じです。 標準でSYSに入っているGAME3「JUMP KUN」ではこれとほぼ同じプログラムがしきい値0.2で使用されています。 しきい値より絶対値が大きい場合のみ判定が行われるため少し指が触れて思わず変な方向にキャラが進んでしまうということが起きることはありません。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
単純にSTICKの戻り値をしきい値と比較するこの方法は作りやすい反面で8方向の入りやすさが上下左右方向と斜め方向で変わるという問題点を抱えています。 例えば、スライドパッドの微妙な動きでもキャラが追従するようにしきい値を0.05に設定したとしましょう。 すると斜め方向に入りやすく上下左右方向には入りにくくなるためキャラを上下左右方向に動かすゲームではプレイが困難になります。 冒頭の図の右上のものが概ねしきい値0.2くらいなのでJUMP KUNではこんな感じの判定になっています。 しきい値を0.05にしてしまったら上下左右方向の入りやすさがこの4分の1くらいになってしまうわけです。(実際に0.05に変更して入力具合を確かめてみれば一目瞭然)
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
では、逆にしきい値を0.6にしてみましょう。 これだと斜め方向にはほぼ入りません。 0.7だと斜め方向には全く入りません。 ちなみに冒頭の図の右下のものが概ねしきい値0.4くらいです。 このしきい値とX、Yの値を比較する方法はプログラム自体は簡単ですが、しきい値によって動作が変わるため実は使いこなすのが非常に難しいのです。(しきい値は大きめだけど斜め方向には入りやすくしたり、しきい値は小さめだけど上下左右方向に入りやすくすることはできない)
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
そこで、私がオススメなのが図の左側になるスライドパッドの角度(向き)から8方向に変換する方法です。 この方法だと冒頭の図を見てのように8等分されているため各方向に均等に入ります。(角度計算が少し複雑になるけど上下左右方向に比べて斜め方向を入りにくくしたりも可能) そして、さらに大きなメリットはしきい値は上下左右や斜め方向への入りやすさに影響を与えないということです。 つまり、しきい値を小さくすれば敏感に反応させることもできるし、しきい値を大きくすればスライドパッドを大きく動かした場合のみ反応させることもできます。 つまり、しきい値は単純にアソビの大きさとして機能するわけです。
2そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
角度を使って判定を行う場合に注意すべきことは「向きの基準」です。 例えば8方向で「上」を判定する場合には45度の範囲となりますが、真上を基準に±22.5度の合計45度で判定が必要ということです。 このプログラムで+382.5という数字は+360(負数対策)に補正値22.5をプラスしたものです。 こうしないと真上から少しずれただけで斜めと判定されてしまう恐れがあります。 このプログラムはプログラムリスト短縮をしている関係上で分かりにくい部分もありますが、仕組み自体は非常に単純です。 とはいえ、普通に戻り値X、Yをしきい値とで比較する最初のやり方と比べると難しいため初心者は敬遠しがちだと思います。 プログラム自体は多少難しくても調整が楽(使いこなすのが楽)であるため結果的にこちらの方が簡単なのです。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
誤解する人がいるといけないので補足しておきますが、どちらが正解でどちらが間違いということではないということです。 前者のSTICKの戻り値としきい値を単純比較するやり方はプログラム自体は簡単ですが調整が難しく、後者の角度を使うやり方はプログラム自体は少し難しくなりますが調整が簡単というだけです。 ちなみにるかかさん作のRPG「まじっくすと~り~」では前者の方法を少し改善した判定を用いています。(X、Y方向同じしきい値ではなく異なるしきい値を用いることで誤入力を軽減している) やり方は人それぞれで自分が思っているように動いていると思えばどれもが正解です。しかし、何となく(他所で使われているのを真似して)作ってみて少し気になるけど「まぁいいか」という感じで妥協している人は今回の書いた思ったように動かない理由や改善案を元にすれば自分が求めているものが作れるようになると思います。
0そうだね
プレイ済み