Gravação de animação de entrada — MRTK2

O MRTK apresenta um sistema de gravação através do qual os dados de controlo manual e movimento de cabeça podem ser armazenados em ficheiros de animação. Os dados registados podem ser reproduzidos novamente com o sistema de simulação de entrada.

A entrada de gravação é uma ferramenta útil em diversas situações:

  • Criar testes automatizados para interação, manipulações, solucionadores, etc. A criação do movimento de controladores e mãos para estes testes pode ser morosa. Gravar entradas diretamente pode acelerar o processo e fornecer dados do mundo real.
  • Ensinar a utilização de elementos UX através de animações. Mostrar aos utilizadores como interagir com botões e outros objetos pode suavizar a curva de aprendizagem.
  • Depurar comportamentos inesperados que podem ser encontrados durante a utilização regular. O sistema de gravação suporta um conceito de "memória intermédia sem interrupção" que permite gravar entradas recentes em segundo plano. Veja Serviço de Gravação de Entrada.

Serviços de gravação e reprodução

São fornecidos dois serviços de sistema de entrada para gravar e reproduzir entradas, respetivamente.

Serviço de gravação de entrada

InputRecordingService obtém dados da transformação da câmara principal e dos controladores de mão ativos e armazena-os numa memória intermédia interna. Quando solicitado, estes dados são serializados em ficheiros binários para armazenamento e repetição posterior.

Diagrama de gravação

Para iniciar a gravação, chame a StartRecording função. StopRecording colocará em pausa a gravação (mas não eliminará os dados gravados até agora, utilize DiscardRecordedInput para fazê-lo, se necessário).

Por predefinição, o tamanho da memória intermédia de gravação está limitado a 30 segundos. Isto permite que o serviço de gravação continue a gravar em segundo plano sem acumular demasiados dados e, em seguida, guarde os últimos 30 segundos quando necessário. O intervalo de tempo pode ser alterado com a propriedade ou a RecordingBufferTimeLimit gravação pode ser ilimitada com a opção UseBufferTimeLimit .

Os dados na memória intermédia de gravação podem ser guardados num ficheiro binário com a função SaveInputAnimation .

Para obter detalhes sobre o formato de ficheiro binário, veja Especificação de Formato de Ficheiro de Animação de Animação de Entrada.

Serviço de reprodução de entrada

InputPlaybackService lê um ficheiro binário com dados de animação de entrada e, em seguida, aplica estes dados através do InputSimulationService para recriar os movimentos registados.

diagrama reproduzir animação de entrada

Para começar a reproduzir a animação de entrada de volta, deve ser carregada a partir de um ficheiro com a função LoadInputAnimation .

Chamar Reprodução, Colocar em Pausa ou Parar para controlar a reprodução de animação.

O tempo de animação atual também pode ser controlado diretamente com a propriedade LocalTime .

Aviso

Colocar em loop ou repor a animação ou definição LocalTime de entrada diretamente ao limpar a linha cronológica pode produzir resultados inesperados ao manipular a cena! Apenas os movimentos de entrada são registados. Quaisquer alterações adicionais, como objetos móveis ou comutadores de inverter, não serão repostas. Certifique-se de que recarrega a cena se tiverem sido feitas alterações irreversíveis.

Ferramentas de editor para gravar e reproduzir animação de entrada

Existem várias ferramentas no editor do Unity para gravar e examinar a animação de entrada. Estas ferramentas podem ser acedidas na janela ferramentas de simulação de entrada, que podem ser abertas a partir do Mixed Reality menu Simulação de Entrada de Utilitários > do Toolkit>.

Nota

A gravação e a reprodução de entrada só funcionam durante o modo de reprodução.

A janela de gravação de entrada tem dois modos:

  • Gravação para gravar entradas durante o modo de reprodução e guardá-la em ficheiros de animação.

    Ao alternar no botão de gravação, o InputRecordingService está ativado para gravar a entrada. Ao desativar o botão de gravação, é apresentada uma seleção de guardar ficheiros e a animação de entrada gravada é guardada no destino selecionado.

    O limite de tempo da memória intermédia também pode ser alterado neste modo.

  • Reprodução para carregar ficheiros de animação e, em seguida, recriar entradas através do sistema de simulação de entrada.

    Uma animação tem de ser carregada primeiro neste modo. Depois de gravar a entrada no modo de gravação, a animação resultante é carregada automaticamente. Em alternativa, clique no botão "Carregar" para selecionar um ficheiro de animação existente.

    Os botões de controlo de tempo da esquerda para a direita são:

    • Reponha a hora de reprodução para o início da animação.
    • Reproduzir animação continuamente ao longo do tempo.
    • Avance um passo para a frente uma vez.

    O controlo de deslize também pode ser utilizado para percorrer a linha cronológica de animação.

Aviso

A repetição ou reposição da animação de entrada ou a limpeza da linha cronológica podem produzir resultados inesperados ao manipular a cena! Apenas os movimentos de entrada são registados. Quaisquer alterações adicionais, como objetos móveis ou comutadores de inverter, não serão repostas. Certifique-se de que recarrega a cena se tiverem sido feitas alterações irreversíveis.