Как стать автором
Обновить

Свой контроллер для Oculus Quest 2 на ESP32

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров4.5K
Всего голосов 5: ↑5 и ↓0+8
Комментарии6

Комментарии 6

Во-первых, есть подобные устройства: на основе инерционных датчиков, на основе роликов в башмаках, в виде отдельной "тарелки" с датчиками на пол, и даже все вместе. И все они либо цепляются именно к шлему эмулируя отклонение стика, либо эмулируют отдельное устройство для того же steamvr/openxr, позволяя на себя забиндить что хочется.

Во-вторых, очень редкие VR-приложения умеют управляться с клавиатуры, как реализовано здесь подгонкой годот-проекта под основной проект контроллера.

В-третьих, эта тема не развивается, потому что это неудобно. Ходьба на месте никак не способствует исчезновению укачивания, при этом способствует быстрому выматыванию. Ну, и catwalk vr и его аналоги банально много места занимают и дорого стоят.

В-четвёртых, причем тут quest 2? Просто потому что проект запущен на нем? Ну, с таким же успехом проект "игры" можно было сделать для обычной мобилы или для ПК - данное устройство будет работать совершенно также. Даже если простой блокнот на ПК открыть - увидим, что будут печататься запрограммированные символы. Это же обычная bt-hid клавиатура.

И да, я читал дисклеймер. Просто статья вводит в заблуждение, а заголовок кликбейтный. Я пришел сюда за знаниями, а знаний в статье меньше, чем в первом ответе на стак оверфлоу.

Я думал упомянуть ролики и платформы, но с моей точки зрения, эти устройства никогда не станут массовыми из-за своих габаритов и своей технической сложности, потому и не стал.

То, что мало игр могло управляться световым пистолетом и гитарой вас не смущает? Если контроллер кастомный, то вроде как очевидно, что игра должна делаться под него (может вы ожидали, что в статье будет предложено сделать замену стандартному контроллеру, но мне в голову не могло прийти, что кто-то захочет это делать, т. к. они не имеют существенных изъянов и что-то кастомное сравнимое по функционалу будет значительно дороже). Если контроллер сделан с умом, без фиксации на одной игре, то его можно использовать и в других играх, но исходно контроллер делается под игру.

Вы утверждаете, что ходьба на месте никак не влияет на укачивание, видимо основываясь на своем опыте. Про себя скажу, что меня практически не укачивает в VR и сперва я попробовал сделать управление по аналогии с доской для серфинга, когда направление движение контролируется отклонением шлема от базовой точки влево или вправо. Так вот с ходьбой, особенно после добавления в конце шага замедления, эффект укачивания для меня был менее выражен, чем с доской, но тут речь идет о разнице между слабо и очень слабо.

Ходьба на месте способствует быстрому выматыванию? В Thrill of the fight или Creed: Rise to Glory не пробовали играть? Видимо авторам надо было сделать удары на кнопки контроллеров, как в Mortal Kombat. С моей точки зрения, подвижность и физическая нагрузка - это огромный плюс VR, который надо активно использовать, в том числе и для иммерсивности. Разумеется, если брать игры с открытым миром, как например Skyrim или The Witcher, то ходить там грустно, но это потому они адаптации под VR

По поводу причем тут Oculus Quest: на рынке по сути сейчас два с половиной игрока - Meta Quest с его китайским аналогом Pico и Valve Index. Apple с их Vision Pro и Sony PS VR имхо мертворожденные, как тот же Google Glass. В статье я рассказываю как сделать контроллер для standalone-гарнитуры с учетом того факта, что UART на Meta не доступен. Для Index контроллер должен подключаться уже к хосту, так что тут он ни при чём. Для телефонов делать контроллеры смысла мало: придумать что-то свое практически невозможно, хотя создатели Pokemon Go и Just Dance смогли. В VR же, размышляя о своей игре, я сразу уперся в невозможность перемещаться естественным образом (телепорт и стик - это эрзац), что делает невозможным целый ряд игр. Основной посыл статьи - возможность сделать свой контроллер есть. А второй - жалко, что нет стандартных контроллеров для ног.

И напоследок: вы выражаете своё недовольство, что в статье мало технических деталей хотя она имеет как короткий описывающий дисклаймер, так и метку Простой. И завершаете тем, что сводите на ноль всё, что я написал, так как именно вы это знаете и ничего полезного, именно для вас, в ней нет. А потом некоторые удивляются чего это рунет такой токсичный.

Делать кастомный контроллер под свой проект недоигры? Вы не Нинтендо, чтобы сравнивать себя с ними.

Я уже сказал, что чтобы контроллер работал со всеми играми - надо эмулировать действия совместимого контроллера, что делают остальные девайсы.

Размер девайсов большой только у кэтволк ВР и аналогов, а вот такие минималистичные тоже есть, что я тоже упомянул: "башмаки с роликами, инерционные трекеры, тарелка с датчиками".

Меня вообще в ВР не укачивает, могу и бегать, и ездить, и летать. Сказалась школа юного конструктора-пилота. Но я сижу в ВР тусовках, где в том числе люди жалуются на свой экспириенс от тех или иных девайсов. Советую тоже хотя бы в те же Дискорд сервера позаходить, почитать.

Взмахи легковесными контроллерами - это одно. Ходить на месте - другое. Не надо утрировать про кнопки. Сходите в ВР клуб, где есть катволк ВР, и затестите каково это перемещаться ходьбой.

Про телефоны мой поинт так и не понят. Вся суть этого проекта - обычная bt-hid клавиатура, которую без разницы к чему цеплять, будь то ВР, телефон или компьютер. Работать будет одинаково, помимо ВР, ибо забиндить на Клаву редко что возможно в таких проектах. Кстати, касательно компьютеров - от эльгато, которые стимдек сделали, уже есть педальки.

Касательно моего последнего абзаца. Мне не нужны глубокие технические детали. По заголовку в статье должен был быть реальный проект кнопок под ноги, который бы работал с ВР, а по итогу, повторюсь ещё раз, описана простая бт-клавиатура на Ардуино. У меня и самого есть проект usb-hid клавиатуры на гитхабе для Valve Index https://github.com/alextrof94/ValveIndexMacroKeyboard . Отличия в этих проектах лишь в МК, в одной дополнительной либе и +-десяти строках кода, ну и корпусня у меня тоже смоделена, чтобы можно было распечатать на принтере, собрать и реально применить.

Делать кастомный контроллер под свой проект недоигры?

Думаю это и есть корень того, что у вас было другое ожидание от статьи. Лично моё мнение, что если и делать свой контроллер, то делать надо именно для своей игры. В Японии, в отличии от другого мира, такие контроллеры не являются какой то диковинкой и явление достаточно распространено. Сейчас с развитием интернет торговли, из которой Россия пока несколько выпала, продавать свой контроллер просто. К тому же почти всего остается вариант самосбора.

Вы же видимо нацелены на улучшение и/или замещение стандартных контроллеров. И корень этого стремления, вероятнее всего, растет из того, что вы пользователь Index, в то время как я - Oculus. База игр, как и требования к ним, у Index много выше, поскольку он в первую очередь конкурирует с настольным геймингом и по сути предлагает "теже игры, но в VR". Для Oculus, есть не только Steam, но и важную роль занимают магазин Meta и SideQuest, где игр не так уж чтобы и много, т.е. конкуренция ниже, да и сами игры делать проще, т.к. нет заоблачных требований к моделям и другим аспектам, то есть даже требование своего контроллера не ставит крест на игре, если она при этом может предложить особенный опыт, как напр. Guitar Hero. Так, например, добавив тензометрические датчики на ступни можно сделать игру, где поверхности ломаются в зависимости от приложенной к ним силе - лёд то все ломать любят зимой. В плане игр, Oculus ближе к Nindendo Switch, где техническая составляющая не так важна, а Index к ПК/PS/XBOX.

Педальки к компьютеру, многие давно делают самостоятельно, но это скорее расширение стандартной клавиатуры для ввода макросов или зажатия спец-клавиш, т. е. примерно как делали бы вы.

Про телефоны мой поинт так и не понят

Статья больше о проверки идеи, о чем в сразу в дисклаймере и написано. Техническая реализация, то что это BT-клавиатура - дело десятое, подошел бы и удар палкой, если бы это сработало, и поэтому в статье вообще никакого кода нет. Главное в том, что есть возможность передать что-то извне. Для Index это само-собой очевидный факт, т.к. управление идет с хоста, к которому изначально можно подключать что угодно. Для Oculus, если он используется в режиме standalone, передать данные не столь очевидно, хотя и не сильно сложно.

Именно про башмаки с роликами я и написал, что они технически сложные: моторы и прочие двигающиеся детали - большой минус. Кроме того, в них нога частично теряет свою подвижность в боковом направлении. Они мне кажутся столь же нишевыми, как и кэтволк. Мнение о трекинге с помощью датчиков в самом конце статьи.

Ходить на месте - другое

Если поднимать ногу и сгибать колено, то да. Если ходьба это просто переминание с ноги на ногу, то я проблемы не вижу. Кэтволк и роликовые контроллеры требуют полный шаг, что разумеется утомительно, но опять таки в играх, которые изначально не были сделаны для VR. Для игр по типу Red Matter, где нет бесконечных пространств, или скажем онлайн шутера на небольшой карте, как poolday для CS, даже они не будут проблемой

Вот бы ещё тактильные перчатки к Meta Quest... то, чего явно не хватает, и что вывело бы игровой опыт на новый уровень.

Видел, один парень на ютубе делает подобный проект, и он вроде бы даже работает, но там все далеко от идеала и довольно громоздко.

А коммерческие перчатки стоят каких-то неразумных денег (от 5-6 тысяч долларов).

Лично мне даже трекинг пальцев кажется излишеством при текущем уровне развития игростроя. Он с трудом может быть применен к чему то еще кроме как для хватания твердых мелкий предметов сейчас, а это можно делать просто триггером на ручке и игра даже может реализовать правильный хват. Обработка мягких тел, включая жидкости, все еще хромает, надежда только на машинное обучение, т.к. реальный обсчет ставит на колени любой процессор.

В целом есть проблема с обратной связью, когда сжимая предмет или проводя по поверхности рукой в VR, хотелось бы что-то ощущать дополнительно, но, увы, из доступных средств для этого сейчас только вибро-моторы и шаговые двигатели. Гидравлика или тяги - слишком громоздки, и потому обречены быть нишевыми. Вот если была бы изобретена ткань, свойствами которой можно управлять электронными импульсами, то она бы хорошо подошла, но скорее прямые импланты в мозг появятся, чем она.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории