Предисловие
Раньше я уже писал о своем проекте impulse — костюме захвата движений на базе инерциальных сенсоров. Прежде всего, хочу поблагодарить всех, кто оставил свой отзыв, так или иначе, помог проекту. Должен сказать, что особого развития проект не получил, проблема дрейфов не была решена 9-осевыми датчиками, но компенсации с помощью цифрового компаса значительно помогли, также использование простого оптического трекинга (например 2 светодиодных маркера на голове) позволяет получить среднее значения дрейфа. Но сегодня не об этом. Я хочу рассказать об относительно недорогом способе захвата движения для систем виртуальной реальности на базе HTC Vive без колхоза и паяльника, а также о том, как избавиться от провода, который неизбежно соединяет голову и компьютер, что создает множество неудобств. Еще расскажу, как удалось добиться области трекинга в ~80 метров кв.
Начнем
Система будет работать на оборудовании HTC Vive, это штатный шлем, 2 контроллера и 2 базовые станции, рекомендую приобретать HTC Vive 2, он хорошо себя показал, вероятно из-за обновленных базовых станций. Сейчас, цена снижена до 50 тысяч рублей.
В дополнение к стандартному набору порекомендую аддон VIVE Deluxe Audio, это не просто наушники (что уже удобно), это крайне удобное решение для более комфортного использования шлема, особенно это дополнение актуально при использовании шлема несколькими игроками или посетителями аттракциона. Также это крепление позволит надежно смонтировать систему беспроводного соединения, да и выглядит это круто:
VIVE Deluxe Audio. Цена вопроса 10 тысяч рублей.
Долой провода
Прежде всего, необходимо сорваться с этого «поводка» и почувствовать реальную свободу в VR пространстве без тяжелых и нагретых ноутбуков за спиной. Для этого понадобится аддон TPCast — устройство, которое позволит перевести Vive в беспроводной режим.
TPCast. Комплектация.
Вся система состоит из нескольких модулей, подробнее о каждом:
Отлично крепится на VIVE Deluxe Audio. Подключается к шлему короткими проводами USB и HDMI, другие 2 провода (USB и питание) подключаются к переходнику к аккумулятором.
Далее, нужно убрать в сторону штатный линкбокс Vive, и подключить следующий модуль (передатчик) напрямую в компьютер по HDMI:
Это еще не все, в комплекте также имеется роутер, который следует подключить в разрез интернет соединения ПК. Проще говоря, ethernet кабель в WAN порт роутера, и ПК подключить к роутеру через LAN. Если такое подключение неприемлемо, следует использовать дополнительную сетевую карту. Теперь почти все готово, осталось только загрузить софт и драйвера с официального сайта TPCast:
После установки приложение попросит ввести данные для подключения к точке доступа, логин и пароль указаны на наклейке на переходнике для аккумулятора. Далее остается только нажать Start и запустить SteamVR после успешного соединения. Если что-то пошло не так, то в верхнем правом меню есть пункт Switch channel. В целом потерю соединения несложно восстановить одним нажатием кнопки, так же можно «на лету» менять аккумулятор.
TPCast В сборе. Цена вопроса 35-40 тысяч рублей, но вот характеристики:
- Разрешение 2К (обычное для HTC Vive)
- 90 FPS
- Задержка меньше 2мс
Разумеется, для домашнего использования это нецелесообразно, можно и провод потерпеть, но для коммерческого решения — отличный вариант, особенно, если расширить область трекинга.
Теперь можно попробовать походить по Steam Home и не вспоминать про провод, изломы, узлы и другое, разве что аккумулятор заряжать, а лучше приобрести дополнительные. Их хватает на 4-5 часов активного использования.
Выходим за границы дозволенного
Без провода вы быстро почувствуете себя в тесноте, захочется немного прогуляться, но в стандартных 16-ти квадратных метрах это не удастся. Первое что понадобиться — это помещение (100 квадратных метров подойдут), и с потолками повыше (3.5 метра). Это самое сложное. В центре потолка помещения размещается передатчик TPCast. В стороны от него под потолком крепятся базовые станции HTC Vive. расстояние между — 5 метров, так чтобы станции разместились на одной линии (перпендикулярной к двум стенам и параллельной двум другим), проходящей через центр помещения (в центре передатчик). Далее станции нужно наклонить под углом 30 градусов друг к другу (т.е. в большей степени они направлены на пол).
Станции необходимо соединить проводом для синхронизации (оптическая не будет стабильно работать), каналы станций выставить на A и b. После монтажа произвести калибровку комнаты стандартными средствами. Стоить заметить, что на этапе построения шаперона (голубая сетка, обозначающая границы реального помещения) стоит выбрать режим advanced, что позволит указать лишь углы помещения, сетка будет ровным квадратом. Игровую область лучше разместить в центре. Данная конфигурация обеспечит большую область достаточно точного трекинга с минимальным количеством слепых зон и позволит эффективно использовать штатные станции. Перед погружением рекомендую установить OpenVR Advanced settings, их интерфейс будет доступен прямо в VR пространстве в стандартном меню. Эти настройки позволят улучшить разрешение, суперсемплинг и конфигурировать шаперон (область активации, цвет, высота, видимость и т.д.) Разумеется, можно еще поиграться с размещением базовых станций, изменить угол наклона или немного расстояние между ними под определенное помещение. Полученный результат впечатляет, по стандартному Steam Home возможно перемещаться, не вспоминая про телепортацию. В большинстве игр такой области более чем достаточно. В ноябре Vive грозятся добавить поддержку работы с большим количеством базовых станций, но пока не ясно, сможет ли текущее оборудование воспринимать больше двух, или на это будут способны только новые шлемы и контроллеры.
Хватит быть призраком
В целом, все VR игры можно определить как единый поджанр – «симулятор призрака», вы можете поднимать предметы, бросаться ими и так далее. Есть исключения, где вы можете видеть свое неподвижное тело, что сильно диссонирует. Так или иначе, чтобы нарисовать виртуальному протагонисту достоверно двигающееся тело, нужно что-то из области захвата движения. Захват движения — не самое дешевое удовольствие, если отбросить близорукий киннект и подобное, что малоэффективно в такой области трекинга. На выручку приходят две вещи — HTC Vive Tracker и инверсная кинематика (ИК). Первое понадобится для того, чтобы определять положение чего угодно в области трекинга, второе для воссоздания положения тела в виртуальном пространстве, зная положение только 6 точек (это минимум для full body).
Vive Tracker. Трекер стоит примерно 8 тысяч рублей
Для минимального набора понадобится 3 таких трекера. В целом, это те же самые стандартные контроллеры, только урезанные и немного в другом корпусе. Каждый такой трекер определяется в SteamVR, единственное отличие лишь в том, что для их подключение нужны специальные донглы (в комплекте), хотя можно привязать их к шлему вместо контроллеров. На задней части находятся контактная площадка для подключения пользовательских кнопок (можно использовать и USB разъем на трекере). Это может быть курок пистолета, кнопка активации светового меча, все что угодно. Нажатия таких кнопок обрабатываются таким же образом, как и нажатия кнопок на контроллере, с точки зрения разработки софта разницы нет. В целом, их можно использовать для трекинга игровых объектов, таких как оружие или инструменты, даже мебель и двери, но нас интересует захват движения.
Определять позицию головы возможно с помощью шлема, рук — с помощью контроллеров. 2 трекера следует разместить на обуви (сверху стоп), оставшийся будет неплохо себя чувствовать на поясе сзади. Такой сетап уже позволит поиграть в некоторые игры, поддерживающие такую конфигурацию, но если говорить о разработке своего софта, то для анимации персонажа понадобятся ИК решения. Принципиальное отличие инверсной кинематики от прямой в том, что в случае прямой рассчитывают позицию, зная углы, а в случае инверсной рассчитывают углы, зная позиции. Таким образом, очень простую модель можно сделать самому, зная позицию двух джоинтов рассчитать промежуточную, учитывая то, как обычно гнется человеческое тело. Но существуют готовые решения, такие как Final IK, VRIK и другие средства процедурной анимации. Есть студии, которые предоставляют решения подобного типа. Одна из таких, это IKinema и её продукт под названием Project Orion — софт, позволяющий производить захват движения на основе данных, полученных из SteamVR и транслировать их по протоколу VRPN в любое другое приложение (для Unity и Unreal есть готовые плагины и ассеты). Для бюджетного решения лучше воспользоваться предыдущими средствами, которые достаточно неплохо себя показывают.
Далее, уже в движке, полученную анимацию можно немного почистить, хотя Orion справляется с этим, убрать скольжения стоп, рассчитать компенсацию для неровности виртуального пола. У IKinema есть решение в виде плагина для Unreal:
По большому счету, с подобными задачами справляются плагины и попроще, даже бесплатные.
Для захвата движений пальцев сойдут вот такие перчатки, к примеру:
Manus VR
Заключение
На сегодняшний день захват движения становится все более доступным, как и виртуальная реальность, что, безусловно, радует. Грядет целый ряд игр, в которых будет присутствовать поддержка трекеров и анимации главного героя в соответствии с движениями игрока. Конечно, все это еще не так удобно и доступно, как хотелось бы, но уже сейчас возможно собрать такую систему за относительно небольшую стоимость. Говорить о том, чтобы массовый игрок мог позволить себе оборудовать свое игровое пространство таким образом — не приходится, но в виде аттракциона, это будет качественно новый уровень.
Несколько наблюдений:
Чтобы отказаться от провода, проводов в целом стало больше.
После приобретения виртуального тела, кажется, что степень реализма повышается, однако видеть свою движущуюся тень в виртуальном пространстве — та еще задача для мозга, начинается головокружение, так что лучше выключить (это индивидуально)
С трекингом тела и объектов открывается огромное количество возможностей для создания игровых механик и эффекта погружения в целом.
Результат сборки такой системы на видео в начале поста. Также пример анимации персонажей в реальном времени:
Комментарии (38)
25080205
24.09.2017 23:39+1А вот как владелец Vive — можно я задам вопрос не совсем по теме… Если немного поцарапал линзу — что можно поделать? Они нежные как я не знаю что… И большие. Вроде и не так, чтобы здорово, но все же мозолит глаз. Только замена с разборкой агрегата? Кто уже сталкивался с таким?
ObelardO Автор
25.09.2017 17:29Лучше произвести замену линз и приобрести защитные. С штатной пластмассой ничего не поделаешь. Линзы нужно держать в чистоте, а про царапины говорить не приходится. (тут как с обычными очками)
25080205
25.09.2017 22:54+1Это нифига не похоже на очки! Пластиковые очки вполне себе устойчивы (не как стекло, конечно) к превратностям судьбы… А тут я был предельно аккуратен… Но пластик мягкий до безобразия!
Оттого и практический вопрос — где и что приобрести… Если можно — ткните носом в "правильный" магазин запчастей :-)
Quiensabe
24.09.2017 23:49Спасибо за статью!
Я так понимаю помещение у вас примерно 11 на 6,5? И на какой высоте висят базовые станции? Когда трекер оказывается «в тени» тела игрока, это не очень мешает? Несколько игроков не пробовали трекать?
Кстати, vive обещает выпустить чипы трекеров специально для разработчиков. Не рассматривали этот вариант? (ссылка почему то не открывается, есть смысл смотреть в кеше гугла). Правда работать они будут видимо только с новыми базовыми станциями. Но, классный вариант для всякой домашней автоматики :)ObelardO Автор
25.09.2017 17:37И Вам спасибо!
Помещение больше, по видео трудно сказать, но область 9х9 метров (на данном видео мешают колонны, шаперон в форме плюса получается). Базовые станции на высоте 3.5 метров, расстояние между ними 5.5 метра, наклонены примерно градусов на 20. если попытаться больше, то трекинг уже неадекватный.
Как правило, в такой конфигурации трекеры всегда видны одной из станций, принципиального отличая от диагонального расположения нет, так что происходит то же, что и обычно.
Несколько игроков — возможно. Самый постой вариант — 2 комплекта Vive и 2 машины, базовые станции одни на всех.
Да, я косвенно упоминал о них в статье, эти чипы будут во втором поколении трекеров, пока не знаком с ними. Вроде как новые базовые станции смогут работать со старым оборудованием, но не наоборот, могу ошибаться.Quiensabe
25.09.2017 20:48Что-то не могу понять. У вас вот так получается базовые станции закреплены?
Или они «смотрят» от центра комнаты?
Почему тогда область трекинга в форме плюса? Получается в помещении 9*9м трекинг работает не везде? Почему тогда ~80 м.кв?ObelardO Автор
26.09.2017 00:16+1Иллюстрация верная, да.
Конкретно в этом видео, в форме плюса (если смотреть сверху), т.к. стоят 4 колоны в центре помещения, в другом помещении (без колон) это 9х9м без слепых зон в углах, т.е. прямоугольная область.
kharlashkin
25.09.2017 08:31Должен сказать, что особого развития проект не получил, проблема дрейфов не была решена 9-осевыми датчиками, но компенсации с помощью цифрового компаса значительно помогли
Очень хотелось бы увидеть более полное описание всех технических решений которые Вы пробовали. Да и статья про продолжение построения костюма, если оно конечно было — очень логичное.ObelardO Автор
25.09.2017 18:10не то, чтобы там был результат, который потянул бы на solved, да и на статью. Дальнейшего продолжения разработки не было, только попытки усмирить дрейфы.
Если я продолжу работу в этом направлении, или сборку нового костюма, то разумеется, отражу это в статье.kharlashkin
25.09.2017 19:41Признаюсь, что я стараюсь повторить Ваш путь с костюмом и 9-ти осевыми датчиками. Некоторые наработки есть, но нет конечного правильного результата. Вот и надеялся на обмен опытом.
ObelardO Автор
26.09.2017 00:23+1На какой стадии наработки? Над каким моментом работаете?
Меня интересует адекватная компенсация дрейфа и уже после, более продвинутые алгоритмы чистки мокапа и стептрекингаkharlashkin
26.09.2017 07:35Я стараюсь использовать 9250 в своем проекте. На данный момент модифицировал DMP MotionApps v4.1 для этого датчика, чтобы получать данные магнитометра из буфера. Как бонус получил довольно стабильный кватернион, в коде много «магии» и отсутствует подробная документация. Написал скрипт захвата для Blender, сейчас собираюсь из 3-х датчиков сделать захват руки чтобы посмотреть насколько во времени критичен дрейф. Математику компенсации по вертикальной оси продумал и перепробовал несколько вариантов, ни один пока не устраивает.
Видеоant00xa
25.09.2017 17:38Что? HTC Vive 2 ??? На сколько мне известно, HTC еще даже не озвучила даты выхода второй версии Vive.
ObelardO Автор
25.09.2017 17:43+1Имеется ввиду свежие версии с обновленными базовыми станциями (с 9-тью светодиодами с более видимым свечением). Это в круге разработки эту комплектацию просто зовут «двойка». Извиняюсь за путаницу.
ltalash1
25.09.2017 17:43Очень хочется окунуться в мир VR. А еще такой вопрос, сколько все вместе комплектующие стоят примерно?
ObelardO Автор
25.09.2017 17:47Если окунаться — то только в качественный в плане железа и софта. Плохой софт (порты старых игр под VR, то что изначально не делалось под это) портит любые ощущения. Ну а железо — никаких DK и коробочек. То что на видео — позволяет ощутить себя прямо там, особенно если можно увидеть свою тень, отражение и т.п., вот с такого и стоит начинать погружение)
Я в статье указал примерную цену всех комплектующих, смотрите что Вам надо, а что нет, и прикиньте. Самый минимум это Vive за 50 тысяч (чаще это дороже выходит) и свежий ПК.ltalash1
26.09.2017 21:38Вы правы, на счет софта и железа и я с вами согласен на все сто. 50 тысяч, да не мало, но если возможно увидеть свою даже тень в виртуальном мире, это этого стоит.
Спасибо за инфу.Fagot63
26.09.2017 23:24Самый банальный кооператив на двоих очень сильно отличается по ощущениям в VR и простой версии. Просто разительно, как две разные игры. Одна сделана студентами «на все деньги», вторая крупной фирмой ААА класса.
ebragim
25.09.2017 20:49Очень надеюсь, что снова вернётся эпоха игровых клубов, но уже с vr. Только помещения нужны большие, в каждом подвале не получится разместить, как раньше.
Насколько сильно изнашивается оборудование при публичном использовании?Fagot63
25.09.2017 22:06+1С подключением. :)
У нас VR клуб работает примерно год, по заверениям владельца и собственному опыту никакого заметного износа нет(пока). Кабеля к шлему подключены через подвес на потолке, если не махать руками над головой то его присутствие не ощущается. Кабель не болтается, но в то же время не мешает приседать и отходить в сторону(две зоны 2х2 метра). Две базовые станции на два шлема, но проблем с точностью не было замечено.
ObelardO Автор
26.09.2017 00:31+1Так уже как есть такое… в основном VR только в клубах и есть. Думаю потом VR перекочует домой и такие клубы тоже уйдут в прошлое)
На шлем и контроллер есть чехлы, а поролоновые накладки меняются, главное не ронять и беречь оптику.
Fagot63
Жду 4к Vive и иду покупать. :)
ObelardO Автор
Так можно вечно ждать чего-то более технически совершенного. Уже сейчас довольно неплохо, относительно. Смущают не столько пиксели, сколько кольца Френеля.
И при использовании OpenVR Advanced settings с 90fps качество картинки и ощущения определенно лучше.
Fagot63
4к считаю минимально комфортным разрешением. Чуть картинка становится менее динамичной и явно видимые пиксели мешают погружению. Плюс проблемы с чтением текста и стрельбой на дальние дистанции(20м++ с мушки). Если с текстом еще решаемо его укрупнением, то в голову целится дальше 20м сложно. Мушка с полтора пикселя и голова с пиксель.
ObelardO Автор
Так минимально комфортным, или пригодным для прицельной стрельбы?
Тут множество факторов помимо разрешения, и опять же, если у авторов софта все в порядке с фантазией — то сгладят технические ограничения так, что о них и не вспомнишь. Текст правда можно крупнее делать, а стрельбу сделать через оптический прицел, так даже интереснее. Но для большинства аркадных игр, что есть сейчас, и что пользуются спросом, достаточно того что есть, с оговорками.
«Мушка с полтора пикселя и голова с пиксель.» — ну будет в 6 пикселей, а голова в 4, принципиально ничего не изменится, но разумеется ждем 4К
Fagot63
При стрельбе с двух рук, как предполагается использовать оптику? Вполне получалось стрелять по разным векторам одновременно, и даже в противоположных направлениях, просто меняя положение взгляда/головы. С винтовкой другое дело, но контроллеры Vive идеально подходят под стрельбу двумя пистолетами.
Поэтому и 4к это минимальные мои требования к шлему, при которых я задумаюсь над покупкой. А пока VR клуб подходит как нельзя лучше.
Под мушку можно оставить те же полтора пикселя, а если на голову уйдет 4 пикселя целится будет можно немного точнее. И даже не смотря на это точность стрельбы/прицеливания приятно поразила меня. С мышкой так быстро и точно не стрелял.
ObelardO Автор
«А пока VR клуб подходит как нельзя лучше.»
Абсолютно согласен, пока это так.
Fagot63
Подсчитывал самому открыть такой клуб, но пропускная способность у текущего так себе, а так еще и делить клиентов придется. Прибыль будет, но торговля семенами и саженцами куда выгоднее, пусть и мороки больше. :(
Fagot63
Из ближайших перспектив к покупке PimaxVR 8k с двухсот градусным обзором. Если будет работать не хуже HTC Vive, в плане точности работы контроллеров и поддержки в играх, беру однозначно.
P.S. странно что еще не опубликовали здесь. На кикстартере проект болтается уже месяц и собрал больше миллиона долларов.
ObelardO Автор
Согласен, в целом волна VR не то чтобы набирает обороты
Fagot63
Проблема комплексная. Но постепенно решаемая.
Во первых это классический замкнутый круг, шлемов не то чтобы много(на руках), а издателям нужна устойчивая ниша и окупаемость.
Во вторых нужно менять подход и софт для создания изначально VR игр.
В третьих банальная инерция, пока заинтересуются, пока игры выйдут.
В четвертых дороговизна и слабая стандартизация оборудования(в том числе и апгрейд видеокарты, как минимум)