Rejestrowanie animacji wejściowej

MrTK zawiera system rejestrowania, za pomocą którego dane dotyczące ruchu głowy i śledzenia rąk mogą być przechowywane w plikach animacji. Następnie zarejestrowane dane można odtworzyć przy użyciu systemu symulacji danych wejściowych.

Rejestrowanie danych wejściowych jest przydatnym narzędziem w różnych sytuacjach:

  • Tworzenie zautomatyzowanych testów interakcji, manipulacji, narzędzi do rozwiązywania itp. Tworzenie 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życia elementów środowiska użytkownika za pomocą animacji. Pokazanie użytkownikom, jak wchodzić w interakcje z przyciskami i innymi obiektami, może wygładzić krzywą uczenia.
  • Debugowanie nieoczekiwanego zachowania, które może wystąpić podczas regularnego użycia. System rejestrowania obsługuje koncepcję "buforu stopniowego", która umożliwia rejestrowanie ostatnich danych wejściowych w tle. Zobacz Input Recording Service (Usługa rejestrowania danych wejściowych).

Usługi rejestrowania i odtwarzania

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

Usługa rejestrowania danych wejściowych

InputRecordingService pobiera dane z głównej transformacji aparatu i aktywnych kontrolerów ręki oraz zapisuje je w buforze wewnętrznym. Gdy te dane są żądane, są następnie serializowane do plików binarnych w celu przechowywania i późniejszego odtwarzania.

Recording diagram

Aby rozpocząć rejestrowanie danych wejściowych, wywołaj StartRecording funkcję . StopRecording spowoduje wstrzymanie rejestrowania (ale nie odrzuci zarejestrowanych do tej pory danych, użyj funkcji , DiscardRecordedInput aby to zrobić w razie potrzeby).

Domyślnie rozmiar buforu rejestrowania jest ograniczony do 30 sekund. Dzięki temu usługa rejestrowania może przechowywać nagrania w tle bez gromadzenia zbyt dużo danych, a następnie zaoszczędzić ostatnie 30 sekund w razie potrzeby. Przedział czasu można zmienić przy użyciu właściwości lub rejestrowanie może być nieograniczone RecordingBufferTimeLimit przy użyciu UseBufferTimeLimit opcji .

Dane w buforze rejestrowania 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 danych wejściowych).

Usługa odtwarzania danych wejściowych

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

Play Back diagram

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

Wywołaj funkcje Odtwarzania, Wstrzymywania lub Zatrzymaj, aby sterować odtwarzaniem animacji.

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

Ostrzeżenie

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

Narzędzia edytora do rejestrowania i odtwarzania animacji wejściowej

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

Uwaga

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

Okno rejestrowania danych wejściowych ma dwa tryby:

  • Rejestrowanie w celu rejestrowania danych wejściowych w trybie odtwarzania i zapisywania ich w plikach animacji.

    Podczas przełączanie przycisku rejestrowania przycisk jest InputRecordingService włączony w celu rejestrowania danych wejściowych. Gdy wyłączysz przycisk rejestrowania, zostanie wyświetlone zaznaczenie zapisu pliku, a zarejestrowane animacje wejściowe zostaną zapisane w wybranym miejscu docelowym.

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

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

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

    Przyciski sterowania czasem od lewej do prawej:

    • Resetuj czas odtwarzania do początku animacji.
    • Odtwarzanie animacji w sposób ciągły w czasie.
    • Krok do przodu o jeden krok.

    Za pomocą suwaka można również przewijać oś czasu animacji.

Ostrzeżenie

Zapętlenie lub zresetowanie animacji wejściowej albo czyszczenie 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 przerzucanie przełączników, nie zostaną zresetowane. Pamiętaj, aby ponownie załadować scenę, jeśli zostały wprowadzone nieodwracalne zmiany.