WiiMote (Wii Remote) – самый универсальный контроллер для ПК и VR

chargepxp (1)

Вступление: За последние два десятилетия развитие игровой индустрии претерпело гигантских изменений. Тысячекратное увлечение тактовой частоты процессора в комплекте с появлением 3d ориентированных видеочипов привело к тому, что если раньше NPC и главный герой компьютерных игр состояли из десятка пикселей, то сейчас оные являются сложной геомtтрической фигурой из тысяч полигонов.
Колоссальный рост компьютерных эффектов, повышения качества сюжетной линии и многомиллионные бюджеты сделали свое дело. Современные игры стали запросто засовывать за пояс кинематографические блокбастеры прошлого столетия.
Но разработчикам игр было недостаточно повысить качество созерцаемой картинки, необходимо было так же наградить героев эмоциями, а игроков возможностью продвинутого управления.
Если в первых 3d играх для управления персонажем было достаточно одной руки и “пятка” кнопок, то современных геймерские решение вынуждают использовать 10-20 кнопок + мышь. И даже этого не хватает, приходится использовать комбинации клавиш, а на одну и ту же кнопку вешать несколько функций в зависимости от ситуации. Использовать большее количество кнопок, просто не разумно, игрок просто не сможет их все запомнить.
Такая нетривиальная дилемма заставила разработчиков призадуматься над темой “А что же делать дальше?”. Существующие манипуляторы просто не справлялись с возложенными на них функциями, они были не способны удовлетворить запросы разработчиков и были просто не пригодны для более глубокого погружения геймеров в игровой мир.

g1 (1)

Завязка: Первыми выход из ситуации нашли создатели Нинтендо. За что им низкий поклон. 😉 У нинтендовцев за плечами был целый вагон опыта, и грех был им не воспользоваться. Результатом обработки это самого опыта стало рождение компьютерной приставки Nintendo Wii и ее легендарного контроллера Wii Remote (сокр. Wiimote).
Творцы легенды поставили пред собой непростую задачу, создать универсальный, компактный, беспроводной и многофункциональный девайс. Устройство должно было вобрать в себя все лучшее от предыдущих игровых приспособлений, оно должно было заменить все существующие манипуляторы, все эти рули, джойстики, геймпады и более того, оно должно было превзойти их, дополнив новыми функциями.
Должен признать что инженеры Нинтендо с этим справились на ура.

Сам по себе wiimote – это такой себе пухленький беспроводной пульт, которым можно управлять ПК или самой приставкой, но стоит совместить его с одним из множества расширений и Вы получите: арбалет, автомат, гоночный руль или даже меч джедая. Вся прелесть в том, что большинство дополнений фактически представляют из себя пластмассовые корпуса, а потому не требуют питания и стоят крайне недорого. Но если нет желания бежать в магазин и покупать кусок пластмассы, то есть другой выход. Распечатать себе корпус. Вы всегда можете напечатать себе эксклюзивный пластиковый корпус на недорогом домашнем 3D принтере.
Хитрая электроника находится внутри самого Wii Remote. Итак, из чего же стоит контроллер?
– Блютус модуль,
– 4 светодиода,
– 11-30 кнопок (в зависимости от дополнений),
– Аналоговый стик (в комплекте с Nunchuk)
– ИК камера,
– Несколько акселерометров,
– Гироскоп (при использовании MotionPlus),
– Динамик и
– Вибромеханизм.

Такой огромный технический потенциал делает возможности устройства практически безграничными. Устройство может следить за перемещением ваших рук (причем 3мя способами одновременно), фиксировать нажатие множества клавиш, показывать светодиодом информацию (состояние оружие, количество патронов, заряд АКБ и т.д.), вибрировать когда требуется отдача (попадание снаряда, стрельба, съезд с трассы и т.д.) пищать при выстреле из лазерного ружья и много другое.

Результатом этого технологического прорыва стало появление множество игр, родиться ранее, которые просто не могли. Теперь игроки не выходя из комнаты смогли проверить кто лучше закидывают удочку, творит заклинания взмахами руки, катает шары в боулинге и защищается от огненного пламени дракона “настоящим/вымышленным” щитом.

Развязка: В принципе, весь обзор можно бы было не писать и просто молча порадоваться за нинтендовских геймеров, если бы не одно, но очень большое “НО”. Новомодный контроллер подключался к приставки при помощи обычного стандарта BlueTooth, а это означало что устройство можно с легкостью подключить к любому телефону, кпк или компьютеру.
Существует множество программ и проектов по использовании Wiimote в игровой и профессиональной сфере (да-да, многие корпорации, в том числе и украинские, покупают их сотнями для интеграции в свои промышленные проекты).

Достаточно интересными кажутся проекты совместного использования wiimote с очками виртуальной реальности Oculus Rift, Cardboard или подобными. Универсальный протокол позволяет с одинаковой эффективностью подключать устройство как к ПК так и смартфону. В то время как встроенные в очки гироскоп и акселерометр определяют направления взгляда игрока, wiimote способен определить положение рук, направление прицела, а так же перемещение объекта в пространстве. В каком-то плане Oculus Rift DK2 копирует технологии  wii remote, та же камера, те же ИК светодиоды. Технология простая и гениальная. Сложности остаются только в том, как завязать все эти перемещения при помощи ПО, либо же организовать их поддержку непосредственно в игре.

Расскажу я, пожалуй, про самую популярную и самую многофункциональную программу для работы с Wii remote – GlovePie. Прелесть программы в ее универсальности, Вы можете распознать при помощи нее движение wiimote, а вместо них эмулировать движения мышки, джойстика, виртуальной перчатки или еще чего-то более изощренного.
От общего перейдем к конкретике. Наша задача написать скрипт для игры в какой-нибудь шутер. Предположим, что у нас есть дополнение к контроллеру, позволяющее воссоздать внешний вид настоящего оружия. 😉

wiilightgu (1)

Самый главный вопрос, это как реализовать управление прицелом нашего автомата курсором?
Существует 3 способа как определить расположение wiimote в пространстве (руки, в которой игрок держит оружие).
1) При помощи встроенных акселерометров. Самый простейший способ. Характерна неточность работы, подходит для эмуляции джойстиков и шутеров, не требующих активных “дерганий” мышкой.

2) При помощи дополнения MotionPlus. Это “приставка” к wiimote имеет дополнительный акселерометр и гироскоп. Что значительно увеличивает точность распознавания движений. Скриптов с поддержкой MotionPlus очень мало и обычно они являются необычайно “продвинутыми”. К недостаткам этих скриптов можно отнести необходимость калибровки. То есть, как только Вы запустили скрипт, Вам необходимо положить девайс на ровную поверхность и подождать пару секунд.

 3) При помощи встроенной ИК камеры. Встроенная камера способная распознавать изображение в очень узком диапазоне, а именно она видит только яркие инфракрасные сигналы, такие как Sensor Bar. Сенсор бар (идет в комплекте с wii) – это небольшая пластинка из пластика (около 20 см.) с закрепленными по краям инфракрасными светодиодами. Камера видит только эти два источника света и определяет координаты середины между ними. Эта точка и будет Ваш курсор мыши.
Недостаток этой технологии в том, что если повернуть wiiremote на 90 градусов от экрана, то камера перестанет видеть sensor bar и курсор мышки замрет в последнем положении (хотя, данное ограничение можно обойти 😉 ).
Способ позиционирования с Сенсор Баром мне нравится больше всего, очень простой и точный.

К слову стоит добавить, что существуют скрипты, которые объединяют все три способа.

 wii600

Кульминация: Итак, Wiimote – полностью ПК совместимый контроллер для ориентации в 3D пространстве, который подарит Вам незабываемые ощущения в часы, проведенные за компьютерными играми. Про Wii remote можно говорить очень много. Но лучше всего просто приобрести его и потестить в живую 😉

Пример игры с wiimote на ПК

Используется FPS glovepie скрипт. Подключен motion plus для определения местоположения курсора.
скрипт работает очень плавно, правда, к работе акселерометра нужно привыкнуть 😉