안녕하세요. 이번에는 Unity에서 만든 증강현실 SDK인 AR Foundation을 사용하는 법에 대해 포스팅을 진행합니다.
프로젝트 셋팅과 지면인식 씬 세팅에 대한 영상을 유튜브에 업로드 하였습니다.
https://youtu.be/GBlUsZThXYo
AR Foundation은 Google의 AR Core의 기능과 Apple의 AR Kit의 기능을 가지고 만들어낸 통합 SDK입니다.
기존의 AR 개발에서 AOS와 iOS를 둘 다 개발해야만 하는 상황이라면 플랫폼이 다르기 때문에 2 종류의 SDK를 사용하여 구현했어야만 했죠. 그러나 이제 Unity의 AR Foundation을 사용하면 두 플랫폼(AOS, iOS) 둘 다 구현 가능할 수 있게 됐습니다.
이번 포스팅은 AR Foundation을 사용하여 증강현실을 구현하는 것을 목적으로 하였고, 단순 터치 이벤트를 활용하여 오브젝트를 생성시키는 스크립트를 포함하였습니다.
먼저 프로젝트를 생성하면 나오는 기본씬의 모습입니다.
먼저 상단의 Window - PackageManager를 눌러서 패키지 매니저를 실행합니다.
패키지 매니저를 여시면 아래와 같은 창이 뜨는데 먼저 Advanced를 눌러 Show preview packages를 누르시고 preview 버전의 패키지도 보이도록 설정합니다. 이후에 패키지 중 AR Foundation, AR Subsystems, ARCore XR Plugin을 다운 받습니다.
iOS를 사용하시면 ARCore XR Plugin 대신 ARKit XR Plugin을 다운 받으시면 됩니다.
버전은 일단 중요하지 않지만, 추후의 포스팅을 위하여 4.1.0버전을 추천드립니다.
패키지 다운로드가 끝났다면, 이제 기본씬의 구성을 변경하도록 할텐데요. AR 콘텐츠의 기본 셋팅인 AR Session과 AR Session Origin을 생성합니다.
오브젝트를 생성해서 AR Session과 AR Session Origin을 생성하셨다면, 기존에 있던 Main Camera는 삭제하시고 AR Session Origin에 있는 AR Camera의 'Tag'를 'Main Camera'로 설정합니다.
이제 이대로 빌드하면 AR Camera가 작동하게 되어, 휴대폰 카메라를 AR Camera가 잡게 됩니다.
하지만 그러면 아무런 기능이 없기 때문에 이제 기능을 추가하도록 하곘습니다.
AR Session Origin에 컴포넌트를 추가하도록 하겠습니다. 'ARPlaneManager', 'ARRaycastManager'입니다.
추가한 컴포넌트에 빈칸이 몇 개 있죠? 해당 칸에 오브젝트를 넣으셔서 사용하셔도 되고, 따로 스크립트를 만들어서 사용해도 되기 때문에 크게 신경 안 쓰셔도 됩니다만, ARPlaneManager에 있는 'PlanePrefab'에는 오브젝트를 추가하도록 하겠습니다.
하이어라키에서 Create - XR - AR Default Plane을 생성하신 후에 Project씬으로 드래그하여 프리팹화합니다. 그리고 프리팹이 된 오브젝트를 ARPlaneManager의 PlanePrefab에 넣도록 합니다.
이렇게 적용하면 지면인식을 했을 때 아래 같이 AR Default Plane이 생성되어 인식한 지면을 보여주게 됩니다.
이제 터치 이벤트와 오브젝트 생성을 위해 스크립트를 생성하도록 하겠습니다. 스크립트명은 원하는 대로 하셔도 됩니다ㅎㅎ
주석을 보시고 이해 안 되시는 부분은 댓글 부탁드립니다.(매일은 확인하기는 어려워서 늦어도 주말까지는 답글을 달겠습니다~)
해당 스크립트를 AR Session Origin에 추가하고 빈 칸에 AR Session Origin과 원하는 오브젝트를 프리팹화 하여 끌어다 넣습니다.
이제 빌드 셋팅만 진행하면 끝이에요~ 먼저 휴대폰을 사용할 예정이니 Android로 switch platform합니다.
그리고 Player Settings에 들어가서 나머지 설정을 변경합니다.
위와 같이 설정을 변경하시고 빌드를 진행하시면 됩니다.
사용된 기능은
1. 지면 인식 및 지면 인식 plane 생성
2. 지면 인식이 된 곳을 터치하면 오브젝트 생성 (전 placePrefab에 큐브를 넣었습니다)
감사합니다!!
'언젠가 증강현실(AR) 개발 > AR 파운데이션 (AR Foundation)' 카테고리의 다른 글
[유니티_AR파운데이션(AR Foundation)] AR Raycast로 관련 정보를 가져오기 (7) | 2021.08.08 |
---|---|
[유니티_AR파운데이션(AR Foundation)] Asset ARFoundation Remote 설치 순서 및 사용 방법! (0) | 2021.08.08 |
[유니티_AR파운데이션(AR Foundation)] Depth API / Occlusion AR Plane Shader 방법 (0) | 2020.07.23 |
[유니티_AR파운데이션(AR Foundation)] Depth API / AR Occlusion Manager 방법 (0) | 2020.07.23 |
[유니티_AR파운데이션(AR Foundation)] 콘텐츠 활용 (0) | 2020.07.23 |