Aufzeichnung von Eingabeanimationen — MRTK2

MRTK verfügt über ein Aufzeichnungssystem, mit dem Kopfbewegungen und Handverfolgungsdaten in Animationsdateien gespeichert werden können. Die aufgezeichneten Daten können dann mithilfe des Eingabesimulationssystems wiedergegeben werden.

Die Aufzeichnungseingabe ist ein nützliches Tool in einer Vielzahl von Situationen:

  • Erstellen automatisierter Tests für Interaktion, Manipulationen, Solver usw. Das Erstellen der Bewegung von Controllern und Händen für diese Tests kann zeitaufwendig sein. Die Aufzeichnung von Eingaben kann den Prozess beschleunigen und reale Daten bereitstellen.
  • Lehren der Verwendung von UX-Elementen durch Animationen. Zeigt Benutzern, wie Sie mit Schaltflächen und anderen Objekten interagieren, kann die Lernkurve glätten.
  • Debuggen unerwarteter Verhaltensweisen, die während der regulären Verwendung auftreten können. Das Aufzeichnungssystem unterstützt ein "Rollpuffer"-Konzept, das die Aufzeichnung neuer Eingaben im Hintergrund ermöglicht. Siehe Eingabeaufzeichnungsdienst.

Aufzeichnungs- und Wiedergabedienste

Zwei Eingabesystemdienste werden zum Aufzeichnen und Wiedergeben von Eingaben bereitgestellt.

Eingabeaufzeichnungsdienst

InputRecordingService übernimmt Daten aus der Hauptkameratransformation und aktiven Handcontrollern und speichert sie in einem internen Puffer. Wenn sie angefordert werden, werden diese Daten dann in Binärdateien für die Speicherung und spätere Wiedergabe serialisiert.

Recording diagram

So starten Sie die Aufzeichnung des Eingabeaufrufs StartRecording . StopRecording hält die Aufzeichnung an (aber nicht die bisher aufgezeichneten Daten verwerfen, verwenden Sie DiscardRecordedInput dies bei Bedarf).

Standardmäßig ist die Größe des Aufzeichnungspuffers auf 30 Sekunden begrenzt. Dadurch kann der Aufzeichnungsdienst die Aufzeichnung im Hintergrund beibehalten, ohne zu viele Daten zu sammeln und dann die letzten 30 Sekunden bei Bedarf zu speichern. Das Zeitintervall kann mithilfe der Eigenschaft geändert werden, oder die Aufzeichnung kann mit der RecordingBufferTimeLimitUseBufferTimeLimit Option unbegrenzt sein.

Die Daten im Aufzeichnungspuffer können mithilfe der Funktion SaveInputAnimation in einer Binärdatei gespeichert werden.

Ausführliche Informationen zum Binärdateiformat finden Sie in der Spezifikation des Eingabeanimationsdateiformats.

Eingabewiedergabedienst

InputPlaybackService liest eine Binärdatei mit Eingabeanimationsdaten und wendet diese Daten dann über den InputSimulationService an, um die aufgezeichneten Bewegungen neu zu erstellen.

Play Back diagram

Um die Wiedergabe der Eingabeanimation zu starten, sollte sie über die LoadInputAnimation-Funktion aus einer Datei geladen werden.

Anrufwiedergabe, Anhalten oder Beenden, um die Animationswiedergabe zu steuern.

Die aktuelle Animationszeit kann auch direkt mit der LocalTime-Eigenschaft gesteuert werden.

Warnung

Die Schleife oder das Zurücksetzen von Eingabeanimationen oder Einstellungen LocalTime direkt durch Das Bereinigen der Zeitachse kann unerwartete Ergebnisse beim Bearbeiten der Szene ergeben! Nur die Eingabebewegungen werden aufgezeichnet, alle zusätzlichen Änderungen wie das Verschieben von Objekten oder Kippschaltern werden nicht zurückgesetzt. Laden Sie die Szene neu, wenn unwiderrufliche Änderungen vorgenommen wurden.

Editortools zum Aufzeichnen und Wiedergeben von Eingabeanimationen

Im Unity-Editor zum Aufzeichnen und Untersuchen der Eingabeanimation gibt es eine Reihe von Tools. Auf diese Tools kann im Fenster der Eingabesimulationstools zugegriffen werden, auf das im Menü Mixed Reality Toolkit-Dienstprogramme >> Eingabesimulation geöffnet werden kann.

Hinweis

Die Eingabeaufzeichnung und -wiedergabe funktioniert nur während des Wiedergabemodus.

Das Eingabeaufzeichnungsfenster verfügt über zwei Modi:

  • Aufzeichnung für die Aufzeichnung der Eingabe während des Wiedergabemodus und Speichern in Animationsdateien.

    Wenn Sie auf die Aufzeichnungsschaltfläche umschalten, wird die InputRecordingService Eingabe aufgezeichnet. Wenn Sie die Aufzeichnungsschaltfläche deaktivieren, wird eine Dateispeicherauswahl angezeigt, und die aufgezeichnete Eingabeanimation wird am ausgewählten Ziel gespeichert.

    Das Pufferzeitlimit kann auch in diesem Modus geändert werden.

  • Wiedergabe zum Laden von Animationsdateien und anschließendes Erneutes Erstellen von Eingaben über das Eingabesimulationssystem.

    Eine Animation muss zuerst in diesem Modus geladen werden. Nach der Aufzeichnung der Eingabe im Aufzeichnungsmodus wird die resultierende Animation automatisch geladen. Alternativ können Sie auf die Schaltfläche "Laden" klicken, um eine vorhandene Animationsdatei auszuwählen.

    Die Zeitsteuerungsschaltflächen von links nach rechts sind:

    • Setzen Sie die Wiedergabezeit auf den Anfang der Animation zurück.
    • Animationen werden im Laufe der Zeit kontinuierlich wiedergegeben.
    • Schritt vorwärts ein Zeitschritt.

    Der Schieberegler kann auch verwendet werden, um die Animationszeitachse zu durchlaufen.

Warnung

Das Schleifen oder Zurücksetzen von Eingabeanimationen oder das Bereinigen der Zeitachse führt möglicherweise zu unerwarteten Ergebnissen, wenn sie die Szene bearbeiten! Nur die Eingabebewegungen werden aufgezeichnet, alle zusätzlichen Änderungen wie das Verschieben von Objekten oder Kippschaltern werden nicht zurückgesetzt. Laden Sie die Szene neu, wenn unwiderrufliche Änderungen vorgenommen wurden.