• Tidak ada hasil yang ditemukan

최종보고서 - 목포해양대학교

N/A
N/A
Protected

Academic year: 2023

Membagikan "최종보고서 - 목포해양대학교"

Copied!
13
0
0

Teks penuh

(1)

최종보고서

(2)

차 례

1. 개요 ··· 3

1.1 작품개요 ···3

1.2 목표 ···3

2. 작품제작 핵심기술 ···3

3. 시스템 구성도 및 다이어그램 ···4

4. 시스템 기능 및 주요 알고리즘 ···5

4.1 시스템 기능 ···5

4.2 주요 알고리즘 ···6

5. 작품 개발 규모 ···8

6. 주요 실행화면 ···9

7. 결론 ···13

참고문헌 ···13

(3)

1.

개요

1.1.

작품개요

최근 빈번히 일어나고 있는 해난 안전사고에 대한 사람들의 관심이 집중 된 가운데, 예방할 수 있는 사고임에도 불구하고 빠르게 대처하지 못해 더 많은 피해가 생겨난다.

점차 뜨고 있는 VR게임은 가상세계에서 실제와 같은 체험을 할 수 있도록 하여 몰입감을 준다.

VR과 해양 안전사고를 결합시켜 선박사고에 대한 대처를 게임 형식으로 미 리 연습 해봄으로서 피해를 좀 더 줄일 수 있도록 도움을 주게 한다.

1.2. 목표

VR게임의 장소적 제한을 없애고 모험적 요소를 추가하여 재미와 몰입감을 증대시킬 수 있을 것이다. 또한 VR 시장의 높은 전망과 3D 유니티 엔진을 사 용함으로서 새로운 전공분야를 습득할 수 있다.

2. 작품제작 핵심기술

- Unity

1) 유니티 엔진과 아두이노 연동 2) 게임 구성과 맵 설계

3) 안드로이드 SDK를 사용하여 어플리케이션으로 변환 -Arduino

1) 버튼을 이용한 플레이어 점프 및 물체와의 상호작용 2) 조이스틱을 이용한 플레이어 이동

3) 블루투스 모듈을 사용하여 스마트폰과 무선 통신 -Server

1) 네트워킹 엔진인 포톤(Photon)을 사용한 다자간 게임 구현

(4)

3. 시스템 구성도 및 다이어그램

(5)

4. 시스템 기능 및 주요 알고리즘

4.1. 시스템 기능

블루투스 목록 확인 연결 가능한 블루투스 목록 확인

블루투스 연결 선택한 블루투스와 연결

게임방 선택 게임방 목록 중 입장할 방 선택

게임방 개설 게임방을 새로 개설

게임방 입장 선택 또는 개설된 게임방 입장

게임 대기 사용자가 게임을 시작 가능한 상태로 대기

시점 변환 스마트폰 기기를 사용자가 바라보는 방향대로 움직임

이동 하기 조이스틱을 통해 캐릭터의 방향 이동

점프 하기 컨트롤러의 버튼을 누르면 캐릭터가 점프

작업 하기 캐릭터가 물체와 상호작용

(6)

4.2. 주요 알고리즘

(7)
(8)

5. 작품 개발 규모

모듈명 파일명 기능 LOC 개발

언어 포톤

(네트워크) PhotonMain.cs 게임 서버 입장 및 게임방 입장 171

C#

Unity (Lobby)

CreateRandomRo omNum.cs

방만들기 위한 랜덤한 방 제목

생성 11

CreateRoom.cs 방만들기를 위한 정보를

저장하고 방을 만듦 31 DDOL.cs 씬 전환에 오브젝트가 사라지지

않게 해주는 코드 9 LobbyCanvas.cs 방 입장, 만들기 후 씬 전환 기능 20 LobbyNetwork.cs 로비에서 포톤 네트워크에 접속

및 로그 UI관리 36

MainCanvas Manager.cs

정적 클래스로 생성하여 하위

클래스를 다루기 쉽게 함 20 NetworkInfo.cs 방 입장, 만들기 시에 필요한

정보를 저장 51

PlayerNetwork.cs 플레이어 정보가 있는 클래스 11 RoomLayout

Group.cs

다른 플레이어가 만든 방 목록

불러오기 및 제거 73

RoomListing.cs 방 목록의 버튼 리스너 지정 36 WaterLevelUp.cs 물이 차오르는 효과와 일정 값에

도달했을 때 게임 종료를 호출 39

Unity (Main)

boardManager.cs 튜토리얼 진행상황을 알려주는

텍스트 관리 38

setCubeNum.cs 튜토리얼 큐브 번호 부여 36 buttonEvent.cs 컨트롤러 상호작용, 점프 버튼

이벤트 162

door.cs 문 오브젝트 활성화 14 Item_rotation.cs 오브젝트를 일정 시간마다

회전시킴(조끼) 16

(9)

6. 주요 실행화면

그림 1. 게임방에 입장하기 전 방 만들기 화면을 보여준다.

그림 2. 네트워크 연결이 끊어지면 방 개설에 실패 했다는 안내를 해준다.

(10)

그림 4. 컨트롤러와 연결을 위해 connect 버튼을 눌러 블루투스 연결 가능 기기 목록을 확인하여 연결한다.

그림 5. 블루투스 연결 후 튜토리얼 게임이 있는 게임방이 보여진다.

(11)

그림 7. 본 게임을 하는 방을 보여준다. 방을 클릭하면 문이 열리게 된다.

그림 8. 본 게임을 실행하는 방으로 입장하기 전 상태를 보여준다.

(12)

그림 10. 실제 선박 사고 중 선내로 물이 흘러들어온 모습을 보여주고 있고, 구명조끼를 누르게 되면 캐릭터 몸에 구명조끼가 입혀지게 된다.

그림 11. 미션을 성공하여 게임이 종료되는 모습을 보여준다.

(13)

7. 결론

본 최종 보고서는 VR을 이용한 다자간 게임을 구성 하였다. VR은 가상의 세 계에서 사람이 실제와 같은 체험을 할 수 있도록 하는 기술이다. 우리는 위 기능을 이용하여 현재 이슈화 되고 있는 해양 안전사고에 적합한 안전교육과 접목시켜 위급상황에 대한 대처를 게임 형식으로 미리 연습 해볼 수 있다.

게임방은 게임을 시작하기 전 컨트롤러 연습이 가능한 튜토리얼과 본 게임으 로 구성되어 있다. 튜토리얼은 지금까지 구현한 기술들을 시험해 볼 수 있는 방으로, 점프하기, 상하좌우로 걷기, 이벤트 처리 등을 이용해 볼 수 있다.

본 게임은 해양 안전에 관련된 사고 상황을 체험해 볼 수 있는 방으로, 실제 선박내의 환경을 최대한 비슷하게 재현 해보았다. 첫 번째 미션에서는 구명조 끼 착용을 예로 들어 게임을 진행 하는데, 같은 게임방 내에 있는 모든 게임 사용자들이 구명조끼 착용에 성공하면 게임이 종료된다.

현재 구현된 스토리가 다소 미흡한 부분이 있어, 추후 완성도 높은 게임을 위해 지금까지 구현한 기술에 모델과 이벤트를 추가 할 계획이다.

참고문헌

[1] 한빛미디어,『만들면서 배우는 유니티 VR 게임 개발』, 김광일, 김도윤 지 음 2017

[2] 아두니티 개발자 오재홍 블로그, http://ardunityproject.blogspot.com [3] 유니티 레퍼런스 매뉴얼, https://docs.unity3d.com/Manual/index.html [4] 포톤 기술문서,

https://doc.photonengine.com/ko-kr/realtime/current/getting-started/realtime-intr o

[5] 구글 VR 레퍼런스 매뉴얼, https://developers.google.com/vr/reference/

[6] 블렌더 레퍼런스 매뉴얼, https://docs.blender.org/manual/en/dev/

Referensi