본문 바로가기
공부공부/개발경험들! (프로젝트...)

유니티(Unity) 대학 생활 관리 & AR 컨텐츠를 포함한 ARCampus 프로젝트

by Lee_story_.. 2024. 3. 7.
728x90

 

이번 프로젝트는!

AR컨텐츠 들을 대학교 공간 내에서 플레이 할 수 있도록 하기 위해 개발하기 시작하였습니다. 

 

 

 

개발 목적


프로젝트의 목적으로는 크게 아래 2가지를 생각하고 개발하였습니다. 

 

1. 대학교 공간과 사용자가 AR기능들을 이용하여 상호작용을 할 수 있도록 하는 환경 구축

2. 추가적으로 학교생활을 도와줄 수 있는 부가 기능들

 

 

2가지의 큰 목적을 가지고 개발할 기능들을 정리해 보았습니다.

1. 카메라를 이용한 AR 길찾기

2. 캠퍼스 공간상의 액터 설치를 통한 공간 데코 컨텐츠

3. AR기술을 이용한 간단한 미니게임 

4. 부가기능들 

  • 유저 로그인
  • GPT를 이용한 학교 정보 챗봇 개발
  • 수업 및 일정관리 시간표 기능
  • 학교 중요 공지등을 제공하기 위한 웹 기능 
  • 건물별 정보 제공 기능

 

위의 기능들을 개발하기위해 아래와 같은 환경들을 사용하여 구축하였습니다.

 

 

 

 

 

- 기본 틀은 아래 포켓몬고를 모티브로 개발하였습니다. -

 

 

 

 

 

 

 

프로젝트 완성 기능들


 

 

맵 구성 및 사용자 환경 구성

 

<초기화면 / 화면 조작 기능>

 

  • MapBox의 기능들을 이용해서 맵을 구성
  • 각 건물의 정보들은 json데이터를 이용해서 정리 및 위도 경도에 맞게 위치시킴
  • 현재 사용자의 모바일 GPS를 통해 위도,경도에 맞는 위치에 캐릭터를 위치시킴
  • 하단버튼을 통해 회전모드, 이동모드를 설정가능 (기본적으로 드래그를 통해 지도 조작 가능)

 

 

 

 

유저 관리 기능

<유저 정보 설정 및 캐릭터 설정>

 

 

  • 최초 접속시 자신의 정보를 설정 가능
  • 사용자의 캐릭터를 앱 내부 재화인 GNU 코인을 통해 변경 가능

 

 

 

 

수업 /일정 관리 기능

<수업/일정추가 기능>

 

  • 일정과 메모 데이터를 json으로 따로 저장하여 관리
  • 추가/삭제/ 수정 등의 기능들 사용 가능

 

 

 

길찾기 기능

<길찾기>

 

  • 특정 지점(건물 등)의 좌표들을 json데이터로 관리
  • 거리 순으로 다익스트라 알고리즘을 이용하여 길찾기 구현
 

유니티(Unity) Grid지도 만들어 길찾기 구현하기(2)- 다익스트라(Dijkstra) 알고리즘 구현

저번 글에 이어 이번엔 알고리즘을 이용하여 출발지부터 목적지까지의 길을 표시해주는 것까지 구현해보도록 하겠습니다. 유니티(Unity) Grid지도 만들어 길찾기 구현하기(1) 유니티를 이용한 길

ljhyunstory.tistory.com

 

 

 

유니티(Unity) LineRenderer를 이용한 여러 객체 연결하기

LineRenderer란? 두 지점간의 라인을 그려줄때 사용하는 함수로 아래 처럼 그려 줄 수 있습니다. 약간 스플라인 느낌으로 좌표상의 길을 깔아 줄 수 있게 해주는 컴포넌트입니다. 컴포넌트를 보게

ljhyunstory.tistory.com

 

 

 

 

 

AR 컨텐츠

<AR컨텐츠 Deco 및 미니게임>

 

 

 

  • AR컨텐츠로는 액터를 설치하여 공간을 꾸밀 수 있는 "Deco" 컨텐츠와 앱 내부 재화를 구할 수 있는 미니게임 2가지로 이루어져있습니다. 

 

 

  • Deco 컨텐츠의 경우 하단의 조이스틱과 버튼들을 이용하여 설치 할 수 있고 자세한 내용은 아래 글에 정리되어있습니다.
 

유니티(Unity) AR foundation 오브젝트 선택 / 이동 / 크기조절

오늘은 전 글에 이어서 이번엔 설치한 오브젝트를 선택하고 이동하는 아래의 영상을 참고했습니다! 전 글하고는 코드가 좀 달라졌습니다;;; 이번 코드까지 완성한다면!! 아래 처럼 만들어집니다

ljhyunstory.tistory.com

 

 

 

  • 미니게임은 아래의 영상과 같은 컨텐츠들로 구성해 보았습니다. 
<미니게임 1>

 

<미니게임 2>

 

 

 

 

 

 

GPT를 이용한 챗봇

<GPT를 이용한 TTS 챗봇>

 

 

  • 앱 내부에 생성형 AI인 ChatGPT를 앱에 탑재하여 접근성을 향상시키고, TTS를 접목시켜 사운드를 통해 정보를 제공받을 수 있도록 구성해보았습니다. 
  • 구체적인 내용은 아래 글에 정리되어 있습니다.

 

 

 

유니티(Unity) 유니티에서 ChatGpt 봇 만들어보기

진행중인 프로젝트에 3D 챗봇 캐릭터를 만들어 보기로 하여 먼저 시험삼아 진행하게 되었습니다! 그렇기에 이번 글은 1. chat gpt 연결 2. 텍스트 구성 3. 챗봇 음성 대화 및 텍스트 출력! 이렇게 3단

ljhyunstory.tistory.com

 

 

 

웹뷰를 이용한 공지 기능

<웹뷰와 학사공지 데이터를 이용한 웹 연결>

 

  • 학교 공지와 식단 등을 크롤링하여 데이터베이스에 저장후  웹서버를 통해 사이트를 구성하여 보았습니다. 
  • 유니티에서 GREE에서 배포하고 있는 웹뷰를 통해 구성한 사이트를 유니티 상에서 확인할 수 있도록 개발하였습니다.
  • 구체적인 내용은 아래 글에 정리되어 있습니다.
 

유니티(Unity) 웹뷰 사용해보기 (2가지)-Gree &Game Package Manager

먼저 Gree에서 만들어 깃허브로 무료 배포중인 웹뷰를 사용해 보았습니다. GitHub - gree/unity-webview Contribute to gree/unity-webview development by creating an account on GitHub. github.com 먼저 위의 깃허브에서 코드 파

ljhyunstory.tistory.com

 

 

 

 

 

개발 중 발생한 문제 


프로젝트를 진행함에 있어 여러가지 문제를 만나 처음 계획한 대로 모두 구현하지는 못하였습니다. 

 

그 중 가장 큰 문제는

 

휴대폰 내에서 GPS위치를 받아와 유니티 환경상의 정확한 위치에 매칭 시키는 것

  • 아래 처럼 휴대폰 자체에서 GPS 위도 경도를 불러오는 방법을 채택하여 개발 하였으나, 틱 단위로 최신화 하는 과정에서 좌표들이 계속해서 변경되며 정확한 위치를 표현하는데에 문제가 있음을 발견하였습니다.
 

유니티(Unity) 모바일 GPS 위도 경도 받아오기

최근 새로운 팀 프로젝트를 시작하게되어 구현하다 보니 모바일에서 GPS 정보를 받아오는 기능이 필요하여 정리해보았습니다. 정보를 불러오는것 까지는 그렇게 어렵지 않지만 사용법에 대해서

ljhyunstory.tistory.com

 

 

  • 기존 개발 계획은 공간상에 투영하여 사용자가 좀 더 쉽게 사용할 수 있도록 개발할 계획이였으나, GPS가 정확하지 않아 액터들을 정확한 위치에 생성하는 것이 어려워 지도상에 경로를 표현하는 방법으로 구현하였습니다.

 

  • 마찬가지로 학교 내부의 공원같은 공간에 액터들을 배치하고 그 위치를 데이터베이스에 저장하여, 학생들이 공간을 꾸밀 수 있게끔 구현하려 하였으나, 정확한 위치를 잡을 수 없기에 간단히 기능들로만 구현하였습니다. 

 

 

 

문제 해결책들 


GPS의 정확한 위치를 잡을 수 없어서 발생한 문제들을 해결하기 위한 해결책으로는 

 

1.  QR코드 활용

 

 

2. 비콘의 무선 통신을 이용한 위치 추적 & 공간 정보에 대한 정보 학습을 통한 위치 추정

 

 

[AR] AR 내비게이션, 넓고 복잡한 실내에서도 길 찾기 쉬워질까… - 인베스트 뉴스 | invest

강남 지하상가, 코엑스몰, 잠실역, 고속터미널, 인천공항 등 넓고 복잡한 실내에서도 손쉽게 길을 찾을 수 있도록 AR(증강현실)을 활용한 서비스 개발이 지속되고 있다. 실외에서는 GPS 신호를 이

www.investnews.co.kr

 

 

크게 2가지가 있을것 같습니다.

 

QR코드의 경우 이미 유니티 상에서 QR을 생성하고 읽어오는 기능이 존재하기에 구현하기에는 그렇게 어렵지 않을 것 같습니다. 하지만 특정위치에서 모바일을 통해 QR을 읽어들여야만 시작할 수 있다는 단점이 있습니다. 

 

비콘을 통한 위치 추적은 정확도와 활용도를 생각하면 최적의 방법이라고 생각되지만 건물 내부에서 벗어나는 순간 비용과 활용도가 크게 증가 할 것으로 예상됩니다. 

 

 

공간정보를 학습하여 추적하는 방법 또한 건물 외부를 포함하는 순간 비용적 측면에서 불가능 할 것으로 예상됩니다. 

 

 

추후 개발예정


1. 추후에 프로젝트를 좀 더 심화해서 개발할 경우 QR코드를 이용해서 기존 계획의 방향대로 개발할 수 있을것 같습니다. 

2. 개발하다보니 어플리케이션으로써 약간의 난잡함을 느낄수 있었습니다. 

  • 불필요한 기능들이 존재들과 개발하고자 했던 기능들에 대한 부족
  • 눈에 확 띄지않는 UI에 대한 문제

 

위 2가지의 문제를 해결하여 추가 개발하게 되면 좀 더 나은 어플리케이션으로 개발 가능 할 것같습니다. 

 

 

 

 

 

댓글