トップページ > 記事閲覧
GetJoypadAnalogInputについて
名前:オーダン 日時: 2025/07/29 16:59

お世話になっております。 GetJoypadAnalogInputについてお尋ねします。 真横に完全に倒した場合した場合、 XBuf = -1000(左)、 1000(右) YBuf = 0 縦に完全に倒した場合した場合、 XBuf = 0 YBuf = -1000(上)、 1000(下) である事は確認できたのですが、 斜めに完全に倒し切ったときの動作が想定と違っていました。 例えば左下45度の場合 XBuf = -1000 YBuf = 1000 右下45度の場合 XBuf = 1000 YBuf = 1000 右下2:1ぐらいで倒しきった場合 XBuf = 1000 YBuf = 500 と以前のバージョンではなっていたような気がしてそのような前提で実装していたのですが、 (違っていたらすみません) 最近のバージョンでビルドしたものを試すと、 斜め移動の速度が安定していない(極端に遅かったりする)ので、再確認してみたところ、 左下45度の場合 XBuf = -780ぐらい YBuf = 780ぐらい 右下45度の場合 XBuf = 580ぐらい YBuf = 580ぐらい という感じでバラバラな値がでました。 倒し切っても1000にならないなら、 もしかしたら三角関数を使用した値が出るように仕様が変わったのかなとも思ったのですが、 それなら 左下45度の場合 XBuf = -710ぐらい YBuf = 710ぐらい 右下45度の場合 XBuf = 710ぐらい YBuf = 710ぐらい というように 「XBuf * XBuf + YBuf * YBuf の平方根が約1000」 になってほしいところですが、前述のように出る数値がバラバラなのです。 特に右上方向がかなり低い数値になっています。 これはコントローラー側に不具合があったりするのでしょうか? 何か解決方法はないでしょうか? 以上よろしくお願いいたします。
メンテ

Page: 1 |

追記 ( No.1 )
名前:オーダン 日時:2025/07/29 17:08

追記です。 PCでリリースしたゲームのSWITCH移植版が出来たのでテストプレイしたら、この問題に気が付きました。 SWITCHだと特に斜め移動が遅くなっている感じでした。 GetJoypadAnalogInput は環境によって動作が違うことはあるのでしょうか?
メンテ
Re: GetJoypadAnalogInputについて ( No.2 )
名前:管理人 日時:2025/07/30 02:27

GetJoypadAnalogInput で取得できる値は小さな入力を無効化する『デッドゾーン』の 処理は行っていますが、上限の値に対する処理は行っていませんので、 スティックを倒しきった際に取得できる値に差が発生するのはデバイスによるものとなります スティックを倒しきったときの値が最大値( ±1000 )になるかどうかについては デバイス毎に異なりますので、オプションメニューなどで『±700以上は倒しきっていると判定する』等の 調整項目を追加して対応する必要があると思います SwitchやPS4等のコンソール機については個体差はありませんので、 各プラットフォーム毎に固定の調整値で問題ないと思います > と以前のバージョンではなっていたような気がしてそのような前提で実装していたのですが、 > (違っていたらすみません) 2007年頃のプログラムを確認した限りでは現在と同じ処理を行っていましたので 仮に取得できる値が変わったのだとしますと、DXライブラリの処理が変わったのではなく デバイスが返す値に変化があったのだと思います( デバイスドライバによるものなのか、 OSによるものなのかは不明ですが… ) > GetJoypadAnalogInput > は環境によって動作が違うことはあるのでしょうか? はい、デバイスが返す値次第となりますので、SwitchやPS4などでも取得できる値には差があると思います Windowsの場合は使用するデバイス毎に差が発生する可能性があります
メンテ
Re: GetJoypadAnalogInputについて(解決しました) ( No.3 )
名前:オーダン 日時:2025/07/30 09:36

ご回答ありがとうございます。解決できました。 デバイスによって出る値に差があったのですね。 そういえば以前の「どちらかが必ず1000が出た」ときは今と違うコントローラーを使っていたので、 それはデバイスによる違いだったのだと納得できました。 傾き加減によって自機の移動速度を変えられるという処理は諦めて、 傾き方向に移動(一定速度)はできるという処理に直したら快適に動作するようになりました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存