• Guides
    • English
    • 日本語
  • API Documentation
  • 機能概要
  • ツール
  • Input Animation Recording

    Show / Hide Table of Contents
    • MRTK を始める
      • Release Notes
      • MRTK Package Contents
      • Updating from earlier versions
      • HTK からの移植ガイド
      • MRTK のビルドとデプロイ
      • NuGet Packages
      • Getting started with MRTK and XR SDK
      • Performance
      • Hologram Stabilization (ホログラムの安定化)
    • アーキテクチャ
      • 全体像
      • フレームワークとランタイム
      • Input System (入力システム)
        • 用語
        • Core System
        • Controllers, Pointers, and Focus
      • Systems, Extension Services and Data Providers
    • 機能概要
      • Boundary System
        • Boundary System Overview
        • Configuring the Boundary Visualization
      • Camera System
        • Camera System Overview
        • Camera Settings Providers
          • Windows Mixed Reality Camera Settings
          • Unity AR Camera Settings [Experimental]
          • Creating a camera settings provider
      • Cross Platform Support
        • Configure MRTK for iOS and Android
      • プラットフォームの Capabilities (機能) を検出する
      • Diagnostics System (診断システム)
        • 診断システムの概要
        • 診断システムの構成
        • ビジュアル プロファイラーを使用する
      • Extension Services
        • Extension Service Creation Wizard
        • Scene Transition Service Overview
        • Hand Physics Service Overview
      • Input System (入力システム)
        • 入力の概要
        • Input Actions
        • Input Events
        • Input Providers
          • Input Providers Overview
          • Creating an input data provider
        • Controllers (コントローラー)
        • Eyes
        • Gaze (ゲイズ)
        • Gestures (ジェスチャ)
        • Hands
        • How to Add Near Interaction
        • エディター内入力シミュレーション
        • Pointers
        • Voice Input
          • Dictation (ディクテーション)
          • Speech (コマンドとコントロール)
      • Multi Scene System
        • Multi Scene System Overview
        • Scene Types
        • Content Scene Loading
        • Monitoring Content Loading
        • Lighting Scene Operations
      • パッケージ
        • MRTK パッケージ
        • MRTK Modularization
      • Profiles (プロファイル)
        • プロファイル概要
        • 設定ガイド
      • Rendering
        • Material Instance Overview
        • Shaders
          • MRTK Standard Shader
      • Services (サービス)
        • What makes a mixed reality feature
        • MixedRealityServiceRegistry と IMixedRealityServiceRegistrar とは何か
        • Extension services
      • Spatial Awareness System (空間認識システム)
        • Spatial Awareness (空間認識) 概要
        • Spatial Observers
          • Configuring Observers for Device
          • Configuring Observers for Editor
          • Controlling Observers via Code
          • Creating a custom Observer
      • Teleport System (テレポートシステム) 概要
      • ツール
        • Dependency Window (依存関係ウィンドウ)
        • Extension Service Creation Wizard
        • Holographic Remoting
        • Input Animation Recording
          • Input Animation File Format Specification
        • Optimize Window
        • Runtime tools
          • Controller Mapping tool
      • UX ビルディング ブロック
        • Interactable (インタラクタブル)
        • Button (ボタン)
        • Bounding Box
        • Object Manipulation (物体操作)
        • Sliders (スライダー)
        • Fingertip Visualization
        • App Bar
        • Object Collection (オブジェクトコレクション)
        • Slate (スレート)
        • System Keyboard (システム キーボード)
        • Tooltips (ツールチップ)
        • Solvers (ソルバー)
      • Example Scenes
        • Examples Hub
        • ハンド インタラクションのサンプル
        • アイ トラッキング インタラクションのサンプル
      • Experimental
        • Scrolling Object Collection
        • Hand Coach UX
        • Pulse Shader
    • Contributing
      • Contributing Overview
      • Coding Guidelines
      • Writing and Running Tests
      • Writing Documentation
      • Pull Requests
      • Experimental Features
      • Breaking Changes
      • How to use DocFX
    • Planning
      • Roadmap
    • Notice
    • Authors

    Input animation recording

    MRTK features an recording system by which head movement and hand tracking data can be stored in animation files. The recorded data can then be played back using the input simulation system.

    Recording input is a useful tool in a variety of situations:

    • Creating automated tests for interaction, manipulations, solvers, etc. Creating the movement of controllers and hands for these tests can be time consuming. Recording input directly can speed up the process and provide real-world data.
    • Teaching the use of UX elements through animations. Showing users how to interact with buttons and other objects can smooth the learning curve.
    • Debugging unexpected behavior that may be encountered during regular use. The recording system supports a "rolling buffer" concept that allows recording recent input in the background. See Input Recording Service.

    Recording and playback services

    Two input system services are provided to record and play back input respectively.

    Input recording service

    InputRecordingService takes data from the main camera transform and active hand controllers and stores it in an internal buffer. When requested this data is then serialized into binary files for storage and later replay.

    To start recording input call the StartRecording function. StopRecording will pause recording (but not discard the data recorded so far, use DiscardRecordedInput to do this if needed).

    By default the size of the recording buffer is limited to 30 seconds. This allows the recording service to keep recording in the background without accumulating too much data, and then save the last 30 seconds when required. The time interval can be changed using the RecordingBufferTimeLimit property, or recording can be unlimited using the UseBufferTimeLimit option.

    The data in the recording buffer can be saved in a binary file using the SaveInputAnimation function.

    For details on the binary file format see Input Animation File Format Specification.

    Input playback service

    InputPlaybackService reads a binary file with input animation data and then applies this data through the InputSimulationService to recreate the recorded movements.

    To start playing back input animation it should be loaded from a file using the LoadInputAnimation function.

    Call Play, Pause, or Stop to control the animation playback.

    The current animation time can also be controlled directly with the LocalTime property.

    Warning

    Looping or resetting input animation or setting LocalTime directly by scrubbing the timeline may yield unexpected results when manipulating the scene! Only the input movements are recorded, any additional changes such as moving objects or flipping switches will not be reset. Make sure to reload the scene if irreversible changes have been made.

    Editor tools for recording and playing input animation

    A number of tools exist in the Unity editor for recording and examining input animation. These tools can be accessed in the input simulation tools window, which can be opened from the Mixed Reality Toolkit > Utilities > Input Simulation menu.

    Note

    Input recording and playback only works during play mode.

    The input recording window has two modes:

    • Recording for recording input during play mode and saving it to animation files.

      When toggling on the recording button the InputRecordingService is enabled to record input. When toggling off the recording button a file save selection is shown and the recorded input animation is saved to the selected destination.

      The buffer time limit can also be changed in this mode.

    • Playback for loading animation files and then recreating input through the input simulation system.

      An animation must be loaded in this mode first. After recording input in recording mode the resulting animation is automatically loaded. Alternatively click the "Load" button to select an existing animation file.

      The time control buttons from left to right are:

      • Reset the playback time to the start of the animation.
      • Play animation continuously over time.
      • Step forward one time step.

      The slider can also be used to scrub through the animation timeline.

    Warning

    Looping or resetting input animation or scrubbing the timeline may yield unexpected results when manipulating the scene! Only the input movements are recorded, any additional changes such as moving objects or flipping switches will not be reset. Make sure to reload the scene if irreversible changes have been made.

    • Improve this Doc
    In This Article
    • Recording and playback services
      • Input recording service
      • Input playback service
      • Editor tools for recording and playing input animation
    Back to top Generated by DocFX