Настройка раскладки VR-контроллеров под Steam VR

В одном из недавних постов я жаловался, что разработчики не дают нам переназначать кнопки в управлении играми. А это бывает нужно, например, в том же No Man’s Sky меня раздражает выброс предметов и центровка камеры на долгое удержание стиков с нажатием стиков сверху. Сдается мне, что это не очень хорошо сказывается на их долговечности, потому я искал способ, как бы переставить эти же действия, но, на другие кнопки. И я это сделал в итоге.

Так я наткнулся на продвинутую систему ввода для контроллеров, работающих со Steam VR, Сегодня я расскажу вам про нее.

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

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

Откуда дровишки?

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

Кроме того, в той статье рассматривается пример настройки для кнаклов, новых вайво-контроллеров, для которых в старых VR  играх может вообще не быть никаких раскладок. Да и с гидрами это вроде как тоже работает. Я же рассмотрю работу с Oculus Touch.

Как переназначить клавиши на VR-контроллерах в играх, работающих на базе Steam VR?

Если ваша VR игра вышла недавно, то разрабы будут в курсе новой системы ввода Steam VR и считаем, что нам повезло. Давайте рассмотрим на живом примере, в том же No Man’s Sky с Oculus Touch, как это всё работает.

Стартуем ваш VR cофт, в моем случае: Oculus Home + Steam + Steam VR

Я считаю, что уровень читателя достаточно высок, чтобы сделать это всё без скриншотов. Теперь — самое интересное, где эти настройки?

Меню Steam VR -> Устройства -> Настройки контроллеров

Меню настроек контроллеров под Steam VR

Ага, пока я собрался писать эту статью, тут всё уже переделали, ну ладно, смотрим, что дальше.

Из появившихся менюшек нам интересна вторая: manage controller bindings:

Шаг второй

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

Вы должны увидеть что-то вроде этого:

Шаг третий

Давайте здесь остановимся подробнее.

  1. Из этого выпадающего списка выбираем игру, для которой хотим переделать раскладку, она должна быть у вас установлена на ПК, само собой.
  2. Переключение между типами раскладки. По умолчанию там будет  «дефотл», потом появится «кастом», то есть то, что вы изменяете.
  3. Редактирование привязок, это то, что нам нужно.
  4. Выбор привязки из привязок, уже созданных сообществом для этой игры. В принципе, если вы ищете привязку для своих контроллеров, то с этого можете и начать — обычно народ подписывает, для чего раскладка и что в ней изменено.

Отображать настройки в VR — раньше такого не было, теперь это выглядит вот так:

Отображение раскладок в VR

Жмем тройку — «Edit binding«, предварительно выбрав нужную нам игру в списке в верху, получим вот такое окно:

Редактор раскладок для Steam VR

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

Сверху широкая полоска на десять плиток — это десять режимов, в которых могут работать наши тачи. Точнее, в самой игре их много: режим меню, режим ходьбы, режим управления в кабине звездолета, режим созидания, фото режим и прочее — в каждом из них тачи и кнопки на них выполняют свои функции, вот тут это всё и меняется. Для переключения между режимами — просто кликаем по верхним заголовкам, но останемся в режиме «меню» для простоты, который самый первый. В играх попроще вообще может быть только один основной режим и всё.

Наводя на каждую из секций слева и справа, вы видите сразу, к какой кнопке она относится — появляется синий курсор подсветки. Давайте запрограммируем что-то на системную кнопку на левом таче, она у нас всё равно не используется.

Жмем на плюсик рядом с надписью. Обратите внимание так же на то, как эта кнопка подсвечивается на таче

И вот тут — самое сложное. Для кнопок у нас будут один режимы, для триггеров — другие, для грипов, возможно, третьи, тут вам придется экспериментировать, чтоб получить желаемое. В случае с кнопкой выберем… кнопку!

Выбираем кнопку!

Теперь в секции слева под системной кнопкой у нас появилась наша привязка и режимы, в которых может работать наша кнопка, но она пока что не назначена на то, что мы хотим ей сделать, для этого клацаем по надписи «нет»:

Жмем сюда

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

Выход из меню

Теперь действие прописалось в секции слева, но — и это важно — его нужно сохранить, для этого жмем птичку под секцией:

Сохраняем изменения

  1. Применить изменения
  2. Выбор действия на кнопку
  3. Удалить это действие

После того, как всё сделали и хотите проверить раскладку, жмете большую кнопку внизу: «Сохранить личную раскладку».

Вот и всё! Теперь в режиме меню в игре по нажатию на системную кнопку меню будет закрываться.

Важно: настройки привязок обновляются автоматически, даже если ваша VR игра уже запущена. То есть — просто в редакторе что-то меняем и сразу идем в игру, проверять, главное, не забывать нажимать «птичку» сейва и кнопку внизу.

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

Понятно, что пример очень простой, но важна сама суть. Далее, вы ищете то, что вас не устраивает и что хотите переставить, а там можно глянуть, что висит на любой кнопке в любом режиме игры. Удаляете привязку с кнопки и привязываете выбранное действие куда хотите.

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

Самый гемор тут в том, что разные кнопки имеют разные режимы и походу, часть команд может работать только с отдельными типами кнопок. Например, я смог переставить выбрасывание предметов на «Х», но,  там при удержании его сначала появляется на пару секунд кружок загрузки и только потом это срабатывает. Или, вроде бы один грип, а у него сразу три режима работы, и все — как кнопка, я не знаю, как это работает)

Как говорится, нифига не понятно, но очень интересно)

Вообщем, тут у вас большое поле для экспериментов, я показал, куда копать,  а дальше — вникайте сами, я что хотел, сделал, и успешно забил на этот дикий редактор)

Как поделиться раскладкой?

Если вы считаете, что ваши изменения интересны другим игрокам и упростят им жизнь, то после того, как всё отттестировано, жмете нижнюю большую кнопку «Опубликовать в мастерской», вам будет предложено назвать свою раскладку и дать ей краткое описание.

Так, вы можете найти мою раскладку для No Man’s Sky, где я не насилую грипы)

Моя раскладка для No Man’s Sky VR

Вот её можно выбрать через «choose another«, помните, выше на скринах кнопка 4? Что я там изменил?

Перезарядить бластер: А
Смена оружия: Х
Вызов инвентаря: двойной Х
Вызов строительного меню: долгий Х
Вызов быстрого меню: Y
Вызов главного меню: двойной Y
Закрыть меню: Y
Подбор/Выброс предмета: долгий Y
В корабле:
Имульсный двигатель — долгий Х
На правый стик вниз: взлет и увеличение скорости
На правый стик вверх: уменьшение скорости
По меню в корабле можно перемещаться стрелками, но подтверждать всё равно — тригером или А

Всё это вы можете менять, применив мою раскладку и далее ее же отредактировав.

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

А если игра старая?

А вот тут настает печаль. Та английская статья, она как раз про это — как в старых играх завести новые контроллеры.

И логика там примерно такая. Я рассмотрю первый из примеров в статье, два других рассмотреть вам поможет гугло-переводчик) Скрины возьму оттуда же, для простоты. Итак, у нас есть старая игра: волновой тир и задача — настроить ее под новые Кнаклы, про которые я говорил выше.

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

Шаг 1

Здесь мы видим все команды, которые знает старый API Steam VR, но — новая система ввода не знает, как работает старая игра. Поэтому, нам нужно связать старые действия с новыми кнопками на кнаклах. Как это сделать? Выбираем только то, что есть в игре и называем какими-то понятными названиями, а всё остальное, не нужное нам, скрываем на кнопку «Hide«, останутся наши четыре действия:

Обратите внимание на галочку в рамке, ее ставят, если игра имеет одинаковое управление для двух рук

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

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

Третий шаг

Далее — выбираем наше действие из тех, которые мы назвали на прошлом шаге, то есть — фаер!

Шаг четыре

Жмем «птичку» сохранения и аналогично привязываем другие три кнопки к нашим ранее описанным действиям. В случае с кнаклами там у грипа есть чувствительность, и они ее так же настраивают. Я не буду это рассматривать, тем более, что у меня их нет.  Моя задача — показать вам саму механику настройки.

После того, как мы определили всем четырем новым кнопкам четыре действия из игры — сохраняем раскладку, или для себя, или для сообщества — и тестируем.

В итоге получаем вот такое, обратите внимание на то, что права сторона не редактируется, так как, мы поставили галочку симметрии ранее

Вот, вобщем-то и всё, правда, там рассматриваются далее два куда более сложных примера, но, я в них уже особо не вдавался. Если что — переводчик вам поможет)

На этом всё, с вами были @Pavel419, до новых постов!