Вау, здесь много всего.Я работал над множеством NUI во время моего пребывания в Microsoft, так что давайте посмотрим, что мы можем сделать ...
Но сначала мне нужно убрать эту любимую мозоль с дороги: вы говорите: "Мультитач на основе Kinect".Это просто неправильно.Kinect по своей сути не имеет ничего общего с касанием (вот почему у вас есть задача «выбрать контроль»).Типы рассмотрения пользовательского интерфейса, необходимые для касания, отслеживания тела и мыши, совершенно разные.Например, в сенсорном интерфейсе вы должны быть очень осторожны при изменении размеров в зависимости от размера экрана / разрешения / DPI ... независимо от экрана, пальцы всегда имеют одинаковый физический размер, а люди имеют одинаковую степень физической точности, поэтому вы хотитеВаши кнопки и аналогичные элементы управления всегда будут иметь примерно одинаковый физический размер.Исследование показало, что 3/4 дюйма - лучшее место для сенсорных кнопок.Это не так важно для Kinect, так как вы ничего не трогаете напрямую - точность определяется не размером пальцев, а точностью сенсора и способностью пользователей точно управлять привередливыми и отстающими виртуальными курсорами.
Если вы проводите время за играми в игры Kinect, быстро становится ясно, что существует 4 парадигмы взаимодействия.1) Позы основанные команды.Пользователь нажимает и удерживает позу для вызова какой-либо прикладной программы или команды (обычно выводит меню) 2) Кнопки наведения.Пользователь перемещает виртуальный курсор над кнопкой и удерживает ее в течение определенного периода времени, чтобы выбрать кнопку. 3) Навигация и выбор на основе прокрутки.Пользователь машет руками в одном направлении для прокрутки и списка и в другом направлении для выбора из списка 4) Голосовые команды.Пользователь просто произносит команду.
Существуют и другие подобные мышью идеи, которые были опробованы любителями (не видевшими их в реальной игре), но, откровенно говоря, они сосут: 1) используя одну руку для курсора, а другую руку для«щелкнуть» там, где находится курсор, или 2) используя z-координату руки, чтобы определить, нужно ли «щелкнуть»
Мне не ясно, спрашиваете ли вы о том, как заставить некоторые существующие виджеты мыши работать с Kinect,Если да, то в Интернете есть несколько проектов, которые покажут вам, как управлять мышью с помощью ввода Kinect, но это неэффективно.Это может звучать очень круто, но вы на самом деле не пользуетесь преимуществами того, что устройство делает лучше всего.
Если бы я создавал музыкальный синтезатор, я бы сосредоточился на подходе № 3 - смахивании.Что-то вроде Dance Central.В левой части экрана отобразится список ваших MIDI-контроллеров с небольшой визуальной индикацией их состояния.Позвольте пользователю провести левой рукой, чтобы прокрутить и выбрать контроллер из этого списка.В правой части экрана покажите, как вы отслеживаете правую руку пользователя в некоторой плоскости перед его телом.Теперь вы позволяете им использовать обе руки одновременно, давая немедленную визуальную обратную связь о том, как интерпретируется каждая рука, и не требуя, чтобы они были сверхточными.
пс ... Я также хотел бычтобы кричать о новой книге NUI Джоша Блейка.Это хороший материал.Если вы действительно хотите освоить эту область, закажите копию :) http://www.manning.com/blake/