https://www.youtube.com/watch?v=7eomOVaag4c
Apple App Store : https://apps.apple.com/kr/app/id1605547423
HSU_On
한성대학교의 캠퍼스를 가상세계에서 만날 수 있습니다.
apps.apple.com
Google Play Store : https://play.google.com/store/apps/details?id=com.codingquokka.hsuon&hl=ko
HSU_On - Google Play 앱
한성대학교 메타버스
play.google.com
2021 한성공학경진대회 금상
2021 C&C 창의융합경진대회 대상
2022 한성대학교 컴퓨터공학부 캡스톤디자인 작품 발표회 우수상
유니티를 우리학교에서는 3학년 2학기 때 처음 배운다
어느 날 건국대학교의 '건국유니버스'를 보고 "야 이거 기똥차네, 이런거 만들어볼까?" 했었다.
지금생각해보면 유니티도 만져보지 않았던 3학년 1학기에 무슨 용기였나 싶다.
#1. 필드
한성대학교의 캠퍼스를 전부 옮겨왔다. 한성대학교 캠퍼스가 전국에서도 작은 편이여서 가능했던 일 같다.
건대사이즈 캠퍼스의 건물들을 전부 만들라하면 난 우리 팀원에게 암살당했을지도 모른다
실제시간을 참조해서 밤낮이 바뀌도록 설정하였다.
오른쪽 코드를 보면 사실 되게 간단한 작업이다.
#2. NPC
퀘스트를 진행해주는 NPC, 게임진행에 도움을 주는 NPC, 쓸데없는 말만 하는 NPC 세종류의 NPC가 있다
NPC의 대사를 이렇게 enum을 이용한 스크립트로 관리하였다.
중간중간에 있었던 업데이트, 대사 수정과 같은 보수, 수정에서 상당히 시간적 이득을 많이 보았다.
#3. 데이터베이스
데이터베이스는 FireBase를 쓴다.
그중에 Realtime Database를 사용하는데 유니티와 연동하는 포스팅도 곧 쓸 예정이다.
타겟 유저가 확실하다 보니 약 900여명 분의 데이터를 관리중이다.
게임에서 발생하는 모든 정보는 세이브파일이 아닌 데베에다 저장한다.
이 정보는 로그인 시에 해당유저의 모든 정보롤 갖고와서, 다른 기기에서 접속해도 자신의 게임정보가 유지되게 설계하였다.
#4. 온라인
포톤이라는 온라인서버 제공 플렛폼을 쓴다.
사실 모든 온라인기능을 포톤API로 구현하였다.
정말 초기에 세팅할 때에는 아무것도 배운 것 없이 박치기 부터 하느라 정말 어질어질했었다.
Unreal Engine에도 적용이 가능하다는데 나중에 기회가 된다면 Unreal로도 컨텐츠를 하나 만들어 보고싶다.
#5. 채팅&감정표현
채팅기능이 Photon에서 지원해주지만, 원격프로시져호출(Remote Procedure Call) 를 공부할 겸 자체적으로 구현 하였다.
특정 PVID를 갖는 객체의 메소드를 원격에서 실행해주는 기능인데, 사진을 보면 알겠지만 파라미터를 넘겨 줄 수도 있다.
저걸로 텍스쳐는 안넘어가더라
감정표현을 하면 특정 애니메이션과 캐릭터의 표정이 바뀐다.
애니메이션이야 에셋에 있는거 사용했지만 표정은 이렇게 적용했다.
#6. 아바타
이부분은 내가 설계하였지만, 내 손길이 제일 적게 닿은 부분이다. 나의 디자인감각은 형편없기 때문
유니티에서 에셋을 구매하여, Blender로 모든캐릭터의 몸통을 통일시켰다.
그다음 저 몸통의 Material을 바탕으로 아바타를 직접 제작하였다.
단, 아바타를 선택하여 교체하고, 이를 필드에 반영하고 RPC로 모든 클라이언트에 반영하는 체계는 내가 만들었다.
이 때 골머리 썩었던게, 텍스처를 RPC의 파라미터로 넘기려고 했다가, 이는 지원하지 않는다는 사실을 아주 늦게 깨닳았다.
#7. 미니게임
제일 코딩하는데 빡쌨지만 제일 주목받지 못한 부분...
특정시간이 되면 준비된 미니게임이 오픈되고 온라인상에 있는 모든 유저가 경쟁하는 컨텐츠다.
진짜 동기화를 실시간으로 해주어야 하기 때문에 RPC를 밥먹듯이 이용한다.
나는 확신할 수 있다.
HSU_On을 만드는 데에 있어 제일 어렵고 까다로운 작업이였다.
하지만 주목을 못받아서 슬프다
#8. 네비게이션
이 앱의 개발 취지는 이러했다.
"코로나 때문에 학교에 오지 못하는 20,21학번 후배들을 위해 가상공간에서나마 학교를 올수 있게 만들자!"
그런데 게임을 진행하다보니 퀘스트 NPC인 상상부기가 이런다.
"미래관앞으로 와!"
신입생들은 분명 멘붕이 왔을것이다.
"그게 어딘데?..."
이러한 이유로 만든것이 네비게이션 기능이다.
이런 UI에서 건물이름이 적힌 버튼을 클릭하면
이런 화면이 뜨면서 상상부기가 길을 안내해 준다.
이렇게 안내가 종료되면 UI를 띄우고 사라진다.
#9. 퀘스트
15개의 퀘스트가 준비되어 있고 간단히 학교의 역사나 정보를 알아가라는 취지이다.
이렇게 퀘스트를 몇개 완료했는지 알려주는 스탬프이다
이것을 인증하여 추첨을 통해 상품을 주는 이벤트도 했었다.
퀘스트를 클리어할 때 +200, 미니게임을 우승하면 +600의 돈을 받을 수 있고 이는 아바타, 펫뽑기로 사용할 수 있다.
#10. 소감
학교 축제진행, 대회진행, 신입생 OT진행 등 이 앱하나로 정말 수많은 활동을 했다.
팀을 성공적으로 운영했나 물어본다면, 답은 "절반은"이다.
내 열정과 내 목표를 이루기 위해 숨 쉴 틈 없이 달렸다.
하지만 팀원들과의 관계는 그렇게 좋지는 못했다.
"타이트한 개발 일정 때문에 스트레스를 너무 많이 받았어요"
"숨이 막힐 정도로 힘들었어요"
이 말을 듣고 너무 마음이 아팠다. 나는 나에게 쓰는 채찍을 다른사람에게도 썼던 것이다.
좀 더 자상한 리더가 될 걸.
성과는 좋지만, 후회는 남는다.
1년동안 나를 믿고 따라와준 4명의 팀원들에게 감사를 표한다.
'My Project' 카테고리의 다른 글
왕이 되자 (프로젝트명 : President.CQ) (0) | 2022.09.21 |
---|---|
한성대학교 기자재 대여 통합 시스템 (0) | 2022.09.06 |
AutoMailing WebServer (0) | 2022.08.12 |
스터디카페앱 DB관리자 웹페이지 (0) | 2022.08.08 |
2021 국방로봇경진대회 (0) | 2022.06.12 |