Как я могу добавить basi c вблизи взаимодействия с HoloLens 1, используя MRTK? - PullRequest
0 голосов
/ 02 мая 2020

Возможно связано с Как я могу имитировать ручные лучи на HoloLens 1?

Я хочу использовать устройства HoloLens 1 для имитации базовых c взаимодействий вблизи, как предусмотрено в HoloLens 2.

В частности, как я могу выполнить следующие сопоставления:

  1. Использовать положение руки во время жеста «Готово» для управления PokePointer?
  2. Использовать положение руки во время «Касания и "держать" жест для управления GrabPointer?

Поскольку HL1 не отслеживает ориентацию руки, я ожидаю, что их необходимо оценить аналогично примеру с ручными лучами.

Я попытался создать собственный указатель в соответствии с ответом выше, и, насколько я могу судить, он работает для ручных лучей, но не для удара / захвата.

Я также создал пользовательский ткните указатель в соответствии с примером для контроллеров WMR на Как имитировать c отслеживание рук HoloLens 2 с Windows контроллерами смешанной реальности [MRTK2]? и таким же образом назначить его контроллеру GGV, но почему-то руки, похоже, не обнаруживаются для удара (или захвата), только для лучей руки.

(Я использую позу Захват, поскольку HL1, похоже, не возвращает позу указательного пальца во время жеста Готово) и, поскольку указатель положения, по-видимому, ссылается на указатель взгляда для HL1)

1 Ответ

0 голосов
/ 06 мая 2020

Хорошо,

В случае, если кто-то еще пытается приблизиться к взаимодействию с HoloLens 1, вот как я получил его в итоге:

  1. Создайте пользовательский профиль ввода
  2. На основе PokePointer создайте пользовательский компонент указателя poke для контроллера GGV (Gaze-Gesture-Voice) HL1 со следующими модификациями:
    • используйте позицию (захват) от базового контроллера компонент вместо позиции взгляда.
    • вычисление поворота от положения (интерполировать, используя положение головы, как в примере с ручным лучом)
    • переключатель переключения updateEnabled не проверяет, включена ли рука, поскольку GGV всегда возвращает false во время Готов
    • убедитесь, что он унаследован от PokePointer (необходим для обработчиков событий, которые разрешают только близкие взаимодействия из PokePointer или производных классов)
  3. Создание префаба с указателем, использующего пользовательский компонент указателя.
  4. Обновите раздел указателя, чтобы использовать пользовательский указатель
  5. Изменить кнопки t o требует только близости и не требует толкания спереди, так как направление pu sh не работает / ненадежно на HoloLens 1
...