Я пытаюсь использовать IMU DualShock 4 в качестве контроллера движения в Unity, под Windows 7.
Пока что я пробовал:
- DS4Windows (1.5.11): считывает данные датчика движения, но не отображает их в Unity в качестве осей, пока я не сопоставлю их с левой и правой палками. Этого недостаточно, так как я теряю использование стиков, я могу разместить только 4 из 6 каналов данных, и значения, проходящие через, обрезаются в узком диапазоне.
- Motioninjoy (0.7.1001): не обнаруживает DS4 в качестве контроллера (последние документы относятся только к DS3 и более ранним версиям)
- GlovePIE (0.43): после следования инструкциям по использованию DualShock 3 с LibUSB-Win32 (длинный снимок) свойства SixAxis остаются пустыми.
В прошлом я использовал внешние программы, такие как GlovePIE, для сбора данных с удаленного датчика движения Wii и передачи их в Unity с помощью сообщений OSC , поэтому я был бы открыт для такого подхода, если не смогу заставить Unity считывать датчики контроллера. непосредственно через свою систему ввода .
Кому-нибудь повезло с этим?
источник
Я создал решение для этого сам. Он называется JoyShockLibrary и считывает данные с DualShock 4, Switch Pro Controller и Joy-Cons. Это открытый исходный код, лицензия MIT, и работает хорошо, хотя поддержка Bluetooth для DS4 была добавлена только недавно и все еще улучшается.
Он используется в JoyShockMapper , который является инструментом отображения ввода, и JoyShockOverlay, который еще не опубликован, но вы можете увидеть его в действии здесь (Gfycat) и здесь (YouTube).
JoyShockLibrary прекрасно дополняет XInput - помимо его отчетов IMU, он очень похож на XInput - так что вы можете легко охватить все современные контроллеры консольных генераторов, используя преимущества гироскопа и акселерометра от тех, которые его поддерживают.
Это довольно легко использовать с Unity, хотя я должен создать файл .cs, чтобы облегчить его для других.
источник
Похоже, это все инструменты, которые связывают DirectInput с XInput. В Unity есть поддержка DirectInput, поэтому вы должны посмотреть, как она работает без сторонних инструментов. Ключ, если IMU сопоставлен с чем-либо в DirectInput и если он уже находится в пригодном для использования состоянии. Если нет, вам, возможно, придется написать собственный обработчик DirectInput для обработки необработанных данных.
Вы можете поблагодарить Xbox за все эти проблемы контроллера.
источник