입력 애니메이션 기록 - MRTK2

MRTK는 머리 이동 및 손 추적 데이터를 애니메이션 파일에 저장할 수 있는 기록 시스템을 제공합니다. 그런 다음 입력 시뮬레이션 시스템을 사용하여 기록된 데이터를 재생할 수 있습니다.

입력 기록은 다음과 같은 다양한 상황에서 유용한 도구입니다.

  • 상호 작용, 조작, 솔버 등에 대한 자동화된 테스트 만들기 이러한 테스트를 위해 컨트롤러와 손의 이동을 만드는 데 시간이 오래 걸릴 수 있습니다. 입력을 직접 기록하면 프로세스 속도를 향상시키고 실제 데이터를 제공할 수 있습니다.
  • 애니메이션을 통해 UX 요소의 사용을 교육합니다. 사용자에게 단추 및 기타 개체와 상호 작용하는 방법을 보여 주면 학습 곡선을 부드럽게 할 수 있습니다.
  • 정기적으로 사용하는 동안 발생할 수 있는 예기치 않은 동작을 디버깅합니다. 기록 시스템은 백그라운드에서 최근 입력을 기록할 수 있는 "롤링 버퍼" 개념을 지원합니다. 입력 기록 서비스를 참조하세요.

기록 및 재생 서비스

입력을 각각 기록하고 재생하기 위해 두 개의 입력 시스템 서비스가 제공됩니다.

입력 기록 서비스

InputRecordingService 는 주 카메라 변환 및 활성 손 컨트롤러에서 데이터를 가져와 내부 버퍼에 저장합니다. 요청되면 이 데이터는 스토리지를 위해 이진 파일로 직렬화되고 나중에 재생됩니다.

Recording diagram

입력 녹음을 시작하려면 함수를 호출합니다 StartRecording . StopRecording 는 기록을 일시 중지하지만, 지금까지 기록된 데이터는 삭제하지 않고 필요한 경우 이 작업을 수행하는 데 사용합니다 DiscardRecordedInput .

기본적으로 기록 버퍼의 크기는 30초로 제한됩니다. 이렇게 하면 기록 서비스가 너무 많은 데이터를 누적하지 않고 백그라운드에서 기록을 유지한 다음 필요한 경우 마지막 30초를 저장할 수 있습니다. 속성을 사용하여 시간 간격을 RecordingBufferTimeLimit 변경할 수도 있고, 옵션을 사용하여 녹음/녹화를 UseBufferTimeLimit 제한할 수도 있습니다.

기록 버퍼의 데이터는 SaveInputAnimation 함수를 사용하여 이진 파일에 저장할 수 있습니다.

이진 파일 형식에 대한 자세한 내용은 입력 애니메이션 파일 형식 사양을 참조하세요.

입력 재생 서비스

InputPlaybackService 는 입력 애니메이션 데이터가 있는 이진 파일을 읽은 다음 InputSimulationService 를 통해 이 데이터를 적용하여 기록된 움직임을 다시 만듭니다.

Play Back diagram

입력 애니메이션 재생을 시작하려면 LoadInputAnimation 함수를 사용하여 파일에서 로드해야 합니다.

재생, 일시 중지 또는 중지를 호출하여 애니메이션 재생을 제어합니다.

현재 애니메이션 시간은 LocalTime 속성을 사용하여 직접 제어할 수도 있습니다.

경고

타임라인을 스크러빙하여 입력 애니메이션을 반복하거나 다시 설정하거나 직접 설정 LocalTime 하면 장면을 조작할 때 예기치 않은 결과가 발생할 수 있습니다. 입력 이동만 기록되며 개체 이동 또는 스위치 대칭 이동과 같은 추가 변경 내용은 다시 설정되지 않습니다. 되돌릴 수 없는 변경이 이루어진 경우 장면을 다시 로드해야 합니다.

입력 애니메이션을 기록하고 재생하기 위한 편집기 도구

입력 애니메이션을 기록하고 검사하기 위한 다양한 도구가 Unity 편집기에서 존재합니다. 이러한 도구는 Mixed Reality Toolkit유틸리티 > 입력 시뮬레이션 메뉴에서 열 수 있는 입력 시뮬레이션 도구 창에서 > 액세스할 수 있습니다.

참고

입력 기록 및 재생은 재생 모드 중에만 작동합니다.

입력 기록 창에는 두 가지 모드가 있습니다.

  • 재생 모드 중에 입력을 기록하고 애니메이션 파일에 저장하기 위한 기록입니다.

    녹음/녹화 단추를 토글할 때 입력을 InputRecordingService 기록할 수 있습니다. 기록 단추를 전환하면 파일 저장 선택 영역이 표시되고 기록된 입력 애니메이션이 선택한 대상에 저장됩니다.

    버퍼 시간 제한은 이 모드에서도 변경할 수 있습니다.

  • 애니메이션 파일을 로드한 다음 입력 시뮬레이션 시스템을 통해 입력을 다시 만들기 위한 재생입니다.

    먼저 이 모드에서 애니메이션을 로드해야 합니다. 기록 모드에서 입력을 기록한 후 결과 애니메이션이 자동으로 로드됩니다. 또는 "로드" 단추를 클릭하여 기존 애니메이션 파일을 선택합니다.

    왼쪽에서 오른쪽으로 시간 제어 단추는 다음과 같습니다.

    • 재생 시간을 애니메이션의 시작으로 다시 설정합니다.
    • 시간이 지남에 따라 애니메이션을 지속적으로 재생합니다.
    • 단계 앞으로 나아가세요.

    슬라이더를 사용하여 애니메이션 타임라인을 스크러빙할 수도 있습니다.

경고

입력 애니메이션을 반복하거나 다시 설정하거나 타임라인을 스크러빙하면 장면을 조작할 때 예기치 않은 결과가 발생할 수 있습니다. 입력 이동만 기록되며 개체 이동 또는 스위치 대칭 이동과 같은 추가 변경 내용은 다시 설정되지 않습니다. 되돌릴 수 없는 변경이 이루어진 경우 장면을 다시 로드해야 합니다.