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

O MRTK apresenta um sistema de gravação pelo qual os dados de movimentação de cabeça e acompanhamento manual podem ser armazenados em arquivos de animação. Os dados gravados podem ser reproduzidos usando o sistema de simulação de entrada.

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

  • Criando testes automatizados para interação, manipulações, solucionadores etc. A criação da movimentação de controladores e mãos para esses testes pode ser demorada. A gravação de entrada diretamente pode acelerar o processo e fornecer dados do mundo real.
  • Ensinar o uso de elementos UX por meio de animações. Mostrar aos usuários como interagir com botões e outros objetos pode suavizar a curva de aprendizado.
  • Depurando um comportamento inesperado que pode ser encontrado durante o uso regular. O sistema de gravação dá suporte a um conceito de "buffer sem interrupção" que permite a gravação de entradas recentes em segundo plano. Consulte Serviço de Gravação de Entrada.

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

Dois serviços do sistema de entrada são fornecidos para registrar e reproduzir a entrada, respectivamente.

Serviço de gravação de entrada

InputRecordingServiceobtém dados da transformação da câmera main e dos controladores de mão ativos e os armazena em um buffer interno. Quando solicitado, esses dados são serializados em arquivos binários para armazenamento e reprodução posterior.

Diagrama de gravação

Para iniciar a gravação, chame a StartRecording função de entrada. StopRecording pausará a gravação (mas não descartará os dados gravados até agora, use DiscardRecordedInput para fazer isso, se necessário).

Por padrão, o tamanho do buffer de gravação é limitado a 30 segundos. Isso permite que o serviço de gravação continue gravando em segundo plano sem acumular muitos dados e salve os últimos 30 segundos quando necessário. O intervalo de tempo pode ser alterado usando a propriedade ou a RecordingBufferTimeLimit gravação pode ser ilimitada usando a opção UseBufferTimeLimit .

Os dados no buffer de gravação podem ser salvos em um arquivo binário usando a função SaveInputAnimation .

Para obter detalhes sobre o formato de arquivo binário, consulte Especificação de formato de arquivo de animação de entrada.

Serviço de reprodução de entrada

InputPlaybackService lê um arquivo binário com dados de animação de entrada e aplica esses dados por meio do InputSimulationService para recriar os movimentos registrados.

diagrama reproduzir animação de entrada Reprodução

Para começar a reproduzir a animação de entrada, ela deve ser carregada de um arquivo usando a função LoadInputAnimation .

Chame Reproduzir, Pausar ou Parar para controlar a reprodução da animação.

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

Aviso

Fazer loop ou redefinir a animação de entrada ou a configuração LocalTime diretamente esfregando o linha do tempo pode gerar resultados inesperados ao manipular a cena! Somente os movimentos de entrada são registrados, quaisquer alterações adicionais, como mover objetos ou inverter comutadores, não serão redefinidas. Certifique-se de recarregar a cena se forem feitas alterações irreversíveis.

Ferramentas do 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. Essas ferramentas podem ser acessadas na janela ferramentas de simulação de entrada, que podem ser abertas no menu Simulação de Entrada de Utilitários do kit de ferramentas >> Realidade Misturada.

Observação

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 a entrada durante o modo de reprodução e salvá-la em arquivos de animação.

    Ao alternar no botão de gravação, o InputRecordingService está habilitado para gravar a entrada. Ao alternar o botão de gravação, uma seleção de salvamento de arquivo é mostrada e a animação de entrada gravada é salva no destino selecionado.

    O limite de tempo de buffer também pode ser alterado nesse modo.

  • Reprodução para carregar arquivos de animação e recriar a entrada por meio do sistema de simulação de entrada.

    Uma animação deve ser carregada nesse modo primeiro. Depois de gravar a entrada no modo de gravação, a animação resultante é carregada automaticamente. Como alternativa, clique no botão "Carregar" para selecionar um arquivo de animação existente.

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

    • Redefina o tempo de reprodução para o início da animação.
    • Reproduza a animação continuamente ao longo do tempo.
    • Passo a passo uma etapa.

    O controle deslizante também pode ser usado para limpar a animação linha do tempo.

Aviso

Fazer loop ou redefinir a animação de entrada ou esfregar o linha do tempo pode gerar resultados inesperados ao manipular a cena! Somente os movimentos de entrada são registrados, quaisquer alterações adicionais, como mover objetos ou inverter comutadores, não serão redefinidas. Certifique-se de recarregar a cena se forem feitas alterações irreversíveis.