トップページ > 記事閲覧
構造体DINPUT_JOYSTATEのSliderについて
名前:sereparu 日時: 2018/06/03 16:51

いつもお世話になっております。 GetJoypadDirectInputStateで取得できる情報について確認させてください。 DirectInput形式のゲームパッドを使用して、GetJoypadDirectInputStateで どのような情報が取得できるかを確認しているのですが 取得した構造体DINPUT_JOYSTATEの情報のうち、Sliderだけが どのスティックやボタンを使っても0の状態のままで取得できません。 リファレンスでは、DINPUT_JOYSTATEの各パラメータについて 「-1000〜1000」など数値の範囲が書かれていたり ボタンについては「押されたボタンは 128 になる」などと書いてありますが Sliderだけはどういう数値が入るのかが書いてありません。 そもそもSlider(スライダー)とは何なのかを ネットで検索してみましたが、よく分かりません。 Sliderの情報はどのようにして取得できるのでしょうか? また、どのような数値が入るのでしょうか? 使用したゲームパッドは以下の通りです。 ELECOM GAMING ACCESSORIES 12ボタンUSBゲームパッド JC-U3712FBK よろしくお願い致します。
メンテ

Page: 1 |

Re: 構造体DINPUT_JOYSTATEのSliderについて ( No.1 )
名前:管理人 日時:2018/06/05 01:26

> Sliderの情報はどのようにして取得できるのでしょうか? > また、どのような数値が入るのでしょうか? すみません、GetJoypadDirectInputState は 『DirectInput を直接使用した場合と同じ情報を取得するための関数』 なので DirectInput のゲームパッド情報の構造体に存在する Slider も DINPUT_JOYSTATE構造体のメンバー変数に含まれていますが 私も Slider に有効な値が入るデバイスに遭遇したことがないので、どのような情報が入るのかは分かりません m(_ _;m
メンテ
Re: 構造体DINPUT_JOYSTATEのSliderについて ( No.2 )
名前:sereparu 日時:2018/06/05 22:24

管理人さん ご回答ありがとうございます。 制作中のゲームにキーコンフィグを実装しようと思い できるだけ多くの操作に対応しようと考えていましたが Sliderだけが動作確認できず困っていました。 管理人さんですら分からないので、よっぽどマイナーなんですかね。 「ゲームパッド スライダー」や「DirectInput スライダー」などで検索して 色々調べてみた結果、スライダーについて分かったこととしては ・U軸・V軸がある ・上下に動かすもの ・速度調整などに使う ・DSの音量スライダーのようなもの ・中央位置に合わせるのが難しい という説明があったことです。 何となくイメージはあるんですが、「これがスライダーです」と写真付きで 説明しているような情報や、どのゲームパッドにスライダーが付いているかの情報は 見つからなかったので、未だに謎です。 手元で確認ができない以上、スライダーについては対応は見送ろうと思います。 ありがとうございました。
メンテ
Re: 構造体DINPUT_JOYSTATEのSliderについて ( No.3 )
名前:sereparu(解決) 日時:2018/07/22 22:56

かなり時間が経ってしまいましたが、スライダー付きのゲームパッドを購入して DINPUT_JOYSTATEのSliderの値の取得に成功しましたので、一応ご報告致します。 使用したゲームパッドは「SideWinder ForceFeedback2」です。 飛行機の操縦桿のような形のゲームパッドで、本体の土台部分にある 上下に動かせるレバーのようなものがスライダーでした。 フライトシミュレーションゲームなどで、飛行機の速度調整に使用できました。 こういうゲームパッドをフライトスティックと言うそうです。 そして、肝心のDINPUT_JOYSTATEのSliderの値ですが 取得できたのは2つのSliderのうちSlider[0]で、値の範囲は0〜65535でした。 スライダーのレバーが一番上の状態が0、レバーを下に下げていくと 値がだんだん増加して、一番下の状態が65535でした。 ただ、スライダーを全く触っていない状態で 初めてGetJoypadDirectInputStateでSliderの値を取得すると レバーがどの位置にあっても、何故かSlider[0]の値は32767になります。 その状態で、少しでもレバーを動かすと レバーの位置に合う本来のSliderの値になる、という 特殊な値の取れ方になります。 スライダーはアナログスティックのように手を離したら元の位置に戻るわけではなく 初期位置が不定なので、最初の値の取れ方が変なのかもしれません。 今回確認できたSliderの値については以上です。 以下は余談です。 「SideWinder ForceFeedback2」は、Windows98時代の古い製品で 購入したものは箱も説明書もないジャンク品でした。 そのため、上記のような値の取れ方が仕様なのか、製品の不具合なのか 分からなかったので、念のために比較的新しい製品も購入して確かめてみました。 ところが、今度のゲームパッドはスライダー付きなのに Sliderの値を取得することが出来ませんでした。 使用したゲームパッドは「PXN-2113」という Windows10にも公式で対応している比較的新しい製品で 左右にレバーを動かせるタイプのスライダーが付いていたのですが スライダーの値がDINPUT_JOYSTATEのSliderではなく Z軸に割り当てられていたのです。 Z軸の値の範囲は-1000〜1000ですが スライダーのレバーが一番左の状態が-1000、レバーを右に動かすと だんだん値が増加して、一番右が1000でした。 ゲームパッドによってはスライダーが必ずしも DINPUT_JOYSTATEのSliderに割り当てられているとは限らないようです。 長々と書いてしまいましたが、少しでもご参考いただければ幸いです。 以上です。ありがとうございました。
メンテ
Re: 構造体DINPUT_JOYSTATEのSliderについて ( No.4 )
名前:管理人(解決) 日時:2018/07/24 01:14

Sliderのご情報ありがとうございます、Sliderの説明に( 0〜65535 )の表記を追加しました (^ ^; > 「SideWinder ForceFeedback2」は、Windows98時代の古い製品で > 購入したものは箱も説明書もないジャンク品でした。 凄いです、Slider を使用するデバイスを探し出されたことも凄いですが、 Windows98時代のデバイスがWindows10でも使用できるということにも驚きです (゜゜ > そのため、上記のような値の取れ方が仕様なのか、製品の不具合なのか > 分からなかったので、念のために比較的新しい製品も購入して確かめてみました。 >  > ところが、今度のゲームパッドはスライダー付きなのに > Sliderの値を取得することが出来ませんでした。 >  > 使用したゲームパッドは「PXN-2113」という > Windows10にも公式で対応している比較的新しい製品で > 左右にレバーを動かせるタイプのスライダーが付いていたのですが > スライダーの値がDINPUT_JOYSTATEのSliderではなく > Z軸に割り当てられていたのです。 >  > Z軸の値の範囲は-1000〜1000ですが > スライダーのレバーが一番左の状態が-1000、レバーを右に動かすと > だんだん値が増加して、一番右が1000でした。 恐らく Slider にパラメータを割り当てているデバイスが昔から少なく、 そのため Slider に対応しているソフトも限られてしまって、 現代のデバイスとして Slider にパラメータを割り当てても対応しているソフトが 殆ど無いので仕方なく Z軸にパラメータを割り当てた、といったような経緯の気がします
メンテ

Page: 1 |

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

   クッキー保存