프레임 데이터 소스 그룹 추가
AR 세션은 여러 프레임 데이터 소스 컴포넌트를 포함할 수 있으며, 이를 프레임 데이터 소스 그룹(frame source group)이라고 합니다. 런타임에 세션은 현재 기기와 활성화된 AR 기능에 따라 프레임 데이터 소스 그룹에서 가장 적합한 프레임 데이터 소스를 선택하여 사용합니다. 이 문서에서는 프레임 데이터 소스 그룹을 사용하고 관리하는 방법을 설명합니다.
시작하기 전에
- 프레임 데이터 소스의 기본 개념, 유형 및 런타임 선택 방법을 이해합니다.
사전 설정 AR 세션의 프레임 데이터 소스 그룹 사용
기본 구성으로 생성된 세션에는 프레임 데이터 소스 그룹이 포함되어 있으며, 단일 AR 기능을 사용할 때는 일반적으로 충분합니다.
다른 사전 설정 세션에는 서로 다른 프레임 데이터 소스가 포함됩니다.
ARSessionFactory.ARSessionPreset.ImageTracking 사전 설정 또는
AR Session (Image Tracking Preset)메뉴로 생성된 세션에는 단일 프레임 데이터 소스만 있습니다:
ARSessionFactory.ARSessionPreset.MegaBlock_MotionTracking_Inertial 사전 설정 또는
AR Session (Mega Block Default Preset)메뉴로 생성된 세션에는 여러 프레임 데이터 소스 컴포넌트가 포함된 씬 계층 구조가 있습니다:
씬에서 처음에 특정 사전 설정을 사용해 세션을 생성한 경우, 반복 과정에서 다른 기능을 추가할 때는 해당 frame filter 컴포넌트를 추가할 뿐만 아니라 필요에 따라 적절한 프레임 데이터 소스 컴포넌트도 추가해야 합니다.
중요
4.7 이하 버전에서 업그레이드한 후에는 메뉴 또는 ARSessionFactory를 통해 세션을 다시 생성해야 사전 설정된 프레임 데이터 소스 그룹을 사용할 수 있습니다.
다음은 모든 사전 설정된 AR 기능의 기본 구성에 대한 프레임 데이터 소스 구성 요소 목록입니다. 목록의 순서는 씬 내 프레임 데이터 소스의 구성 요소 순서와 동일합니다:
| 사전 설정 | 프레임 데이터 소스 구성 요소 |
|---|---|
참고
사전 설정으로 생성된 컴포넌트 정렬은 내장 프레임 데이터 소스를 지원하는 모든 기기에서 최적의 프레임 데이터 소스를 사용하도록 보장합니다.
기본 프레임 데이터 소스 구성 사용
기본 매개변수를 사용할 때 프레임 데이터 소스 구성은 기기와 런타임에 활성화된 AR 기능에 따라 자동으로 조정됩니다.
프레임 데이터 소스 매개변수를 수동으로 수정한 경우, 세션의 AR 기능이 변경될 때(예: 이미지 트래킹만 포함된 세션에 모션 트래킹 기능 추가) 새로운 기능 요구 사항에 맞게 프레임 데이터 소스 매개변수를 수동으로 조정해야 할 수 있으며, 이렇게 해야 모든 AR 기능이 최상의 성능으로 실행됩니다.
중요
4.7 이하 버전에서 업그레이드한 후에는 메뉴 또는 ARSessionFactory를 통해 세션을 다시 생성해야 올바른 기본 매개변수를 사용할 수 있습니다.
프레임 데이터 소스 그룹 추가
Hierarchy 뷰에서 AR Session (EasyAR) 를 선택하고 마우스 오른쪽 버튼을 클릭한 후, EasyAR Sense > [ AR 기능 ] > Frame Source : * 메뉴를 통해 해당 기능에 적합한 frame source 컴포넌트를 추가할 수 있습니다. 또는 EasyAR Sense > Frame Source by Transform Type > * Dof > Frame Source : * 메뉴를 통해 필요한 frame source 컴포넌트를 추가할 수도 있습니다.
스크립트에서는 ARSessionFactory.AddFrameSource<Source>(GameObject, bool)를 사용하여 frame source 컴포넌트를 추가할 수 있습니다.
예를 들어, EasyAR Sense > Frame Source by Transform Type > 3 Dof Rot-Only > Frame Source : Three Dof Camera Device 메뉴를 통해 현재 선택된 세션에 ThreeDofCameraDeviceFrameSource를 추가할 수 있습니다.

해당 스크립트 코드는 다음과 같습니다:
ARSessionFactory.AddFrameSource<ThreeDofCameraDeviceFrameSource>(session);
프레임 데이터 소스 정렬
세션 어셈블리 과정에서 프레임 데이터 소스 그룹의 여러 소스 중 하나만 선택되어 세션에 조립됩니다. 선택 규칙은 AssembleOptions.FrameSourceSelection 속성 값에 따라 달라집니다. 기본 구성에서는 프레임 데이터 소스 그룹 내 각 컴포넌트의 정렬 순서를 조정하여 최종적으로 선택될 프레임 데이터 소스에 영향을 줄 수 있습니다.
일반적으로 Hierarchy 뷰에서 씬 내 오브젝트 정렬 방법을 사용하여 frame source 오브젝트를 직접 이동하여 정렬할 수 있습니다.
스크립트에서는 Transform.SetSiblingIndex(int)를 사용하여 오브젝트 정렬 순서를 조정할 수 있습니다.
예를 들어, MotionTrackerFrameSource를 다른 프레임 데이터 소스보다 앞에 배치하려면 Hierarchy 뷰에서 Motion Tracker 오브젝트를 선택하고 맨 위 위치로 드래그합니다.
동일한 효과는 다음 스크립트 코드로도 구현할 수 있습니다:
motionTrackerFrameSource.transform.SetSiblingIndex(0);
또한 사전 정의된 정렬 방법을 사용할 수 있습니다. Hierarchy 뷰에서 AR Session (EasyAR) 를 선택하고 마우스 오른쪽 버튼을 클릭한 후, EasyAR Sense > Utility > Sort Frame Source : * > * 메뉴를 통해 특정 프레임 데이터 소스 컴포넌트를 정렬할 수 있습니다.
스크립트에서는 ARSessionFactory.SortFrameSource(GameObject, ARSessionFactory.FrameSourceSortMethod)를 사용하여 동일한 효과를 구현할 수 있습니다.
예를 들어, EasyAR Sense > Utility > Sort Frame Source : Motion Tracker > System SLAM 메뉴를 사용하면 MotionTrackerFrameSource를 ARCoreFrameSource, ARCoreARFoundationFrameSource, ARKitFrameSource, ARKitARFoundationFrameSource, AREngineFrameSource보다 앞에 배치할 수 있습니다.

해당 스크립트 코드는 다음과 같습니다:
ARSessionFactory.SortFrameSource(session, new ARSessionFactory.FrameSourceSortMethod { MotionTracker = ARSessionFactory.FrameSourceSortMethod.MotionTrackerSortMethod.PreferEasyAR });
위 정렬 후 씬 계층 구조는 다음과 같이 변경됩니다:

관련 주제
- 헤드셋용 프레임 데이터 소스 추가 및 구성 방법 이해하기
- 런타임에 사용 중인 프레임 데이터 소스 가져오기 시도하기
