플랫폼별 가이드
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine

대부분의 증강 현실 환경은 '실시간'입니다. 사용자가 특정 시간에 특정 장소에 있어야 하며, 휴대전화가 특수 AR 모드로 설정되어 있고 AR 앱이 열려 있어야 합니다. 예를 들어 사용자가 거실에 AR 소파가 어떻게 보이는지 확인하려면 방에 실제로 있는 동안 화면 환경에 소파를 '배치'해야 합니다.
Recording and Playback API는 이러한 '실시간' 요구사항을 없애 언제 어디서나 볼 수 있는 AR 환경을 만들 수 있도록 지원합니다. Recording API는 카메라의 동영상 스트림, IMU 데이터 또는 MP4 파일에 저장하기로 선택한 기타 맞춤 메타데이터를 저장합니다. 그런 다음 녹화된 동영상을 Playback API를 통해 ARCore에 제공하면 ARCore에서 MP4를 라이브 세션 피드처럼 취급합니다. 실시간 카메라 세션은 계속 사용할 수 있지만 이 새로운 API를 사용하면 AR 애플리케이션에서 실시간 세션 대신 사전 녹화된 MP4를 사용할 수 있습니다.

최종 사용자도 이 기능을 활용할 수 있습니다. 실제 위치와 관계없이 녹화 및 재생 API로 녹화된 동영상을 기본 갤러리에서 불러와 AR 객체, 효과, 필터를 수정하거나 재생할 수 있습니다. 이 기능을 사용하면 사용자가 사무실로 출퇴근하는 기차 안이나 침대에서 휴식을 취하면서 AR 쇼핑을 할 수 있습니다.
녹음 및 재생 API를 사용한 개발 사용 사례
녹화 및 재생 API를 사용하면 AR 앱을 빌드할 때 시간과 공간의 제약이 사라집니다. 다음은 자체 프로젝트에서 사용할 수 있는 몇 가지 방법입니다.
한 번 녹화하여 어디서나 테스트
AR 기능을 테스트해야 할 때마다 직접 위치로 이동하는 대신 Recording API를 사용하여 동영상을 녹화한 다음 호환되는 기기를 사용하여 재생할 수 있습니다. 쇼핑몰에서 환경을 구축하고 계신가요? 변경사항을 테스트할 때마다 이동할 필요는 없습니다. 한 번만 방문을 기록한 다음 편안한 사무실에서 반복하고 개발하면 됩니다.
반복 시간 줄이기
지원하려는 모든 Android 기기, 테스트하려는 모든 시나리오에 대해 동영상을 녹화하는 대신 동영상을 한 번 녹화하고 반복 단계에서 여러 다른 기기에서 재생할 수 있습니다.
개발팀 전반의 수동 테스트 부담 감소
새 기능마다 맞춤 데이터 세트를 만드는 대신, ARCore의 깊이 또는 최신 추적 개선사항을 통합하는 새 기능을 출시할 때 사전 녹화된 데이터 세트를 활용하세요.
기기 호환성
Recording and Playback API로 데이터를 기록하려면 ARCore가 필요하지만 재생에는 필요하지 않습니다. 이 기능을 사용하여 녹화된 MP4는 기본적으로 모든 동영상 플레이어를 사용하여 볼 수 있는 추가 데이터가 포함된 동영상 파일입니다. Android의 ExoPlayer 또는 MP4를 디멀티플렉싱하고 ARCore에서 추가한 추가 데이터를 관리할 수 있는 호환 플레이어로 검사할 수 있습니다.
재생을 위해 동영상 및 AR 데이터가 녹화되는 방식
ARCore는 녹화된 세션을 타겟 기기의 MP4 파일에 저장합니다. 이러한 파일에는 여러 동영상 트랙과 기타 데이터가 포함되어 있습니다. 이러한 세션이 저장되면 앱에서 라이브 카메라 세션 대신 이 데이터를 사용하도록 지정할 수 있습니다.
녹화 파일에는 어떤 내용이 포함되나요?
ARCore는 H.264 동영상에서 다음 데이터를 캡처합니다. 트랙을 전환할 수 있는 MP4 호환 동영상 플레이어에서 액세스할 수 있습니다. MP4 호환 동영상 플레이어 중 일부는 재생할 동영상 트랙을 선택할 수 있도록 허용하지 않고 목록의 첫 번째 트랙을 자동으로 재생하므로 해상도가 가장 높은 트랙이 목록의 첫 번째에 있습니다.
기본 동영상 트랙 (CPU 이미지 트랙)
기본 동영상 파일은 나중에 재생할 환경이나 장면을 녹화합니다. 기본적으로 ARCore는 동작 추적에 사용되는 640x480 (VGA) CPU 이미지를 기본 동영상 스트림으로 기록합니다.
ARCore는 패스스루 카메라 이미지로 화면에 렌더링되는 (고해상도) GPU 텍스처를 캡처하지 않습니다.
재생 중에 고해상도 이미지 스트림을 사용하려면 원하는 해상도의 CPU 이미지를 제공하는 카메라를 구성해야 합니다. 이 경우에는 다음과 같습니다.
- ARCore는 동작 추적에 필요한 640x480 (VGA) CPU 이미지와 구성된 카메라 구성으로 지정된 고해상도 CPU 이미지를 모두 요청합니다.
- 두 번째 CPU 이미지 스트림을 캡처하면 앱 성능에 영향을 줄 수 있으며 기기마다 영향을 받는 정도가 다를 수 있습니다.
- 재생 중에 ARCore는 녹화 중에 캡처된 고해상도 CPU 이미지를 재생 중에 GPU 텍스처로 사용합니다.
- 고해상도 CPU 이미지가 MP4 녹화의 기본 동영상 스트림이 됩니다.
녹화 중에 선택된 카메라 구성에 따라 녹화의 CPU 이미지와 기본 동영상 스트림이 결정됩니다. 고해상도 CPU 이미지가 있는 카메라 구성을 선택하지 않으면 이 동영상이 파일의 첫 번째 트랙이 되며 사용하는 동영상 플레이어와 관계없이 기본적으로 재생됩니다.
카메라 깊이 지도 시각화
이는 카메라의 깊이 맵을 나타내는 동영상 파일로, 비행 시간 센서 (또는 ToF 센서)와 같은 기기의 하드웨어 깊이 센서에서 녹화되고 RGB 채널 값으로 변환됩니다. 이 동영상은 미리보기 목적으로만 사용해야 합니다.
API 호출 이벤트
ARCore는 기기의 자이로미터 및 가속도계 센서에서 측정값을 기록합니다. 또한 다음과 같은 기타 데이터도 기록합니다. 일부는 민감한 정보일 수 있습니다.
- 데이터 세트 형식 버전
- ARCore SDK 버전
- Google Play AR 서비스 버전
- 기기 지문 (
adb shell getprop ro.build.fingerprint의 출력) - AR 추적에 사용되는 센서에 관한 추가 정보
- ARCore Geospatial API를 사용하는 경우 기기의 추정 위치, 자기계 측정값, 나침반 측정값