Настройка джойстика для игр
Сразу оговорюсь, эмуляторов DS4Windows и InputMapper, предназначенных для DUALSHOCK 4, в этой статье не будет. Для DUALSHOCK 4 существует отдельная статья в блоге, DUALSHOCK 4 в реалиях ПК, где эта тема раскрыта достаточно широко.
Изначально эмулятор появился под названием «XBOX360 Controller Emulator v3.0 by Racer_S». Был он, мягко говоря, сыроват, пока его дальнейшим развитием не занялся пользователь с ником virus, обитающий тогда на сайте www.tocaedit.com. В дальнейшем всё это дело переросло в проект x360ce и существует по сей день.
Что представляет из себя x360ce эмулятор? Это кастомные библиотеки:
плюс файл с настройками:
Настроек много и они не универсальные. Эмуляция может работать, а может и не работать, зависит от игры и подобранных настроек. Для 64-битных приложений, нужно использовать 64-битную версию библиотек. Если для вашего DirectInput-геймпада в системе не установлен драйвер с поддержкой вибрации, вибрации не будет и через эмулятор. x360ce не работает с UWP-приложениями.
x360ce-эмулятор был отличным решением несколько лет назад, но сейчас есть варианты поинтереснее. Впрочем, иногда он спасает.
Скачать x360ce можно тут.
В XOutput принцип работы уже более продвинутый. При установке этого эмулятора, в систему ставится virtual bus driver (SCP драйвер-враппер, который также используют утилиты DS4Windows и InputMapper, для эмуляции XInput на геймпадах DUALSHOCK 4):
Но в отличие от заточенных под один геймпад DS4Windows и InputMapper, этот эмулятор всеяден и готов работать с любыми DirectInput геймпадами:
После настройки и активации эмуляции в системе (помимо нашего DirectInput геймпада) должен появиться XBox 360 геймпад:
Чтобы скрыть DirectInput сущность нашего геймпада от системы и игр, следует воспользоваться режимом «Exclusivity»:
. по идее должно стать. Эмулятор достаточно капризный, в том, что касается эксклюзивного режима. Особенно на последних версиях Windows 10. Т.е. может и не работать.
Вибрации через эмулятор, даже если она поддерживается вашим геймпадом, и в систему установлен родной forcefeedback драйвер для DirectInput устройства, не будет:
У этого эмулятора есть неоспоримые преимущества перед x360ce: он работает в UWP-приложениях, он не требует никаких сторонних DLL-библиотек в папке с игрой, он легко включается и выключается, его можно добавить в автозагрузку, он работает с 32-битными и 64-битными приложениями.
Скачать эмулятор можно тут.
Суть та же, но тут работа над софтом и драйвером идёт активнее.
Вот вам необходимые ссылки по новой версии XOutput:
Steam поддерживает большое количество геймпадов «из коробки», т.е. не требуется дополнительных телодвижений для того, чтобы Steam распознал ваш геймпад, а точнее правильно определил раскладку кнопок и прочее.
Но нет ничего страшного, если ваш DirectInput-геймпад незнаком стиму.
Для того, чтобы для вашего DirectInput-друга, в играх из библиотеки Steam (или добавленных туда вручную), заработала эмуляция XInput (и прочие плюшки), нужно проделать следующие шаги.
Подключить геймпад к ПК, запустить Steam и перейти в режим Big Picture:
Перейти в пункт меню с настройками контроллера:
поставить галочку на «пользовательские настройки обычного геймпада»:
выбрать внизу, в обнаруженных контроллерах, ваш геймпад и настроить его в соответствии с подсказками на экране:
нажать «сохранить» и дать имя вашему геймпаду:
Всё. Теперь ваш геймпад поддерживается в Steam, и для него доступны все настройки для любой игры из библиотеки:
В играх (из библиотеки Steam) ваш геймпад будет определяться, как XBox 360 контроллер. Чтобы произвести дополнительные настройки по конкретной игре, нужно вызвать в процессе игры оверлейный экран Steam (кнопкой GUIDE) или комбинацией клавиш и произвести все необходимые манипуляции.
Comparison of XInput and DirectInput features
XInput is an API that allows applications to receive input from the Xbox Controller for Windows. This document describes the differences between XInput and DirectInput implementations of the Xbox Controller and how you can support XInput devices and legacy DirectInput devices at the same time.
Use of legacy DirectInput is not recommended, and DirectInput is not available for Windows Store apps.
The New Standard: XInput
XInput is now available for game development. This is the new input standard for both the Xbox and Windows. The APIs are available through the DirectX SDK, and the driver is available through Windows Update.
There are several advantages to using XInput over DirectInput:
Using the Xbox Controller with DirectInput
The Xbox Controller is properly enumerated on DirectInput, and can be used with the DirectInputAPIs. However, some functionality provided by XInput will be missing from the DirectInput implementation:
The combination of the left and right triggers in DirectInput is by design. Games have always assumed that DirectInput device axes are centered when there is no user interaction with the device. However, the Xbox controller was designed to register minimum value, not center, when the triggers are not being held. Older games would therefore assume user interaction.
The solution was to combine the triggers, setting one trigger to a positive direction and the other to a negative direction, so no user interaction is indicative to DirectInput of the «control» being at center.
In order to test the trigger values separately, you must use XInput.
XInput and DirectInput Side by Side
By supporting XInput only, your game will not work with legacy DirectInput devices. XInput will not recognize these devices.
If you want your game to support legacy DirectInput devices, you may use DirectInput and XInput side by side. When enumerating your DirectInput devices, all DirectInput devices will enumerate correctly. All XInput devices will show up as both XInput and DirectInput devices, but they should not be handled through DirectInput. You will need to determine which of your DirectInput devices are legacy devices, and which are XInput devices, and remove them from the enumeration of DirectInput devices.
To do this, insert this code into your DirectInput enumeration callback:
A slightly improved version of this code is in the legacy DirectInput Joystick sample.
Геймпад – одно из самых распространенных средств управления в компьютерных играх. Многие проекты, портированные с консолей, рассчитаны в первую очередь именно на джойстик, и лишь во вторую – на клавиатуру с мышкой. В этой статье мы рассмотрим основные характеристики геймпадов и приведем рекомендации по выбору.
Платформа
Большинство контроллеров универсальны и подходят как для игровой приставки, так и для персонального компьютера, а некоторые даже для смартфона или планшета на Android. Но, несмотря на это, следует заранее определиться с устройством, для которого вы будете использовать геймпад – они не всегда работают с разными девайсами одинаково хорошо и беспроблемно. Выбирая джойстик для ПК, также загляните в спецификации и убедитесь, что ваша операционная система поддерживается производителем.
XInput и DirectInput
Когда-то все распространенные на рынке контроллеры работали с использованием DirectInput API. Ситуация изменилась с выходом Xbox 360 – компания Microsoft реализовала альтернативный вариант, который получил название XInput. После этого он появился и в операционных системах Windows, начиная с версии XP. Подавляющее большинство вышедших для ПК игр, в которых можно задействовать джойстик, поддерживают API от Microsoft.
Отдельные производители джойстиков объединили оба варианта API в одном устройстве. Например, это реализовано в Logitech F310/F510/F710, снискавших заслуженную популярность среди геймеров. Переключение чаще всего производится при помощи регулятора, расположенного на тыльной стороне устройства.
Метод подключения
Геймпады бывают проводными и беспроводными. Первые могут подсоединяться к консоли или ПК при помощи USB-кабеля, вторые – используя Bluetooth или фирменный приемопередатчик.
Проводное подключение выигрывает в скорости отклика (хотя разница часто составляет миллисекунды, и на практике вы вряд ли это заметите, если не являетесь профессиональным геймером). Беспроводное же позволяет пользователю с удобством разместиться, не ограничивая его длиной провода. К сожалению, минусом является зависимость от встроенных аккумуляторов или батареек, которые необходимо заряжать или заменять новыми.
Материалы
Выбранные производителем материалы и качество сборки устройства влияют как на удобство использования, так и на долговечность. Гораздо приятнее держать в руках контроллер, который не скрипит и не люфтит при нажатии на кнопки или работе со стиками. Преимуществом является и противоскользящее покрытие в местах хвата.
Форма и управляющие элементы
Эргономике геймпадов задают тон DUALSHOCK и XBOX controller. Первый вариант считается более компактным и удобным – большинство пользователей сходятся на том, что параллельное расположение стиков идеально подходит для игр. Впрочем, это дело привычки и личных предпочтений каждого геймера.
Аналоговые стики
Некоторые бюджетные контроллеры не оснащаются аналоговыми стиками. Покупать их не следует – почти все современные игры предусматривают использование «аналогов». Стоит упомянуть, что для большего удобства существуют насадки на стики, позволяющие изменить форму их верхней части. Часто такие решения обладают повышенными противоскользящими свойствами.
«Особые» типы кнопок
На некоторых моделях геймпадов реализованы дополнительные и программируемые кнопки. Дополнительные могут выполнять дублирующую функцию или изменять количество срабатываний других клавиш, возможности программируемых гораздо шире.
Используя контроллер с ПК, вы можете при помощи специализированного софта, идущего в комплекте, создавать различные макросы – например, последовательности нажатий, и привязывать их к одной кнопке. Полезность такой фишки для соревновательных игр вроде футбольных симуляторов или файтингов сложно переоценить.
Вибрация
Оснащение устройства вибромоторами увеличивает вовлеченность в игровой процесс – их срабатывание происходит в зависимости от разворачивающихся на экране событий, например, при попадании в штангу в FIFA, пропущенном ударе в файтинге, или аварии в гонке. Обращать внимание на геймпады, не поддерживающие вибрацию, нет особого смысла – стоимость устройства она почти не увеличивает, а впечатления от игр улучшает сильно. Если же вы захотите, эту функцию всегда можно просто отключить.
Заключение
При выборе контроллера первым делом определитесь, с каким устройством вы планируете его использовать, и убедитесь в их совместимости. Проводной или беспроводной вариант выбирайте в соответствии с личными предпочтениями – я, например, использую проводной, потому что не хочу заряжать дополнительный девайс. Оптимально, если джойстик будет поддерживать как Xinput, так и DirectInput, и обладать вибромоторами.
Не забывайте и об эргономике – если есть возможность, подержите выбранную модель в руках, попробуйте, удобно ли пользоваться стиками, кнопками и другими элементами управления. Хорошо, если у геймпада будут прорезиненные вставки – тогда пальцы не будут соскальзывать во время длительных игровых баталий.
Как выбрать геймпад
Геймпад, как средство взаимодействия между игроком и игрой существует уже достаточно давно. Многие управляли Марио, бегущим по просторам сказочного мира, или бравым воякой в Contra, с помощью пластикового прямоугольника с кнопками.
С тех пор много воды утекло, геймпады стали куда более разнообразными, функциональными и эргономичными. Не удивительно, что в сегодняшнем мире выбор контроллера может стать не праздной задачей. Вариантов много, поди, разберись, в чем отличия и какой подойдет именно вам. Но все-таки давайте попробуем.
Целевая платформа
В сегодняшнем мире существует достаточное количество различных игровых платформ, и не удивительно, что контроллеры для них также отличаются. Поэтому первоначально необходимо выбрать, с какой из них вы будете использовать геймпад.
Несмотря на это производители стараются делать относительно универсальные модели, подходящие к различным устройствам. Например, геймпад может подходить одновременно и для ПК, игровой приставки и для андроид устройства. Выбирая контроллер для ПК, ознакомьтесь также со списком поддерживаемых операционных систем.
Но к сожалению, бывают устройства, к которым нет универсальных моделей (например, некоторые игровые приставки Nintendo).
XInput или DirectInput
До середины нулевых такой дилеммы не существовало. Геймпады использовали DirectInput API. Однако Microsoft с выходом своей приставки XBOX 360, ввела в использование новый вид API – XInput. А поскольку эта компания владеет самой распространённой операционной системой (с самой широкой библиотекой игр), то XInput появился и в Windows, начиная с XP Service Pack 1.
Раз уж разговор затронул приставки (на которых геймпады первое и практически единственное средство управления), то следует упомянуть, что контроллеры от XBOX (360 и ONE) используют XInput, а контроллеры Sony Playstation – DirectInput.
Благодаря кроссплатформенности (XBOX/PC) и отсутствию необходимости в настройке, XInput быстро стал стандартом для PC игр и практически все игры, вышедшие за последние 10 лет, поддерживают работу с такими устройствами. Определяются такие геймпады как Xbox 360 controller, этого пугаться не стоит.
DirectInput используется игровыми рулями, штурвалами для авиа- и космических симуляторов, геймпадами для Playstation 2/3/4.
Также стоит отдельно отметить DUALSHOCK 4 (стандартный контроллер Playstation 4). Поскольку это контроллер от приставки текущего поколения, проданной почти 100 млн. тиражом, некоторые разработчики игр, кроме XInput, добавляют поддержку именно этого DirectInput устройства. Также компания Valve в своем клиенте Steam, обеспечила полную поддержку DUALSHOCK 4, независимо от игры.
У вас может возникнуть закономерный вопрос: почему не объединить оба API в одном устройстве? Производители также задавались им и выпустили модели которые могут работать в любом из этих стандартов по вашему желанию. Для этого необходимо всего лишь использовать переключатель, размещенный на тыльной стороне устройства. Практично и иногда очень полезно.
Способ подключения
Немаловажный параметр, также зависящий от того к какой платформе вы покупаете геймпад.
Фундаментально различается на 2 вида:
Для проводного подключения используются USB (например, в ПК) или проприетарные разъемы (например, для Nintendo Switch). Беспроводным подключением является Bluetooth (ПК, Android, iOS), либо используются специальные (фирменные) приемопередатчики (XBOX 360/ONE).
| Приемопередатчик для беспроводного подключения контроллера XBOX ONE к ПК |
| Дополнительные кнопки 9, 10, Turbo, Clear и Auto |





























