トップページ > 記事閲覧
StartJoypadVibrationに関してDirectInputだと振動しない
名前:774 日時: 2026/05/06 10:13

こんにちは。 今私が主に使用しているコントローラのDUALSHCK4ですとStartJoypadVibrationが0を返しても振動しません。 PS4の設定でも振動するにチェックを入れて、PS4のゲームでは振動することを確認しています。 XBOXONEコントローラは振動します。 Xinput・DirectInputを切り替えられるエレコムのコントローラJC-U3613Mだと、Xinputに切り替えた場合のみ振動します。 DirectInputコントローラは振動機能はつかえないのでしょうか? 試したプログラムとそのログを下記に示します。 #include "DxLib.h" // プログラムは WinMain から始まります int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(TRUE); if (DxLib_Init() == -1) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } // 振動開始 StartJoypadVibration(DX_INPUT_PAD1, 1000, 2000, -1); // 2秒間経過するまで待つ WaitTimer(2000); // DXライブラリ使用の終了処理 DxLib_End(); // ソフトの終了 return 0; 【@ JC-U3613M:XInput 振動する】 307: XInput DLL の読み込み中... 成功 313: DirectInput関係初期化処理 316: DirectInput8 の取得を試みます...成功 356: 引き続き初期化処理... 初期化成功 359: ジョイパッドの初期化... 359: XInput 対応コントローラーのチェックを開始します 360: XInput 対応コントローラー No.0 をチェック 361: XInput 対応コントローラー No.0 の接続は確認できませんでした 361: XInput 対応コントローラー No.1 をチェック 362: XInput 対応コントローラー No.1 の接続は確認できませんでした 364: XInput 対応コントローラー No.2 をチェック 365: XInput 対応コントローラー No.2 の接続は確認できませんでした 366: XInput 対応コントローラー No.3 をチェック 367: XInput 対応コントローラー No.3 の接続は確認できませんでした 368: XInput 対応コントローラーのチェック完了 369: DirectInput 対応ジョイパッドの列挙を開始します 435: DirectInput 対応入力装置を検出しました 435: Device Product GUID : 2003056e,0000,0000,00,00,50,49,44,56,49,44 436: Device Instance GUID : 23cb0480,0a00,11ef,80,01,44,45,53,54,00,00 436: DirectInputDevice8 の作成... 成功 438: DirectInputDevice の情報を取得します... 成功 438: Device Product Name : JC-U3613M - DirectXInput Mode 439: Device Instance Name : JC-U3613M - DirectXInput Mode 439: 検出した DirectInput 対応入力装置が Xbox360コントローラーか確認... 不一致 440: 検出した DirectInput 対応入力装置が XboxOneコントローラーか確認... 不一致 441: 検出した DirectInput 対応入力装置が XInput 対応コントローラーか確認... 不一致 1584: DirectInputDevice のデータ形式に JOYSTICK 形式を設定... 成功 1588: DirectInputDevice の協調レベルに DISCL_FOREGROUND | DISCL_EXCLUSIVE を設定... 成功 1591: DirectInputDevice から取得する X軸 の値の範囲を設定... 成功 1595: DirectInputDevice から取得する Y軸 の値の範囲を設定... 成功 1599: DirectInputDevice から取得する Z軸 の値の範囲を設定... 成功 1602: DirectInputDevice から取得する Rx軸 の値の範囲を設定... 成功 1605: DirectInputDevice から取得する Ry軸 の値の範囲を設定... 成功 1608: DirectInputDevice から取得する Rz軸 の値の範囲を設定... 成功 1610: DirectInputDevice のボタンの数を取得... 成功 ボタンの数は 13 個です 1611: DirectInputDevice の X軸 のデッドゾーンを設定... 成功 1614: DirectInputDevice の Y軸 のデッドゾーンを設定... 成功 1616: DirectInputDevice の Z軸 のデッドゾーンを設定... 成功 1618: DirectInputDevice の Rx軸 のデッドゾーンを設定... 成功 1622: DirectInputDevice の Ry軸 のデッドゾーンを設定... 成功 1624: DirectInputDevice の Rz軸 のデッドゾーンを設定... 成功 1626: DirectInputDevice の DirectInputEffect No.0 を作成... 失敗 Error Code :0x80004001 1627: DirectInputDevice の DirectInputEffect No.1 を作成... 失敗 Error Code :0x80004001 1629: DirectInputDevice の通知処理用の Event を作成... 成功 1630: DirectInputDevice の通知処理用の Event を DirectInputDevice に設定... 成功 1633: DirectInputDevice のアクセス権を取得... 成功 1641: 検出した DirectInput 対応入力装置を入力ナンバー 0 で登録します 1641: 検出した DirectInput 対応入力装置の初期化は正常に終了しました 1645: DirectInput 対応ジョイパッドの列挙終了 1645: ジョイパッドの初期化は正常に終了しました 1646: マウスデバイスの初期化... 初期化成功 1647: キーボードデバイスの初期化... 初期化成功 【A JC-U3613M:DirectInput 振動しない】 247: XInput DLL の読み込み中... 成功 259: DirectInput関係初期化処理 259: DirectInput8 の取得を試みます...成功 304: 引き続き初期化処理... 初期化成功 306: ジョイパッドの初期化... 306: XInput 対応コントローラーのチェックを開始します 307: XInput 対応コントローラー No.0 をチェック 312: XInput 対応コントローラー No.0 の接続を確認しました 315: XInput 対応コントローラー No.0 を入力ナンバー 0 で登録します 315: XInput 対応コントローラー No.1 をチェック 316: XInput 対応コントローラー No.1 の接続は確認できませんでした 316: XInput 対応コントローラー No.2 をチェック 318: XInput 対応コントローラー No.2 の接続は確認できませんでした 319: XInput 対応コントローラー No.3 をチェック 321: XInput 対応コントローラー No.3 の接続は確認できませんでした 321: XInput 対応コントローラーのチェック完了 322: DirectInput 対応ジョイパッドの列挙を開始します 340: DirectInput 対応入力装置を検出しました 341: Device Product GUID : 2004056e,0000,0000,00,00,50,49,44,56,49,44 341: Device Instance GUID : 03b201d0,0a00,11ef,80,01,44,45,53,54,00,00 341: DirectInputDevice8 の作成... 成功 342: DirectInputDevice の情報を取得します... 成功 343: Device Product Name : Controller (JC-U3613M - Xinput Mode) 343: Device Instance Name : Controller (JC-U3613M - Xinput Mode) 343: 検出した DirectInput 対応入力装置が Xbox360コントローラーか確認... 不一致 344: 検出した DirectInput 対応入力装置が XboxOneコントローラーか確認... 不一致 344: 検出した DirectInput 対応入力装置が XInput 対応コントローラーか確認... 一致 1433: 検出した DirectInput 対応入力装置の初期化を中断します 1467: DirectInput 対応ジョイパッドの列挙終了 1467: ジョイパッドの初期化は正常に終了しました 1468: マウスデバイスの初期化... 初期化成功 1471: キーボードデバイスの初期化... 初期化成功 1480: DirectInput 関連の初期化は正常に終了しました 【B XBOXONE 振動する】 244: XInput DLL の読み込み中... 成功 454: DirectInput関係初期化処理 456: DirectInput8 の取得を試みます...成功 512: 引き続き初期化処理... 初期化成功 528: ジョイパッドの初期化... 536: XInput 対応コントローラーのチェックを開始します 537: XInput 対応コントローラー No.0 をチェック 544: XInput 対応コントローラー No.0 の接続を確認しました 544: XInput 対応コントローラー No.0 を入力ナンバー 0 で登録します 545: XInput 対応コントローラー No.1 をチェック 546: XInput 対応コントローラー No.1 の接続は確認できませんでした 546: XInput 対応コントローラー No.2 をチェック 549: XInput 対応コントローラー No.2 の接続は確認できませんでした 549: XInput 対応コントローラー No.3 をチェック 551: XInput 対応コントローラー No.3 の接続は確認できませんでした 551: XInput 対応コントローラーのチェック完了 552: DirectInput 対応ジョイパッドの列挙を開始します 645: DirectInput 対応入力装置を検出しました 646: Device Product GUID : 02ff045e,0000,0000,00,00,50,49,44,56,49,44 646: Device Instance GUID : 5886ec20,0947,11ef,80,01,44,45,53,54,00,00 647: DirectInputDevice8 の作成... 成功 649: DirectInputDevice の情報を取得します... 成功 650: Device Product Name : Controller (Xbox One For Windows) 650: Device Instance Name : Controller (Xbox One For Windows) 651: 検出した DirectInput 対応入力装置が Xbox360コントローラーか確認... 不一致 652: 検出した DirectInput 対応入力装置が XboxOneコントローラーか確認... 一致 652: 検出した DirectInput 対応入力装置の初期化を中断します 658: DirectInput 対応ジョイパッドの列挙終了 659: ジョイパッドの初期化は正常に終了しました 660: マウスデバイスの初期化... 初期化成功 661: キーボードデバイスの初期化... 初期化成功 668: DirectInput 関連の初期化は正常に終了しました 【C PS4 DUALSHCK4 振動しない】 257: XInput DLL の読み込み中... 成功 262: DirectInput関係初期化処理 264: DirectInput8 の取得を試みます...成功 295: 引き続き初期化処理... 初期化成功 297: ジョイパッドの初期化... 298: XInput 対応コントローラーのチェックを開始します 298: XInput 対応コントローラー No.0 をチェック 299: XInput 対応コントローラー No.0 の接続は確認できませんでした 299: XInput 対応コントローラー No.1 をチェック 299: XInput 対応コントローラー No.1 の接続は確認できませんでした 300: XInput 対応コントローラー No.2 をチェック 300: XInput 対応コントローラー No.2 の接続は確認できませんでした 300: XInput 対応コントローラー No.3 をチェック 301: XInput 対応コントローラー No.3 の接続は確認できませんでした 301: XInput 対応コントローラーのチェック完了 301: DirectInput 対応ジョイパッドの列挙を開始します 342: DirectInput 対応入力装置を検出しました 342: Device Product GUID : 09cc054c,0000,0000,00,00,50,49,44,56,49,44 343: Device Instance GUID : db0718b0,f8f7,11ee,80,02,44,45,53,54,00,00 343: DirectInputDevice8 の作成... 成功 344: DirectInputDevice の情報を取得します... 成功 344: Device Product Name : Wireless Controller 344: Device Instance Name : Wireless Controller 345: 検出した DirectInput 対応入力装置が Xbox360コントローラーか確認... 不一致 345: 検出した DirectInput 対応入力装置が XboxOneコントローラーか確認... 不一致 345: 検出した DirectInput 対応入力装置が XInput 対応コントローラーか確認... 不一致 1447: DirectInputDevice のデータ形式に JOYSTICK 形式を設定... 成功 1448: DirectInputDevice の協調レベルに DISCL_FOREGROUND | DISCL_EXCLUSIVE を設定... 成功 1450: DirectInputDevice から取得する X軸 の値の範囲を設定... 成功 1451: DirectInputDevice から取得する Y軸 の値の範囲を設定... 成功 1454: DirectInputDevice から取得する Z軸 の値の範囲を設定... 成功 1455: DirectInputDevice から取得する Rx軸 の値の範囲を設定... 成功 1456: DirectInputDevice から取得する Ry軸 の値の範囲を設定... 成功 1458: DirectInputDevice から取得する Rz軸 の値の範囲を設定... 成功 1459: DirectInputDevice のボタンの数を取得... 成功 ボタンの数は 14 個です 1459: DirectInputDevice の X軸 のデッドゾーンを設定... 成功 1461: DirectInputDevice の Y軸 のデッドゾーンを設定... 成功 1462: DirectInputDevice の Z軸 のデッドゾーンを設定... 成功 1463: DirectInputDevice の Rx軸 のデッドゾーンを設定... 成功 1465: DirectInputDevice の Ry軸 のデッドゾーンを設定... 成功 1465: DirectInputDevice の Rz軸 のデッドゾーンを設定... 成功 1466: DirectInputDevice の DirectInputEffect No.0 を作成... 失敗 Error Code :0x80004001 1467: DirectInputDevice の DirectInputEffect No.1 を作成... 失敗 Error Code :0x80004001 1468: DirectInputDevice の通知処理用の Event を作成... 成功 1469: DirectInputDevice の通知処理用の Event を DirectInputDevice に設定... 成功 1471: DirectInputDevice のアクセス権を取得... 成功 1478: 検出した DirectInput 対応入力装置を入力ナンバー 0 で登録します 1479: 検出した DirectInput 対応入力装置の初期化は正常に終了しました 1488: DirectInput 対応ジョイパッドの列挙終了 1489: ジョイパッドの初期化は正常に終了しました 1489: マウスデバイスの初期化... 初期化成功 1490: キーボードデバイスの初期化... 初期化成功 1491: DirectInput 関連の初期化は正常に終了しました ご多用のところ恐れ入りますが、ご確認いただけると幸いです。
メンテ

Page: 1 |

Re: StartJoypadVibrationに関してDirectInputだと振動しない ( No.1 )
名前:管理人 日時:2026/05/08 03:23

PS4のコントローラ( DUALSHOCK4 )をPCに接続して DirectInput を使用した場合は振動機能を使うことはできません ログのこちらの部分でエラーが発生していると、振動機能が使用できないということになります 1466: DirectInputDevice の DirectInputEffect No.0 を作成... 失敗 Error Code :0x80004001 1467: DirectInputDevice の DirectInputEffect No.1 を作成... 失敗 Error Code :0x80004001 > 今私が主に使用しているコントローラのDUALSHCK4ですとStartJoypadVibrationが0を返しても振動しません。 すみません、正常に振動が開始できなくても 0 を返すようなバグ状態になっていました 正常に振動が開始できた場合のみ 0 を返し、正常に振動が開始できなかった場合は -1 を返すように 修正したバージョンをアップしましたので、よろしければお使いください 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.2 用 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 // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) > Xinput・DirectInputを切り替えられるエレコムのコントローラJC-U3613Mだと、Xinputに切り替えた場合のみ振動します。 ログを拝見する限り JC-U3613M の DirectInput 起動では同じく振動機能の初期化でエラーが発生しているようです 1626: DirectInputDevice の DirectInputEffect No.0 を作成... 失敗 Error Code :0x80004001 1627: DirectInputDevice の DirectInputEffect No.1 を作成... 失敗 Error Code :0x80004001 尚、DirectInput対応且つ振動にも対応しているコントローラで振動を正常に行うには、単に USBポートに コントローラを接続するだけではダメで、専用のドライバをインストールする必要があります こちらで JC-U3613Mシリーズ用のドライバをダウンロードできますので、もし未インストールでしたら インストールしてみてください、正常にインストールが完了すれば JC-U3613M を DirectInputモードにしても振動するようになると思います <USBゲームパッド 「JC-U3613Mシリーズ」用ドライバ (Windows 11/10/8〜8.1/7/Vista用)> https://www.elecom.co.jp/support/download/peripheral/gamepad/jcu3613m/index.html?_gl=1 > DirectInputコントローラは振動機能はつかえないのでしょうか? 前述の通り DirectInput で振動機能を使用する場合は各コントローラ専用のドライバをインストールする必要がありますので、 昨今の『ドライバなんて気にせず購入してきて USBポートに接続すればすぐ使える!』という感覚で使った場合は振動しません ( DUALSHCK4 はSONYからPC用ドライバはリリースされていませんので、DirectInput で振動させることができません… ) なのでコントローラを振動させたい場合はドライバをインストールしなくても問題なく振動する XInputタイプのコントローラや XInput・DirectInput切り替え可能コントローラの場合は XInputモードで使用するのがお手軽で良いです (・・;
メンテ
Re: StartJoypadVibrationに関してDirectInputだと振動しない ( No.2 )
名前:774(解決済み) 日時:2026/05/08 22:01

ご対応ありがとうございます。 DirectInputの場合は各コントローラでドライバが必要なことを承知いたしました。 JC-U3613Mのドライバに関しても探していただき、お手数お掛け致しました。 私的な都合でDUALSHOCK4を試遊環境に用意していたので、振動機能を使いたい場合はXINPUTコントローラを使用するようにしたいと思います。 またゲームでの対応も、振動機能はXINPUTのみ対応とすることにしたいと思います。 よろしくお願いいたします。
メンテ

Page: 1 |

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

   クッキー保存