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.