본문 바로가기

Programming/Unity

Unity | AR 사용설명서


해당 프로그램은 2018년 2학기 ~ 2019년 1학기, 1년 과제로 제작했던 컴퓨터공학과 졸업작품입니다.

 

 최근 컴퓨터공학과 졸업작품은 대부분 교통 관련, 컴퓨터 비전이나 머신 러닝과 같은 일반 학부생이 쉽게 완성하기 힘든 부분에 집중되어 있었습니다. 실제로 1년이란 기간에 해당 주제를 가지고 완성을 못한 팀도 상당히 많았습니다. 또한 이런 주제들은 이미 상용화가 되어 있거나 실생활에 적용하기 어려운 매우 조잡한 형태였다는 것도 문제였습니다.

 게다가 이런 주제를 선택한 팀들 중에서는 암묵적으로 졸업작품을 개인 개발자들에게 맡겨 사고 파는 방식도 있다는 것도 알고 있었고 실제로 본 적도 있었습니다.

 저는 어찌됐건 졸업작품은 대학 생활에서 배운 것들을 마무리하는 작업이었기 때문에 첫째, 스스로 개발할 수 있는 제한선을 두고 남의 도움없이 팀 스스로 개발할 수 있는 주제를 선택. 둘째, 실생활에 필요하며 실제 활용할 수 있는 주제를 선택하기로 했습니다.

 

주제 선정


 살아가면서 제품을 구입하고 설명서가 필요할 때는 참 많습니다. 문제는 설명서가 사용자가 읽기에 불편하거나 복잡하기도 하고, 설명서를 잃어버렸을 때는 인터넷에서 검색하거나 고객센터에 연락을 해야되는 상황이 발생할 때입니다.

 

 실제로 소비자가 사용설명서에 불만을 가지는 경우는 다음과 같이 3가지 상황으로 정리할 수 있습니다.

 

또, 사용설명서를 다시 찾아보거나 불편한 이유에 대해서는 다음과 같은 조사결과가 있었습니다.

 조사결과를 바탕으로 기존 사용설명서의 문제점을 분석해보니,

  • 사용자들은 제품을 사용하는 중에 사용설명서를 다시 확인하는 경우가 있다.
  • 사용자들은 사용설명서에 불편함을 가지고 있다.
  • 사용자들은 제품을 사용하면서 사용설명서를 찾아보거나 검색을 하지 않고 바로 확인이 가능하는 것을 선호한다.

프로젝트 개요


 이 점에 착안해, 먼저 '바로 확인 가능한 사용설명서'를 제작하고자 어떤 디바이스와 기술을 이용할지 생각했습니다.

 

  • 높은 스마트폰 보급률을 이용해 설명서를 제작하고
  • 증강현실(AR: Augmented Reailty)로 사용설명서를 시각적으로 표현하면

 높은 접근성으로 사용자 친화적, 직관적인 사용설명서를 제작할 수 있을거란 결론이 도출되었습니다. 

 

 다음으로, 세부 분야에 대한 선택을 했습니다. '증강현실을 이용해 만든 사용설명서 어플리케이션이 어떤 분야에 제격일까?' 이미 증강현실을 이용하는 어플리케이션은 많이 나와 있습니다. 제네시스가 G80과 G90에 'Virtual Guide'라고 제작한 소프트웨어와, Amazon에서 제품을 사기 전에 집에 미리 배치해볼 수 있도록 만든 'AR view'도 있습니다.

 

 Amazon의 'AR view'는 상당히 직관적인 모습이지만 사용설명서라고 부르기엔 조금 아쉬웠고, 제네시스의 'Virtual Guide'는 자동차 기능의 대한 설명 부분은 동영상과 글로 설명하는 게 대부분이라 상당히 아쉬운 모습이었습니다. 뭔가 둘 사이의 장점을 결합시켜서 직관적인 설명이 필요한 세부 분야를 정하는 것이 필요했습니다.

 

 캡스톤을 시작하기 직전, 저는 출시한지 얼마 안되서 인기를 끌던 라이젠 CPU와 메인보드, 케이스를 새로 구매했습니다. 완제품을 구입하지 않아서 조립을 제가 해야했는데, 평소에 관심이 있던 상태라 큰 어려움 없이 조립을 끝냈습니다. 하지만 일반 사용자들이라면 이렇게 부품을 교체하거나 고장이 나서 문제가 생겼다면 자신이 해결하는 방법을 알 수가 없습니다. 유튜브에 검색하려면 부품 이름부터 알아야 할텐데 애초에 부품 이름 조차 모르는 경우가 많습니다. 아니면 컴퓨터 가게에 가서 부품 조립을 맡겨야 하는데 대부분의 컴퓨터 가게는 조립을 쉽게 해주지 않습니다.

 

 그래서, '컴퓨터 조립'이란 카테고리를 정하기로 했습니다. 일상생활에서 가장 많이 접하는 제품이지만 동시에 잘 모르는 제품이기도 하고 조립 PC의 수요도 느리지만 계속 증가하고 있기 때문입니다.

 

프로젝트 구성


 프로젝트는 Unity + Vuforia 부분과 Android Studio 부분으로 나뉘었습니다. Unity + Vuforia 부분은 실질적인 AR 사용설명서의 역할을 하고 Android Studio는 메인 페이지와 가격 비교를 하는 기능을 합니다.

 제가 팀에서 맡은 역할은 Unity + Vuforia 부분의 전체적인 개발이었기 때문에 안드로이드 부분은 작성하지 않겠습니다.

 

 Vuforia는 아주 강력한 엔진입니다. 데이터베이스에 타겟 이미지를 등록하고 유니티에서 불러오면 해당 이미지 위에 쉽게 오브젝트를 띄울 수 있습니다.

 

[이미지 타겟 위에 오브젝트들이 올라서 있는 모습]

 전체적인 개발과정은 다음과 같았습니다.

  1. Vuforia 데이터베이스에 등록된 이미지 타겟을 불러온다.
  2. 이미지 타겟 위에 올바른 위치에 각 부품의 모델을 띄운다.
  3. Animator와 C# Script를 이용해 Animation을 제어한다.

 Animation 제어는 다음과 같은 방식으로 작성되었습니다.

 

["LGASocketAnimation" Animation]

 Animation은 다음과 같이 움직이게 되어 있습니다.

 처음에는 좀 당황했지만 영상 편집 프로그램과 비슷한 방식이라 금방 적응해 만들 수 있었습니다.

 

 

 이 과정을 컴퓨터 조립을 위한 모든 부품에 적용하기 위해 아래 순서도를 따랐습니다.

 

 순서도에 따라 Unity의 Scene을 구성하였고 씬은 'Home', 'Motherboard', 'Case', 'PowerCable' 총 4개의 Scene으로 구성되어 있습니다.

 

[Home Scene]

 처음 Unity 부분을 구동하면 Home Scene으로 나오게 되며 실제 컴퓨터 조립 역시 메인보드 - 케이스 - 파워 선 정리의 순으로 이루어지기 때문에 사용자들이 쉽게 순서대로 따르도록 배치했습니다. 각 Scene으로 넘어가는 버튼 밑에 있는 작은 삼각형 버튼을 누르면 해당 Scene에서 진행하는 부품에 대한 정보가 나타납니다.

 그리고 안드로이드에서 진입하게 되어있기 때문에 왼쪽 상단에 안드로이드로 돌아가는 버튼을 만들었습니다.

 

  • 메인보드

  • 케이스

[Motherboard, VGA]
[Power Supply]
[SSD]
[HDD]

케이스의 경우에는 전체 케이스를 인식시키는데 문제점이 많아

부득이하게 패턴을 케이스에 붙여 인식시키는 방식을 사용했습니다

  • 파워 케이블

메인보드와 동일

 

 

마무리


https://drive.google.com/open?id=1sBy48FJwkGceJKcf5aqXkFK6x8tPS2vy

완성본 .apk 파일입니다.

설치 후 바로 위 ImageTarget에 카메라를 대보면 됩니다.

 

홍보 영상

 

'Programming > Unity' 카테고리의 다른 글

Unity | 2D Side Scroller  (0) 2019.11.21