Share via


Registrazione dell'animazione di input - MRTK2

MRTK offre un sistema di registrazione in base al quale è possibile archiviare i dati di rilevamento della testa e mano nei file di animazione. I dati registrati possono quindi essere riprodotti usando il sistema di simulazione di input.

L'input di registrazione è uno strumento utile in diverse situazioni:

  • Creazione di test automatizzati per l'interazione, la manipolazione, i risolutori e così via. La creazione del movimento dei controller e delle mani per questi test può richiedere molto tempo. L'input di registrazione può velocizzare il processo e fornire dati reali.
  • Insegnamento dell'uso degli elementi dell'esperienza utente tramite animazioni. Mostra agli utenti come interagire con i pulsanti e altri oggetti può regolare la curva di apprendimento.
  • Debug di un comportamento imprevisto che potrebbe essere rilevato 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 registrazione input.

Servizi di registrazione e riproduzione

Due servizi di sistema di input vengono forniti rispettivamente per registrare e riprodurre l'input.

Servizio registrazione input

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

Per avviare la chiamata di input di registrazione alla StartRecording funzione. StopRecording sospende la registrazione (ma non elimina 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. Ciò consente al servizio di registrazione di mantenere la registrazione 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à o 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 file binario, vedere Specifica del formato 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.

Per iniziare a riprodurre l'animazione di input, deve essere caricata da un file usando la funzione LoadInputAnimation .

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

L'ora di animazione corrente può essere controllata direttamente con la proprietà LocalTime .

Avviso

Il ciclo o la reimpostazione dell'animazione di input o l'impostazione LocalTime direttamente eliminando la sequenza temporale potrebbero produrre risultati imprevisti durante la modifica della scena. Vengono registrati solo gli spostamenti di input, eventuali modifiche aggiuntive, ad esempio lo spostamento di oggetti o le opzioni di scorrimento 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

Esistono diversi strumenti nell'editor unity per registrare ed esaminare l'animazione di input. Questi strumenti possono essere accessibili nella finestra degli strumenti di simulazione di input, che possono essere aperti dal menu Realtà mista Toolkit > Utilities > Input Simulation.

Nota

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

La finestra di registrazione di input include due modalità:

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

    Quando si attiva il pulsante di registrazione, è InputRecordingService abilitato 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ò anche essere modificato in questa modalità.

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

    Per prima cosa, è necessario caricare un'animazione in questa modalità. Dopo aver registrato l'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 ora da sinistra a destra sono:

    • Reimpostare l'ora di riproduzione all'inizio dell'animazione.
    • Riprodurre l'animazione in modo continuo nel tempo.
    • Avanti una volta.

    Il dispositivo di scorrimento può essere usato anche per pulire la sequenza temporale dell'animazione.

Avviso

Il ciclo o la reimpostazione dell'animazione di input o la pulizia della sequenza temporale potrebbero produrre risultati imprevisti durante la modifica della scena! Vengono registrati solo gli spostamenti di input, eventuali modifiche aggiuntive, ad esempio lo spostamento di oggetti o le opzioni di scorrimento non verranno reimpostate. Assicurarsi di ricaricare la scena se sono state apportate modifiche irreversibili.