Руководство по настройке профиля MRTK2

Смешанная реальность Toolkit центрирует как можно большую часть конфигурации, необходимую для управления набором средств (за исключением истинной среды выполнения "вещей").

Это руководство представляет собой простое пошаговое руководство для каждого из экранов профиля конфигурации, доступных в настоящее время для набора средств.

Основной профиль конфигурации набора средств Смешанная реальность

Основной профиль конфигурации, присоединенный к Объекту GameObject MixedRealityToolkit в сцене, предоставляет основную точку входа для набора средств в проекте.

Примечание

Смешанная реальность Toolkit "блокирует" экраны конфигурации по умолчанию, чтобы всегда иметь общую начальную точку для проекта, и рекомендуется приступить к определению собственных параметров по мере развития проекта. Конфигурация MRTK не редактируется в режиме воспроизведения.

Профиль конфигурации MRTK

Все профили по умолчанию для набора средств Смешанная реальность можно найти в проекте пакета SDK в папке Assets/MRTK/SDK/Profiles.

Важно!

DefaultHoloLens2ConfigurationProfile оптимизирован для HoloLens 2. Дополнительные сведения см. в разделе "Профили ".

При открытии основного профиля конфигурации набора средств Смешанная реальность в инспекторе отобразится следующий экран:

Сцена настройки MRTK

Если вы выберете ресурс MixedRealityToolkitConfigurationProfile без MixedRealityToolkit в сцене, вам будет необходимо, чтобы MRTK автоматически настроил сцену. Это необязательно; однако в сцене должен быть активный объект MixedRealityToolkit, чтобы получить доступ ко всем экранам конфигурации.

В этом случае используется текущая конфигурация активной среды выполнения для проекта.

Здесь можно перейти ко всем профилям конфигурации для MRTK, включая:

Эти профили конфигурации подробно описаны ниже в соответствующих разделах:


Параметры работы

На главной странице конфигурации набора средств Смешанная реальность этот параметр определяет операцию по умолчанию масштаба среды Смешанная реальность для проекта.

Параметры Experiance

Параметры камеры

Параметры камеры определяют, как будет настроена камера для проекта Смешанная реальность, определяя общие параметры обрезки, качества и прозрачности.

Профиль камеры

Параметры системы ввода

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

Входные параметры системы 1

За входной системой, предоставляемой MRTK, входят несколько других систем, которые помогают управлять сложными межплатформенными и смешанными ткацкими структурами, необходимыми для абстрагирования сложностей многоплатформенных платформ и платформ смешанной реальности.

Параметры системы ввода 2

Каждый из отдельных профилей подробно описан ниже.


Параметры визуализации границ

Система границ преобразует воспринимаемую границу, сообщаемую базовой системой границ и защиты платформ. Конфигурация визуализатора границ позволяет автоматически отображать записанную границу в сцене относительно позиции пользователя. Граница также будет реагировать или обновляться в зависимости от того, где пользователь телепортирует в сцене.

Параметры визуализации boundry

Выбор системы телепортации

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

Параметры системы телепорта

Параметры пространственной осведомленности

Проект Смешанная реальность предоставляет перестроенную систему пространственной осведомленности для работы с системами пространственного сканирования в проекте, выбранном по умолчанию.

Параметры пространственной осведомленности 1

Смешанная реальность Набор средств для определения пространственной осведомленности позволяет настроить способ запуска системы, автоматическое запуск приложения или более поздней версии, а также настройку экстентов для поля представления.

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

Это применимо только для устройств, которые могут предоставлять отсканированную среду.

Параметры пространственной осведомленности 2

Параметры диагностики

Необязательный, но очень полезный компонент MRTK — это функция диагностики подключаемого модуля.

Параметры диагностики

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

Параметры системы диагностики 2

Параметры системы сцены

MRTK предоставляет эту необязательную службу для управления сложной загрузкой и выгрузкой сложной аддитивной сцены. Чтобы решить, подходит ли система сцены для вашего проекта, ознакомьтесь с руководством по системе сцен начало работы.

Параметры системы сцены 1

Дополнительные параметры служб

Одной из более сложных областей Смешанная реальность Toolkit является реализация шаблона указателя службы, которая позволяет зарегистрировать любую службу с помощью платформы. Это позволяет легко расширить платформу с новыми функциями и системами, но и позволяет проектам воспользоваться преимуществами этих возможностей для регистрации собственных компонентов среды выполнения.

Любая зарегистрированная служба по-прежнему получает все преимущества всех событий Unity без дополнительных затрат и затрат на реализацию одноэлементных шаблонов MonoBehaviour или clunky. Это позволяет использовать чистые C# компоненты без дополнительных накладных расходов на сцену для запуска как переднего плана, так и фоновых процессов, например систем, логики игры среды выполнения или практически ничего другого.

дополнительные параметры системы

Параметры действий ввода

Действия ввода позволяют абстрагировать любые физические взаимодействия и входные данные из проекта среды выполнения. Все физические входные данные (от контроллеров, рук, мыши и т. д.) претворяются в действие логического ввода для использования в проекте среды выполнения. Это гарантирует, что независимо от того, откуда поступает ввод, проект просто реализует эти действия как "Действия для выполнения" или "Взаимодействовать с" в ваших сценах.

Чтобы создать новое действие ввода, просто нажмите кнопку "Добавить новое действие" и введите понятное текстовое имя для того, что он представляет. Затем необходимо выбрать ось (тип данных), к которому нужно передать действие или в случае физических контроллеров, к физическому типу входных данных, к которому он может быть подключен, например:

Ограничение оси Тип данных Описание Пример использования
Нет Нет данных Используется для пустого действия или события Триггер события
Необработанный (зарезервированный) Объект Зарезервировано для использования в будущем. Недоступно
Цифровой bool Логический тип данных типа Кнопка контроллера
Одна ось FLOAT Одно значение данных точности Диапазонные входные данные, например триггер
Двойная ось Vector2 Дата двойного типа с плавающей запятой для нескольких осей Dpad или Thumbstick
Три позиции Dof Vector3 Данные позиционного типа с 3 оси с плавающей запятой Только контроллер трехмерной позиции
Три поворота Dof Quaternion Вращающееся только входное значение с 4 осью с плавающей запятой Контроллер стиля "Три градуса", например контроллер Oculus Go
Шесть Dof Смешанная реальность позе (Vector3, Quaternion) Ввод стиля положения и поворота с компонентами Vector3 и Quaternion Контроллер движения или указатель

События, использующие входные действия, не ограничиваются физическими контроллерами и по-прежнему могут использоваться в проекте для создания новых действий во время выполнения.

Примечание

Входные действия являются одним из немногих компонентов, которые не редактируются во время выполнения, они являются только конфигурацией времени разработки. Этот профиль не следует заменять, пока проект выполняется из-за зависимости платформы (и проектов) от идентификатора, созданного для каждого действия.

Профиль конфигурации

Правила действий ввода

Правила действий ввода позволяют автоматически преобразовывать событие, возникающее для одного входного действия, в разные действия в зависимости от значения данных. Они легко управляются в рамках платформы и не несут никаких затрат на производительность.

Например, преобразование события ввода одной двойной оси из DPad в 4 соответствующих действия "Dpad Up" / "DPad Down" / "Dpad Left" / "Dpad Right" (как показано на рисунке ниже).

Это также можно сделать в собственном коде. Однако, видя, что это был очень распространенный шаблон, платформа предоставляет механизм для этого "вне коробки"

Правила действий ввода можно настроить для любой доступной оси ввода. Однако входные действия одного типа оси можно преобразовать в другое действие ввода того же типа оси. Действие двойной оси можно сопоставить с другим действием двойной оси, но не с цифровым или никаким действием.

Профиль правил действий ввода


Конфигурация указателя

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

Указатели также можно визуализировать в активной сцене с помощью одного из многих компонентов линий, предоставляемых Смешанная реальность Toolkit, или любого из ваших собственных, если они реализуют интерфейс MRTK IMixedRealityPointer.

Профиль указателя ввода
  • Экстент указателя: определяет глобальную экстенту указателя для всех указателей, включая взгляд.
  • Указание масок слоев Raycast: определяет, какие указатели слоев будут переадресации.
  • Отладка отрисовки указателей лучей: помощник отладки для визуализации лучей, используемых для лучей.
  • Отладка цветов, указывающих на лучи рисования: набор цветов, используемых для визуализации.
  • Префаб курсора взгляда: позволяет легко указать глобальный курсор взгляда для любой сцены.

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


Конфигурация жестов

Жесты — это системная реализация, позволяющая назначать входные действия различным методам ввода "Жест", предоставляемым различными пакетами SDK (например, HoloLens).

Примечание

Текущая реализация жестов предназначена только для HoloLens и будет улучшена для других систем, так как они добавляются в набор средств в будущем (пока не даты).

Конфигурация жестов

Голосовые команды

Как и жесты, некоторые платформы среды выполнения также предоставляют интеллектуальные функции "Речь в текст" с возможностью создавать команды, которые могут быть получены проектом Unity. Этот профиль конфигурации позволяет настроить следующее:

  1. Общие параметры — "Поведение запуска", для параметра "Автозапуск" или "Запуск вручную" определяет, следует ли инициализировать KeywordRecognizer при запуске системы ввода или позволить проекту решить, когда инициализировать KeywordRecognizer. "Уровень достоверности распознавания" используется для инициализации API KeywordRecognizer Unity
  2. Голосовые команды — регистрируют слова и переводят их на входные действия, которые могут быть получены проектом. Они также могут быть присоединены к действиям клавиатуры, если это необходимо.

Важно!

В настоящее время система поддерживает речь только при работе на Windows 10 платформах, например HoloLens и Windows 10 desktop и будет улучшена для других систем, так как они добавляются в MRTK в будущем (в будущем даты еще не будут).

Экраны профиля конфигурации

Конфигурация сопоставления контроллеров

Одним из основных экранов конфигурации для Смешанная реальность Toolkit является возможность настраивать и сопоставлять различные типы контроллеров, которые можно использовать в проекте.

На приведенном ниже экране конфигурации можно настроить любой из контроллеров, распознаваемых набором средств.

Сопоставление контроллеров

MRTK предоставляет конфигурацию по умолчанию для следующих контроллеров и систем:

  • Мышь (включая 3D-поддержку пространственной мыши)
  • Сенсорный экран
  • Контроллеры Xbox
  • контроллеры Windows Mixed Reality
  • Жесты HoloLens
  • Контроллеры wand HTC Vive
  • Контроллеры Oculus Touch
  • Удаленный контроллер Oculus
  • Универсальные устройства OpenVR (только опытные пользователи)

Если щелкнуть изображение для любой из готовых систем контроллеров, можно настроить одно действие ввода для всех соответствующих входных данных, например на экране конфигурации контроллера Oculus Touch ниже:

Экран конфигурации контроллера

Существует также расширенный экран для настройки других контроллеров ввода OpenVR или Unity, которые не определены выше.


Параметры визуализации контроллера

Помимо сопоставления контроллеров, предоставляется отдельный профиль конфигурации для настройки представления контроллеров в сценах.

Это можно настроить на глобальном уровне (все экземпляры контроллера для определенной руки) или в соответствии с отдельным типом или рукой.

MRTK также поддерживает собственные модели контроллера SDK для Windows Mixed Reality и OpenVR. Они загружаются как GameObjects в сцене и размещаются с помощью отслеживания контроллера платформы.

Если представление контроллера в сцене должно быть смещением от положения физического контроллера, просто установите это смещение по префабу модели контроллера (например, задание положения преобразования префаб контроллера с позицией смещения).

Профиль визуализации

Служебные программы редактора

Следующие служебные программы работают только в редакторе и полезны для повышения производительности разработки.

Служебные программы настройки редактора MRTK

Инспекторы служб

Инспекторы служб — это функция только редактора, которая создает объекты в сцене, представляющие активные службы. При выборе этих объектов отображаются инспекторы, которые предлагают ссылки на документацию, контроль над визуализациями редакторов и анализ состояния службы.

Инспекторы служб

Чтобы включить инспекторы служб, проверьте использование инспекторов служб в разделе "Параметры редактора " в профиле конфигурации.

Отрисовщик буфера глубины

Совместное использование буфера глубины с некоторыми платформами смешанной реальности может улучшить стабилизацию голограмм. Например, платформа Windows Mixed Reality может изменять отрисованную сцену на пиксель, чтобы учитывать тонкие движения головы в течение времени, необходимого для отрисовки кадра. Однако эти методы требуют буферов глубины с точными данными, чтобы узнать, где и как далеко геометрия находится от пользователя.

Чтобы сцена отображала все необходимые данные в буфер глубины, разработчики могут переключить функцию буфера глубины отрисовки в разделе "Параметры редактора " в профиле конфигурации. Это займет текущий буфер глубины и отрисовывает его в виде цвета в представлении сцены, применяя эффект после обработки к DepthBufferRendererосновной камере.

Служебная программа буфера глубины отрисовкиСиний цилиндр в сцене содержит материал с ZWrite, поэтому данные глубины не записываются

Изменение профилей во время выполнения

Можно обновить профили во время выполнения, и обычно существует два разных сценария и время, в которых это полезно:

  1. Переключение профиля инициализации MRTK: до инициализации MRTK и активации профиля, заменив профиль, который еще не используется, чтобы включить или отключить различные функции в зависимости от возможностей устройства. Например, если интерфейс работает в виртуальной реальности без оборудования пространственного сопоставления, вероятно, не имеет смысла включать компонент пространственного сопоставления.
  2. Активный переключатель профиля: после запуска после инициализации MRTK и профиля активируется, переключение профиля, используемого в настоящее время для изменения поведения определенных функций. Например, в приложении может быть определенный вложенный интерфейс, который хочет полностью удалить указатели на руки.

Переключение профиля инициализации MRTK

Это можно сделать, подключив MonoBehaviour (пример ниже), который выполняется до инициализации MRTK (т. е. Awake()). Обратите внимание, что скрипт (т. е. вызов SetProfileBeforeInitialization) должен быть выполнен раньше, чем MixedRealityToolkit скрипт, который можно достичь, задав параметры порядка выполнения скрипта.

using Microsoft.MixedReality.Toolkit;
using UnityEngine;

/// <summary>
/// Sample MonoBehaviour that will run before the MixedRealityToolkit object, and change
/// the profile, so that when MRTK initializes it uses the profile specified below
/// rather than the one that is saved in its scene.
/// </summary>
/// <remarks>
/// Note that this script must have a higher priority in the script execution order compared
/// to that of MixedRealityToolkit.cs. See https://docs.unity3d.com/Manual/class-MonoManager.html
/// for more information on script execution order.
/// </remarks>
public class PreInitProfileSwapper : MonoBehaviour
{

    [SerializeField]
    private MixedRealityToolkitConfigurationProfile profileToUse = null;

    private void Awake()
    {
        // Here you could choose any arbitrary MixedRealityToolkitConfigurationProfile (for example, you could
        // add some platform checking code here to determine which profile to load).
        MixedRealityToolkit.SetProfileBeforeInitialization(profileToUse);
    }
}

Вместо profileToUse можно использовать произвольный набор профилей, которые применяются к определенным платформам (например, для HoloLens 1, один для виртуальной реальности, один для HoloLens 2 и т. д.). Можно использовать различные другие индикаторы (например https://docs.unity3d.com/ScriptReference/SystemInfo.html, непрозрачная или непрозрачная камера), чтобы выяснить, какой профиль нужно загрузить.

Активный переключатель профиля

Это можно сделать, задав MixedRealityToolkit.Instance.ActiveProfile свойство новому профилю, заменив активный профиль.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

Обратите внимание, что при настройке ActiveProfile во время выполнения удаление запущенных в данный момент служб произойдет после последнего LateUpdate() всех служб, а экземпляр и инициализация служб, связанных с новым профилем, произойдет до первого обновления () всех служб.

Во время этого процесса может возникнуть заметное колебание приложения. Кроме того, любой скрипт с более высоким приоритетом, чем MixedRealityToolkit скрипт, может ввести его обновление до правильной настройки нового профиля. Дополнительные сведения о приоритете скрипта см. в параметрах порядка выполнения скриптов .

В процессе переключения профилей существующая камера пользовательского интерфейса останется неизменной, гарантируя, что компоненты пользовательского интерфейса Unity, требующие холста, по-прежнему работают после переключения.

См. также раздел