Beatchoi's Blog

List of Postings

ARFoundation - Multiple Image Tracking
ARFoundation - Multiple Image Tracking

ARFoundation을 활용한 다중 이미지 트래킹 콘텐츠 개발하기

이전 실습에 이어서 여러장의미지에 각기 다르 오브젝트를 증강할 수 있는 콘텐츠르 개발해 봅니다.

유니티3D 에디터에서

ARFoundation - Image Tracking
ARFoundation - Image Tracking

ARFoundation을 활용한 이미지 트래킹 콘텐츠 개발하기

ARFoundation을 활용하여 이미지를 인식하고 인식한 이미지에 가상의 오보젝트를 증강시켜 봅니다.

유니티3D 에디터에서

ARFoundation의 환경설정을 진행합니다.
AR Session OriginAR Session 오브젝트를 추가합니다.

Project 청에서 마우스 우 클릭, Create -> XR -> Reference Image Library를 선택하여 추가합니다.


<01. Reference Image Library 추가>

인식할 이미지 파일을 Project창으로 옮겨 프로젝트에 추가합니다.
인식할 이미지의 형태에 따라 인식률에 차이가 있으며 인식이 불가능한 이미지의 경우 빌드가 되지 않습니다.
아래 이미지를 활용해 봅니다.


<02. Image Target>

생성된 Reference Image Library를 선택하고 우측 인스펙터 창을 확인합니다.
Add Image 버튼을 클릭하여 인식될 이미지를 추가할 항목을 생성합니다.
이어서 프로젝트 창에 있는 인식할 이미지를 드래그하여 Texture 2D항목에 끌어 놓습니다.
Specify Size항목을 체크하고 생기는 하단 항목의 Physical Size항목의 X 값을 1로 설정합니다.


<03. Reference Image 추가>

이어서 AR Session Origin 오브젝트를 선택하고 Inspector창에서 AR Tracked Image Manager 컴포넌트르 추가합니다.
AR Tracked Image Manager컴포넌트의 Serialized Library 항목에 Reference Image Library파일을 끌어다 놓습니다.


<04. AR Tracked Image Library Manager 추가>

이제 이미지를 인식하면 생성이 될 3D 오브젝트를 생성합니다. Cube오브젝트를 생성하고 본 오브젝트를 Prefab으로 만들어 줍니다.


<05. Cube 오브젝트 생성>


<06. Cube 오브젝트 Prefab 생성>

마지막으로 AR Session Origin오브젝트의 AR Tracked Image Manager컴포넌트의 Tracked Image Prefab 항목에 Cube 프리펩을 연결합니다.
Hierarchy창의 Cube 오브젝트는 제거합니다.


<07. Cube Prefab 연결>

테스트 해보기

ARFoundation - Settings<2022-04-14>
ARFoundation - Settings<2022-04-14>

Unity3D 2021.3 및 안드로이드 버전 12 가능 <2022-04-14>

ARFoundation을 활용한 증강현실 프로젝트 설정하기

ARFoundation을 활용하여 증강현실 콘텐츠를 만들 수 있는 준비를 해봅니다.

유니티3D 에디터에서

패키지 설치 :: Package Manager

상단 메뉴에서 Window탭의 Package Manager를 선택합니다.


<01. 패키지 매니저 - 01>

패키지 매니저 창에서 Packages항목을 아래와 같이 Unity Registry로 변경합니다.


<02. 패키지 매니저 - 02>

Package Manager창에서 ARFoundation패키지를 설치합니다. 우측 하단 Install 버튼을 클릭합니다.


<03. ARFoundation 패키지 설치>

Package Manager창에서 ARCore XR Plugin패키지를 설치합니다. 우측 하단 Install 버튼을 클릭합니다.


<04. ARCore XR Plugin 패키지 설치>

플랫폼 세팅

프로젝트를 생성하고 Build Settings창에서 플랫폼을 Android로 변경합니다.


<05. 개발 플렛폼 변경>

Player Settings -> Other Settings항목에서 Rendering항목을 찾습니다. Auto Graphics API항목을 체크 해제합니다.
OpenGLES3Vulcan의 상단으로 갈 수 있도록 마우스로 클릭, 드래그하여 끌어줍니다.


<06. Graphic API Level 변경>

Player Settings -> Other Settings항목에서 Identification항목의 Minimum API LevelAndroid 10.0 (API Level 29)으로 변경합니다.


<07. Android API Level 변경>

본인의 안드로이드 디바이스의 버전이 10 이상일 경우 구글 어플리케이션 정책에 의해 64비트의 어플리케이션만 실행이 가능하기 때문에 아래 항목을 진행합니다.
Other Settings항목의 Configuration항목을 찾습니다.
Scripting Backend항목을 Mono에서 IL2CPP로 바꿔줍니다.
또한 Target Architectures항목의 ARM64 항목을 체크해줍니다.


<08. 64비트 안드로이드 어플리케이션 설정>

Project Settings창에서 좌측 하단 XR Plug-in Managerment항목을 찾아 클릭합니다.
XR Plug-in Managerment창에서 안드로이드 탭으로 설정이 되어있는지 확인하고 ARCore항목을 체크하여 설정합니다.


<09. XR Plug-in Managerment 설정>

계층구조창에서

계층구조창에서 마우스 오른쪽 클릭 XR항목에서 AR Session Origin버튼을 클릭합니다.


<10. AR Session Origin 오브젝트 생성>

계층구조창에서 마우스 오른쪽 클릭 XR항목에서 AR Session버튼을 클릭합니다.


<12. AR Session 오브젝트 생성>

계층구조창에서 Main Camera오브젝트를 제거합니다.


<13. Main Camera 오브젝트 제거>

ARFoundation Face Tracking
ARFoundation Face Tracking

FaceTracking :: 얼굴추적

ARFoundation의 Face Tracking기능을 활용하는 방법을 알아봅니다.

유니티3D 에디터에서

플랫폼 세팅

이전 ARFoundation의 설정과 마찬가지로 Package Manager에서 ARFoundation, ARCore, ARKit XR Plugin을 설치합니다.
만약 모바일 플랫폼이 IOS라면 ARKit Face Tracking플러그인도 함께 설치해줍니다.


<01. 플러그인 설치>

플러그인이 모두 설치되면 계층구조창에 AR Session Origin, AR Session오브젝트를 생성합니다.
AR Session Origin오브젝트를 선택하고 해당 오브젝트에 AR Face Manager컴포넌트를 추가합니다.
인스펙터 창 하단 Add Component버튼을 눌러 추가해줍니다.


<02. AR Face Manager 컴포넌트 추가>

계층구조창에서 마우스 오른쪽 클릭을 하고 XR -> AR Default Face오브젝트를 생성해 줍니다.


<03. AR Default Face 오브젝트 생성>

생성된 오브젝트를 아래 프로젝트 창으로 끌어서 프리펩으로 만들어 줍니다.
계층구조창에 생성한 오브젝트는 제거해 줍니다.


<04. AR Face Manager 프리펩화>

만든 프리펩을 아까 생성한 AR Session Origin오브젝트의 AR Face Manager컴포넌트의 Face Prefab항목으로 끌어서 놓습니다.


<05. AR Face Manager 프리펩 연결>

AR Session Origin오브젝트의 하위에 있는 AR Camera오브젝트를 선택합니다.
우측 인스펙터창의 AR Camera Manager컴포넌트의 Facing Direction항목을 User로 바꿔줍니다.
이 방법으로 모바일 디바이스의 전면 카메라를 활용할 수 있습니다.


<06. 전면카메라 사용 옵션>

빌드 및 테스트 하기

이전 포스팅에서 진행했던 것과 마찬가지로 빌드 세팅을 진행한 후 모바일 디바이스에서 확인해 봅니다.

목적지 랜덤 생성 - 네비게이션 메시(Navigation Mesh)
목적지 랜덤 생성 - 네비게이션 메시(Navigation Mesh)

네비게이션 메시 :: Navigation Mesh

이번 포스팅에서는 SamplePosition이라는 함수를 통해 특정 지역을 기준으로 특정 반경 내 무작위로 위치를 선정하고 이동해보는 과정을 알아보도록 하겠습니다.
SamplePosition은 특정 위치에 네이비게이션 메쉬가 존재하는지 확인하고 존재한다면 참, 없다면 거짓을 반환하는 함수입니다.
선수 포스팅으로 네비게이션 메시 :: AI 길찾기 - Navigation Mesh 알기 - 21.07.28 를 보시고 오시면 따라하기 편합니다.

유니티3D 에디터에서

프로젝트 생성 및 세팅

스테이지는 이전 포스팅에서 생성한 대로 진행합니다.
걸어다닐 수 있는 네비게이션 메시까지 구워줍니다.

스크립트 수정

NavMeshMove.cs스크립트를 열어 다음과 같이 작성합니다.

Latest Posts

Unity3D DOTS 개요 - DOTS 알아보기 2. World에 Entity 만들기
Unity3D DOTS 개요 - DOTS 알아보기 2. World에 Entity 만들기

Unity3D DOTS 개요 - DOTS 알아보기 1. ECS
Unity3D DOTS 개요 - DOTS 알아보기 1. ECS

DOTS 개요

DOTS는 Data Oriented Tech Stack의 약자로서 기본 상태에서 최적의 성능을 확보할 수 있는 전혀 다른 방식의 코드 작성 방법입니다. DOTS 방식으로 코드를 짠다면 멀티스레드 성능을 통해 더 많은 개체, 더 많은 이펙트, 더 나은 비주얼을 가진 복잡한 콘텐츠를 만들 수 있습니다.
DOTS는 Entity Component System, C# Job System, Burst Compiler 세 가지 요소로 이루어져 있습니다. 본 포스팅에서는 ECS에 대해서 알아봅니다.

유니티3D 설치
유니티3D 설치

유니티3D를 설치해봅니다.