Grabación de animación de entrada: MRTK2

MRTK cuenta con un sistema de grabación mediante el cual los datos de movimiento de 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:

  • Crear pruebas automatizadas para la interacción, las manipulaciones, los 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 comportamientos inesperados que se pueden 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 solicite, estos datos se serializan en archivos binarios para el almacenamiento y, posteriormente, se reproducen.

Recording diagram

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 ilimitado 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.

Play Back diagram

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

Llame 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

Bucles o restablecer la animación de entrada o establecer LocalTime directamente mediante la limpieza de 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 de volteo. Asegúrese de volver a cargar la escena si se han realizado cambios irreversibles.

Herramientas del editor para grabar y reproducir la animación 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 > Utilidades > de simulación de entrada.

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 alternar 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. Como alternativa, haga 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 una vez.

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

Advertencia

¡La animación de entrada en bucle o el restablecimiento 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 de volteo. Asegúrese de volver a cargar la escena si se han realizado cambios irreversibles.