トップページ > 記事閲覧
Nintendo Switch Proコントローラのスティックの挙動について
名前:bane 日時: 2021/10/27 15:29

DXライブラリの質問としてはいかがなものかと思いますが質問させてください。 GetJoypadDirectInputStateを使ってゲームパッドの入力を見ています。 手元の市販のコントローラ、DualShock4については問題なく動作していますが、Bluetoothで接続したSwitchのプロコンだけはスティックの挙動が不自然に思えます。 というのも、スティックを回しても入力の軌跡が円にならず、◇のようになっていました。頂点付近ではさらに中心から離れるような感じの入力になります。 しかしコントロールパネルやSteamなどから入力を見るときちんと円形になっており、◇のような挙動にはなっていませんでした。 不具合か何かでしょうか? それか、何か補正が必要なのでしょうか。
メンテ

Page: 1 |

Re: Nintendo Switch Proコントローラのスティックの挙動について ( No.1 )
名前:管理人 日時:2021/10/27 23:13

アナログスティックはニュートラルにしていても綺麗に x=0 y=0 になることが少ないので、 DXライブラリではデッドゾーン( 実際には少し傾いているけど x=0 y=0 の扱いにする範囲 ) を設定しているのですが、その設定が影響して baneさんが仰られているような挙動になっているようです デッドゾーンの設定はリファレンスには無い関数 SetJoypadDeadZone で行うことができ、 SetJoypadDeadZone( DX_INPUT_PAD1, 0.0 ); を実行することでデッドゾーンを無効にできます デッドゾーンを無効にするとコントロールパネルの表示のような綺麗な円を描くような入力が 得られますので、よろしければお試しください m(_ _)m
メンテ
Re: Nintendo Switch Proコントローラのスティックの挙動について ( No.2 )
名前:bane 日時:2021/10/28 15:30

デッドゾーン無効で左スティックは解決しました。ありがとうございます。 右スティックも同様の現象が起きており、こちらもデッドゾーンの影響でしょうか。 X回転とY回転(Rx, Ry)がそれぞれx, yに割り当てられているようで、こちらのデッドゾーンを無効にする関数があれば教えていただきたいです。
メンテ
Re: Nintendo Switch Proコントローラのスティックの挙動について ( No.3 )
名前:管理人 日時:2021/10/30 01:07

すみません、ソースを確認した所 x, y, z, Rz にのみデッドゾーンの設定をしていました ( 実装当時手元にあったコントローラでは右スティックの x, y が z, Rz に割り当てられていたようです ) コントローラによって右スティックの x, y が z, Rx, Ry, Rz のどれに割り当てられるかは デバイスドライバを作成するメーカー次第なので、とりあえず SetJoypadDeadZone を呼んだ際は x, y, z, Rx, Ry, Rz 全部に同じデッドゾーンを設定するように処理を変更しました よろしければその変更を加えたバージョンをお試し下さい m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: Nintendo Switch Proコントローラのスティックの挙動について ( No.4 )
名前:bane (解決済) 日時:2021/11/13 21:54

遅くなりましたが解決しました。ありがとうございました。
メンテ

Page: 1 |

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

   クッキー保存