Nagrywanie animacji wejściowej — MRTK2

Funkcja MRTK zawiera system nagrywania, za pomocą którego można przechowywać dane przenoszenia głowy i śledzenia rąk w plikach animacji. Zarejestrowane dane można następnie odtworzyć przy użyciu systemu symulacji wejściowej.

Rejestrowanie danych wejściowych to przydatne narzędzie w różnych sytuacjach:

  • Tworzenie zautomatyzowanych testów interakcji, manipulacji, rozwiązań itp. Tworzenie ruchu kontrolerów i rąk dla tych testów może być czasochłonne. Bezpośrednie rejestrowanie danych wejściowych może przyspieszyć proces i zapewnić rzeczywiste dane.
  • Nauczanie używania elementów środowiska użytkownika za pomocą animacji. Pokazano użytkownikom, jak korzystać z przycisków i innych obiektów, mogą wygładzyć krzywą uczenia.
  • Debugowanie nieoczekiwanego zachowania, które może wystąpić podczas regularnego używania. System nagrywania obsługuje koncepcję "buforu kroczącego", która umożliwia rejestrowanie ostatnich danych wejściowych w tle. Zobacz Usługa nagrywania danych wejściowych.

Usługi nagrywania i odtwarzania

Dwa usługi systemu wejściowego są udostępniane odpowiednio do rejestrowania i odtwarzania danych wejściowych.

Usługa rejestrowania danych wejściowych

InputRecordingService pobiera dane z głównego przekształcenia aparatu i aktywnych kontrolerów ręcznych i przechowuje je w buforze wewnętrznym. Gdy zażądano tych danych, zostaną zserializowane do plików binarnych na potrzeby przechowywania i późniejszego odtwarzania.

Aby rozpocząć nagrywanie danych wejściowych, wywołaj StartRecording funkcję . StopRecording wstrzymuje nagrywanie (ale nie odrzuca danych zarejestrowanych do tej pory, użyj DiscardRecordedInput polecenia , aby to zrobić w razie potrzeby).

Domyślnie rozmiar buforu nagrywania jest ograniczony do 30 sekund. Dzięki temu usługa nagrywania może zachować nagrywanie w tle bez gromadzenia zbyt dużej ilości danych, a następnie zapisać ostatnie 30 sekund, gdy jest to wymagane. Interwał czasu można zmienić przy użyciu RecordingBufferTimeLimit właściwości lub nagrywanie może być nieograniczone przy użyciu UseBufferTimeLimit opcji .

Dane w buforze nagrywania można zapisać w pliku binarnym przy użyciu funkcji SaveInputAnimation .

Aby uzyskać szczegółowe informacje na temat formatu pliku binarnego, zobacz Input Animation File Format Specification (Specyfikacja formatu pliku animacji wejściowej).

Usługa odtwarzania wejściowego

InputPlaybackService odczytuje plik binarny z danymi animacji wejściowej, a następnie stosuje te dane za pośrednictwem usługi InputSimulationService , aby odtworzyć zarejestrowane ruchy.

— odtwarzanie diagramu

Aby rozpocząć odtwarzanie animacji wejściowej, należy załadować ją z pliku przy użyciu funkcji LoadInputAnimation .

Wywołaj odtwarzanie, wstrzymaj lub zatrzymaj , aby kontrolować odtwarzanie animacji.

Bieżący czas animacji można również kontrolować bezpośrednio za pomocą właściwości LocalTime .

Ostrzeżenie

Sprzężenie lub zresetowanie animacji wejściowej lub ustawienie LocalTime bezpośrednio przez szorowanie osi czasu może spowodować nieoczekiwane wyniki podczas manipulowania sceną! Rejestrowane są tylko ruchy wejściowe, wszelkie dodatkowe zmiany, takie jak przenoszenie obiektów lub przełączników przerzucania, nie zostaną zresetowane. Pamiętaj, aby ponownie załadować scenę, jeśli wprowadzono nieodwracalne zmiany.

Narzędzia edytora do nagrywania i odtwarzania animacji danych wejściowych

W edytorze aparatu Unity istnieje wiele narzędzi do rejestrowania i badania animacji wejściowej. Dostęp do tych narzędzi można uzyskać w oknie narzędzi symulacji wejściowych, które można otworzyć z menu Mixed Reality Toolkit > Utilities > Input Simulation.

Uwaga

Nagrywanie danych wejściowych i odtwarzanie działa tylko w trybie odtwarzania.

Okno nagrywania danych wejściowych ma dwa tryby:

  • Nagrywanie danych wejściowych podczas nagrywania w trybie odtwarzania i zapisywanie go w plikach animacji.

    Po włączeniu przycisku InputRecordingService nagrywania włączono rejestrowanie danych wejściowych. Po przełączeniu przycisku nagrywania jest wyświetlany wybór zapisywania pliku, a zarejestrowana animacja wejściowa jest zapisywana w wybranym miejscu docelowym.

    Limit czasu buforu można również zmienić w tym trybie.

  • Odtwarzanie ładowania plików animacji, a następnie ponowne tworzenie danych wejściowych za pośrednictwem systemu symulacji wejściowej.

    Najpierw należy załadować animację w tym trybie. Po zapisaniu danych wejściowych w trybie nagrywania wynikowa animacja zostanie automatycznie załadowana. Możesz też kliknąć przycisk "Załaduj", aby wybrać istniejący plik animacji.

    Przyciski kontrolki czasu od lewej do prawej to:

    • Zresetuj czas odtwarzania na początek animacji.
    • Odtwarzaj animację stale w czasie.
    • Krok naprzód po jednym kroku.

    Suwak może również służyć do czyszczenia osi czasu animacji.

Ostrzeżenie

Sprzężenie lub zresetowanie animacji wejściowej lub szorowanie osi czasu może spowodować nieoczekiwane wyniki podczas manipulowania sceną! Rejestrowane są tylko ruchy wejściowe, wszelkie dodatkowe zmiany, takie jak przenoszenie obiektów lub przełączników przerzucania, nie zostaną zresetowane. Pamiętaj, aby ponownie załadować scenę, jeśli wprowadzono nieodwracalne zmiany.