입력 애니메이션 녹화 - MRTK2

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

입력 녹음/녹화는 다양한 상황에서 유용한 도구입니다.

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

녹화 및 재생 서비스

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

입력 녹음/녹화 서비스

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

기록 다이어그램

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

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

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

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

입력 재생 서비스

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

재생 다이어그램

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

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

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

경고

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

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

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

참고

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

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

  • 재생 모드 중에 입력을 녹음/녹화하고 애니메이션 파일에 저장합니다.

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

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

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

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

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

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

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

경고

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