AR 맛보기 - TeamCrazyPerformance/Game_study GitHub Wiki
세팅하기
AR은 주로 모바일에서 사용되기에 Android와 ios를 다운 받기
AR Core 다운 받기
Android에서 작동하기 위해 AR Core를 ios에서 작동하기 위해 ARKit을 세팅하자
AR 프로젝트
시작
처음 시작 시 아래와 같이 두 개의 AR 특수
AR Session Origin: AR Session Origin은 가상 세계와 현실 세계 사이의 변환 관계를 정의하고 AR 환경의 원점을 제공한다. 즉, 이 요소는 가상 객체가 현실 세계에서 정확한 위치와 방향에 나타날 수 있도록 설정한다. AR Session Origin은 일반적으로 게임 오브젝트로서 유니티 씬에 배치된다. 이 요소에는 AR 카메라와 연결된 위치 및 방향 정보가 포함되어 있으며, 이를 통해 가상 객체가 현실 세계와 일치하도록 조정된다. 또한 AR Session Origin은 사용자의 움직임 추적을 관리하고, 사용자가 화면을 터치하거나 장치를 움직일 때 발생하는 이벤트를 처리한다.
AR Session: AR Session은 AR 환경을 생성하고 관리하는 데 사용되는 중심 요소이다. AR Session은 AR 기능을 제공하는 기기와 상호작용하고, 환경 추적 및 센서 데이터 처리와 같은 핵심 기능을 처리한다. 예를 들어, AR Session은 카메라 영상을 통해 현실 세계를 인식하고, 표면 감지 및 추적을 수행하여 가상 객체의 위치를 조정한다. 또한 AR Session은 환경 조명과 광원 추정, 사용자 제스처 인식 등과 같은 기능도 제공할 수 있다.
차이점: AR Session Origin은 가상 객체의 위치 및 방향을 정의하는 데 사용되는 게임 오브젝트이다. 이는 AR 세션과 상호작용하며 사용자의 움직임을 추적하고 화면 터치 이벤트를 처리한다. 반면, AR Session은 AR 환경을 생성하고 관리하는 중심 요소이다. 이는 카메라 영상을 분석하여 현실 세계를 인식하고, 표면 감지 및 추적을 수행하여 가상 객체를 배치하는 등의 작업을 수행한다.
AR Camera: 증강현실(AR) 애플리케이션에서 사용되는 카메라의 유형이다. 일반적으로 AR 환경에서 현실 세계를 인식하고 가상 객체를 배치하는 데 사용된다. AR Camera는 AR 세션과 함께 작동하여 현실 세계를 캡처하고 가상 객체를 정확하게 배치할 수 있도록 한다. 또한, AR 애플리케이션에서 디바이스의 카메라에 직접 액세스하여 카메라 영상을 캡처합니다. 이를 통해 현실 세계의 이미지와 동영상을 분석하고, 환경 추적 및 표면 감지와 같은 기능을 수행한다. AR Camera는 일반적으로 AR 세션의 일부로 구성되며, AR 세션과 함께 동작하여 가상 객체를 실시간으로 현실 세계에 배치할 수 있도록 한다.
기능
AR에서 지원하는 기능은 너무나 많아 대표적인 몇 개만 설명하겠다.
ARAnchor: ARAnchor는 증강현실 (AR) 공간에서 가상 객체를 고정시키기 위해 사용되는 지점 또는 앵커 포인트를 나타낸다. AR 애플리케이션에서 ARKit(iOS) 또는 ARCore(Android)와 같은 AR 프레임워크를 사용할 때, ARAnchor는 가상 객체를 특정 위치 또는 표면에 고정시키는 역할을 수행한다. 예를 들어, AR 애플리케이션에서 사용자가 테이블 위에 가상의 캐릭터를 배치하고자 할 때, ARAnchor를 사용하여 캐릭터를 해당 테이블의 위치에 고정시킬 수 있다.
ARFace: ARFace는 사용자의 얼굴을 인식하고 추적하는 기능을 제공하는 AR 요소이다. 이를 통해 얼굴 표정, 동작, 감정 등을 감지하고 실시간으로 가상 객체를 얼굴에 맞게 배치할 수 있다. ARFace 요소는 주로 얼굴 필터, 얼굴 표정 인식, 3D 얼굴 모델과의 상호작용과 같은 얼굴 관련 애플리케이션 개발에 사용된다. 해당 기능 사용 시 자동으로 전면 카메라로 설정된다.
ARPlane: ARPlane은 실제 세계에서 감지된 평면을 나타내는 AR 요소이다. AR 애플리케이션은 카메라 영상을 분석하여 평면을 감지하고, ARPlane 요소를 통해 해당 평면의 위치, 방향 및 크기 정보를 제공한다. 이를 통해 사용자는 평면 위에 가상 객체를 배치하거나, 평면을 인식하여 상호작용할 수 있다. 예를 들어, AR 애플리케이션에서 사용자는 바닥이나 테이블 위에 가상의 장식품을 배치하거나, 게임에서 평면을 활용하여 게임 요소를 조작할 수 있다.
ARRaycast: ARRaycast는 가상 객체와 실제 세계의 충돌 감지를 위해 사용되는 AR 요소이다. AR 애플리케이션에서 ARRaycast를 사용하면, 사용자가 화면을 터치한 위치에서 가상 레이를 발사하여 실제 세계의 객체와의 충돌 여부를 확인할 수 있다. 이를 통해 가상 객체가 실제 세계의 표면에 정확하게 위치하도록 보장하고, 상호작용을 제공하는 등의 기능을 구현할 수 있다.
ARHumanBody: ARHumanBody는 실시간으로 사람의 신체를 인식하고 추적하는 AR 요소이다. 이를 통해 사용자의 움직임, 자세, 신체 부위의 위치 등을 감지하여 가상 객체와 상호작용이 가능한 실시간 AR 애플리케이션을 개발할 수 있다. 예를 들어, 스켈레톤 트래킹을 통해 사용자의 동작을 감지하고, 그에 따라 가상 캐릭터를 제어하거나 게임을 조작할 수 있다.
ARTrackable: ARTrackable은 AR 환경에서 추적 가능한 객체를 나타내는 범용적인 인터페이스이다. 이 인터페이스를 구현하는 클래스들은 실제 세계의 객체를 추적하고, 해당 객체의 위치, 방향, 크기 등의 정보를 제공한다. ARPlane과 ARAnchor는 ARTrackable 인터페이스를 구현한 예시입니다. ARTrackable은 AR 환경에서 다양한 객체 및 요소를 추적하고 관리하는 데 사용된다.
XR 오브젝트
VR과 AR에서 사용 가능한 XR 기본 오브젝트들이 제공되며, 필요 시 해당 오브젝트로 임의 대체가 가능하다.