Korea Digital Contents Society
[ Article ]
Journal of Digital Contents Society - Vol. 20, No. 12, pp.2301-2307
ISSN: 1598-2009 (Print) 2287-738X (Online)
Print publication date 31 Dec 2019
Received 22 Oct 2019 Revised 15 Nov 2019 Accepted 05 Dec 2019
DOI: https://doi.org/10.9728/dcs.2019.20.12.2301

유니티3D 게임 엔진을 이용한 물리적인 힘 기반의 썰매게임 콘텐츠 설계 및 구현

강성윤1 ; 박기홍2, *
1㈜미디어워크 연구개발팀
2목원대학교 융합컴퓨터미디어학부
Design and Implementation of Sleigh Game Content based on Physical Force using Unity3D Game Engine
Sung-Yun Kang1 ; Ki-Hong Park2, *
1R&D Lab., MediaWork CO. LTD, Daejeon 31487, Korea
2Division of Convergence Computer & Media, Mokwon University, Daejeon 35349, Korea

Correspondence to: *Ki-Hong Park Tel: +82-42-829-7639 E-mail: kihong@mokwon.ac.kr

Copyright ⓒ 2019 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

초록

본 논문에서는 유니티3D 게임 엔진을 이용한 모바일 동계 스포츠 콘텐츠를 설계하고 구현하였다. 구현된 모바일 콘텐츠는 동계 스포츠의 종류인 봅슬레이, 루지 및 스켈레톤과 같은 썰매게임으로 구성하였으며, 사용자들에게 사실감, 현실감 및 몰입도를 제공하기 위해 원심력과 중력가속도와 같은 물리적인 힘을 적용하였다. 이러한 물리적인 힘들은 실제 경기와 유사한 조작과 썰매게임 시 직선 및 커브 구간에서 자연스럽게 경사면을 올라갔다가 내려가는 물리적인 작용을 현실감 있게 연출할 수 있다. 실험 결과, 구현된 물리적인 힘 기반의 썰매게임은 설계 규격대로 동작 되었으며, 사용자들에게 사실감 및 현실감을 제공할 수 있었고 구현된 모바일 썰매게임은 동계 스포츠 비인기 종목의 관심을 높일 수 있을 것으로 기대한다.

Abstract

In this paper, we designed and implemented the mobile-based winter sport content using Unity3D game engine. The implemented mobile contents consisted of sleigh games such as bobsleigh, luge and skeleton, which are winter sports. And, physical forces such as centrifugal force and gravity acceleration were applied to provide users with realism, sense of reality and sensation of immersion. These physical forces can realistically produce the physical action of moving up and down the slope naturally similar to the actual game in the straight and curve sections during the sleigh game. As a result of the experiment, the physical force-based sleigh game was operated according to the designed configuration, and could provide the users with realism and sense of reality. In addition, the implementation of the mobile sleigh game is expected to increase the interest of the less popular sports in winter sports.

Keywords:

Sleigh game, Sport game, Mobile game, Unity Game Content, Unity3D game engine

키워드:

썰매게임, 스포츠 게임, 모바일 게임, 유니티 게임 콘텐츠, 유니티3D 게임 엔진

Ⅰ. 서 론

최근 스마트폰 보급 확대에 따른 오픈 마켓(open market)의 모바일 게임(mobile game)을 즐기는 사용자는 매년 증가하고 있으며, 가상현실(virtual reality)과 증강현실(augmented reality) 기반의 모바일 3D 게임들이 주목받고 있다 [1]. 2018년 전 세계 사용자의 모바일 애플리케이션 다운로드는 1,940억 건을 초과하였고, 콘텐츠의 전체 매출 10조 380억원을 차지하고 있다, 특히 게임 분야의 매출 비중은 2016년 전체 매출의 약 60.7%에서 2017년에는 63.2%로 상승하였다 [2],[3].

이와 같이, 현재 게임 시장이 확대되고 있으나 게임 장르에서 스포츠 게임을 이용하는 글로벌 사용자들의 점유율은 그림 1과 같이 10% 이하의 비중을 차지하고 있다 [4]. 스포츠 게임 장르에서는 야구, 농구, 양궁 등이 가장 많이 출시되고 있으나 스키, 아이스하키, 스키점프 등과 같은 동계 스포츠 콘텐츠는 게임 출시 현황이 현저히 저조하다. 또한, 그림 2와 같이 봅슬레이(bobsleigh), 루지(luge), 스켈레톤(skeleton) 등과 같은 동계 스포츠 게임은 10개 이하로 출시되어 있으며, 현실감을 포함한 게임의 완성도가 현저히 부족하다. 따라서, 본 논문에서는 동계 스포츠 게임들의 활성화 및 기존 게임들에서 부족한 현실감과 사용자들의 몰입도를 높이기 위해 물리적인 힘(physical force) 기반의 모바일 썰매게임을 설계하고 구현하고자 한다. 특히, 썰매 주행 시 직선 및 커브 구간에서 원심력(centrifugal force)과 중력가속도(gravity acceleration) 이론을 적용하여 경사면에서 현실감 있게 자연스럽게 올라갔다가 내려가는 물리적인 작용을 연출할 수 있다.

Fig. 1.

Mobile game sales charts by genre

Fig. 2.

Winter sports related applications (Google store)

본 논문의 구성은 다음과 같다. 2장에서 모바일 썰매게임의 현실감과 몰입도를 높이기 위한 원심력과 중력가속도를 설명한다. 3장에서는 제안하는 콘텐츠의 설계 및 구성을 제시하고, 게임 진행 시 커브 구간에서 물리적인 힘의 적용방법을 기술한다. 또한, 구현된 모바일 썰매게임의 주요 결과를 제시하며, 마지막으로 4장에서 결론과 향후 연구를 기술한다.


Ⅱ. 모바일 썰매게임 콘텐츠를 위한 관련 이론

물체 또는 객체(object)에는 여러 가지의 물리적인 힘이 적용되며, 다양한 힘으로 발생 되는 합력(a resultant force)은 물체의 움직임을 사실적으로 표현하고 정확성을 높일 수 있다. 본 장에서는 썰매게임의 사실적 구현과 몰입도를 높이기 위한 기본적인 물리적 힘들을 기술하고 설명한다.

2-1 원심력

원심력은 기준점을 중심으로 둘레를 원운동을 하는 물체에 나타나는 힘으로 실제로 존재하는 힘은 아니다 [5]. 여기서 원운동을 발생시키는 힘은 원운동의 중심방향으로 작용하는 구심력이 있다. 또한, 원운동은 기준점에 대해 일정한 거리를 계속 회전하므로, 원운동의 바깥 방향으로 작용하는 관성력이 작용한다. 따라서, 원심력과 구심력은 크기가 같고 방향이 반대이며, 물체가 마찰력 없이 곡선을 주행한다면 원심력의 계산은 식 (1)과 같다.

Fc=m×v2r.(1) 

식 (1)에서 알 수 있듯이 원심력은 반지름 r에 반비례하고, 속력 v의 제곱와 질량 m에 비례하는 특징을 갖는다.

2-2 중력가속도

자유낙하 운동(motion of free fall)은 물체가 지표 부근에서 오직 중력만을 받으며 낙하하는 운동을 말하며, 완벽한 자유낙하는 다른 외력이 전혀 존재해서는 안 되지만 현실에서는 공기저항이나 지구의 자전(the rotation of the earth)에 의한 관성력(inertial force)과 같은 다른 힘을 받게 된다 [6],[7]. 특히, 뉴턴의 만류 인력 G를 적용하면 식 (2)와 같이 중력(gravity)은 지구 중심에서 지표(surface)보다 떨어져 있는 경우 지구 질량 M과 물체 질량 m에 비례하고, 중심거리 r의 제곱에 반비례한다.

Fg=G×Mmr2.(2) 

또한, 무게(weight)는 어떤 물체의 질량 m에 중력가속도(acceleration of gravity) g를 곱한 값으로 나타낼 수 있으므로 중력가속도 g식 3과 같이 나타낼 수 있다.

g=G×Mr2.(3) 

식 (3)에서 중력가속도는 반지름, 즉 거리에 따라 가속도 값이 달라짐을 알 수 있으나, 일반적으로 낙하하는 물체는 전체 지구 크기로 보았을 때 거리 변화가 거의 없는 것이나 마찬가지로 가속도 역시 일정하다고 할 수 있다. 따라서, 중력 계산은 식 (2)식 (3)을 이용하여 식 (4)와 같이 간략화할 수 있다.

Fg=G×Mmr2.(4) 

2-3 관련 이론 기반의 모바일 썰매게임 설계

본 논문에서 제안하는 모바일 썰매게임은 2-1과 2-2에서 설명한 물리적인 힘들을 반영하여 게임의 정확성, 몰입도 및 현장감을 극대화하는 것을 목표로 한다. Unity3D[8] 게임 엔진을 이용하여 현장감 있는 맵(map)을 제작하고, 모션 캡처(motion capture)를 이용한 행동 패턴들(behavior patterns)을 정의하여 실제 경기와 유사한 게임 플레이 경험을 제공하고자 한다.


Ⅲ. 모바일 썰매게임 콘텐츠 설계 및 구현

3-1 콘텐츠 구성

본 논문에서 제안하는 모바일 썰매게임 콘텐츠 시스템의 구성 및 흐름도는 그림 3과 같다. 제안하는 썰매게임에서 현장감을 높이기 위해 크게 두 가지 요소를 적용하였다. 먼저, 현장감을 높이기 위해 1인칭 시점의 환경을 설정하여 직접 조정하는 체험을 느낄 수 있어야 한다 [9],[10]. 두 번째로는 2장에서 기술한 물리적인 힘들을 적용하여 실제 장비를 조작하는 것처럼 긴장감을 높이고자 하였다. 또한, 제안하는 썰매게임은 단순한 게임이 아니라 대규모 예산과 특수한 장소가 필요한 봅슬레이, 루지, 스켈레톤 등의 스포츠를 현실적으로 즐길 수 없는 상황에서 실제 경기에 필요한 물리적인 힘들을 적용한다면 이를 통해 높은 만족도를 얻을 수 있다.

Fig. 3.

Flowchart of proposed mobile sleigh game

그림 3에서 보여주듯이 제안된 썰매게임의 전체 흐름은 대표적인 동계 스포츠 중 봅슬레이, 루지 및 스켈레톤 종목을 선택하여 게임을 진행한다. 특히, 그림 4와 같이 아이템을 선택하거나 업그레이드할 수 있는 아이템 샵(item shop), 경기 트랙을 선택하는 화면 및 게임을 진행하는 화면으로 구분된다. 게임 진행은 싱글 모드(single mode)와 멀티 모드(multi mode)로 구성되며, 게임 진행은 기본적으로 1인칭 시점으로 진행된다.

Fig. 4.

Key features of proposed sleigh game

3-2 게임 내부 설계

제안하는 모바일 썰매게임의 진행 시 흐름을 나타내는 설계는 그림 5와 같으며, 각 단계에 대한 주요 장면들은 그림 6과 같다. 먼저, 그림 6(a)의 출발 화면은 사용자가 스마트폰 화면을 탭(tap)하여 달리기 속도를 높이며, 탭 속도가 빠를수록 이동속도가 빨라지도록 설계하였다. 주행은 크게 일반적인 직진(그림 6(b))과 커브 주행(그림 6(c))으로 구성되며, 커브 주행 시 2장에서 기술한 물리적인 힘들을 적용하여 긴장감 및 현실감 있는 게임성을 높였다. 또한, 그림 6(d)는 결승선을 통과하면 자동으로 멈추면서 게임의 결과를 보여주는 게임 종료 시점의 화면이다.

Fig. 5.

Internal design for game play

Fig. 6.

Main scenes of proposed sleigh game

3-3 게임 난이도 설정

제안하는 모바일 썰매게임의 난이도는 기본적으로 상, 중, 하의 난이도와 각 난이도는 3개의 트랙으로 구성하였다. 또한, 트랙의 난이도는 커브 구간을 효율적으로 돌 수 있는지 또는 특수 조작을 통해 경기를 진행하도록 구성하였으며, 난이도 하는 14~16개, 중은 17~19개, 상은 20~22개의 커브로 구성하였다.

3-4 물리적인 힘 설계

본 절에서는 2장에서 기술한 중력과 원심력을 적용하여 썰매게임의 커브 구간 또는 경사면에 물리적인 힘을 적용하였다.

그림 7의 썰매 진행 방향에서 각도 θ만큼 기울여진 경사면에 놓인 객체가 중력과 원심력이 작용하면 서로 직각인 상태가 된다. 이때, 경사면 이동에 작용하는 힘 FdFu는 서로 180°로 반대 방향이므로 원심력과 Fuθ만큼 기울여지게 되며, 경사면을 움직이는 물리적인 힘은 각각 식 (5)식 (6)과 같다.

Fig. 7.

Principles of physical force in curve section

Fd=m×g×sinθ.(5) 
Fu=m×v2r×cosθ.(6) 

식 (5)식(6)의 두 힘을 벡터의 합으로 계산하면 그림 8(b)와 같이 곡선 구간 주행 시 썰매가 경사면을 현실감 있게 자연스럽게 올라갔다가 내려가는 물리적인 작용을 연출해 줄 수 있으며, 주요 모듈 함수는 표 1과 같다.

Fig. 8.

Application of physical force in curve section

Code for applying the physical force

표 1에서 GetDownForce()와 GetUpForce() 함수는 각각 식 (5)식 (6)에 의해 곡선 구간에서 중력으로 내려가려는 힘과 원심력에 의해 올라가려는 힘을 구현한 코드이며, GetForce()는 두 힘 FdFu의 합을 구현한 함수이다.

3-5 모바일 썰매게임 콘텐츠 구현

본 논문에서 제안하는 물리적인 힘을 이용한 썰매게임 콘텐츠 구현을 위한 환경은 표 2와 같다. 게임의 배경, 캐릭터, 트랙 및 썰매 등의 객체 디자인은 3ds Max와 Photoshop을 사용하였으며, 전체적인 콘텐츠 설계와 구현은 게임 엔진 Unity5 를 이용하였다. 그림 9는 실제 경기장과 거의 유사한 봅슬레이, 루지, 및 스켈레톤 게임을 진행할 수 있도록 난이도 구분을 위한 9개의 트랙을 설계하였으며, 그림 10그림 11은 썰매게임 시 사용될 썰매들, 캐릭터와 헬멧을 디자인한 화면들이다. 그림 12는 본 논문에서 설계 및 구현된 썰매게임의 전반적인 흐름을 나타내는 화면들을 순서대로 보이고 있다.

Environment for content implementation

Fig. 9.

Nine tracks for level of difficulty

Fig. 10.

Designs for three kinds of sleigh

Fig. 11.

Designs of character and helmet

Fig. 12.

Overall flow of the implemented sleigh game


Ⅳ. 결 론

본 논문에서는 Unity3D 게임 엔진을 이용하여 모바일 기반의 동계 스포츠 게임을 설계하고 구현하였다. 구현된 썰매게임은 실제 썰매경기와 같은 유사한 조작과 커브 구간에서의 원심력과 중력가속도와 같은 물리적인 힘을 적용하여 실제 경기처럼 체험함으로써 오락성, 몰입도 및 현실감을 높일 수 있다. 실험 결과, 구현된 모바일 썰매게임이 설계 규격대로 동작함을 확인하였으며, 사용자들에게 사실감 및 현실감을 제공할 것으로 사료된다. 특히, 본 논문에서 제시한 동계 스포츠들은 국내에서 비인기 종목이나 최근 국내 선수가 메달을 획득하고 또한 방송프로그램에 방송하는 등의 이슈화가 되고 있어 구현된 모바일 썰매게임의 파급 효과가 높을 것으로 기대된다. 향후 연구에서는 현실감을 더욱 높이기 위해 VR 기능을 추가 구현하여 3D 공간의 기술적인 분야와 게임 환경의 융합 기술을 접목하여 더욱 현실감 있는 게임을 구현하고자 한다.

참고문헌

  • E S. Gwak, “A Study on Gamers’ Game Acts and Play Time,” The Journal of Korea Game Society, Vol. 17, No. 4, pp. 71-79, Aug. 2017.
  • Ministry of Science and ICT and Korea Mobile Internet Business Association, 2017 Korea Mobile Internet Industry Report, 2017.
  • Ministry of Science and ICT and Korea Mobile Internet Business Association, 2018 Mobile Content Industry Survey Report, 2018.
  • IGAWorks, Summary of Korea Mobile Game Market in the First Half of 2019, Mobile Index, Mobile Data Intelligence, 2019.
  • Wikipedia. Centrifugal force [Internet]. Available: https://en.wikipedia.org/wiki/Centrifugal_force, .
  • Wikipedia. Gravitational acceleration [Internet]. Available: https://en.wikipedia.org/wiki/Gravitational_acceleration, .
  • K. H. Park, S. Y. Kang and Y. H. Kim, “Implementation of archery game application using VR HMD in mobile cloud environments,” Advanced Science Letters, Vol. 23, No. 10, pp. 9804-9807, Oct. 2017. [https://doi.org/10.1166/asl.2017.9801]
  • Unity. Unity3D Game Engine 2019, Performance by Default [Internet]. Available: https://unity.com/kr, .
  • S. Y. Kang, K. H. Park and Y. H. Kim, “Implementation of HMD-based Archery Game using Unity Game Engine,” in Proceeding of KIIT Conference, pp. 115-116, 2017.
  • H. J. Kim and J. H. Sung, “Spatial Analysis of Mobile Augmented Reality Games,” The Journal of Korea Game Society, Vol. 19, No. 4, pp. 5-14, Aug. 2019.

Appendix

부 록

Fig. 13.

Main screens by type of the implemented sleigh game(first row-to-last row); game selection; track selection; start; straight driving; curve driving; end; score check

저자소개

강 성 윤(Sung-Yun Kang)

2008년: 목원대학교 일반대학원 IT공학과 (공학석사)

2018년: 목원대학교 일반대학원 IT공학과 (공학박사)

2004년~2010년: ㈜미디어워크 연구개발팀장

2010년~2014년: ㈜디지털C 대표이사

2014년~현 재: ㈜미디어워크 연구개발팀장

※ 관심분야 : 디지털콘텐츠, 게임프로그래밍기술, 앱(App.) 프로그래밍기술, 컴퓨터비젼 등

박 기 홍(Ki-Hong Park)

2005년: 목원대학교 일반대학원 IT공학과 (공학석사)

2010년: 목원대학교 일반대학원 IT공학과 (공학박사)

2008년~2009년: 방재정보통신지역혁신센터 연구원

2011년~2012년: ㈜인코넥스 책임연구원

2012년~현 재: 목원대학교 융합컴퓨터미디어학부 조교수

2014년~현 재: 안전문화운동추진 대전시연합회 생활안전 분과위원장

2015년~현 재: 안전모니터봉사단 대전시연합회 부회장

※관심분야: 컴퓨터비젼, 패턴인식, 영상코덱(H.26x), 디지털콘텐츠, 항공응용기술, 방재응용기술 등

Fig. 1.

Fig. 1.
Mobile game sales charts by genre

Fig. 2.

Fig. 2.
Winter sports related applications (Google store)

Fig. 3.

Fig. 3.
Flowchart of proposed mobile sleigh game

Fig. 4.

Fig. 4.
Key features of proposed sleigh game

Fig. 5.

Fig. 5.
Internal design for game play

Fig. 6.

Fig. 6.
Main scenes of proposed sleigh game

Fig. 7.

Fig. 7.
Principles of physical force in curve section

Fig. 8.

Fig. 8.
Application of physical force in curve section

Fig. 9.

Fig. 9.
Nine tracks for level of difficulty

Fig. 10.

Fig. 10.
Designs for three kinds of sleigh

Fig. 11.

Fig. 11.
Designs of character and helmet

Fig. 12.

Fig. 12.
Overall flow of the implemented sleigh game

Fig. 13.

Fig. 13.
Main screens by type of the implemented sleigh game(first row-to-last row); game selection; track selection; start; straight driving; curve driving; end; score check

Table 1.

Code for applying the physical force

variable content variable content
m weight, mass v speed, acceleration
g = 9.8f gravity acceleration r radius
functions
float GetDownForce(float angle) { // force to rise by centrifugal force
      float force = (m * g) * Mathf.Sin(angle * Mathf.Deg2Rad);
      return force;
}
float GetUpForce(float angle) { // force to descend by gravity
      float force = (m * v * v / r) * Mathf.Cos(angle * Mathf.Deg2Rad);
      return force;
}
float GetForce(float angle) { // Sum of two forces vector
      return GetUpForce(angle) - GetDownForce(angle);
}

Table 2.

Environment for content implementation

category contents
O/S window 7 / 10 (64bit)
S/W Visual Studio 2017, 3ds Max 2015, Photoshop CS6
game engine Unity 5 (2019)