D.N.A.のおぼえがきD.N.A.のおぼえがき読者になるD.N.A.のおぼえがきこの広告は、90日以上更新していないブログに表示しています。2013-08-17夏休みの自由研究:「右スティック」の軸について調べてみる(おまけでボタン番号割り当ても)ハードウェア※間が開いてしまいましたが感想というかまとめを最後に書きました。前置きAIMSの新バージョンで「アナログ入力」にも真面目に対応しよう、ということで折角なんでアナログ2軸×左右スティック分くらいはとれるようにしたいなと思ったわけです。左スティックはXY軸で決め打ちでいいとしても右スティックがわからない。なんか昔は軸定義がバラバラでなかなか悲惨だったと聞くので、ここらで真面目に調べてみるかと思いました。こんなゲームをつくることになった流れでゲームパッドをいくつか買い込んだので、こいつらの状況を調べてみることにします。軸だけじゃなんなので物理的なボタンの位置と番号割り当ての違いも見てみようかなとか。コントローラーの設定」を呼び出し、対象パッドのプロパティで軸を調べます。実験に使ったのは以下のゲームパッド。F510有線、振動付き、スイッチ切り替えでDInput、XInputどちらにも認識させられる。最近増えてきてますよね両対応品。十字キーの扱いはMODEボタンでPOV、XY軸と切り替えることができる。F710F510の無線版といってよさそう。無線で電池駆動な以外の諸元はほぼ同じ。DInput/XInput切り替えも可能。JC-U3613MエレコムのDInput/XInput両対応パッド。十字キーがPOVに固定。BSGP1204PSAVIORというブランドのゲームパッド。PC接続時のみ、十字キーの扱いをPOVとXY軸で切り替えられる。PROご存じホリのPS3用パッド。PS3用ではあるが、PCに挿しても動く。SIXAXISやDUALSHOCK3のように特殊なソフトで「起こす」必要もない。斜め入力の感度設定や十字キーの傾き変更などユニークな機能満載。十字キーがPOVに固定。PC用途は想定されてないからしょうがないね。詰め込み詰め込みでちょっと見づらいですがご了承ください。今回実験したパッドはすべてXBOX360配列、またはPlayStation配列(押し込める2軸アナログ2本、十字キー、正面4ボタン、LR2組、START/SELECT)の構成のため、XInput(XBOX360)でいう各ボタンの呼称、PS系でいう各ボタンの呼称、そしてその位置にあるボタンを押したときにコントロールパネルで光ったボタン番号、という組み合わせで表記しています。F510DInputモードとXInputモードそれぞれにおいて、MODEボタン消灯時(MODE消)とMODEボタン点灯時(MODE点)の2モードでの割り当ての変化を見た。ガイドDInputモードでは右スティックはZ軸とZ回転にアサイン、XInputだとX回転とY回転にアサインされるということで、モードにより右スティックの扱いが違うという結果に。LTとRTはDInputではデジタルボタンの扱いだが、XInputだとアナログトリガーになる。DirectInputのAPIからXInputモードの本機を見た場合、両方で同じZ軸を共有しているため、LTとRTの同時押しを認識できない(つねに両方の押し込み量の差がZ軸の値に表れる)XInputのAPIでは両方の押し込み量を個別に取得できるので同時押しでも拾える。DInputのゲームにXInputモードの本機を使う理由は皆無じゃなかろうか?F710F510同様、DInputとXInputそれぞれのモードでMODE点灯、消灯各状態での割り当ての変化を見た。ガイドF510と同じ結果に。F510無線版と言い切ってよさそう。JC-U3613MモードとしてはDInputとXInputモードの変更のみ。上面パッドボタンの番号振りがX→Y→A→Bの順で、BACKとSTART、LSRSの順番がF510/710とあべこべ。XInputオン時はF510/710とまったく同じ配列。BSGP1204PMODE赤=MODEボタンが赤色に光っている状態、MODE緑=MODEボタンが緑色に光っている状態。MODEボタンを押すことで赤と緑交互にモードが切り替わる。なしMODE緑の時はアナログスティックが2本とも無効になる潔さが際立つ。上面ボタン配列はPSで言うと△→○→×→□の順で時計回りに割り当て。L2R2がボタン番号的に先になっているのも若干目立つ。XBOX360ならXABYという順で番号が振ってある。L1R1L2R2の並び、L3R3とSELECT/STARTのボタン順はLogicoolパッドのDInputモードのそれと同じ。こちらはガイドボタンに相当するPSボタンもボタン13として使用可能になっている。まとめ右スティックについては横=Z軸、縦=Z回転でほぼ間違いなさそうなんですが(XInputパッドをDirectInputで読むのはLT,RTが使い物にならないのでアレとして)、ボタンは見事にバラバラな結果でして、やはりゲームパッドを推奨するならキーコンフィグは最優先で実装すべきといえるでしょう。あと地味な点ですが、方向ボタン(十字キー)がPOVに固定されてるパッドが増えて来ているのも気になります。デジタル入力を拾う2DゲーなどではPOVの読み取りにも対応しておくのがユーザーにとって優しいんじゃないでしょうか。2はてなブログをはじめよう!dnasoftwaresさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。