Gravação da animação de entrada

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

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

  • Criando testes automatizados para interação, manipulações, solucionadores etc. A criação do movimento de controladores e mãos para esses testes pode ser demorada. Registrar a entrada diretamente pode acelerar o processo e fornecer dados do mundo real.
  • Ensinando 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.
  • Depuração de 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 o 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

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

Recording diagram

Para iniciar a gravação de entrada, chame a StartRecording função. StopRecording pausará a gravação (mas não descartará os dados registrados 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.

Play Back diagram

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

Chamar Reprodução, 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 ou a configuração LocalTime de entrada diretamente esfregando a 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 alterações irreversíveis tiverem sido feitas.

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 Realidade Misturada Toolkit > utilitários>.

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:

  • Gravando para gravar a entrada durante o modo de reprodução e salvando-a em arquivos de animação.

    Ao alternar no botão de gravação, o InputRecordingService botão 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 do 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 registrar 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.
    • Avance uma etapa.

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

Aviso

Fazer loop ou redefinir a animação de entrada ou limpar a 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 alterações irreversíveis tiverem sido feitas.