Grabación de animación de entrada: MRTK2

MRTK cuenta con un sistema de grabación mediante el cual los datos de movimiento de la cabeza y seguimiento de manos se pueden almacenar en archivos de animación. Los datos grabados se pueden reproducir mediante el sistema de simulación de entrada.

La entrada de grabación es una herramienta útil en diversas situaciones:

  • Creación de pruebas automatizadas para la interacción, manipulaciones, solucionadores, etc. La creación del movimiento de controladores y manos para estas pruebas puede llevar mucho tiempo. La entrada de grabación directamente puede acelerar el proceso y proporcionar datos reales.
  • Enseñar el uso de elementos de la experiencia de usuario a través de animaciones. Mostrar a los usuarios cómo interactuar con botones y otros objetos puede suavizar la curva de aprendizaje.
  • Depuración de un comportamiento inesperado que se puede encontrar durante el uso normal. El sistema de grabación admite un concepto de "búfer gradual" que permite grabar entradas recientes en segundo plano. Consulte Servicio de grabación de entrada.

Servicios de grabación y reproducción

Se proporcionan dos servicios del sistema de entrada para grabar y reproducir la entrada respectivamente.

Servicio de grabación de entrada

InputRecordingService toma datos de la transformación de cámara principal y los controladores de mano activos y los almacena en un búfer interno. Cuando se solicitan estos datos, se serializa en archivos binarios para el almacenamiento y, posteriormente, se reproduce.

Para iniciar la grabación de la entrada, llame a la StartRecording función . StopRecording pausará la grabación (pero no descartará los datos grabados hasta ahora, use DiscardRecordedInput para hacerlo si es necesario).

De forma predeterminada, el tamaño del búfer de grabación está limitado a 30 segundos. Esto permite al servicio de grabación mantener la grabación en segundo plano sin acumular demasiados datos y, a continuación, guardar los últimos 30 segundos cuando sea necesario. El intervalo de tiempo se puede cambiar mediante la RecordingBufferTimeLimit propiedad , o la grabación puede ser ilimitada mediante la UseBufferTimeLimit opción .

Los datos del búfer de grabación se pueden guardar en un archivo binario mediante la función SaveInputAnimation .

Para obtener más información sobre el formato de archivo binario, vea Especificación de formato de archivo de animación de entrada.

Servicio de reproducción de entrada

InputPlaybackService lee un archivo binario con datos de animación de entrada y, a continuación, aplica estos datos a través de InputSimulationService para volver a crear los movimientos registrados.

Para empezar a reproducir la animación de entrada, debe cargarse desde un archivo mediante la función LoadInputAnimation .

Llama a Reproducir, Pausar o Detener para controlar la reproducción de animación.

El tiempo de animación actual también se puede controlar directamente con la propiedad LocalTime .

Advertencia

Bucle o restablecimiento de animación de entrada o configuración LocalTime directamente al limpiar la escala de tiempo puede producir resultados inesperados al manipular la escena. Solo se registran los movimientos de entrada, no se restablecerán los cambios adicionales, como mover objetos o cambiar el volteo. Asegúrese de volver a cargar la escena si se han realizado cambios irreversibles.

Herramientas del editor para grabar y reproducir animaciones de entrada

Existen varias herramientas en el editor de Unity para grabar y examinar la animación de entrada. Se puede acceder a estas herramientas en la ventana herramientas de simulación de entrada, que se puede abrir desde el menú Mixed Reality Toolkit > Utilities Input Simulation (Simulación de entrada de utilidades > del kit de herramientas).

Nota

La grabación de entrada y la reproducción solo funcionan durante el modo de reproducción.

La ventana de grabación de entrada tiene dos modos:

  • Grabación para grabar la entrada durante el modo de reproducción y guardarla en archivos de animación.

    Al alternar en el botón de grabación, InputRecordingService está habilitado para grabar la entrada. Al desactivar el botón de grabación, se muestra una selección de guardado de archivos y la animación de entrada grabada se guarda en el destino seleccionado.

    El límite de tiempo del búfer también se puede cambiar en este modo.

  • Reproducción para cargar archivos de animación y volver a crear la entrada a través del sistema de simulación de entrada.

    Primero se debe cargar una animación en este modo. Después de grabar la entrada en modo de grabación, la animación resultante se carga automáticamente. También puede hacer clic en el botón "Cargar" para seleccionar un archivo de animación existente.

    Los botones de control de tiempo de izquierda a derecha son:

    • Restablezca el tiempo de reproducción al inicio de la animación.
    • Reproducir animación continuamente con el tiempo.
    • Avance un paso de una vez.

    El control deslizante también se puede usar para limpiar la escala de tiempo de animación.

Advertencia

El bucle o el restablecimiento de la animación de entrada o el limpieza de la escala de tiempo pueden producir resultados inesperados al manipular la escena. Solo se registran los movimientos de entrada, no se restablecerán los cambios adicionales, como mover objetos o cambiar el volteo. Asegúrese de volver a cargar la escena si se han realizado cambios irreversibles.