Подстраивать игры под аппаратное обеспечение — обычное дело. Сначала появляется оборудование, потом софт. Но если игра становится достаточно популярной, производители оборудования могут пойти навстречу массам и настроить его под конкретный запрос. Это произошло со SteamVR и Beat Saber.
Игра Beat Saber стала настоящим испытанием для систем отслеживания контроллеров, особенно когда обрела популярность. Это не шутер и не симулятор фехтования, но в BS нужно быть очень быстрым и точным, по этим требованиям аркада легко переплюнет другие жанры.
В недавнем обновлении бета-версии SteamVR (которая вскоре будет развёрнута в основной ветке SteamVR), в списке изменений появилось следующее предложение:
Расширение пределов того, что мы считали принципиально возможным для движения контроллера, основано на данных отслеживания от экспертов по Beat Saber.
Казалось, что это просто шутка, но разработчик Valve Бен Джексон (Ben Jackson) прояснил некоторые подробности в комментариях:
Система отслеживания имеет внутренние проверки работоспособности, чтобы определять, когда что-то идёт не так. Например, если наша математика говорит, что вы находитесь за своей единственной базовой станцией, очевидно, что мы допустили ошибку, потому что мы не получили бы никакого сигнала за базовой станцией. Одна из этих проверок связана с тем, насколько быстро, как мы думали, кто-то физически может повернуть своё запястье. Оказывается, что правильно мотивированный человек, использующий достаточно лёгкий контроллер, может двигаться быстрее (3600 градусов в секунду!), чем ожидалось.
Это значит, что Valve встроила в код платформы трекинга ряд допущений, чтобы идентифицировать явно ошибочные данные: например, об ошибке говорит контроллер, который поворачивается слишком быстро. Однако похоже, что одно из допущений имело слишком низкий порог для игроков Beat Saber. Valve поспешила исправиться.
Причины, по которым Beat Sabre удалось раздвинуть границы отслеживания в SteamVR, заключаются не только в максимальной скорости рук, но и в резких изменениях ускорения, когда игроки двигают контроллеры в разные стороны.
Большинство систем отслеживания контроллеров используют два метода трекинга и объединяют их вместе. Первый — это инерциальный датчик внутри каждого контроллера, который определяет вращение и ускорение с низкой задержкой и высокой частотой. Его проблема в том, что такие датчики склонны к «дрейфу», поэтому на них нельзя полагаться на 100%. Здесь оказывается полезен другой метод: в случае SteamVR, это внешние «базовые станции», которые используются для определения абсолютного положения и поворота отслеживаемого объекта и для корректировки дрейфа инерциального датчика. Тем не менее, базовые станции проходят цикл сравнительно (около 100 Гц против 1000 Гц у датчика), и до следующей коррекции весь трекинг зависит от инерции.
Во многих случаях отслеживанию между коррекциями помогает прогнозирование, которое использует предшествующие данные для создания модели будущего положения. При медленном движении или рисовании предсказуемых дуг в воздухе это работает хорошо. Но Beat Saber стала настоящим кошмаром прогнозирования, потому что весь смысл игры состоит в скоростном изменении траектории движения рук. Трудно предсказывать то, что постоянно меняется.
Несмотря на трудности, SteamVR Tracking отлично справляется с требованиями Beat Saber. Инженеры Valve должны быть довольны тем, что заложили в систему высокую производительность.
Не пропускайте важнейшие новости о дополненной, смешанной и виртуальной реальности — подписывайтесь на Голографику в Telegram, ВК, Twitter и Facebook!
Далее: Angry Birds вышли на Rift и Vive с новой игрой