Содержание статьи (кликабельно)
В одном из недавних постов я жаловался, что разработчики не дают нам переназначать кнопки в управлении играми. А это бывает нужно, например, в том же No Man’s Sky меня раздражает выброс предметов и центровка камеры на долгое удержание стиков с нажатием стиков сверху. Сдается мне, что это не очень хорошо сказывается на их долговечности, потому я искал способ, как бы переставить эти же действия, но, на другие кнопки. И я это сделал в итоге.
Так я наткнулся на продвинутую систему ввода для контроллеров, работающих со Steam VR, Сегодня я расскажу вам про нее.
Перенастроить управление вам так же может понадобиться, например, если разработчики современных игр про вас забыли, а вы сидите на одном из WMR-шлемов и в новой игре у вас просто не работают контроллеры. Народ у нас в чате так делает.
Скажу сразу, что я сам до конца не понимаю, как это работает, и возможно, в данных настройках вы продвинетесь дальше меня, и это хорошо. Но, моего понимания мне вполне хватило, чтобы сделать то, что я хотел.
Откуда дровишки?
Дровишки отсюда, за основу взято вот это руководство на английском, если вы владеете языком и сможете полностью его перевести, это будет очень круто для всего VR-сообщества. Но, даже с гугло-транслейтом там в целом можно разобраться, о чем они пишут.
Кроме того, в той статье рассматривается пример настройки для кнаклов, новых вайво-контроллеров, для которых в старых VR играх может вообще не быть никаких раскладок. Да и с гидрами это вроде как тоже работает. Я же рассмотрю работу с Oculus Touch.
Небольшое короткое видео на эту тему:
Как проверить исправность VR контроллеров?
Вот так:
Как переназначить клавиши на VR-контроллерах в играх, работающих на базе Steam VR?
Если ваша VR игра вышла недавно, то разрабы будут в курсе новой системы ввода Steam VR и считаем, что нам повезло. Давайте рассмотрим на живом примере, в том же No Man’s Sky с Oculus Touch, как это всё работает.
Стартуем ваш VR cофт, в моем случае: Oculus Home + Steam + Steam VR
Я считаю, что уровень читателя достаточно высок, чтобы сделать это всё без скриншотов. Теперь — самое интересное, где эти настройки?
Меню Steam VR -> Устройства -> Настройки контроллеров
Ага, пока я собрался писать эту статью, тут всё уже переделали, ну ладно, смотрим, что дальше.
Из появившихся менюшек нам интересна вторая: manage controller bindings:
Первая строчка — отображение раскладок в VR, (дальше будет скрин, как это выглядит), третья строчка — это настройка мертвых зон для стиков, а четвертая поможет вам проверить работоспособность ваших контроллеров, не буду на них подробно останавливаться.
Вы должны увидеть что-то вроде этого:
Давайте здесь остановимся подробнее.
- Из этого выпадающего списка выбираем игру, для которой хотим переделать раскладку, она должна быть у вас установлена на ПК, само собой.
- Переключение между типами раскладки. По умолчанию там будет «дефотл», потом появится «кастом», то есть то, что вы изменяете.
- Редактирование привязок, это то, что нам нужно.
- Выбор привязки из привязок, уже созданных сообществом для этой игры. В принципе, если вы ищете привязку для своих контроллеров, то с этого можете и начать — обычно народ подписывает, для чего раскладка и что в ней изменено.
Отображать настройки в VR — раньше такого не было, теперь это выглядит вот так:
Жмем тройку — «Edit binding«, предварительно выбрав нужную нам игру в списке в верху, получим вот такое окно:
Не стоит бояться этого гигантского окна, сейчас я расскажу вам, что тут к чему. Хотя, возможно, вы уже и сами догадались.
Сверху широкая полоска на десять плиток — это десять режимов, в которых могут работать наши тачи. Точнее, в самой игре их много: режим меню, режим ходьбы, режим управления в кабине звездолета, режим созидания, фото режим и прочее — в каждом из них тачи и кнопки на них выполняют свои функции, вот тут это всё и меняется. Для переключения между режимами — просто кликаем по верхним заголовкам, но останемся в режиме «меню» для простоты, который самый первый. В играх попроще вообще может быть только один основной режим и всё.
Наводя на каждую из секций слева и справа, вы видите сразу, к какой кнопке она относится — появляется синий курсор подсветки. Давайте запрограммируем что-то на системную кнопку на левом таче, она у нас всё равно не используется.
И вот тут — самое сложное. Для кнопок у нас будут один режимы, для триггеров — другие, для грипов, возможно, третьи, тут вам придется экспериментировать, чтоб получить желаемое. В случае с кнопкой выберем… кнопку!
Теперь в секции слева под системной кнопкой у нас появилась наша привязка и режимы, в которых может работать наша кнопка, но она пока что не назначена на то, что мы хотим ей сделать, для этого клацаем по надписи «нет»:
У нас выпадет куча команд, которые есть в игре, правда, они на английском, но я думаю, вы сможете это осилить. Давайте забиндим на нее выход из меню, выбираем эту команду из выпадающего списка и клацаем мышью:
Теперь действие прописалось в секции слева, но — и это важно — его нужно сохранить, для этого жмем птичку под секцией:
- Применить изменения
- Выбор действия на кнопку
- Удалить это действие
После того, как всё сделали и хотите проверить раскладку, жмете большую кнопку внизу: «Сохранить личную раскладку».
Вот и всё! Теперь в режиме меню в игре по нажатию на системную кнопку меню будет закрываться.
Важно: настройки привязок обновляются автоматически, даже если ваша VR игра уже запущена. То есть — просто в редакторе что-то меняем и сразу идем в игру, проверять, главное, не забывать нажимать «птичку» сейва и кнопку внизу.
Вначале я этого не знал и для каждой новой кнопки перезапускал целиком всю игру, что занимает время, само собой.
Понятно, что пример очень простой, но важна сама суть. Далее, вы ищете то, что вас не устраивает и что хотите переставить, а там можно глянуть, что висит на любой кнопке в любом режиме игры. Удаляете привязку с кнопки и привязываете выбранное действие куда хотите.
И на забывайте перед удалением глянуть, как оно называется по английски, чтоб потом выбрать его на нужной вам кнопке.
Самый гемор тут в том, что разные кнопки имеют разные режимы и походу, часть команд может работать только с отдельными типами кнопок. Например, я смог переставить выбрасывание предметов на «Х», но, там при удержании его сначала появляется на пару секунд кружок загрузки и только потом это срабатывает. Или, вроде бы один грип, а у него сразу три режима работы, и все — как кнопка, я не знаю, как это работает)
Вообщем, тут у вас большое поле для экспериментов, я показал, куда копать, а дальше — вникайте сами, я что хотел, сделал, и успешно забил на этот дикий редактор)
Как поделиться раскладкой?
Если вы считаете, что ваши изменения интересны другим игрокам и упростят им жизнь, то после того, как всё отттестировано, жмете нижнюю большую кнопку «Опубликовать в мастерской», вам будет предложено назвать свою раскладку и дать ей краткое описание.
Так, вы можете найти мою раскладку для No Man’s Sky, где я не насилую грипы)
Вот её можно выбрать через «choose another«, помните, выше на скринах кнопка 4? Что я там изменил?
Перезарядить бластер: А
Смена оружия: Х
Вызов инвентаря: двойной Х
Вызов строительного меню: долгий Х
Вызов быстрого меню: Y
Вызов главного меню: двойной Y
Закрыть меню: Y
Подбор/Выброс предмета: долгий Y
В корабле:
Имульсный двигатель — долгий Х
На правый стик вниз: взлет и увеличение скорости
На правый стик вверх: уменьшение скорости
По меню в корабле можно перемещаться стрелками, но подтверждать всё равно — тригером или А
Всё это вы можете менять, применив мою раскладку и далее ее же отредактировав.
Важно: когда вы расшарили раскладку, она не мгновенно становится видна другим, тоже самое и с измененимями, которые вы в нее вносите. Минут через десять-двадцать ее можно будет найти в общем списке раскладок для игры.
Ну и пользуясь случаем, вот вам мой обзор на выше упомянутый No Man’s Sky, зря делал чтоль:
А если игра старая?
А вот тут настает печаль. Та английская статья, она как раз про это — как в старых играх завести новые контроллеры.
И логика там примерно такая. Я рассмотрю первый из примеров в статье, два других рассмотреть вам поможет гугло-переводчик) Скрины возьму оттуда же, для простоты. Итак, у нас есть старая игра: волновой тир и задача — настроить ее под новые Кнаклы, про которые я говорил выше.
В игре можно: стрелять, менять оружие, доставать щит и ставить игру на паузу. Вышеописанным способом выбираем нашу игру и попадаем в меню настроек, где выбираем вторую вкладку:
Здесь мы видим все команды, которые знает старый API Steam VR, но — новая система ввода не знает, как работает старая игра. Поэтому, нам нужно связать старые действия с новыми кнопками на кнаклах. Как это сделать? Выбираем только то, что есть в игре и называем какими-то понятными названиями, а всё остальное, не нужное нам, скрываем на кнопку «Hide«, останутся наши четыре действия:
Здесь слева у нас — старые кнопки из игры, а дальше — их разумные названия, можно писать что угодно, лишь бы вы потом поняли, что это за действие.
А дальше — привязываем это к новым контроллерам. Переходим на первую вкладку, которая оранжевая, добавляем действие на триггер — жмем плюсик и выбираем режим кнопки, то есть — выстрел будет срабатывать на нажатие тригера:
Далее — выбираем наше действие из тех, которые мы назвали на прошлом шаге, то есть — фаер!
Жмем «птичку» сохранения и аналогично привязываем другие три кнопки к нашим ранее описанным действиям. В случае с кнаклами там у грипа есть чувствительность, и они ее так же настраивают. Я не буду это рассматривать, тем более, что у меня их нет. Моя задача — показать вам саму механику настройки.
После того, как мы определили всем четырем новым кнопкам четыре действия из игры — сохраняем раскладку, или для себя, или для сообщества — и тестируем.
Вот, вобщем-то и всё, правда, там рассматриваются далее два куда более сложных примера, но, я в них уже особо не вдавался. Если что — переводчик вам поможет)
На этом всё, с вами были @Pavel419, до новых постов!