2017년 6월 7일 수요일

홀로렌즈 개발 환경 설정 및 앱 개발 방법

MR(mixed reality) 분야에서 이슈가 되고 있는 홀로렌즈 개발 환경 설정 방법과 앱 개발 방법을 간단히 알아본다. 아울러, 홀로렌즈를 사용해 본 느낌, 장단점을 나눔한다. MR은 VR(virtual reality), AR(augmented reality)를 합쳐놓은 혼합 환경을 말한다. 아래는 MR에 대한 영상이다.
MR 소개 영상(마이크로소프트 홀로렌즈. Microsoft Hololens)

MR분야에서 홀로렌즈보다 구글 글래스가 먼저 이슈화가 되었지만, 여러가지 문제점들이 있어, 현재는 홀로렌즈가 관심을 받고 있다(본인은 곧 구글이나 HTC같은 업체에서 더 싸고 좋은 MR기기를 출시하리라 기대한다ㅎ). 

1. 홀로렌즈 스펙
홀로렌즈는 웬만한 PC스펙을 자랑한다.
  • 윈도우 10 내장, 인텔 32비트 CPU, 2GB 메모리, 64GB 저장공간, 200만 화소 카메라, 홀로그래픽스 프로세싱 유닛(holographic processing unit), 마이크 4개, 외부 스피커, 광센서, IEEE802.11ac 무선랜 지원, 배터리 2~3일 연속 사용, 무게 579g
  • 무료 홀로렌즈 개발자 도구, 유니버셜 윈도우 앱 지원

2. 홀로렌즈 개발 설정
홀로렌즈로 개발을 하기 위해서는 개발자 모드로 장치를 설정해야 한다.
설정 한 후에는 홀로렌즈 고유 네트워크 IP를 통해, 홀로렌즈에서 보이는 화면을 크롬과 같은 인터넷 탐색기로 확인할 수도 있고, 홀로렌즈에 필요한 앱도 설치 혹은 제거할 수 있다. 아래는 홀로렌즈 개발 설정 영상이다.
영상을 보고 하나씩 따라 하면 된다. 
HoloLens setup 순서

홀로렌즈는 제스춰 및 음성 인식을 통해, 클릭, 윈도우 메인 메뉴 호출, 앱 실행, 앱 화면 크기 조정 등을 수행할 수 있다. 

홀로렌즈 자체가 윈도우 10에서 실행되는 컴퓨터이므로, WiFi가 연결되어 있다면, 앱을 다운로드 받고, 홀로렌즈에서 실행하거나, 인터넷을 검색하고, 유튜브를 감상하는 것들이 자유롭다.

3. 개발환경 설치 순서
홀로렌즈 앱 개발은 Visual Studio 2015 Update 3혹은 Visual Studio 2017 버전이 필요하다. 홀로렌즈는 윈도우 10 환경에서 운영되며, 앱도 윈도우 앱 마켓에서 다운로드 받는 식으로 설치된다. 다만, 개발자가 개발한 앱은 손쉽게 홀로렌즈에 원격 컴퓨터로 설치할 수 있다. 개발 환경 설치 순서는 Install the tools 문서에 잘 나와 있다. 주요 설치 순서는 다음과 같다.

2. Visual Studio 2015 Update 3, Visual Studio 2017 (Community, Professional, Enterprise)이상 설치
3. HoloLens Emulator 설치(옵션. 윈도우10 프로페셔널 이상 가능)
4. 최신버전 Unity 설치
5. Vuforia 설치

HoloLens Emulator는 직접 홀로렌즈 장치에 개발한 앱을 올릴때는 필요 없다. Emulator로 테스트해 보려면, 윈도우10 프로 버전 이상만 설치 가능하다. Emulator가 윈도우 10프로 이상에서 설치되는 가상머신인 Hyper-V를 사용하기 때문이다.

앞의 2단계를 제대로 설정하였다면, 크롬에서 홀로렌즈 화면을 미러링해 볼 수 있다. 이외에 다음과 같은 미러링 방법이 있으니 참고하길 바란다.
본인은 Device Portal for HoloLens 문서에서 설명한 대로, 홀로렌즈를 설정해 보았다. 다음과 같이, 윈도우 익스플로어의 Windows Device Portal 에서 Mixed Reality Capture의 Live preview화면이 보이면 성공한 것이다. 
Mixed Reality Capture 화면(왼쪽 위에 윈도우 10 메뉴가 홀로렌즈를 통해 보인다)

왼쪽 메뉴는 Apps 설치/삭제 관리, 3D View, 성능 및 프로세스, 파일 탐색기, 시뮬레이션, 네트워크, 가상 입력 등의 기능을 제공한다.
Apps 메뉴 화면

4. 유니버셜 앱 개발 예
홀로렌즈는 윈도우 10 운영체제에서 실행된다. 그러므로, Universal Windows Platform (UWP)위에서 실행되는 유니버셜 앱 유형으로 개발해야 한다. 개발 방법은 다음 링크에 잘 설명되어 있다. 그대로 따라해 보면 개발이 그리 어렵지 않다. 
위 문서에 따른 개발 순서는 크게 다음과 같이 진행된다.

1. 홀로렌즈 전원을 켠다.
2. Visual Studio 2017을 실행한 후, 다음과 같이 유니버셜 앱 프로젝트를 하나 생성한다. 

3. 앱 메인 윈도우에 적당히 텍스트 박스와 버튼 등을 디자인해 넣는다.

4. 프로젝트 빌드 시 원격 컴퓨터 설정하고, 앱 빌드 후 홀로렌즈에 앱을 배포한다.
5. 홀로렌즈 화면에 유니버셜 앱이 다음과 같이 실행된다.

6. 윈도우 익스플로어의 Windows Device Portal 에서 Mixed Reality Capture의 Live preview화면을 보면, 홀로렌즈 화면을 PC, 노트북에서 확인할 수 있다. 

5. Unity 개발 예
Visual Studio에는 Unity 프로젝트 템플릿이 포함되어 있어, Unity 앱을 개발하기 용이하다. Unity 또한 Hololens 앱 타입으로 Visual Studio 프로젝트 파일과 리소스를 생성할 수 있도록 되어 있어, 개발이 편리하다. Unity App 개발 방법은 다음 링크에 잘 설명되어 있다.
앞의 Holograms 100 프로젝트를 빌드한 후 홀로렌즈에 앱을 설치하고, 3차원 큐브가 홀로렌즈를 통해 보인다면 성공한 것이다. 다음은 Holograms 100 에 설명한 예제를 바탕으로 텍스트 객체를 추가해 만든 홀로렌즈 Unity App이다.

1. Unity 앱 장면에 큐브와 텍스트 객체를 추가한다.

2. Unity 프로젝트를 다음과 같이 설정하고 빌드해, Visual studio solution 파일을 생성한다.

3. 생성된 Unity 프로젝트의 Visual studio solution 파일을 Visual Studio 2017에서 로딩한다.

4. 유니티 앱을 빌드하고, 홀로렌즈에 배포한다. 그럼, 다음과 같이, 홀로렌즈 화면에 유니티 앱이 자동 실행된다. 주변 공간을 자동으로 인식해, 고정된 좌표에서 3차원 객체가 떠 있는 것을 확인할 수 있다.

시간이 있다면, 아래의 Galaxy Explorer 소스 코드를 GitHub에서 다운로드 후 빌드해 본다.

6. BIM 모델 뷰어 앱 개발 예
3차원 건축모델(BIM. Building Information Modeling)을 홀로렌즈 Unity 앱으로 띄워보자. 간단한 작업 순서는 다음과 같다. 상세한 개발 과정은 Holograms 100 문서를 참고한다.

1. BIM 모델러(예. Revit 등)에서 샘플 건물 모델을 로드하다.

2. 건물모델을 FBX 등 메쉬파일로 Export 한다.
3. Export한 메쉬파일을 Unity 프로젝트 창으로 Drag&Drop하여, Asset으로 추가한다.

4. Asset으로 추가된 메쉬를 장면에 추가하고, 메쉬의 위치, 방향 등을 설정한다.
5. 유니티 앱을 홀로랜즈 앱 유형으로 빌드한다. Visual Studio 솔류션 파일이 생성된다.
6. 생성된 Visual Studio 솔류션 파일을 빌드하여, 홀로렌즈에 배포한다.

7. 홀로렌즈에서 다음과 같이 자동으로 앱이 실행된다.


참고로, 아래는 스케치업에서 다운로드 받은 건축물, 도시 모델을 Unity로 import하고, 앱으로 만든 경우이다(참고 - Exporting from Sketchup to Unity3D tutorial). 스케치업에서는 텍스쳐 적용이 쉽고, OBJ, DAE 메쉬파일 저장 시 텍스터 파일이 함께 저장된다. 

스케치업 House 모델
유니티 House DAE 메쉬 모델 Import
스케치업 도시 모델
유니티 도시 DAE 메쉬 모델 Import
홀로렌즈에서 띄워 본 건축 및 도시 모델

7. 홀로렌즈 장단점
홀로렌즈를 활용해 간단히 개발해 본 후 느낀 장단점을 적어본다.

장점은 다음과 같다.
1. 공간 자동 인식/생성: 센서에서 스캔된 3차원 점군에서 3차원 공간 메쉬 실시간 구성함
2. 안정적인 가상 객체의 공간 상 절대 좌표 변환: 헤드셋 움직임에도 객체가 떨리지 않음
3. 꽤 괜찬은 혼합 현실 몰입도: 실내에서 선명하게 보이는 혼합 현실
4. 높은 윈도우 10 기반 앱 호환성: 모든 UWP 앱 설치 및 실행 가능
5. 빠른 3차원 객체 렌더링 속도
6. 객체 음원 중심적인 사운드: 인식된 공간 왼쪽에 장작불이 타고 있다면, 본인이 회전할 때, 달라진 음원의 위치를 계산해, 사운드를 출력해 줌
7. Visual Studio 기반 편리한 개발 환경

단점은 다음과 같다.
1. 좁은 스크린 화면: 40인치 TV 정도 크기의 스크린으로 느껴짐. 좀 답답함.
2. 아직은 무겁고 불편한 헤드셋 마운트: 오래 착용하면, 머리가 아픔
3. 아직은 조작이 불편한 제스춰 및 보이스 인식: 입력에는 아직 키보드가 최고
4. 원활한 사용을 위해서는 WiFi 네트워크가 필요함
5. 3차원 어지럼증
6. 밝은 곳에서는 렌더링 객체가 선명히 보이지 않음: 야외에서는 활용이 어려울 듯 함
7. 3차원 표현을 위해 무거운 게임 엔진을 사용해야 함: 홀로렌즈 효과를 얻기 위해 기존 앱은 게임엔진으로 포팅해야 할 지도 모름
8. 앱 개발을 위해, 3D 프로그래밍과 공간 맵핑에 대한 이해가 필요함
9. 대중화되기에는 비싼 가격: 오큘러스 리프트의 대략 3배 이상되는 부담스러운 가격

참고로, 오큘러스 리프트를 사용해 보았을 때도 2, 4, 7과 같은 단점은 있었다.
홀로렌즈의 단점에서 불구하고, 마이크로소프트가 기존 가상현실 기술들과 차원이 다른 가상현실의 발전 방향과 미래를 보여 줬다는 면에서 훌륭한 기술이라 생각한다.

앞으로 건설, 건축 분야에서 다양한 응용이 기대된다.



8. 홀로렌즈 개발 시 이슈들
시작이 반인 MR장치라, 개발자 그룹에서 원성이 자자한 이슈들이 있다.ㅎ 경험상, 이런 지뢰들은 반듯이 겪는다고 생각하고, 미리 피해가야 정신 건강에 이롭다.

레퍼런스
아래는 개발 시 참고할 만한 레퍼런스이다.

댓글 없음:

댓글 쓰기