3

У меня проблема с настройкой геймпада. Система устройств ввода Windows всегда смущала меня, но после некоторых исследований я собрал следующее:

  • XInput - это новейший / наиболее широко используемый API в DirectX для ввода с геймпада.
  • DirectInput - это более старый API, который не так популярен / используется (благодаря тому, что XInput проще и быстрее настраивается)
  • XInput поддерживает ТОЛЬКО контроллеры Xbox (Xbox 360 и, возможно, Xbox One)
  • DirectInput поддерживает все типы устройств ввода, в том числе общие HID-совместимые геймпады и контроллеры Xbox (хотя с меньшим количеством функций, чем через XInput, например, поддержка гарнитуры)

Моя проблема заключается в том, чтобы заставить геймпад Bluetooth (игровой контроллер Amazon Fire TV) работать в играх на Windows. Очевидно, что, поскольку это не контроллер Xbox 360, для его работы над игрой только для XInput потребуется обходной путь. Этот проект, кажется, делает свое дело почти идеально, так как он позволяет всем устройствам ввода эмулировать ввод Xbox360 и, следовательно, сделать их совместимыми с XInput.

Тем не менее, я столкнулся с несколькими препятствиями, и я не могу точно сказать, чья это вина или как их исправить. Одна из проблем заключается в том, что триггеры L/R вообще не обнаруживаются. Зайдя в меню "Устройства и принтеры" и щелкнув "Настройки игрового контроллера" для моего контроллера, я могу проверить входные данные с помощью знакомого экрана:

Нажатие на триггеры вообще ничего не делает. Кроме того, если вы заметили, есть 15 кнопок ввода. Это правильно, так как тестируемый мной контроллер имеет 15 кнопок, однако 4 из этих кнопок являются мультимедийными кнопками, которые сами управляют ОС. Например, нажатие кнопки «Домой» на контроллере откроет мой интернет-браузер и приведет меня на мою домашнюю страницу. Нажим других кнопок мультимедиа по-видимому ничего не делает.

Мои вопросы:

  1. Как заставить триггеры работать? Это проблема с драйверами? Я думал, что HID-совместимые устройства должны были просто работать. Если Windows обнаружила все 15 кнопок, два аналоговых джойстика и один D-Pad, почему она не может обнаружить два триггера? Поддерживают ли HID-совместимые игровые планшеты аналоговые триггеры, или это ошибка / проблема либо в самом контроллере, либо в драйвере геймпада Windows?

  2. Как я могу взять под контроль 4 мультимедийных кнопки на устройстве? Наличие кнопки на геймпаде, которая переводит меня в мой интернет-браузер, довольно бесполезно и раздражает.

  3. Если для этого абсолютно необходим специальный драйвер, можно ли написать его самостоятельно, не имея связи или помощи от производителя?

Спасибо!

1 ответ1

2

Вы правы в том, что DirectInput отличается от Xinput, хотя можно утверждать, что API DirectInput допускает более разнообразные элементы управления. Если у вас есть контроллер, который регистрируется как устройство directInput, и у вас есть игра, которая принимает только Xinput, я предлагаю x360ce (@ http://www.x360ce.com/ ). Это преобразует DirectInput в Xinput для игры, маскируя фактический ввод контроллера. Просто запустите x360ce.exe в каталоге игры и следуйте инструкциям на сайте x360ce. К сожалению, он не совместим со всеми играми, а также может быть несовместим с вашим контроллером. Однако стоит попробовать, но не забудьте оставить отзыв для разработчиков x360ce. Надеюсь, это поможет!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .