トップページ > 記事閲覧
プロセス間のコントローラー振動機能の挙動について
名前:みこ 日時: 2025/01/08 01:07

いつもお世話になっております。 不具合(?)といえるか分かりませんが、 DxLibのアプリケーションを複数起動したとき一部パッドのバイブレーション機能(StartJoypadVibration)の振動が極端に弱くなります。 【確認したコントローラー】 ・XBox360コントローラー 異常なし ・XBoxOneコントローラー 振動が極端に弱くなる ※厳密には Razer Wolverine v2 chroma (XBox公式ライセンス) というコントローラーを使用しました。 【問題点】 ・DxLib使用アプリケーションを複数実行時上記コントローラーの振動が極端に弱くなります。 ※最大(1000)でもよく握らないと振動しているか分からない程度 ※例えば DxLibModelViewer と DxLibゲームのデバッグを同時に実行した場合 ・DxLib使用時ほかのアプリケーションの振動も極端に弱くなります。 ※例えば、DxLibゲーム実行中に Steam->設定のコントローラー->デバイスの入力テスト->テスト開始->ランブル での振動が極端に弱くなります。 ・SetUseJoypadVibrationFlag(FALSE) を実行してもバイブレーションが無効化されません。 DxLibプロセスがコントローラーを独占している状態(?)と推測してウィンドウ非アクティブ時に無効化をしてみようと思ったのですが、 SetUseJoypadVibrationFlag(FALSE) が機能しませんでした。 ※DxLib_Init前と後の両方を確認 お手数をお掛けしますが何卒よろしくお願いいたします。
メンテ

Page: 1 |

Re: プロセス間のコントローラー振動機能の挙動について ( No.1 )
名前:管理人 日時:2025/01/09 04:54

ご指摘ありがとうございます XInputでは開始した振動が勝手に止まってしまうことがあるため、常に振動状態を 更新しなければならず、DXライブラリもそのような実装にしているので本件の ような現象が発生してしまっていたのだと思います ただ、『振動が勝手に止められる』事はあっても『振動が勝手に開始される』事は無いので 処理を少し変更して『振動ONの場合のみ定期的に振動状態の更新処理を行う、振動OFFの場合は OFFの最初の一度のみ振動の更新処理を行い、以降は定期的な更新処理は行わない』という実装にしてみました これで他プロセスで振動が弱くなる現象は無くなったと思いますので、よろしければお試しください m(_ _)m ( SetUseJoypadVibrationFlag( FALSE ); が機能しない不具合も修正しました ) 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 12 用 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: プロセス間のコントローラー振動機能の挙動について ( No.2 )
名前:みこ(解決) 日時:2025/01/09 09:05

いつも快速なご対応ありがとうございます! 只今確認したところ複数スレッドでの振動機能、およびSetUseJoypadVibrationFlagが正常に機能しました!
メンテ

Page: 1 |

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

   クッキー保存