チケット #39275

Win版 ゲームコントローラー対応

登録: 2019-06-01 22:05 最終更新: 2019-06-03 23:47

報告者:
担当者:
チケットの種類:
状況:
完了
コンポーネント:
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

ゲームコントローラーを用いて、メイン画面で視点移動や演奏に関する操作を実施できるようにする。

参考チケット

  • #39085 iOS版 ゲームコントローラー対応
  • #39277 macOS版 ゲームコントローラー対応

チケットの履歴 (8 件中 3 件表示)

2019-06-01 22:05 更新者: yknk
  • 新しいチケット "Win版 ゲームコントローラー対応" が作成されました
2019-06-01 22:12 更新者: yknk
  • 詳細が更新されました
2019-06-01 22:16 更新者: yknk
コメント

仕様

ゲームコントローラーの識別

  • XInputのゲームコントローラーに対応する。DirectInputのゲームコントローラーには対応しない。
  • 複数のゲームコントローラーが接続されている場合、先頭のコントローラーを制御対象とする。

メイン画面

ゲームコントローラーの操作と機能のマッピングは次の通り。カスタマイズには対応しない。

  • Pause ボタン: 再生/一時停止
  • A ボタン: 再生/一時停止
  • B ボタン: 停止
  • X ボタン: 視点移動:下降
  • Y ボタン: 視点移動:上昇
  • L1/R1 ショルダーボタン: 視点切り替え
  • L2/R2 トリガーボタン: 再生スキップ
  • 十字キー: 視点移動:前後左右
  • 左スティック: 視点移動:前後左右
  • 右スティック: 視線方向

設定画面

設定画面は用意しない。

2019-06-01 22:16 更新者: yknk
コメント

対策:MIDITrailメインクラスの修正

MIDITrailApp

メンバにゲームパッド制御オブジェクト(m_GamePadCtrl)とゲームパッド用視点番号(m_GamePadViewPointNo)を追加。

MIDITrailApp::MIDITrailApp

追加したメンバの初期化処理を追加。

MIDITrailApp::Initialize

ゲームパッド制御オブジェクトの初期化処理を追加。

MIDITrailApp::Run

メッセージループ内にゲームパッド操作処理の呼び出しを追加。

MIDITrailApp::_GamePadProc

ゲームパッド操作処理メソッドを追加。 ボタン押下を確認して、ボタンに対応する機能を呼び出す。

MIDITrailApp::_ChangeViewPoint

視点切り替えメソッドを追加。

2019-06-01 22:17 更新者: yknk
コメント

対策:一人称カメラクラスの修正

MTFirstPersonCam

メンバにゲームパッド制御オブジェクトを追加。

MTFirstPersonCam::Initialize

ゲームパッド制御オブジェクトの初期化処理を追加。

MTFirstPersonCam::Transform

ゲームパッドの右スティックの状態を取得して視線方向に反映する。

MTFirstPersonCam::_TransformCamPosition

ゲームパッドの十字キー、左スティック、X/Yボタンの状態を取得してカメラ位置に反映する。

(編集済, 2019-06-02 00:52 更新者: yknk)
2019-06-01 22:17 更新者: yknk
コメント

対策:ゲームパッド制御クラスの追加

MTGamePadCtrl

ゲームパッド制御クラスを新規追加。

2019-06-01 22:17 更新者: yknk
コメント

対策:ビルド設定の変更

MIDITrailプロジェクトのプロパティを開く。 「リンカー / 入力 / 追加の依存ファイル」に"XInput.lib"を追加。 構成とプラットフォームのすべての組み合わせで設定する。 (Rlease/x64, Rlease/x86, Debug/x64, Debug/x86)

2019-06-03 23:47 更新者: yknk
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

添付ファイルはありません

編集

このチケットにコメントを追加するには、ログインが必要です » ログインする