Compartir a través de


Notas de la versión de Microsoft Mixed Reality Toolkit 2.5

Importante

Hay un problema conocido del compilador que afecta a las aplicaciones compiladas para Microsoft HoloLens 2 mediante ARM64. Este problema se ha corregido mediante la actualización de Visual Studio 2019 a la versión 16.8 o posterior. Si no puede actualizar Visual Studio, importe el com.microsoft.mixedreality.toolkit.tools paquete para aplicar una solución alternativa.

Novedades de la versión 2.5.4

Se ha corregido un error con la integración dePytes al usar UPM.

Cuando se usa UPM, El ArchivoXRSDKDeviceManagerProfile siempre tendría sus objetos prefabricados establecidos en None al iniciarse. Esta versión configura el Administrador de dispositivos para que apunte a un conjunto de objetos prefabricados en el inicio.

Corrige un problema con OpenXR a través de UPM.

Corrige un problema por el que los proveedores de OpenXR no se agregaron al link.xml de forma predeterminada, lo que provoca que los nuevos proyectos no se ejecuten en el dispositivo al usar OpenXR y MRTK a través del Administrador de paquetes de Unity. Los proyectos existentes que se actualizan seguirán necesitando esto agregado manualmente.

Novedades de la versión 2.5.3

Corrige una regresión con Los Archivos introducidos en la versión 2.5.2

2.5.2 introdujo un problema de compilación al integrar el SDK de Storage. Esta versión revierte ese problema.

Novedades de la versión 2.5.2

Adición de compatibilidad con OpenXR

Se ha agregado compatibilidad inicial para el paquete de versión preliminar de OpenXR de Unity y el paquete openXR de Microsoft Mixed Reality. Consulte la página de introducción de MRTK/XRSDK, lapublicación del foro de Unity o la documentación de Microsoft para obtener más información.

Importante

OpenXR en Unity solo se admite en Unity 2020.3 y versiones posteriores. También solo admite compilaciones x64, ARM y ARM64.

Errores de visualización de límites corregidos

Las visualizaciones de límites, como el piso o las paredes, ahora se configurarán y verán correctamente en tiempo de ejecución según el perfil de límite.

Compatibilidad con MSBuild para Unity

La compatibilidad con MSBuild para Unity se ha quitado a partir de la versión 2.5.2, para alinearse con la nueva guía del paquete de Unity.

Novedades de la versión 2.5.1

Errores de dependencia de paquetes corregidos

En esta versión se corrigen las dependencias incorrectas de archivos entre paquetes (por ejemplo, los archivos de los recursos estándar ya no hacen referencia incorrectamente a los archivos de Foundation). La versión 2.5.1 también agrega una dependencia explícita de Text Mesh Pro.

Sombreadores de paquetes de recursos estándar copiados en Assets/MRTK/Shaders

Cuando el paquete de recursos estándar se instala a través de UPM, los sombreadores se copiarán en la carpeta Assets/MRTK/Shaders para que ya no sean inmutables. Esto resuelve el problema de los sombreadores actualizados para la canalización de representación universal (URP) que revierte el comportamiento heredado la próxima vez que se cargue el proyecto.

Se ha corregido el cursor de teletransporte pegado a las manos.

Esta versión corrige un problema por el que el cursor de destino de teletransporte puede pegarse a los objetos visuales de mano.

Novedades de la versión 2.5.0

Compatibilidad con el Administrador de paquetes de Unity (UPM)

El kit de herramientas de Mixed Reality ahora se puede administrar mediante el Administrador de paquetes de Unity.

Paquete UPM de MRTK Foundation

Nota

Hay algunos pasos manuales necesarios para importar los paquetes UPM de MRTK. Revise Mixed Reality Toolkit y el Administrador de paquetes de Unity para obtener más información.

Compatibilidad con el SDK XR de Curiosas Quest

MRTK ahora admite la ejecución de cascos y controladores de Misiones de Azure Mediante la canalización nativa del SDK de XR. El seguimiento de manos también es compatible con el paquete de Unity de Integración de Azure Mediante el trabajo de Eric Provencher en MRTK-Quest!

Para obtener instrucciones sobre cómo implementar el dispositivo en la misión De Los Studios mediante la nueva canalización, consulta la Guía de configuración de La misión Desamples

Desplazamiento por la colección de objetos

El componente UX de MRTK se ha actualizado a partir de una característica experimental y ofrece más libertad para diseñar contenido 3D de diferentes tamaños con compatibilidad agregada con objetos que no tienen colisionadores conectados. También se ha agregado una nueva opción para deshabilitar el enmascaramiento de contenido, lo que facilita la creación de prototipos.

Vea Scrolling Object Collection (Colección de objetos de desplazamiento ) para obtener más información.

Desplazamiento de la colección de objetos

Mejoras de animación, control y sonido de puntero de teletransporte

El puntero de teletransporte ahora ha mejorado las animaciones y los comentarios de audio. También hemos mejorado el control del puntero de teletransporte para que controle más suave al pasar de apuntar a superficies cercanas a superficies más alejadas.

Hoja de referencia rápida de simulación de entrada

La escena HandInteractionExamples ahora tiene un acceso directo configurable para mostrar una página de ayuda para la simulación de entrada.

Hoja de referencia rápida de simulación de entrada

Mirada ocular de simulación de entrada con el mouse

Los usuarios ahora pueden usar el mouse para simular el seguimiento ocular. Vea el Eye Simulation Mode campo en el perfil de simulación de entrada y establézcalo en Mouse. Esto reemplaza el campo anterior Simulate Eye Position .

Mirada con el ratón

Controlador de movimiento de simulación de entrada en el modo de reproducción del editor

Los usuarios ahora pueden simular el controlador de movimiento igual que las manos en el modo de reproducción del editor. Actualmente se admiten los botones de desencadenador, captura y menú.

Puntero de agarre cónico

Ahora se pueden configurar punteros de toma para consultar objetos cercanos mediante un cono desde el punto de agarre en lugar de una esfera. Esto es más parecido al comportamiento de la interfaz HoloLens 2 predeterminada, que consulta los objetos cercanos mediante un cono. DefaultHoloLens2InputSystemProfile también se ha ajustado para usar el nuevo ConicalGrabPointer.

Puntero de agarre cónico

Paquete TestUtilities

Ahora hay un paquete (Microsoft.MixedReality.Toolkit.Unity.TestUtilities.2.5.0.unitypackage) que contiene la infraestructura de prueba playMode y TestMode que MRTK usa para crear pruebas de un extremo a otro. Esta infraestructura ha sido extremadamente útil para el propio equipo de MRTK, y estamos encantados de que los consumidores lo usen para agregar cobertura de pruebas a sus propios proyectos.

En el código siguiente se muestra cómo crear una mano de prueba, mostrarla en una ubicación determinada, moverla y, a continuación, reducirla y abrirla.

TestHand leftHand = new TestHand(Handedness.Left);
yield return leftHand.Show(new Vector3(-0.1f, -0.1f, 0.5f));
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Pinch);
yield return leftHand.Move(new Vector3(0.2f, 0.2f, 0));
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Open);

Para obtener instrucciones sobre cómo escribir una prueba con estas testUtilities, consulte esta sección sobre cómo escribir pruebas.

Para obtener ejemplos de pruebas existentes que usan esta infraestructura, consulte PlayModeTests de MRTK.

Compatibilidad con los módulos de Unity leap Motion 4.5.1

Se ha agregado compatibilidad con los módulos leap Motion Unity versión 4.5.1 y se ha quitado la compatibilidad con los recursos de 4.4.0. Las versiones compatibles actuales de los módulos leap Motion Unity son 4.5.0 y 4.5.1.

También hay un paso adicional para la integración inicial de Leap Motion, consulte How to Configure the Leap Motion Hand Tracking in MRTK para obtener más información.

Spatial Awareness Mesh Observer controla mejor la personalización de materiales

Con esta versión, los Windows Mixed Reality Spatial Mesh Observer componentes y han mejorado el Generic XR SDK Spatial Mesh Observer control de materiales visuales. Los materiales ahora se conservan cuando el observador ha actualizado una malla donde, anteriormente, se restablecieron al visiblematerial predeterminado, tal como se configuró en el perfil.

Esto permite a los desarrolladores modificar el material de malla y no tener los cambios sobrescritos inesperadamente.

Link.xml creado en la carpeta MixedRealityToolkit.Generated

Con la introducción de Unity Package Manager MRTK, MRTK escribe ahora un link.xml archivo en la Assets/MixedRealityToolkit.Generated carpeta, si no hay ninguno presente. Se recomienda agregar este archivo (y link.xml.meta) al control de código fuente. Link.xml se usa para influir en la funcionalidad de eliminación de código administrado del vinculador de Unity.

Puede encontrar más información sobre el archivo link.xml MRTK en el artículo de eliminación de código administrado y MRTK .

Unity 2019.3+: el cuadro de diálogo de configuración de MRTK ya no intenta habilitar la compatibilidad con XR heredada

Para evitar posibles conflictos al usar la plataforma XR de Unity, la opción para habilitar la compatibilidad con XR heredada se ha quitado del cuadro de diálogo de configuración de MRTK. Si lo desea, se puede habilitar la compatibilidad con XR heredada, en Unity 2019, con Editar> configuración delreproductor> de configuración delproyecto>XR Configuración>admitida.

Reducción de la sobrecarga InitializeOnLoad

Hemos estado trabajando para reducir la cantidad de trabajo que se ejecuta en los controladores InitializeOnLoad, lo que debería dar lugar a mejoras en la velocidad de desarrollo de bucles internos. Los controladores InitializeOnLoad se ejecutan cada vez que se compila un script, antes de entrar en modo de reproducción y también en el inicio del editor. Estos controladores ahora se ejecutan en muchos menos casos, lo que da lugar a mejoras generales de capacidad de respuesta de Unity.

En algunos casos hubo un equilibrio que debía hacerse:

Control de límites graduado

Control de límites

El control de límites se graduó fuera de experimental y viene con un montón de nuevas características y toneladas de correcciones de errores. Aquí se muestra una lista de los aspectos destacados de esta actualización:

  • las propiedades se dividen en configuraciones, lo que facilita la configuración del control de límites.
  • las configuraciones se pueden compartir a través de objetos que se pueden crear scripts
  • cada propiedad o propiedad que se puede crear scripts es configurable en tiempo de ejecución
  • la plataforma de control de límites ya no se vuelve a crear en los cambios de propiedad.
  • compatibilidad con los identificadores de traducción
  • compatibilidad con restricciones completas a través del administrador de restricciones
  • Integración del sistema elástico (experimental)

El cuadro de límite anterior ahora está en desuso y los objetos de juego existentes mediante el rectángulo de selección se pueden actualizar mediante la herramienta de migración o el inspector de rectángulo de selección.

Componente del administrador de restricciones

Las restricciones ahora se pueden usar mediante el control enlazador y el manipulador de objetos a través del nuevo componente del administrador de restricciones. Ambos componentes crearán un administrador de restricciones por valor predeterminado y procesarán automáticamente las restricciones adjuntas.

Además, el administrador de restricciones de comportamiento automático también incluye un modo manual que permite a los usuarios decidir qué restricción se debe procesar. Por este motivo, la forma en que se muestran las restricciones en el inspector de propiedades cambió un poco.

Vista inspector que muestra la selección manual del administrador de restricciones

Las restricciones que se aplican al componente ahora se muestran como una lista en el componente del administrador de restricciones, mientras que el componente que usa el administrador de restricciones (ya sea control de límites o manipulador de objetos) mostrará ahora el administrador de restricciones y el modo seleccionados (automático o manual). Para obtener más información, lea la sección Administrador de restricciones en nuestros documentos.

actualización de material del botón HoloLens 2

Se ha actualizado HoloLens 2 material de jaula frontal del botón para quitar el color negro en MRC.

actualización de material del botón HoloLens 2

Actualización del panel de descripción, escena de ejemplo móvil

Se ha actualizado el panel de descripción. (SceneDescriptionPanelRev.prefab) Nuevo diseño proporciona una barra superior agarrable que permite al usuario ajustar o mover toda la escena.

Actualización del panel descripción

Visualización de malla espacial: pulse en pulsación en el aire

Ejemplo actualizado del sombreador de pulsos para que la malla espacial coincida con el comportamiento del shell de HoloLens 2.

Pulse en pulsación de aire

Sistema elástico (experimental)

Elastic System2

MRTK ahora incluye un sistema de simulación elástica que incluye una amplia variedad de subclases extensibles y flexibles, ofreciendo enlaces para muelles de cuaternión 4 dimensionales, muelles de volumen de 3 dimensiones y sistemas simples de muelle lineal.

Actualmente, los siguientes componentes de MRTK que admiten el administrador de elásticos pueden aprovechar la funcionalidad de los elásticos:

Expandir un menúelástico Agarrar una taza de café elástica

Joystick (experimental)

Un ejemplo de interfaz de joystick que puede controlar un objeto de destino grande.

Joystick

Selector de colores (experimental)

Control experimental que facilita el cambio de colores de material en cualquier objeto en tiempo de ejecución.

Tres métodos diferentes del control selector de colores

Cuatro métodos diferentes del control selector de colores

Últimos cambios

Cambios en los archivos de definición de ensamblado

Algunos archivos asmdef se cambian y ahora solo admiten Unity 2018.4.13f1 o posterior. Los errores de compilación se mostrarán al actualizar a MRTK 2.5 en versiones anteriores de Unity. Esto se puede corregir si va a Assets\MRTK\Providers\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.asmdef en la ventana del proyecto y quita la referencia que falta en el inspector. Repita esos pasos con Assets\MRTK\Providers\Oculus\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.Oculus.asmdef y Assets\MRTK\Providers\WindowsMixedReality\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.WMR.asmdef. Tenga en cuenta que debe revertir los cambios reemplazando esos tres archivos asmdef por los originales (es decir, sin modificar) al actualizar a Unity 2019.

IMixedRealityPointerMediator

Esta interfaz se ha actualizado para tener una nueva función:

void SetPointerPreferences(IPointerPreferences pointerPreferences);

Si tiene un mediador de puntero personalizado que no subclase DefaultPointerMediator, deberá implementar esta nueva función. Consulte este problema para obtener más información sobre por qué se ha agregado. Esto se agregó para garantizar que las preferencias de puntero se pasaran explícitamente al mediador, en lugar de hacerlo implícitamente en función de la presencia de un constructor que tomara una IPointerPreferences.

REST/API de Device Portal

La UseSSL propiedad estática se ha movido de Rest a DevicePortal.

Si lo hiciste anteriormente...

Rest.UseSSL = true

Haz esto ahora...

DevicePortal.UseSSL = true

Link.xml

Si una aplicación usaba previamente la distribución de NuGet de MRTK, el link.xml archivo se ha quitado del paquete Foundation. Para restaurar las reglas de conservación de código, abra el proyecto en Unity una vez creará un archivo predeterminado link.xml en Assets/MixedRealityToolkit.Generated. Se recomienda agregar este archivo (y link.xml.meta) al control de código fuente.

Cambios en la restricción de transformación

La propiedad TargetTransform se ha marcado como obsoleta, ya que el sistema de restricciones no la usó. La lógica de restricción se basa en la transformación que se pasa a los métodos Initialize y Apply. Las restricciones de usuario derivadas que se basan en esta propiedad pueden almacenar en caché TargetTransform en su implementación almacenando la transformación del componente de restricción para lograr el mismo comportamiento.

El tipo de datos de posición worldPoseOnManipulationStart inicial del mundo almacenado se ha cambiado de MixedRealityPose a MixedRealityTransform, que incluye el valor de escala local del objeto manipulado. Con este cambio ya no es necesario almacenar en caché por separado ningún valor de escala inicial.

Nueva propiedad en IMixedRealityDictationSystem

Se ha agregado una nueva propiedad AudioClip a la interfaz IMixedRealityDictationSystem. La AudioClip propiedad permite el acceso al clip de audio asociado a la sesión de dictado actual. Los usuarios deben implementar la propiedad en sus scripts que implementan la interfaz .

Fachadas de servicio desactivadas

Las fachadas de servicios se están desactivando en 2.5. Esta característica se agregó originalmente para facilitar la configuración de los perfiles de MRTK (creando gameObjects falsos en escena que representan cada uno de los servicios de MRTK). A largo plazo, queremos evitar crear objetos falsos en el juego e intentar mantenerlos sincronizados (como la sincronización de datos y los problemas de "origen de verdad" son notoriamente difíciles de escalar y obtener la derecha).

En 2.5, los controladores de fachada de servicio se mantienen alrededor para asegurarse de que la actualización del proyecto se realice sin problemas, las fachadas que existan en el proyecto serán eliminadas por el controlador de fachada de servicio para asegurarse de que las escenas abiertas en la versión 2.5 se fijan automáticamente.

El código restante asociado a la característica de fachada de servicio se quitará en una versión futura.

Adición del controlador de movimiento al servicio de simulación de entrada

La simulación del controlador de movimiento ahora se ofrece en el modo de reproducción del editor a lo largo de la simulación de mano existente. Para habilitar este cambio, muchas funciones, campos y propiedades actuales ahora están marcados como obsoletos, con InputSimulationService.cs y MixedRealityInputSimulationProfile.cs obteniendo los cambios más significativos. La lógica y el comportamiento del código relevante permanecen en gran medida igual, y la mayoría de las funciones obsoletas, etc. están relacionados con la sustitución de referencia a "hand" al término más genérico "controller" (por ejemplo, de DefaultHandSimulationMode a DefaultControllerSimulationMode). Además de obtener nuevos nombres, el tipo de valor devuelto de ciertas funciones nuevas se actualiza para que coincida con el cambio de nombre o comportamiento (por ejemplo, GetControllerDevice en función del original GetHandDevice ahora devuelve BaseController en lugar de SimulatedHand).

IInputSimulationService ahora tiene nuevas propiedades MotionControllerDataLeft y MotionControllerDataRight. MixedRealityInputSimulationProfile ahora incluye nuevos campos para la asignación de teclado de determinados botones de controlador de movimiento.

Problemas conocidos

CameraCache puede crear una cámara al apagarse

En algunas situaciones (por ejemplo, al usar el proveedor LeapMotion en el Editor de Unity), es posible que CameraCache vuelva a crear mainCamera al apagarse. Consulte este problema para obtener más información.

FileNotFoundException cuando se importan ejemplos a través del Administrador de paquetes de Unity

Según la longitud de la ruta de acceso del proyecto, la importación de ejemplos a través del Administrador de paquetes de Unity puede generar mensajes FileNotFoundException en la consola de Unity. La causa de esto es que la ruta de acceso al archivo "que falta" es mayor que MAX_PATH (256 caracteres). Para resolverlo, acorte la longitud de la ruta del proyecto.

No se especificó ningún espacializador. La aplicación no admitirá el sonido espacial.

Aparecerá una advertencia "No se especificó ningún espacializador" si no está configurado un espacializador de audio. Esto puede ocurrir si no hay ningún paquete XR instalado, ya que Unity incluye espacializadores en estos paquetes.

Para resolverlo, asegúrese de que:

  • Ventana>El Administrador de paquetes tiene instalados uno o varios paquetes XR

  • Mixed Reality Toolkit>Utilities>Configure Unity Project (Configurar proyecto de Unity) y realice una selección para Audio Spatializer

    Seleccione Audio Spatializer (Espacializador de audio).

NullReferenceException: referencia de objeto no establecida en una instancia de un objeto (SceneTransitionService.Initialize)

En algunas situaciones, abrir EyeTrackingDemo-00-RootScene puede provocar una excepción NullReferenceException en el método Initialize de la clase SceneTransitionService. Este error se debe a que el perfil de configuración del servicio de transición de escena no está configurado. Para resolverlo, siga estos pasos:

  • Vaya al MixedRealityToolkit objeto en la jerarquía.
  • En la ventana Inspector, seleccione Extensions
  • Si no se expande, expanda Scene Transition Service
  • Establezca el valor de Configuration Profile en MRTKExamplesHubSceneTransitionServiceProfile.

Corregir transición de escena

Oculus Quest

Actualmente hay un problema conocido por el uso del complemento de XR De Service con al dirigirse a plataformas independientes. Consulte las notas de la versión o el rastreador de errores de Azure Directorys para ver si hay actualizaciones.

El error se indica con este conjunto de 3 errores:

Error del complemento XR de Storage

UnityUI y TextMeshPro

Hay un problema conocido para las versiones más recientes de TextMeshPro (1.5.0+ o 2.1.1+), donde se ha modificado el tamaño de fuente predeterminado para las listas desplegables y el espaciado de caracteres de fuente en negrita.

Imagen de TMP

Esto se puede solucionar cambiando a una versión anterior de TextMeshPro. Consulte el problema n.º 8556 para obtener más detalles.