Registrazione dell'animazione di input

MRTK include un sistema di registrazione tramite il quale i dati di movimento della testa e tracciamento della mano possono essere archiviati in file di animazione. I dati registrati possono quindi essere riprodotti usando il sistema di simulazione di input.

La registrazione dell'input è uno strumento utile in diverse situazioni:

  • Creazione di test automatizzati per l'interazione, le manipolazioni, i risolutori e così via. La creazione dello spostamento di controller e mani per questi test può richiedere molto tempo. La registrazione diretta dell'input può velocizzare il processo e fornire dati reali.
  • Apprendimento dell'uso di elementi dell'esperienza utente tramite animazioni. Mostrare agli utenti come interagire con i pulsanti e altri oggetti può smussare la curva di apprendimento.
  • Debug di un comportamento imprevisto che può verificarsi durante l'uso regolare. Il sistema di registrazione supporta un concetto di "buffer in sequenza" che consente di registrare l'input recente in background. Vedere Servizio di registrazione input.

Servizi di registrazione e riproduzione

Vengono forniti due servizi di sistema di input per registrare e riprodurre rispettivamente l'input.

Servizio di registrazione dell'input

InputRecordingService accetta i dati dalla trasformazione principale della fotocamera e dai controller della mano attivi e li archivia in un buffer interno. Quando richiesto, questi dati vengono serializzati in file binari per l'archiviazione e la riproduzione successiva.

Recording diagram

Per avviare la registrazione dell'input, chiamare la StartRecording funzione . StopRecording sospende la registrazione(ma non rimuove i dati registrati finora, usare DiscardRecordedInput per eseguire questa operazione, se necessario).

Per impostazione predefinita, le dimensioni del buffer di registrazione sono limitate a 30 secondi. In questo modo il servizio di registrazione può continuare a registrare in background senza accumulare troppi dati e quindi salvare gli ultimi 30 secondi quando necessario. L'intervallo di tempo può essere modificato usando la RecordingBufferTimeLimit proprietà oppure la registrazione può essere illimitata usando l'opzione UseBufferTimeLimit .

I dati nel buffer di registrazione possono essere salvati in un file binario usando la funzione SaveInputAnimation.

Per informazioni dettagliate sul formato di file binario, vedere Specifica del formato del file di animazione di input.

Servizio di riproduzione di input

InputPlaybackService legge un file binario con dati di animazione di input e quindi applica questi dati tramite InputSimulationService per ricreare i movimenti registrati.

Play Back diagram

Per avviare la riproduzione dell'animazione di input, è necessario caricarla da un file usando la funzione LoadInputAnimation.

Chiamare Play, Pause oStop per controllare la riproduzione dell'animazione.

Il tempo di animazione corrente può anche essere controllato direttamente con la proprietà LocalTime.

Avviso

La ripetizione a ciclo continuo o la reimpostazione diretta dell'animazione o dell'impostazione di input tramite lo scrubbing della sequenza temporale possono produrre risultati imprevisti LocalTime durante la modifica della scena. Vengono registrati solo i movimenti di input, eventuali modifiche aggiuntive, ad esempio lo spostamento di oggetti o l'inversione di interruttori, non verranno reimpostate. Assicurarsi di ricaricare la scena se sono state apportate modifiche irreversibili.

Strumenti dell'editor per la registrazione e la riproduzione dell'animazione di input

Nell'editor di Unity sono disponibili diversi strumenti per la registrazione e l'analisi dell'animazione di input. È possibile accedere a questi strumenti nella finestra degli strumenti di simulazione dell'input,che può essere aperta dal menu Mixed Reality Toolkit > Utilities > Input Simulation( Simulazione input).

Nota

La registrazione e la riproduzione di input funzionano solo durante la modalità di riproduzione.

La finestra di registrazione di input ha due modalità:

  • Registrazione per la registrazione dell'input durante la modalità di riproduzione e salvataggio nei file di animazione.

    Quando si attiva il pulsante di registrazione, è abilitato InputRecordingService per registrare l'input. Quando si disattiva il pulsante di registrazione, viene visualizzata una selezione di salvataggio file e l'animazione di input registrata viene salvata nella destinazione selezionata.

    Il limite di tempo del buffer può essere modificato anche in questa modalità.

  • Riproduzione per il caricamento dei file di animazione e la ricreazione dell'input tramite il sistema di simulazione di input.

    Un'animazione deve essere caricata prima in questa modalità. Dopo la registrazione dell'input in modalità di registrazione, l'animazione risultante viene caricata automaticamente. In alternativa, fare clic sul pulsante "Carica" per selezionare un file di animazione esistente.

    I pulsanti di controllo dell'ora da sinistra a destra sono:

    • Reimpostare l'ora di riproduzione all'inizio dell'animazione.
    • Riprodurre l'animazione in modo continuo nel tempo.
    • Eseguire un passaggio successivo.

    Il dispositivo di scorrimento può essere usato anche per eseguire lo scrubbing della sequenza temporale dell'animazione.

Avviso

Il ciclo o la reimpostazione dell'animazione di input o lo scrubbing della sequenza temporale possono produrre risultati imprevisti durante la modifica della scena. Vengono registrati solo i movimenti di input, eventuali modifiche aggiuntive, ad esempio lo spostamento di oggetti o il capovolgimento degli interruttori, non verranno reimpostate. Assicurarsi di ricaricare la scena se sono state apportate modifiche irreversibili.