Руководство по настройке профиля MRTK2
Смешанная реальность Toolkit центрирует как можно большую часть конфигурации, необходимую для управления набором средств (за исключением истинной среды выполнения "вещей").
Это руководство представляет собой простое пошаговое руководство для каждого из экранов профиля конфигурации, доступных в настоящее время для набора средств.
Основной профиль конфигурации набора средств Смешанная реальность
Основной профиль конфигурации, присоединенный к Объекту GameObject MixedRealityToolkit в сцене, предоставляет основную точку входа для набора средств в проекте.
Примечание
Смешанная реальность Toolkit "блокирует" экраны конфигурации по умолчанию, чтобы всегда иметь общую начальную точку для проекта, и рекомендуется приступить к определению собственных параметров по мере развития проекта. Конфигурация MRTK не редактируется в режиме воспроизведения.
Все профили по умолчанию для набора средств Смешанная реальность можно найти в проекте пакета SDK в папке Assets/MRTK/SDK/Profiles.
Важно!
DefaultHoloLens2ConfigurationProfile оптимизирован для HoloLens 2. Дополнительные сведения см. в разделе "Профили ".
При открытии основного профиля конфигурации набора средств Смешанная реальность в инспекторе отобразится следующий экран:

Если вы выберете ресурс MixedRealityToolkitConfigurationProfile без MixedRealityToolkit в сцене, вам будет необходимо, чтобы MRTK автоматически настроил сцену. Это необязательно; однако в сцене должен быть активный объект MixedRealityToolkit, чтобы получить доступ ко всем экранам конфигурации.
В этом случае используется текущая конфигурация активной среды выполнения для проекта.
Здесь можно перейти ко всем профилям конфигурации для MRTK, включая:
- Основной профиль конфигурации набора средств Смешанная реальность
- Параметры работы
- Параметры камеры
- Параметры системы ввода
- Параметры визуализации границ
- Выбор системы телепортации
- Параметры пространственной осведомленности
- Параметры диагностики
- Параметры системы сцены
- Дополнительные параметры служб
- Параметры действий ввода
- Правила действий ввода
- Конфигурация указателя
- Настройка жестов
- Команды службы "Речь"
- Конфигурация сопоставления контроллера
- Параметры визуализации контроллера
- Служебные программы редактора
- Изменение профилей во время выполнения
- См. также:
Эти профили конфигурации подробно описаны ниже в соответствующих разделах:
Параметры работы
На главной странице конфигурации набора средств Смешанная реальность этот параметр определяет операцию по умолчанию масштаба среды Смешанная реальность для проекта.

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

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

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

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

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

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

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

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

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

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

Дополнительные параметры служб
Одной из более сложных областей Смешанная реальность 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. Этот профиль конфигурации позволяет настроить следующее:
- Общие параметры — "Поведение запуска", для параметра "Автозапуск" или "Запуск вручную" определяет, следует ли инициализировать KeywordRecognizer при запуске системы ввода или позволить проекту решить, когда инициализировать KeywordRecognizer. "Уровень достоверности распознавания" используется для инициализации API KeywordRecognizer Unity
- Голосовые команды — регистрируют слова и переводят их на входные действия, которые могут быть получены проектом. Они также могут быть присоединены к действиям клавиатуры, если это необходимо.
Важно!
В настоящее время система поддерживает речь только при работе на 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 в сцене и размещаются с помощью отслеживания контроллера платформы.
Если представление контроллера в сцене должно быть смещением от положения физического контроллера, просто установите это смещение по префабу модели контроллера (например, задание положения преобразования префаб контроллера с позицией смещения).

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

Чтобы включить инспекторы служб, проверьте использование инспекторов служб в разделе "Параметры редактора " в профиле конфигурации.
Отрисовщик буфера глубины
Совместное использование буфера глубины с некоторыми платформами смешанной реальности может улучшить стабилизацию голограмм. Например, платформа Windows Mixed Reality может изменять отрисованную сцену на пиксель, чтобы учитывать тонкие движения головы в течение времени, необходимого для отрисовки кадра. Однако эти методы требуют буферов глубины с точными данными, чтобы узнать, где и как далеко геометрия находится от пользователя.
Чтобы сцена отображала все необходимые данные в буфер глубины, разработчики могут переключить функцию буфера глубины отрисовки в разделе "Параметры редактора " в профиле конфигурации. Это займет текущий буфер глубины и отрисовывает его в виде цвета в представлении сцены, применяя эффект после обработки к DepthBufferRenderer
основной камере.
Синий цилиндр в сцене содержит материал с ZWrite, поэтому данные глубины не записываются
Изменение профилей во время выполнения
Можно обновить профили во время выполнения, и обычно существует два разных сценария и время, в которых это полезно:
- Переключение профиля инициализации MRTK: до инициализации MRTK и активации профиля, заменив профиль, который еще не используется, чтобы включить или отключить различные функции в зависимости от возможностей устройства. Например, если интерфейс работает в виртуальной реальности без оборудования пространственного сопоставления, вероятно, не имеет смысла включать компонент пространственного сопоставления.
- Активный переключатель профиля: после запуска после инициализации 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, требующие холста, по-прежнему работают после переключения.