Eingabeanimationsaufzeichnung

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

Das Aufzeichnen von Eingaben 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 zeitaufwändig sein. Das direkte Aufzeichnen von Eingaben kann den Prozess beschleunigen und reale Daten bereitstellen.
  • Hier lernen Sie die Verwendung von UX-Elementen durch Animationen bei. Wenn Sie Benutzern zeigen, wie sie mit Schaltflächen und anderen Objekten interagieren, kann die Lernkurve geglättet werden.
  • Debuggen von unerwartetem Verhalten, das bei regelmäßiger Verwendung auftreten kann. Das Aufzeichnungssystem unterstützt ein Konzept des "rollierenden Puffers", das die Aufzeichnung aktueller Eingaben im Hintergrund ermöglicht. Weitere Informationen finden Sie unter Input Recording Service.

Aufzeichnungs- und Wiedergabedienste

Es werden zwei Eingabesystemdienste bereitgestellt, um Eingaben aufzeichnen bzw. wieder geben zu können.

Eingabeaufzeichnungsdienst

InputRecordingService nimmt Daten aus der Hauptkameratransformation und aktiven Handcontrollern und speichert sie in einem internen Puffer. Bei Der Angeforderten werden diese Daten dann zur Speicherung und späteren Wiedergabe in Binärdateien serialisiert.

Recording diagram

Um mit der Aufzeichnung der Eingabe zu beginnen, rufen Sie die StartRecording -Funktion auf. StopRecording hält die Aufzeichnung an (verwirft jedoch die bisher aufgezeichneten Daten nicht, verwenden Sie , DiscardRecordedInput um dies bei Bedarf zu tun).

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

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

Weitere Informationen zum Binärdateiformat finden Sie unter Input Animation File Format Specification.

Eingabewiedergabedienst

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

Play Back diagram

Um mit der Wiedergabe der Eingabeanimation zu beginnen, sollte sie mithilfe der LoadInputAnimation-Funktion aus einer Datei geladen werden.

Rufen Sie Wiedergabe, Anhalten oderBeenden auf, um die Wiedergabe der Animation zu steuern.

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

Warnung

Das Schleifen oder Zurücksetzen der Eingabeanimation oder -einstellung direkt durch Bereinigung der Zeitachse kann beim Bearbeiten der Szene LocalTime zu unerwarteten Ergebnissen führen! Nur die Eingabebewegungen werden aufgezeichnet. Alle zusätzlichen Änderungen wie das Verschieben von Objekten oder Kippschaltern werden nicht zurückgesetzt. Stellen Sie sicher, dass Sie die Szene erneut laden, wenn nicht rückgängig gemachte Änderungen vorgenommen wurden.

Editortools für die Aufzeichnung und Wiedergabe von Eingabeanimationen

Im Unity-Editor gibt es eine Reihe von Tools zum Aufzeichnen und Untersuchen von Eingabeanimationen. Auf diese Tools kann im Fenster eingabesimulationstools zugegriffen werden, das über das Menü Mixed Reality Toolkit > Utilities > Input Simulation geöffnet werden kann.

Hinweis

Die Eingabeaufzeichnung und -wiedergabe funktioniert nur im Wiedergabemodus.

Das Eingabeaufzeichnungsfenster verfügt über zwei Modi:

  • Aufzeichnung für die Aufzeichnung von Eingaben im Wiedergabemodus und speichern sie in Animationsdateien.

    Beim Umschalten auf der Aufzeichnungsschaltfläche wird InputRecordingService für das Aufzeichnen von Eingaben aktiviert. Wenn Sie die Aufzeichnungsschaltfläche deaktivieren, wird eine Dateisparauswahl 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 der Eingabe über das Eingabesimulationssystem.

    Eine Animation muss zuerst in diesem Modus geladen werden. Nach dem Aufzeichnen der Eingabe im Aufzeichnungsmodus wird die resultierende Animation automatisch geladen. Klicken Sie alternativ auf die Schaltfläche "Laden", um eine vorhandene Animationsdatei auszuwählen.

    Die Schaltflächen für die Zeitsteuerung von links nach rechts sind:

    • Setzen Sie die Wiedergabezeit auf den Anfang der Animation zurück.
    • Wiedergabeanimation kontinuierlich im Laufe der Zeit.
    • Gehen Sie einen Schritt vorwärts.

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

Warnung

Das Schleifen oder Zurücksetzen der Eingabeanimation oder das Bereinigung der Zeitachse kann beim Bearbeiten der Szene zu unerwarteten Ergebnissen führen. Nur die Eingabebewegungen werden aufgezeichnet. Alle zusätzlichen Änderungen wie das Verschieben von Objekten oder Kippschaltern werden nicht zurückgesetzt. Stellen Sie sicher, dass Sie die Szene erneut laden, wenn nicht rückgängig gemachte Änderungen vorgenommen wurden.