678

cdc wiki
Com2214 (토론 | 기여)님의 2022년 12월 21일 (수) 03:24 판
이동: 둘러보기, 검색

프로젝트 개요

기술개발 과제

국문 : 서울시립대학교 메타버스 어플리케이션 개발

영문 : Development of UOS metaverse application

과제 팀명

678

지도교수

유*진 교수님

개발기간

2022년 9월 ~ 2022년 12월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 20169200** 이*훈(팀장)

서울시립대학교 컴퓨터과학부 20179200** 박*혁

서울시립대학교 컴퓨터과학부 20189200** 서*해

서론

개발 과제의 개요

개발 과제 요약

서울시립대학교 유일 메타버스 플랫폼 UOS Meta는 서울시립대학교 학생들을 위한 메타버스 앱이다. 비대면 수업으로 학교에 방문하지 않은 학생들, 예비 입학생을 위한 앱이다. 해당 학생들은 학교가 익숙지 않을뿐더러 대면 강의를 들을 때 강의실을 찾아가는데 불편함이 있다. 이들은 학교에 등교하기 전, 미리 메타버스 플랫폼을 통해 학교를 체험할 수 있고 이는 직접 등교했을 때 강의실을 찾아가는 데, 도움이 된다. 또한 플랫폼 내의 작은 게임들로 예비 입학생들끼리 소통할 수 있고 이는 유대감 형성에도 도움이 된다.

개발 과제의 배경

  1. 서울시립대학교 예비 입학생들인 10대는 메타버스 이용률이 94.7%에 달하고 다양한 기업에서 10대들을 대상으로 하는 광고에는 메타버스를 적극 활용하고 있음.
  2. 기존 메타버스 플랫폼을 활용하기에는 맵 크기, 기능 제한, 인원 수 제한 등의 어려운 점 존재
  3. 이전에 제작된 서울시립대학교 메타버스는 중앙도서관에만 국한되어 개발되어 인기를 끌지 못함
  4. 서울시립대학교 메타버스 활용 시 예비 입학생들에게 큰 홍보 효과 기대
  5. 신입생들이 직접 등교하기 전 학교의 모습을 미리 찾아보고 방문하여 강의실, 학과 사무실 등을 찾는데 도움이 됨

개발 과제의 목표 및 내용

  1. 유니티3D를 활용한 서울시립대학교 메타버스 개발
  2. 파이어베이스를 활용한 로그인, 회원가입, 데이터베이스 구축
  3. 포톤을 이용하여 멀티 플레이 가능(채팅기능 구현, 캐릭터 디자인 구현)
  4. 학교를 홍보하고 안내해줄 수 있는 기능들 구현(학교 건물 번호 및 입학처, 학생처, 학과 사무실, 강의실 등 주요 위치에 대한 정보, 네비게이션 기능(대학교 투어), 전체 맵(지도) 확인 기능)
  5. 간단한 미니게임(학교 건물에 대해 익숙해지고, 안내해줄 수 있는 미니게임 위주), (고양이 사진 찍기 및 고양이 도감 수집)

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황
  1. 제페토, 로블록스, 게더타운과 같은 메타버스 플랫폼
  2. VRchat같은 VR 메타버스 플랫폼
  3. VR 디바이스
  4. 애플 AR 글래스
  5. 카툰 렌더링 기법
  6. 게임 그래픽 실시간 레이 트레이싱
  • 특허조사 및 특허 전략 분석

678 1.png

  1. 메타버스 전시회장
    1. 요약: 본 발명은 메타버스 기반 3차원 전시체험 시스템으로서, 웹페이지를 통해 전시품을 출력하는 관리서버를 포함할 수 있다.
    2. 내용: 전시회장에서 단말기를 통해 전시 물품의 정보를 웹페이지로 나타내는 기술
    3. 차별점: 실제 전시회장에서 단말기를 통해서 정보를 얻는다는점, 가상공간을 웹페이지로 나타낸다는점, 전시회에서 전시품에 대한 정보를 제공하는 것을 목적으로 한다는 점이 다름(우리 프로젝트는 전시품의 홍보가 아닌 메타버스 전체인 캠퍼스를 체험하는 것을 목적으로 함)
  2. 메타버스 박람회장
    1. 요약: 본 발명은 메타버스 박람회장에 관한 것으로써, 온라인으로 코로나 확산 위험성을 낮추고, 경제 활성화, 저렴한 비용, 수월하고 안전하 박람회의 진행을 목적으로 함
    2. 내용: 기본적인 공간인 박람회장과, 개인적인 공간인 가상부스로 나눠져있음. 가상 부스에는 동영상 배너, 동영상 현수막, QR코드, 전시대, 홈페이지가 있음.
    3. 차별점: 박람회를 목적으로 한다는 점, 각 부스마다 자신의 물품을 홍보하고 해당 특허는 그러한 개인의 목적을 도와주는 것이 주요 기능인점이 다름. (우리는 여러 사람들이 자신의 물품을 홍보하는 플랫폼을 만드는 것이 아니라 어플리케이션 자체가 서울 시립대 자체를 홍보하고자함.
  3. 메타버스 사이버 모델하우스
    1. 요약: 본 발명은 메타버스를 활용한 사이버 모델하우스로, 현실세계와 가상세계를 실시간으로 혼합하여 실제 사물이나 장소에 VR기술을 접목해 부가적인 정보를 제공하는 것을 목적으로 함
    2. 내용: 사이버 모델하우스에 접속하기 위한 단말기, 여러 인테리어 소품을 배치 시켜볼 수 있는 서비스, 인테리어 업체 단말기 등이 있음
    3. 차별점: VR기술을 주로 사용한다는 점, 모델 하우스에 여러 인테리어를 미리 해보는 것을 목적으로 한다는 점이 다름.(모델하우스를 안내하는것 보단 모델 하우스를 나만의 집으로 만들어서 미리 체험해보기 위한 것을 목적으로 함)
  • 기술 로드맵

678-2.png

시장상황에 대한 분석

  • 경쟁제품 조사 비교

678 3.png

  1. 제페토
    1. 슬로건: 내 아바타로 즐기는 또다른 세상 (https://zepeto.me/)
    2. 특징: 아바타 꾸미기, 감정 표현 등 나만의 개성을 표현하는 방법이 다양함
    3. 기술적 특징: 16인 동시접속 가능(관전만 하는 경우 60인), 맵 크기는 12*12 블록 사이즈(건물 하나정도)
    4. 경제적 특징: 아시아 메타버스 점유율 1위
    5. 결론: 내 아바타의 개성을 표현하는 방법이 다양해 국내 많은 사용자들의 사랑을 받고 있지만, 이로 인해 동시 접속자수와 맵 크기가 제한됨(하나의 캐릭터가 애니메이션, 의상 등 다양한 표현이 가능할 수록 서버에 전송하는 데이터가 많아짐. 이로 인해 원활한 사용을 위해 동시 접속자 수가 제한되고 적은 인원이기 때문에 맵크기도 크지 않음)

678 4.png

  1. 로블록스
    1. 슬로건: Reimagining the way people come together.
    2. 특징: 메타버스 플랫폼이지만 게임플랫폼 이기도함. 따라서 다양한 게임들이 존재
    3. 기술적 특징: 공개서버 최대 300명, 비공개서버 최대 50명 동시접속 가능(대신 로블록스 인기 서버는 상당히 자주 터지고, 랙이 심한 문제점 존재, 서버 최적화 문제 있음)
    4. 경제적 특징: 전세계 메타버스 점유율 1위
    5. 결론: 로블록스 홈페이지에 들어가보면 거의 대부분의 서버가 게임을 목적으로 되어있을 정도로 게임에 특화된 메타버스 플랫폼. 이로 인해 게임 이외의 기능은 구현하기가 어렵고 인기가 없음.

678 5.png

  1. 게더타운
    1. 슬로건: The better way to gather
    2. 특징: 회의에 특화된 플랫폼이라 화상채팅 기능도 존재, 2d 픽셀 그래픽
    3. 기술적 특징: 25~500명(유료) 동시접속 가능, 화상채팅 지원
    4. 경제적 특징: 아직 얼마 안된 플랫폼이지만 많은 투자도 받음
    5. 결론: 화상 회의 플랫폼과 메타버스가 결합된 형태. 2d 픽셀 그래픽이라 이용은 조금 더 쉽지만, 실제 세계와 가상세계가 차이가 많이 나는 단점 존재.

678 6.png

4. 숙명여대 메타버스 '스노우버스'

1. 활용 플랫폼: LG 유플러스, 신한은행, 맘모식스와 함께 자체개발
2. 특징: VR 메타버스, 제 1캠퍼스 전체를 구현, 상시 서비스 오픈, 숙명여대 학생들만 이용 가능
3. 기술적 특징: 채팅, 미션, 이벤트, 아바타
4. 목표: 학생들간의 교류, 온라인 상담, vr 강의
5. 결론: 숙명여대 학생들만 이용가능하기 때문에 다양한 정보를 얻을 수는 없지만 구현하고자 하는 결과물은 우리 팀과 비슷. 하지만 목적이 다름

678 7.png

5. 지스트 메타버스

1. 활용 플랫폼: 게더타운
2. 특징: 2d 메타버스, 전체 캠퍼스, 한시적 오픈, 누구든 참여 가능
3. 기술적 특징: 게더타운의 특징과 동일
4. 목표: 다양한 행사들을 온라인에서 쉽게 접근하기 위함
5. 결론: 게더타운은 화상회의 플랫폼이기도 하기 때문에 링크를 통해 접속 가능. 과학문화 주간에 이벤트성으로 열었고 차후 학교 행사등의 기간에 운영할 것으로 보임. 누구나 캠퍼스를 둘러볼 수 있다는 점에서 우리팀의 목표와 비슷하지만, 소통이 중요시된다는 점에서는 약간 다름.
  • 마케팅 전략 제시

1. 대학교 최대 커뮤니티 에브리타임, 시립대 학생 전용 커뮤니티 시대생에 홍보글 게시

2. 신입생 대상 과 공지방에 홍보

개발과제의 기대효과

기술적 기대효과

1. 메타버스 내 재학생들 데이터를 활용해 학교 프로젝트에 이용 가능

2. 학교 건물 리모델링하기 전 미리 적용해 피드백을 받을 수 있음, 학교 내 시설물 관리 활용

경제적, 사회적 기대 및 파급효과

1. 다양한 홍보 및 안내를 메타버스를 활용해 비용 감소

2. 예비 입학생들이 등교 전 앱 사용을 통해 좀 더 친숙한 캠퍼스 생활이 가능

3. 코로나로 자가격리 하는 학생들도 게임에 참여하여 스트레스 해소 가능

4. 서울시립대학교 입학생들이 입학 전 메타버스 앱을 통해 조금 더 친숙한 캠퍼스 생활이 가능

5. 차후 비대면 이벤트(비대면 축제, 비대면 설명회)등으로 활용 기능

6. 대학 수험생들이 학교, 학과에 대한 정보를 쉽게 얻음으로 인한 학교 경쟁력 강화

기술개발 일정 및 추진체계

개발 일정

678 8.png

구성원 및 추진체계

1. 이종훈 유니티 메타버스 구현, 캐릭터디자인

2. 박종혁 파이어베이스 서버 구축, 데이터베이스 관리

3. 서인해 UI/UX, 건물 디자인, 기획

설계

사용자 요구사항

잠재고객 요구사항

678 9.png

678 10.png

캠퍼스와 최대한 가까운 모습으로 그려진 건물과 배경, 메타버스 가상 환경. 학교 안내, 네비게이션, 학교 건물 소개, 학과 대학 소개, 옷장 등의 기능 추가 요구

제품기능 요구사항

678 11.png

사용자 요구사항 만족을 위한 기능 정의 및 기능별 정량목표

1. 회원관리

678 12.png

회원가입, 로그인, 로그아웃, 회원 탈퇴 등의 모든 회원관리는 web server(Firebase)에서 이루어진다. Firebase Authentication은 OAuth2 및 OpenID Connect 등의 산업 표준을 활용함. 기본 인증 기능을 이용해 회원가입, 로그인, 로그아웃, 회원 탈퇴 기능을 구현할 예정이고, 회원 정보는 Firestore Database에 저장한다.

2. 경로 탐색 알고리즘

678 13.png 678 14.png

맵 전체에서 플레이어가 이동할 수 있는 공간을 설정하고 이를 Vector3 좌표값들로 저장한다. 플레이어의 위치와 목적지의 위치를 선택하고 각각의 위치를 Vector3 좌표로 받는다. 그리고 이동가능한 좌표들을 바탕으로 A*알고리즘으로 목적지까지의 경로를 찾는다. 좌표들을 line rendering을 통해 선으로 연결한 후 화면에 직접 띄운다.

3. 화면 전환 알고리즘

678 15.png 678 16.png

각각의 터치흐름 별로 터치 아이디가 있는데, 이때 UI를 터치했는지 화면을 터치했는지 여부를 배열에 저장한다. 만약 화면을 터치한 경우 시작 포지션을 변수에 저장한다. 터치가 계속중인 동안 (시작포지션-현재 포지션) 스크린 길이 만큼을 카메라를 회전 시킨다. 플레이어가 이동중이 아닌 경우 카메라의 피벗만 회전시켜서 플레이어의 정면도 볼 수 있게 하고, 플레이어가 이동중인 경우 플레이어도 같이 회전 시켜서 화면을 회전시킨 방향으로 플레이어가 이동 시킬 수 있게 한다.


시스템 설계

유즈케이스 다이어그램

678 17.png

Navigation

678 18.png

678 19.png

Smart Operation

678 20.png

678 21.png

Interaction

678 22.png

678 23.png

Setting

678 24.png

678 25.png

Play

678 26.png

678 27.png


Mini Game

678 28.png

678 29.png

액티비티 다이어그램

678 30.png

일반적인 진행 흐름은 다음과 같다.

처음 사용자가 메타버스 어플리케이션에 접속하면 시작[Init] 화면으로 접속하게 된다. 그 후, 파이어베이스 서버를 통해 구글 로그인을 하면 메인[Main] 페이지로 이동한다. 메인 페이지에서는 총7가지 기능을 수행할 수 있다. 메인 페이지의 왼쪽 상단에 위치하는 미니맵 아래의 작은 지도아이콘을 클릭하면 전체 맵[Map] 화면을 띄울 수 있고, AR버튼을 누르면 현재 위치를 파악하여AR기능[AR]을 띄워준다. 또한, 편의기능이 모아져 있는 휴대폰[Cellphone] 페이지로 이동할 수 있다. 오른쪽 상단의 설정버튼을 누르면 설정[Setting] 화면으로 이동한다. 미니게임을 할 수 있는 위치로 이동하여 게임에 입장하도록 활성화되면, 메인 버튼을 누르면 미니게임[MiniGame] 화면으로 이동할 수 있다. 채팅[Chatting]을 통해 다른 사용자와 대화할 수 있으며, 제스처[Gesture]를 통해 자신의 캐릭터에게 제스처를 줄 수 있다. 모든 기능들을 수행하고는 다시 메인 페이지로 돌아온다.
이때, 편의기능이 모아져 있는 휴대폰[Cellphone] 페이지로 이동하면, 현재 화면을 캡처[Capture]하는 기능/자신의 캐릭터에 옷을 입힐 수 있는 옷장[Closet] 기능/건물에 대한 안내사항을 알 수 있는 건물소개[Facility] 기능을 선택할 수 있다. 캡처 기능을 선택하여 찍은 사진을 저장하고 싶으면 저장버튼을 눌러 스크린샷[Screenshot]으로 남길 수 있다.
휴대폰의 건물소개 기능과 메인 화면에서 지도를 켰을 때, 건물을 선택 시 네비게이션[Navigation]기능을 통하여 그 건물까지의 경로를 확인할 수 있다. 이 때, 경로 안내[Directionguidance] 기능으로 직접 경로를 따라 움직이거나, 자동 이동[Automatic movement] 기능으로 경로를 따라 자동으로 움직이도록 할 수 있다.
메인 화면에서 설정을 켰을 때, 게임 사운드를 설정할 수 있는 사운드[Sound] 설정 화면, 계정[Account]설정 화면, 데이터[Data] 설정 화면으로 이동할 수 있다. 데이터 설정 화면에서는 게임 설정을 모두 초기화[Reset]하거나, 지금까지의 데이터들을 모두 저장[Save]할 수 있다. 계정 설정 화면에서 로그아웃을 하면 게임이 종료된다.
  • init

User가 파이어베이스를 통해 구글로그인을 한다.

  • Main

메타버스 시스템의 기본 메인 화면을 보여준다. 이때, 메인 화면에는 지도(Map) 기능/다양한 기능을 가진 휴대폰(Cellphone) 기능/제스처(Gesture) 기능/다른 참여자들과 소통할 수 있는 채팅(Chatting) 기능/미니게임(MiniGame)으로 이동할 수 있는 기능/게임 설정(Setting)기능을 선택하여 이동할 수 있다.

  • SmartOperation

현재 화면을 캡쳐(Capture)할 수 있는 기능/캐릭터 옷을 갈아입게 할 수 있는 옷장(Closet) 기능/건물들의 기능을 알려주는 안내(Facility), 학생증 확인(Student), 고양이도감(Cat Book)기능을 포함한다. 이때, 캡처를 저장할지 저장하지 않을지 선택할 수 있고, 저장한다면 스크린샷(Screenshot)으로 저장된다.

  • Capture

현재 화면을 캡쳐할 수 있다. 이때,찍은 사진의 저장을 원하면 스크린샷으로 저장되고 원하지 않으면 다시 캡쳐 화면으로 돌아갈 수 있다.

  • Screenshot

캡쳐한 화면을 저장한다.

  • Closet

캐릭터의 옷을 변경할 수 있다.

  • Facility

건물의 이름을 검색하여, 건물 내 주요 위치(과사무실, 학생처, 기획처 등) 및 건물번호 등의 정보를 알 수 있다. 또한, 그 건물로 이동을 원하면 네비게이션 기능을 통해 이동할 수 있다.

  • Student

학생증을 확인할 수 있다, 사용자가 설정한 이름, 학과 학번이 학생증에 나타난다.

  • Cat Book

고양이도감을 확인할 수 있다. 친밀도가 있는 고양이에대한 정보가 고양이도감에 나타난다.

  • Map

메타버스 전체 맵을 보여준다. 이때,원하는 목적지를 선택하면 네비게이션 기능을 통해 이동할 수 있다.

  • Navigation

원하는 목적지로의 경로를 표시해준다. 이 때, 직접 이동할 수 있는 기능(Direction guidence)이 기본적으로 제공되며, 자동 이동 기능을 선택하면 캐릭터가 자동으로 이동(Automatic movement)할 수 있다.

  • Directionguidance

원하는 위치로 직접 이동할 수 있다.

  • Automaticmovement

원하는 위치로 자동 이동할 수 있다.

  • Chatting

다른 사용자와 대화할 수 있다.

  • Gesture

자신의 캐릭터에게 제스처를 줄 수 있다.

  • MiniGame

미니게임에 입장하여 게임을 할 수 있다.

  • Setting

게임 사운드를 설정할 수 있는 사운드(Sound) 설정 화면, 계정(Account) 설정 화면,데이터(Data) 설정 화면으로 이동할 수 있다.

  • Data

게임 설정을 모두 초기화(Reset)하거나, 지금까지의 데이터들을 모두 저장(Save)할 수 있다.

  • Reset

게임 설정을 모두 초기화한다.

  • Save

게임 데이터를 저장한다.

  • Account

로그아웃을 하여 게임을 종료시킬 수 있다.

아키텍처 다이어그램

678 31.png

  • UI
Graphic System에서 데이터 값들을 받아와 유저에게 직접적으로 보여주는 패키지.
C# 언어를 사용한다.
  • Graphic System
그래픽 연산, 쉐이더 지정해서 플랫폼에 최적화된 그래픽을 전달할 수 있음.
직접 3D 모델링한 객체들을 받아와서 UI에 전달할 수 있다.
애플리케이션의 모양을 제어할 수 있으며 사용자 정의가 가능합니다.
HLSL언어를 사용한다.
  • Client System
어플리케이션에서 제공하는 모든 기능들을 담은 패키지.
직관적인 ribbon-style 도구 모음 및 탭과 기능에 대한 손쉬운 액세스를 통해 사용자는 쉽게 탐색하고 수행할 수 있습니다.
개별 사용자가 인터페이스를 개인화할 수 있도록 하고, 가장 자주 사용하는 양식과 기능에 빠르게 액세스할 수 있습니다.
C# 언어를 사용한다.
  • Server
Firebase와 Unity를 연결하는 패키지
Photon을 이용해 멀티플레이어 유저를 관리한다.
Log in, Log out, Sign up 등등 회원관리를 담당하고 있다.
C# 언어를 사용한다.

상세설계 내용

클래스 다이어그램

Client System

678 32.png

  • Navigation
META시스템은 Navigation 클래스를 통해서 지도, 길찾기, AR에 관련된 명령을 요청한다.
WayList()함수를 통해 지도정보를 가져온다.
findRoute()함수를 통해 Player클래스에서 getLocPlayer()함수를 호출해 현재 플레이어의 위치정보를 받아오고, 목적지의 위치데이터를 활용해 경로를 구한다.
showRoute()함수에서 경로 데이터를 시각화하여 맵 위에 띄운다.
searchBuiding()함수를 통해 특정 건물을 검색하고 그 정보를 가져온다.
moveAuto()함수에선 경로 데이터를 따라 Player클래스의 automovePlayer()함수를 호출해 현제 플레이어의 위치를 자동으로 이동시킨다.
loadMinimap()함수를 통해 현재 미니맵 정보를 가져온다.
onAR()함수를 통해 AR모드 On/Off를 설정한다
stop()함수을 통해 현재 자동 이동 기능을 멈출 수 있다.
checkCampus()에선 사용자의 기기가 현재 학교 캠퍼스 내에 있는지 확인한다.
makeRoute(): 경로 생성 함수
getGps(): 사용자 기기 위치 받아오는 함수
  • Interaction
META시스템은 멀티 유저와 관련된 기능을 Interaction클래스를 통해서 요청한다.
sendChat(), getChat()함수는 사용자가 입력한 채팅 입력값을 서버패키지 Setting클래스의 uploadServer()함수를 호출해 서버에 전송하고 downloadServer()함수를 통해 서버에서 다른 사용자의 채팅 정보를 받아와 UI패키지 UI클래스의 chatOnOff()함수를 호출해 사용자에게 제공한다.
sendGesture(), getGesture() 함수는 플레이어의 제스처 정보를 서버패키지 Setting 클래스의 uploadServer()함수를 통해 서버에 전송하고, downloadServer()함수를 통해 서버에서 다른 사용자의 제스처 정보를 받아와 player클래스의 getAnimOther()함수를 통해 제스처를 작동시킨다.
getOther() 함수는 다른 플레이어의 위치 정보를 서버패키지 Setting클래스의 downloadServer()함수를 통해 서버에서 받아서, player클래스의 moveOther()함수를 통해 다른 플레이어 오브젝트를 이동시킨다.
sendPlayer() 함수는 현재  플레이어의 위치 정보를 서버패키지 Setting클래스의 uploadServer()를 통해 서버에 전송한다.
  • Setting
META시스템은 Setting 클래스를 통해서 사용자 환경설정과 관련된 모든 명령을 요청한다.
sound()함수를 통해 사용자는 META시스템의 사운드 볼륨을 조정할 수 있다.
manageScene()함수는 대기화면, 메인화면등의 씬을 전환하는데 사용하는 함수다.
save(), load()함수는 기기에 데이터를 저장하고 불러오는 함수다.
request()함수는 데이터를 요청하는 함수이다.
  • Player
META시스템은 플레이어와 다른 플레이어의 오브젝트, 카메라 오브젝트에 관련된 명령을 Player클래스를 통해 요청한다.
movePlayer(), moveOther()함수는 플레이어와 다른 플레이어 오브젝트의 위치를 변경시킨다.
getLocPlayer(), getLocOther()은 플레이어와 다른 플레이어의 위치 정보를 제공하는 역할을 한다.
getAnimPlayer(), getAnimOther()은 플레이어와 다른 플레이어의 애니메이션을 관리하고 작동시키는 기능을 한다.
gesPlayer(), gesOther()은 플레이어와 다른 플레이어의 제스처를 제공하는 역할을 한다.
automovePlayer()는 플레이어가 조이스틱이 아닌 자동이동을 할 때, 플레이어의 오브젝트 위치를 변경시키는 기능을 한다.
dressup()함수는 플레이어의 의상을 변화시키는 기능을 한다.
followCamera(), rotateCamera(), cameraFOV() 함수는 카메라의 위치, 회전, 시야각을 조절하는 함수다.
chooseCam()는 여러 카메라 중 현재 화면에 전송될 카메라를 선택하는 함수다.
getGesture()는 플레이어의 제스처 정보를 제공하는 함수다.
getOther()는 다른 플레이어의 정보를 제공하는 함수다.
getSound()은 플레이어의 사운드 정보를 제공하는 함수다.
patAnimation()은 고양이를 쓰다듬을 때 사용하는 함수다.
saveStudentInfo()는 학생증의 정보를 저장하는 함수다.
upIntimacy()는 고양이와의 친밀도를 높이는 함수다.
  • Smart Operation
META시스템은 캡처, 옷장, 편의시설 안내 등의 부가 기능에 대한 명령을 Phone클래스를 통해 요청한다.
capture()함수는 현재 화면의 픽셀값을 받아서 이미지 파일로 저장하는 함수다.
saveCapture()는 캡처된 이미지 파일을 사용자 기기의 갤러리에 저장하는 함수다.
zoomCapture()은 캡처를 하기 위해 카메라의 시야각을 변화시키는 함수다.
changeCloset()는 플레이어가 선택한 의상을 Player클래스의 dressup()함수를 호출해 플레이어 캐릭터에 입히는 함수다.
cameraCloset()는 플레이어의 변화 모습을 실시간으로 확인하기 위해 카메라를 조절하는 함수다.
searchFacilities()는 사용자가 검색한 편의시설의 정보를 제공하는 함수다.
showCloset()는 사용자 의상 데이터를 가져와 목록에 띄우기 위한 함수다
showFacilities()는 편의시설 데이터를 가져와 목록에 띄우기 위한 함수다.
insertStudentInfo()는 학생증 발급시에 정보를 등록하는 함수다.
  • Minigame Cat
META시스템은 고양이 미니게임과 관련된 명령을 Minigame Cat 클래스를 통해 요청한다
getCatData()를 통해 저장소에서 고양이 정보를 요청한다.
getLoadData()는 고양이의 정보를 넘겨준다.
loadCat()은 고양이 정보를 가져온다.
catInfo()는 고양이 정보를 보여준다.
loadCatList()는 고양이 도감에 등록된 고양이들을 가져온다.
saveCatData()는 업데이트된 고양이 정보를 저장한다.
loadCatData()는 업데이트된 고양이 정보를 갱신한다.
catResponse()는 사용자가 쓰다듬는 애니메이션을 사용할 시 고양이 객체가 반응한다.

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

내용

포스터

내용

관련사업비 내역서

내용

완료작품의 평가

내용

향후계획

내용

특허 출원 내용

내용

부록

참고문헌 및 사이트