Guía de configuración de perfiles de MRTK2

Mixed Reality Toolkit centraliza la mayor parte de la configuración necesaria para administrar el kit de herramientas lo más posible (excepto para el verdadero tiempo de ejecución "cosas").

Esta guía es un tutorial sencillo para cada una de las pantallas de perfil de configuración disponibles actualmente para el kit de herramientas.

El perfil de configuración principal de Mixed Reality Toolkit

El perfil de configuración principal, que se adjunta al gameObject MixedRealityToolkit en la escena, proporciona el punto de entrada principal para el kit de herramientas en el proyecto.

Nota:

Mixed Reality Toolkit "bloquea" las pantallas de configuración predeterminadas para asegurarse de que siempre tiene un punto de partida común para el proyecto y se recomienda empezar a definir su propia configuración a medida que evoluciona el proyecto. La configuración de MRTK no se puede editar durante el modo de reproducción.

Perfil de configuración de MRTK

Todos los perfiles "predeterminados" de Mixed Reality Toolkit se pueden encontrar en el proyecto del SDK en la carpeta Assets/MRTK/SDK/Profiles.

Importante

DefaultHoloLens2ConfigurationProfile está optimizado para HoloLens 2. Consulte Perfiles para obtener los detalles.

Al abrir el perfil de configuración del kit de herramientas de Mixed Reality principal, verá la siguiente pantalla en el inspector:

Escena de configuración de MRTK

Si selecciona un recurso MixedRealityToolkitConfigurationProfile sin MixedRealityToolkit en la escena, le preguntará si desea que MRTK configure automáticamente la escena. Esto es opcional; Sin embargo, debe haber un objeto MixedRealityToolkit activo en la escena para acceder a todas las pantallas de configuración.

Esto alberga la configuración actual del entorno de ejecución activo para el proyecto.

Desde aquí puede ir a todos los perfiles de configuración de MRTK, entre los que se incluyen:

Estos perfiles de configuración se detallan a continuación en sus secciones pertinentes:


Configuración de la experiencia

Ubicado en la página de configuración del kit de herramientas de Mixed Reality principal, esta configuración define la operación predeterminada de la escala de entorno de Mixed Reality para el proyecto.

Configuración de la experiencia

Configuración de la cámara

La configuración de la cámara define cómo se configurará la cámara para el proyecto de Mixed Reality, definiendo el recorte genérico, la calidad y la configuración de transparencia.

Perfil de cámara

Configuración del sistema de entrada

El Mixed Reality Project proporciona un sistema de entrada sólido y bien entrenado para enrutar todos los eventos de entrada alrededor del proyecto que está seleccionado de forma predeterminada.

Configuración del sistema de entrada 1

Detrás del sistema de entrada proporcionado por MRTK hay otros sistemas, que ayudan a impulsar y administrar los complejos inter-tejido necesarios para abstraer las complejidades de un marco de realidad mixta o multiplataforma.

Configuración del sistema de entrada 2

Cada uno de los perfiles individuales se detalla a continuación:


Configuración de visualización de límites

El sistema de límites traduce el límite percibido notificado por el sistema de protección o límites de plataformas subyacentes. La configuración del visualizador de límites permite mostrar automáticamente el límite grabado dentro de la escena en relación con la posición del usuario. El límite también reaccionará o actualizará en función de dónde teletransporte el usuario dentro de la escena.

Configuración de visualización de límites

Selección del sistema de teletransportación

El Mixed Reality Project proporciona un sistema de teletransportación completo para administrar eventos de teletransportación en el proyecto que está seleccionado de forma predeterminada.

Configuración del sistema de teletransporte

Configuración de reconocimiento espacial

El Mixed Reality Project proporciona un sistema de reconocimiento espacial recompilado para trabajar con sistemas de examen espacial en el proyecto que está seleccionado de forma predeterminada.

Configuración de reconocimiento espacial 1

Mixed Reality configuración de reconocimiento espacial del Kit de herramientas le permite adaptar cómo se inicia el sistema, ya sea automáticamente cuando se inicia o posteriormente la aplicación, así como establecer las extensiones para el campo de vista.

También le permite configurar las opciones de malla y superficie, personalizando aún más cómo el proyecto entiende el entorno que le rodea.

Esto solo es aplicable a los dispositivos que pueden proporcionar un entorno examinado.

Configuración de reconocimiento espacial 2

Configuración de diagnóstico

Una característica opcional pero muy útil de MRTK es la funcionalidad de diagnóstico del complemento.

Configuración de diagnóstico

El perfil de diagnóstico proporciona varios sistemas sencillos para supervisar mientras se ejecuta el proyecto, incluido un práctico conmutador On/Off para habilitar o deshabilitar el panel de visualización en la escena.

Configuración de diagnóstico Configuración del sistema 2

Configuración del sistema de escena

MRTK proporciona este servicio opcional para ayudarle a administrar la carga y descarga complejas de escenas de aditivos. Para decidir si el sistema de escenas sería una buena opción para el proyecto, lea la Guía del sistema de escenas Introducción.

Configuración del sistema de escena 1

Configuración de servicios adicionales

Una de las áreas más avanzadas de Mixed Reality Toolkit es su implementación del patrón de localizador de servicios que permite el registro de cualquier "servicio" con el marco. Esto permite que el marco se extienda fácilmente con nuevas características o sistemas, pero también permite que los proyectos aprovechen estas funcionalidades para registrar sus propios componentes en tiempo de ejecución.

Cualquier servicio registrado todavía obtiene la ventaja completa de todos los eventos de Unity, sin la sobrecarga y el costo de implementar un modelo MonoBehaviour o singleton desordenado. Esto permite que los componentes puros de C# sin sobrecarga de escena ejecuten procesos en primer plano y en segundo plano, por ejemplo, sistemas de generación, lógica del juego en tiempo de ejecución o prácticamente cualquier otra cosa.

configuración adicional del sistema

Configuración de acciones de entrada

Las acciones de entrada proporcionan una manera de abstraer las interacciones físicas y la entrada de un proyecto en tiempo de ejecución. Toda la entrada física (desde controladores, manos, mouse, etc.) se traduce en una acción de entrada lógica para su uso en el proyecto en tiempo de ejecución. Esto garantiza que, independientemente de dónde proceda la entrada, el proyecto simplemente implementa estas acciones como "Cosas con las que hacer" o "Interactuar con" en las escenas.

Para crear una nueva acción de entrada, simplemente haga clic en el botón "Agregar una nueva acción" y escriba un nombre de texto descriptivo para lo que representa. A continuación, solo necesita seleccionar un eje (el tipo de datos) a la que se va a transmitir la acción, o en el caso de controladores físicos, el tipo de entrada físico al que se puede adjuntar, por ejemplo:

Restricción axis Tipo de datos Descripción Ejemplo de uso
None Sin datos Se usa para una acción o evento vacíos Desencadenador de eventos
Sin procesar (reservado) object Reservado para uso futuro N/D
Digital bool Datos de tipo booleano activado o desactivado Un botón de controlador
Eje único FLOAT Un valor de datos de precisión único Una entrada con intervalos, por ejemplo, un desencadenador
Eje dual Vector2 Una fecha de tipo float dual para varios ejes Un controlador Dpad o un stick analógico
Posición de tres dof Vector3 Datos de tipo posicional de con 3 ejes flotantes Controlador de estilo de posición 3D
Rotación de tres dof Quaternion Solo entrada rotacional con 4 ejes flotantes Un controlador de estilo de tres grados, por ejemplo, controlador de La go de Storage
Seis Dof Mixed Reality Posición (Vector3, Cuaternión) Entrada de estilo de posición y rotación con componentes Vector3 y Quaternion Un controlador de movimiento o puntero

Los eventos que usan acciones de entrada no se limitan a los controladores físicos y todavía se pueden usar dentro del proyecto para que los efectos en tiempo de ejecución generen nuevas acciones.

Nota:

Las acciones de entrada son uno de los pocos componentes que no se pueden editar en tiempo de ejecución, solo son una configuración en tiempo de diseño. Este perfil no se debe intercambiar mientras se ejecuta el proyecto debido a la dependencia del marco (y los proyectos) en el identificador generado para cada acción.

Perfil de configuración

Reglas de acciones de entrada

Las reglas de acción de entrada proporcionan una manera de traducir automáticamente un evento generado para una acción de entrada en diferentes acciones en función de su valor de datos. Estos se administran sin problemas en el marco y no incurren en costos de rendimiento.

Por ejemplo, convertir el evento de entrada de eje dual único de un DPad en en el 4 correspondiente "Dpad Up" / "DPad Down" / "Dpad Left" / "Dpad Right" (como se muestra en la imagen siguiente).

Esto también se puede hacer en su propio código. Sin embargo, al ver que se trata de un patrón muy común, el marco proporciona un mecanismo para hacerlo "de fábrica".

Las reglas de acción de entrada se pueden configurar para cualquiera de los ejes de entrada disponibles. Sin embargo, las acciones de entrada de un tipo de eje se pueden traducir a otra acción de entrada del mismo tipo de eje. Puede asignar una acción de eje dual a otra acción de eje dual, pero no a una acción digital o ninguna.

Perfil de reglas de acción de entrada


Configuración del puntero

Los punteros se usan para impulsar la interactividad en la escena desde cualquier dispositivo de entrada, lo que proporciona una dirección y una prueba de posicionamiento con cualquier objeto de una escena (que tiene un colisionador conectado o es un componente de interfaz de usuario). Los punteros se configuran automáticamente de forma predeterminada para controladores, auriculares (mirada/foco) y entrada táctil o mouse.

Los punteros también se pueden visualizar dentro de la escena activa mediante uno de los muchos componentes de línea proporcionados por Mixed Reality Toolkit, o cualquiera de sus propios si implementan la interfaz IMixedRealityPointer de MRTK.

Perfil de puntero de entrada
  • Extensión señalador: determina la extensión de apuntamiento global para todos los punteros, incluida la mirada.
  • Señalador máscaras de capa de Raycast: determina qué punteros de capas se harán raycast contra.
  • Depurar dibujar rayos apuntando: un asistente de depuración para visualizar los rayos usados para la difusión de rayos.
  • Depurar dibujar colores de rayos apuntando: un conjunto de colores que se van a usar para visualizar.
  • Objeto prefabricado del cursor de mirada: facilita la especificación de un cursor de mirada global para cualquier escena.

Hay un botón auxiliar adicional para saltar rápidamente al proveedor de miradas para invalidar algunos valores específicos de Gaze si es necesario.


Configuración de gestos

Los gestos son una implementación específica del sistema que permite asignar acciones de entrada a los distintos métodos de entrada "Gestos" proporcionados por varios SDK (por ejemplo, HoloLens).

Nota:

La implementación de gestos actual es solo para HoloLens y se mejorará para otros sistemas a medida que se agreguen al kit de herramientas en el futuro (aún no hay fechas).

Configuración de gestos

Comandos de voz

Al igual que los gestos, algunas plataformas en tiempo de ejecución también proporcionan funcionalidad inteligente "Conversión de voz en texto" con la capacidad de generar comandos que un proyecto de Unity puede recibir. Este perfil de configuración permite configurar lo siguiente:

  1. Configuración general: "Comportamiento de inicio" establecido en Inicio automático o Inicio manual determina si se debe inicializar KeywordRecognizer al iniciar el sistema de entrada o dejar que el proyecto decida cuándo inicializar KeywordRecognizer. "Nivel de confianza de reconocimiento" se usa para inicializar la API KeywordRecognizer de Unity.
  2. Comandos de voz: registra "palabras" y los traduce en acciones de entrada que el proyecto puede recibir. También se pueden adjuntar a acciones de teclado si es necesario.

Importante

Actualmente, el sistema solo admite voz cuando se ejecuta en plataformas windows 10, por ejemplo, holoLens y escritorio de Windows 10 y se mejorará para otros sistemas, ya que se agregan a MRTK en el futuro (aún no hay fechas).

Pantallas de perfil de configuración

Configuración de asignación de controladores

Una de las pantallas de configuración principales para Mixed Reality Toolkit es la capacidad de configurar y asignar los distintos tipos de controladores que puede usar el proyecto.

La pantalla de configuración siguiente permite configurar cualquiera de los controladores actualmente reconocidos por el kit de herramientas.

Asignación de controladores

MRTK proporciona una configuración predeterminada para los siguientes controladores o sistemas:

  • Mouse (incluida la compatibilidad con el mouse espacial 3D)
  • Pantalla táctil
  • Mandos de Xbox
  • controladores de Windows Mixed Reality
  • Gestos de HoloLens
  • Controladores de wanda HTC Vive
  • Controladores Táctiles de Los Cascos
  • Controlador remoto de Power Directory
  • Dispositivos OpenVR genéricos (solo usuarios avanzados)

Al hacer clic en la imagen de cualquiera de los sistemas de controlador pregenerados, puede configurar una única acción de entrada para todas sus entradas correspondientes, por ejemplo, vea la pantalla de configuración del controlador Touch De Windows a continuación:

Pantalla de configuración del controlador

También hay una pantalla avanzada para configurar otros controladores de entrada openVR o Unity que no se identifican anteriormente.


Configuración de visualización del controlador

Además de la asignación del controlador, se proporciona un perfil de configuración independiente para personalizar cómo se presentan los controladores en las escenas.

Esto se puede configurar en un "Global" (todas las instancias de un controlador para una mano específica) o específicas de un tipo o mano de controlador individual.

MRTK también admite modelos de controlador de SDK nativos para Windows Mixed Reality y OpenVR. Se cargan como GameObjects en la escena y se colocan mediante el seguimiento del controlador de la plataforma.

Si la representación del controlador en la escena debe desplazarse desde la posición del controlador físico, simplemente establezca ese desplazamiento en el objeto prefabricado del modelo de controlador (por ejemplo, establecer la posición de transformación del objeto prefabricado del controlador con una posición de desplazamiento).

Perfil de visualización

Utilidades del editor

Las siguientes utilidades solo funcionan en el editor y son útiles para mejorar la productividad del desarrollo.

Utilidades de configuración del editor de MRTK

Inspectores de servicio

Los inspectores de servicio son una característica de solo editor que genera objetos en escena que representan servicios activos. Al seleccionar estos objetos se muestran los inspectores que ofrecen vínculos de documentación, el control sobre las visualizaciones del editor y la información sobre el estado del servicio.

Inspectores de servicio

Para habilitar los inspectores de servicio, active Usar inspectores de servicio en Configuración del editor en el perfil de configuración.

Representador de búfer de profundidad

Compartir el búfer de profundidad con algunas plataformas de realidad mixta puede mejorar la estabilización del holograma. Por ejemplo, la plataforma Windows Mixed Reality puede modificar la escena representada por píxel para tener en cuenta los movimientos sutiles de la cabeza durante el tiempo que tardó en representar un fotograma. Sin embargo, estas técnicas requieren búferes de profundidad con datos precisos para saber dónde y hasta dónde se encuentra la geometría del usuario.

Para asegurarse de que una escena representa todos los datos necesarios en el búfer de profundidad, los desarrolladores pueden alternar la característica Búfer de profundidad de representación en Configuración del editor en el perfil de configuración. Esto tomará el búfer de profundidad actual y lo representará como color para la vista de escena aplicando un efecto posterior al procesamiento, DepthBufferRenderer, a la cámara principal.

Utilidad de búfer de profundidad de representaciónEl cilindro azul de la escena tiene un material con ZWrite desactivado, por lo que no se escriben datos de profundidad.

Cambio de perfiles en tiempo de ejecución

Es posible actualizar perfiles en tiempo de ejecución y, por lo general, hay dos escenarios y horas diferentes en los que esto resulta útil:

  1. Modificador de perfil de inicialización de MRTK anterior: al iniciarse, antes de que SE inicialice MRTK y el perfil se active, reemplazando el perfil que aún no está en uso para habilitar o deshabilitar características diferentes en función de las funcionalidades del dispositivo. Por ejemplo, si la experiencia se ejecuta en VR que no tiene hardware de asignación espacial, probablemente no tenga sentido tener habilitado el componente de asignación espacial.
  2. Cambio de perfil activo: después del inicio, después de inicializar MRTK y un perfil se ha vuelto activo, intercambiando el perfil actualmente en uso para cambiar la forma en que se comportan determinadas características. Por ejemplo, puede haber una subconsulta específica en la aplicación que quiera que los punteros de mano lejanos se quiten por completo.

Modificador de perfil de inicialización anterior a MRTK

Esto se puede lograr mediante la asociación de un MonoBehaviour (ejemplo a continuación), que se ejecuta antes de la inicialización de MRTK (es decir, Awake()). Tenga en cuenta que el script (es decir, llamar a SetProfileBeforeInitialization) debe ejecutarse antes que el MixedRealityToolkit script, que se puede lograr estableciendo la configuración del orden de ejecución del script.

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);
    }
}

En lugar de "profileToUse", es posible tener un conjunto arbitrario de perfiles que se aplican a plataformas específicas (por ejemplo, una para HoloLens 1, otra para VR, otra para HoloLens 2, etc.). Es posible usar otros indicadores (por ejemplo, https://docs.unity3d.com/ScriptReference/SystemInfo.html, o si la cámara es opaca o transparente) para averiguar qué perfil se va a cargar.

Modificador de perfil activo

Esto se puede lograr estableciendo la MixedRealityToolkit.Instance.ActiveProfile propiedad en un nuevo perfil reemplazando el perfil activo.

MixedRealityToolkit.Instance.ActiveProfile = profileToUse;

Tenga en cuenta que, al establecer ActiveProfile durante el tiempo de ejecución, la destrucción de los servicios actualmente en ejecución se producirá después de la última actualización tardía() de todos los servicios, y la creación de instancias y la inicialización de los servicios asociados al nuevo perfil se producirán antes de la primera actualización() de todos los servicios.

Es posible que se produzca una duda en la aplicación durante este proceso. Además, cualquier script con mayor prioridad que el MixedRealityToolkit script puede especificar su actualización antes de que el nuevo perfil esté configurado correctamente. Consulte Configuración del orden de ejecución de scripts para obtener más información sobre la prioridad del script.

En el proceso de cambio de perfil, la cámara de interfaz de usuario existente permanecerá sin cambios, lo que garantiza que los componentes de la interfaz de usuario de Unity que requieran lienzo sigan funcionando después del modificador.

Consulte también