8
ISSN 2383-6318(Print) / ISSN 2383-6326(Online) KIISE Transactions on Computing Practices, Vol. 21, No. 5, pp. 343-350, 2015. 5 http://dx.doi.org/10.5626/KTCP.2015.21.5.343 †† 비 회 원 종신회원 : : 한국기술교육대학교 컴퓨터공학부 [email protected] [email protected] [email protected] [email protected] 한국기술교육대학교 컴퓨터공학부 교수 (Koreatech Univ.) [email protected] (Corresponding author) 논문접수 : 20141114(Received 14 November 2014) 논문수정 : 201522(Revised 2 February 2015) 심사완료 : 2015223(Accepted 23 February 2015) Copyright2015 한국정보과학회ː개인 목적이나 교육 목적인 경우, 이 저 작물의 전체 또는 일부에 대한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때, 사본은 상업적 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처 를 반드시 명시해야 합니다. 이 외의 목적으로 복제, 배포, 출판, 전송 등 모든 유형의 사용행위를 하는 경우에 대하여는 사전에 허가를 얻고 비용을 지불해 야 합니다. 정보과학회 컴퓨팅의 실제 논문지 제21권 제5(2015. 5) 립 모션 컨트롤러를 이용한 야구 게임 개발 (Development of Baseball Game Using Leap Motion Controllers) 주향한 조민수 인승교 조규원 민준기 †† (Hyanghan Joo) (Minsoo Cho) (SeungKyo In) (Kyuwon Cho) (Jun-Ki Min) 마우스와 키보드와 같은 입력장치를 사용하여 할 수 있는 게임들은 많이 출시되었다. 그러나 최근에 키넥트와 Wii와 같이 인체를 움직여 인식을 받는 게임들이 증가하고 있는 추세이다. 본 논문에서 는 사람의 손 모션을 정확하게 인식하는 센서들 중 하나인 립 모션 컨트롤러를 사용하여 즐길 수 있는 야 구게임 개발에 대하여 다룬다. 개발된 게임의 주요 요소는 캐릭터, 야구장이 속하는 배경, 애니메이션으로 구성되어 있으며, 3인칭 시점의 야구게임 형식으로 진행된다. 이 게임의 가장 큰 특징은 게임 사용자가 립 모션 컨트롤러를 활용하여 색다른 게임 플레이가 가능하다는 점이다. 키워드: 립 모션, 유니티 3D, 게임, 야구 Abstract While many games have been published that are used with input-devices such as a mouse and keyboard, the number of games that can recognize the behavior of a human utilizing devices such as Kinect and Wii has increased. In this paper, we present the development of a baseball game that utilizes a Leap Motion Controller. A Leap Motion Controller recognizes accurately the movement of a user`s fingers. Our implemented game consists of characters, a background and animation. It is a moving animated game in which the users play a game in point of view of a third person. The major feature of our game is that the game players can enjoy the game using a Leap Motion Controller. Keywords: Leap Motion, Unity 3D, Game, Baseball 1. 서 론 스포츠 게임(Sports game)은 스포츠를 주제로 한 게 임으로, 축구, 농구, 야구, 그 외의 레이싱 게임도 여기 에 속하는 종류이다[1]. 특히 PC로 개발된 게임 장르 중 스포츠게임은 많은 관심을 받는 분야이다. 이러한 관 심은 PC만 있으면 누구나 쉽게 스포츠를 게임으로 즐 길 수 있다는 장점에 기인한다. 2014 인천아시안게임 국제무대에서 대한민국 야구대 표팀이 우승을 이루고 한국 프로야구의 관심이 높아지 면서 프로야구가 대표적인 국민스포츠로 인기를 모으고 있다. 또한 사회인 야구단의 숫자는 큰 폭으로 늘고 있 는 추세이다. 이러한 추세는 일반인들이 프로야구를 단 순히 관람에 그치지 않고, 레저 및 스포츠에 직접 참여 하고자 하는 것으로 풀이될 수 있다. 하지만 야구는 넓 은 경기장과 야구장비 그리고 많은 인원이 필요한 단체 스포츠로 일반인들이 접근하기에 쉽지 않은 스포츠이다. IT 기술이 발전함에 따라 최근에는 휴대기기도 PC

(Development of Baseball Game Using Leap Motion Controllers) · 립 모션을 사용하는 어플리케이션을 만들기 위한 헤더 파일과 코드 라이브러리를 포함하는

  • Upload
    others

  • View
    2

  • Download
    1

Embed Size (px)

Citation preview

Page 1: (Development of Baseball Game Using Leap Motion Controllers) · 립 모션을 사용하는 어플리케이션을 만들기 위한 헤더 파일과 코드 라이브러리를 포함하는

ISSN 2383-6318(Print) / ISSN 2383-6326(Online)

KIISE Transactions on Computing Practices, Vol. 21, No. 5, pp. 343-350, 2015. 5

http://dx.doi.org/10.5626/KTCP.2015.21.5.343

††

비 회 원

종신회원

:

:

한국기술교육 학교 컴퓨터공학부

[email protected]

[email protected]

[email protected]

[email protected]

한국기술교육 학교 컴퓨터공학부 교수

(Koreatech Univ.)

[email protected]

(Corresponding author임)

논문 수 : 2014년 11월 14일

(Received 14 November 2014)

논문수정 : 2015년 2월 2일

(Revised 2 February 2015)

심사완료 : 2015년 2월 23일

(Accepted 23 February 2015)

CopyrightⒸ2015 한국정보과학회ː개인 목 이나 교육 목 인 경우, 이

작물의 체 는 일부에 한 복사본 혹은 디지털 사본의 제작을 허가합니다.

이 때, 사본은 상업 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처

를 반드시 명시해야 합니다. 이 외의 목 으로 복제, 배포, 출 , 송 등 모든

유형의 사용행 를 하는 경우에 하여는 사 에 허가를 얻고 비용을 지불해

야 합니다.

정보과학회 컴퓨 의 실제 논문지 제21권 제5호(2015. 5)

립 모션 컨트롤러를 이용한 야구 게임 개발(Development of Baseball Game Using

Leap Motion Controllers)

주 향 한† 조 민 수

† 인 승 교

† 조 규 원

† 민 기

††

(Hyanghan Joo) (Minsoo Cho) (SeungKyo In) (Kyuwon Cho) (Jun-Ki Min)

요 약 마우스와 키보드와 같은 입력장치를 사용하여 할 수 있는 게임들은 많이 출시되었다. 그러나

최근에 키넥트와 Wii와 같이 인체를 움직여 인식을 받는 게임들이 증가하고 있는 추세이다. 본 논문에서

는 사람의 손 모션을 정확하게 인식하는 센서들 하나인 립 모션 컨트롤러를 사용하여 즐길 수 있는 야

구게임 개발에 하여 다룬다. 개발된 게임의 주요 요소는 캐릭터, 야구장이 속하는 배경, 애니메이션으로

구성되어 있으며, 3인칭 시 의 야구게임 형식으로 진행된다. 이 게임의 가장 큰 특징은 게임 사용자가 립

모션 컨트롤러를 활용하여 색다른 게임 이가 가능하다는 이다.

키워드: 립 모션, 유니티 3D, 게임, 야구

Abstract While many games have been published that are used with input-devices such as a

mouse and keyboard, the number of games that can recognize the behavior of a human utilizing

devices such as Kinect and Wii has increased. In this paper, we present the development of a baseball

game that utilizes a Leap Motion Controller. A Leap Motion Controller recognizes accurately the

movement of a user`s fingers. Our implemented game consists of characters, a background and

animation. It is a moving animated game in which the users play a game in point of view of a third

person. The major feature of our game is that the game players can enjoy the game using a Leap

Motion Controller.

Keywords: Leap Motion, Unity 3D, Game, Baseball

1. 서 론

스포츠 게임(Sports game)은 스포츠를 주제로 한 게

임으로, 축구, 농구, 야구, 그 외의 이싱 게임도 여기

에 속하는 종류이다[1]. 특히 PC로 개발된 게임 장르

스포츠게임은 많은 심을 받는 분야이다. 이러한

심은 PC만 있으면 구나 쉽게 스포츠를 게임으로 즐

길 수 있다는 장 에 기인한다.

2014 인천아시안게임 국제무 에서 한민국 야구

표 이 우승을 이루고 한국 로야구의 심이 높아지

면서 로야구가 표 인 국민스포츠로 인기를 모으고

있다. 한 사회인 야구단의 숫자는 큰 폭으로 늘고 있

는 추세이다. 이러한 추세는 일반인들이 로야구를 단

순히 람에 그치지 않고, 스포츠에 직 참여

하고자 하는 것으로 풀이될 수 있다. 하지만 야구는 넓

은 경기장과 야구장비 그리고 많은 인원이 필요한 단체

스포츠로 일반인들이 근하기에 쉽지 않은 스포츠이다.

IT 기술이 발 함에 따라 최근에는 휴 기기도 PC와

Page 2: (Development of Baseball Game Using Leap Motion Controllers) · 립 모션을 사용하는 어플리케이션을 만들기 위한 헤더 파일과 코드 라이브러리를 포함하는

344 정보과학회 컴퓨 의 실제 논문지 제 21 권 제 5 호(2015. 5)

맞먹는 성능을 갖게 되고 이와 더불어 컨트롤러의 성능

도 크게 발 되고 있다. 2012년 Leap Motion Inc에서

만든 립 모션 컨트롤러는 0.01mm까지 손가락의 움직임

을 인식할 수 있다. 이에 해 본 논문은 야구게임에 립

모션 컨트롤러를 이용하여 일반인들이 야구 경기장과

비싼 야구장비 없이 야구를 즐길 수 있는 게임을 구

하는 방안을 제안한다. 사용자는 립 모션 컨트롤러를 통

해 포인터와 손가락 모션을 입력한다. 이 게임은 투수모

드(수비)와 타자모드(공격)로 구성되어 있다. 특히 본 게

임의 개발에서 사용자의 흥미를 높이기 하여 공의 구

질을 사용자가 정할 수 있도록 하 다. 이러한 구질을

명확하기 결정하기 하여 투수모드에서는 립 모션 컨

트롤러로부터 입력받은 손가락 포인터를 가지고 구질을

정하도록 구 하 다. 구질은 투심, 커 , 커터, 싱커,

클, 슬라이더 총 6가지로 구성되어있고, 사용자는 이

러한 여러 종류의 구질을 체험할 수 있도록 설계했다.

타자모드에서는 투수가 공을 던진 타이 에 맞춰 사용

자의 모션을 입력받으면 타격을 하고 한 타격 시에

모션 입력을 추가하 다. 각각의 모드와 다양한 모션 입

력을 통해 게임에 해 흥미를 증가시키고 사용자가 게

임을 즐기는데 지루함을 이는 효과를 얻는다.

2. 배경지식

2.1 립 모션 컨트롤러

립 모션 컨트롤러[2]는 높이 12.7 mm, 비 80 mm

의 작은 USB 주변기기로 2개의 외선 카메라( 외선

인식 모듈)과 3개의 외선 LED( 원)으로 이루어져

있다. 이 외선 센서는 직경 1미터 내의 반구형 범 를

인식한다. 외선 카메라가 상정보를 받아들이면서 x,

y, z축을 결정하게 된다. 다음으로 화면상의 특정 을

추출해, 이 이 움직이는 궤도를 연속 으로 추 한 뒤,

추 된 들을 분석해 움직임을 인식하게 된다. 립 모션

컨트롤러는 각 150도 시야와 z축 좌표로 실의 손

움직임 궤 을 인식하여 3차원으로 나타낸다. 이 센서는

200 FPS( 당 임)로 움직임을 추 하기 때문에, 사

용자가 움직이는 로 화면의 상도 정 하게 따라서

작동한다. 이 작은 인식범 와 고해상도 립 모션 컨트롤

러는 거실 크기의 공간에서 온 몸을 인식하는 기기인

키넥트와는 구별된다.

립 모션을 사용하는 어 리 이션을 만들기 한 헤더

일과 코드 라이 러리를 포함하는 Software Develop-

ment Kit(이하 SDK)로 유니티 3D, 오 젝트C, 자바스

크립트용 래퍼를 제공하여 게임, iOS 앱, 웹 사이트로

사용 가능 범 를 확 하고 있다.

2.2 유니티 3D

유니티 게임엔진은 3D 비디오 게임이나 건축 시각화,

실시간 3D 애니메이션 같은 기타 인터랙티 콘텐츠를

제작하기 한 통합 제작 도구이다. 에디터는 도와 맥

OS X 상에서 실행되어 도나 맥, Wii, 아이패드, 아이폰

랫폼으로 게임을 만들 수 있다. 유니티 웹 이어

러그 인을 이용하는 웹 라우 게임도 제작할 수 있다.

이는 래시와 유사한 형태이며, 크로스 도메인 보안정책

스크립 에서도 래시 사용자가 쉽게 응할 수 있도

록 설계되었다. GUI 구 에 IMGUI(즉시모드 GUI)를 도

입하 다[3]. 이를 통해 간단하고 은 양의 스크립트로

GUI를 구 할 수 있다는 장 이 있으나, 복잡한 형태의

GUI 이벤트 처리 로시 작성이 어려워진다. 버

4.1.3 재 GUI를 스크립트가 아닌 에디터에서 작성하는

기능은 지원하지 않고 있다. 엔진 자체에 미들웨어를 탑

재하 다. 로 라이트 맵핑이나, 물리 엔진 등이 있다.

그리고 에디터에 애셋 스토어가 있어 에디터 내에서 필요

한 애셋들을 바로 다운로드하여 사용할 수 있다.

유니티 내에서 스크립트를 바로 수정은 하지 못하고

Mono Develop, MicroSoft Visual Studio 등 유니티를

지원하는 스크립트 에디터에서 수정이 가능하다. 한

유니티는 Premium Support 솔루션을 지원한다.

3. 련연구

2010년에 발표된 컨트롤러 없이 이용자의 신체를 이

용하여 게임과 엔터테인먼트를 경험할 수 있는 주변기

기이다. 키넥트는 카메라 모듈이 장착되어 모션 캡처로

이어의 동작을 인식하며, 마이크 모듈로 음성을 인

식한다. 구형 엑스박스 360 모델과 연결하기 해서는

별도의 원이 필요하다. XBOX ONE 게임기는 업데이

트된 버 의 키넥트를 장착한다. 새로운 키넥트는 a1080p

시야각 ToF(time-of-light) 카메라를 사용하며 환경

을 읽기 해 당 2기가바이트의 속도로 데이터를 처

리한다. 선택 사항이었던 엑스박스 360의 키넥트와는 달

리 XBOX ONE 게임기는 키넥트 센서가 연결되어 있

지 않으면 동작하지 않는다. 그러나 사용자들은 센서가

게임기에 연결이 유지된 상태에서 모든 키넥트 기능을

끌 수 있는 소 트웨어를 내려 받아 사용할 수 있다

[4]. 이에 따라서 [5]에서는 키넥트를 이용한 슈 게임

을 제안하 다. 그런 키넥트는 넓은 공간이 필요함으로

작은 공간에서는 이를 활용하기가 어렵다.

본 로젝트에서 애니메이션을 다루기 해 아이트

애니메이션 러그 인을 사용한다. 아이트 은 유니티에

서 사용되는 단순하고 강력하고 쉬운 애니메이션 시스

템이다. 아이트 을 가지고 움직임, 회 , 사라짐, 크기

변경, 음향 조 등이 가능하다. 아이트 은 메소드 실

행을 허용하는 동 클래스이다. 아이트 은 지연, 루핑,

콜백 등 애니메이션을 제작하는 기능을 제공한다[6].

Page 3: (Development of Baseball Game Using Leap Motion Controllers) · 립 모션을 사용하는 어플리케이션을 만들기 위한 헤더 파일과 코드 라이브러리를 포함하는

립 모션 컨트롤러를 이용한 야구 게임 개발 345

최근 손가락 동작인식 컨트롤러인 립 모션이 등장함

에 따라 이 입력장치를 이용한 여러 분야의 로그램이

등장하고 있다[7-9].

[7]에서는 립 모션 컨트롤러를 이용하여 아이들에게 흥

미를 끌 수 있는 어린이용 게임을 구 하 다. 소티

(Sortee)라는 게임은 일상의 사물들을 분야별로 분류하는

어린이용 퍼즐게임이다. 외국에서는 학교 수업에도 활용

되고 있고 ‘선호하는 웹 사이트 상’에서 ‘Cutting-edge

Design’ 부분에서 수상하기도 하 다.

[8]은 립 모션 컨트롤러를 이용한 리듬게임이다. Drop-

chord라는 게임은 음악 반주에 박자를 맞추고, 수를

획득하는 음악 게임으로써 정해진 GUI의 원안에 양 손

가락을 센서로 인식 받아 직선 막 기를 만들어서 움직

여서 음표를 모으는 것이 목 이다. 오리지 사운드트

랙 피처링과 독특한 시각화를 나타낸 것이 특징이다.

[9]에서는 립 모션 컨트롤러를 이용한 교육용 로그

램이다. Cyber Science라는 로그램은 동물학을 공부

하는 로그램이다. 동물들을 실제로 해부, 조립하기 쉽

지 않은 여건을 가진 사람들을 한 로그램이다. 사용

자가 립 모션 컨트롤러를 이용하여 직 독거미, 장수풍

뎅이, 지 이 등 동물을 사용자 해부학 수 에 맞는 빠

르기로 해부, 재조립하고 해부학상 명칭을 배울 수 있는

교육용 로그램이다. 이에 반하여 본 논문에서는 립 모

션 컨트롤러를 이용하여 스포츠게임의 분야인 야구게임

을 기존의 입력장치인 마우스와 키보드가 아닌 손가락

을 인식 받아 이용할 수 있게 로그램을 구 하 다.

4. 게임의 설계구

4.1 게임 모듈 구조도

본 게임의 시스템 구조는 그림 1과 같다. 본 게임은

립 모션 컨트롤러로부터 받은 입력으로 사용자가 투수

모드와 타자모드를 정하도록 선택을 하면서 작동하는

로그램이다. 사용자가 투수모드를 선택했을 때, 각 손

가락의 x, y 좌표를 인식 받아 분할된 4개의 역 안의

각각 포인트들 개수를 악하여서 구질을 선택할 수 있

게 입력을 넣었다. 구질이 선택된 후에 투구 치를 선

택하고 주먹을 쥐는 동작을 하면, 진행 바 안의 좌우로

움직이고 있는 속도 선택 바가 정지하게 되며, 정지된

치에 따라 공의 속도가 결정되며 투수가 공을 던진다.

타자모드 선택했을 때, 사용자는 타격할 배트 치를

배 존 안에서 선택한다. 투수 모드의 투구 선택 방법

과 동일한 방법으로 사용자가 주먹을 쥐는 동작을 취하

는 순간 타격 시 이 결정되어 공을 타격하게 된다. 타

격 시 과 공의 치에 따라서 홈런, 안타, 올, 스윙이

결정되며 안타 시에는 사용자가 손을 회 시켜 진루를

결정하도록 하 다.

그림 1 모듈 구조도

Fig. 1 Module Structure

4.2 게임의 시스템 구성 요소

그림 2는 게임의 시스템 구성 요소를 나타낸 것이다.

구성 요소로는 크게 유니티 로젝트(Unity Project),

립 모션(Leap Motion), 사용자(User) 3개가 존재한다.

첫 번째 구성 요소인 유니티 로젝트는 게임 시나리

오에 따른 장면(Scene)들로 구성된다. 장면은 애셋

(Asset), 컴포 트(Component) 그리고 스크립트(Script)

로 구성되어 있다[10]. 사용자는 유니티 3D를 이용하여

작성된 장면(Scene)을 보며 게임을 진행하게 되고 장면

은 캐릭터, 배경 등과 같이 사물을 나타내는 애셋(Asset)

들로 구성되고 컴포 트는 게임 개발자가 모델링한 객체

(object)와 로그램 언어로 작성된 스크립트(Script)와

결합하여 동 인 움직임, 소리 등을 나타내는 것을 컴포

트(Component)라 한다. 를 들어, 본 게임에서는 야

구장과 같은 배경이 애셋이며 동 으로 움직이는 객체인

공과 공에 용되는 명령문(즉, 사용자의 명령에 따라서

움직여지는 모습)이 컴포 트이다.

이외의 구성요소로는 게임을 이용하는 사용자(User)

와 사용자로부터 게임을 진행하기 한 명령을 입력받

는 인터페이스인 립 모션 컨트롤러가 있다.

그림 2 게임 구성 요소

Fig. 2 Components of the Game

4.3 세부 기능

표 1에서 게임 내 기능을 정리하 다. 게임 배경은 야

구 게임에 맞게 야구 경기장 모습으로 구 하 다. 하늘

은 유니티에서 제공하는 스카이 박스를 이용하여 구

Page 4: (Development of Baseball Game Using Leap Motion Controllers) · 립 모션을 사용하는 어플리케이션을 만들기 위한 헤더 파일과 코드 라이브러리를 포함하는

346 정보과학회 컴퓨 의 실제 논문지 제 21 권 제 5 호(2015. 5)

표 1 세부 기능

Table 1 Functions

No Function Description

1 Background Background is a Baseball stadium

2 Character Design hitter and pitcher as characters

3Handing

(Mode Selection)Select Picture mode or Hitter mode using a finger

4Handling

(Ball Quality Selection)

As Ball quality, we design Two-Seam Fastball, Curve, Cutter, Sinker, Knuckle, Slider

which are similar to the grips of actual play

5Handling

(Location Selection)Select location of ball in/out of a strike zone

6Handling

(Speed)Progress bar to control ball speed

7Handing

(Hit)Select bat location within a strike zone and hitting time

8Handling

(Advance Motion)When hitter hits a ball, the advance motion is determined by swing speed

하 다. 투수, 타자와 같은 캐릭터는 애셋 스토어에 있

는 것을 이용하여 구 하 으며, 애니메이션 효과를

용시켜 타격과 투구 모습을 사용자에게 보여 다.

모드 선택, 구질 선택, 치 선택은 립 모션 컨트롤러

를 이용하여 사용자가 선택하도록 하 다. 투수 모드

는 타자 모드 선택은 사용자가 립 모션 컨트롤러를 통

하여 GUI 상에서 해당 버튼을 지정하고 2 의 시간이

지나면 결정되어지도록 하 다.

투수 모드에서 구질 선택은 손가락 포인트의 치가

각 구질 별로 나타나있는 치와 일치 할 시 빨간 네온

효과가 구질 그림에 나타나며, 2 의 시간이 흐른 뒤 선

택된다. 이후 사용자는 스트라이크 존 안에서의 공의

치를 립 모션 컨트롤러를 이용하여 결정할 수 있도록

한다. 한, 공의 스피드 조 은 진행 바(Progress Bar)

가 좌우로 움직이고 있을 때 사용자가 주먹을 쥐게 되

는 시 의 바의 치에 따라서 결정하도록 하 다.

타자 모드에서 타격은 타격할 공의 치를 먼 선택

하는 조작 기능이고 공 타격 시 진루를 결정하기 해

회 입력을 립 모션 컨트롤러로부터 받는다.

4.4 투수모드의 구질 선택 기법

사용자의 흥미를 높이기 하여 본 게임 개발에서는

사용자가 다양한 구질을 립 모션 컨트롤러를 이용하여

선택할 수 있도록 하 다. 공의 구질 선택 다음과 같은

방법을 이용하 다. 우선 그림 3과 같이 립 모션 컨트롤

러의 탐지 역을 4분할하여 각각 제 1 역, 제 2 역,

제 3 역, 제 4 역으로 구분한다.

다음 그림 4와 같이 립 모션 컨트롤러로 사용자의 손

가락의 포인트들을 인식하여 분할된 4개의 역에 각각

포인트들의 개수를 악하여 손가락 모양을 인식하도록

설계하 다.

를 들어 그림 4와 같이 첫 번째 역과 두 번째

그림 3 탐지 역의 4분할

Fig. 3 4 Orthants of a Detected Area

그림 4 손가락의 치 탐지

Fig. 4 Detection of Fingers' Location

역 즉, 상단 부분에 손가락 포인트가 3개 이상이 있고 세

번째 역에 포인트가 한 개가 있다고 인식 하게 되어 해

당 구질(즉, 슬라이더) 구질이라고 단하게 되는 것이다.

원리를 더 자세하게 살펴보면 각각의 포인트가 좌표

를 읽어 재 포인트인 pos.x 좌표가 체화면 가로크

기의 반인 center.x 포인트보다 크고 동시에 재 포인트

인 pos.y 좌표가 체화면의 세로크기의 반인 center.y

좌표보다 크면 정수형으로 선언된 제 1 역의 변수 값

을 더 해 으로써 각각의 역에 몇 개의 포인트들이

있는지 계산하게 되는 것이다. 이러한 방법으로 1 임

마다 불러오는 update()에서 단하여 재 결정된 구

질이 변화 없이 2 간 유지되면 볼이 선택되는 방식이

다. 이를 통하여 사용자는 공의 구질을 결정하는 공의

Page 5: (Development of Baseball Game Using Leap Motion Controllers) · 립 모션을 사용하는 어플리케이션을 만들기 위한 헤더 파일과 코드 라이브러리를 포함하는

립 모션 컨트롤러를 이용한 야구 게임 개발 347

표 2 볼의 구질

Table 2 Quality of Ball

Two-seam (linear) Curve (easeOutSine) Cutter (easeInOutSine)

Sinker (easeInQuad) Knuckle (easeOutBack) Slider (easeOutCubic)

그립을 잡게 됨으로써 보다 사실 으로 게임을 진행할

수 있다.

투수 모드에서 공의 구질이 결정되고 스트라이크 존에

서의 공의 치와 공의 속도를 결정하게 된다. 공의 치

한 포수의 치에서 특정 치를 립 모션 컨트롤러로

부터 입력 받아 결정하도록 하 으며 공의 속도는 좌우

로 진행 되는 진행 바에 하여 사용자가 주먹을 쥐는

순간 진행 바의 치를 통하여 결정하도록 하 다.

이후 투수 캐릭터는 공을 던지게 되고 이때 공이 움

직이는 궤도는 유니티 로젝트내의 컴포 트 구 을

지원하는 iTween이라는 유니티 러그 인을 사용하

다. 유니티 안의 Translate 기능을 이용하여 오 젝트의

움직임을 표 할 수 있지만, iTween은 유니티 로젝트

내 오 젝트의 움직임을 자연스럽게 표 해 다. 따라

서, 투수 모드에서 공 궤 을 부드럽게 표 하기 해서

iTween을 사용하 다. iTween에서 사물이 움직이는 궤

을 지정하는 함수는 iTween.MoveTo(object, iTween.

Hash())이며 이때 object는 움직이는 사물을 가리킨다.

즉 본 게임에서는 공이 된다. iTween.MoveTo함수의

입력 인자인 iTween.Hash() 함수는 움직이는 공의 속도

와 궤 을 입력 받는다. 공의 속도는 에서 언 한 바

와 같이 진행 바를 통하여 입력받게 되며 0.45 에서 0.7

동안 공이 움직이도록 하 다. 공의 궤 은 iTween

의 easy type에서 지원하는 31개의 궤 들 에서 구질

에 따라 가장 합한 궤도 모양을 움직임의 타입으로

지정하여 궤도를 구 하 다. 각 구질에 따라서 선택된

easy type 궤 의 2차원 모습을 표 2에 나타내었다.

4.5 타자모드의 정 기법

타자 모드에서의 게임 진행은 다음과 같다. 우선 타자

는 스트라이크 존 상에서의 타격할 공의 치를 정하고

투수가 투구를 진행하여 공이 움직이면 주먹을 쥐어서

그림 5 유니티 3D 기즈모

Fig. 5 Unity 3D Gizmo

타격 시 을 결정하게 된다. 이때 타격에 따른 홈런, 안

타, 올, 스윙을 정하는 방법은 다음과 같다. 투수와

포수를 잇는 직선을 z축이라고 할 때 이와 직교하고 있

는 2차원 평면을 x-y공간으로 나타낼 수 있다. 그림 5

는 유니티 3D에서 기즈모라는 것으로 3차원 공간상에서

편집을 해 쓰이는 표식과 도구이다[9]. 그림 5에서 보

는 것과 같이 빨간색 화살표는 x축을 록색 화살표는

y축을 란색 화살표는 z축을 나타낸다. 이때, 란색

평면이 x-y 공간이고 란색 선이 z축이 된다.

홈 이트 상의 x-y 공간을 9개(3×3)의 구역으로

나 고 타자는 타격 치를 정하게 되고 이 타격 치

가 투수가 던진 공의 치와 다르면 스윙으로 단한다.

타격 치와 공의 치가 x-y 평면상의 같은 구역 안

에 있을 경우에 사용자가 결정한 타격 시 과 공의

치에 따른 배트와 공의 z축 상의 거리를 계산하고 이

거리를 이용하여 홈런, 안타, 울을 결정한다. 본 개발

에서 배트와 공의 z축 상의 거리는 -1.0에서 1.0 사이가

되도록 정규화 (normalization)하 으며, 이때 -0.1~0.1

사이이면 홈런으로 결정하고 -0.5~-0.1과 0.1~0.5 사이

이면 안타, 이외이며 울이 되도록 하 다.

Page 6: (Development of Baseball Game Using Leap Motion Controllers) · 립 모션을 사용하는 어플리케이션을 만들기 위한 헤더 파일과 코드 라이브러리를 포함하는

348 정보과학회 컴퓨 의 실제 논문지 제 21 권 제 5 호(2015. 5)

한 안타가 발생할 경우 진루 수를 결정하기 한

화면이 나타나게 되며, 여기서는 사용자가 손가락을 둥

게 돌리는 행 를 통하여 빨리 돌리면 진행 바가 빠

르게 올라가고, 느리게 돌리면 진행 바가 느리게 올라가

게 하여 진루를 결정한다. 재미 요소를 추가하기 해

진행 바가 올라가는 속도는 임의 값을 이용하여 조 하

도록 하 다.

5. 로그램 시연

5.1 개발환경

개발환경으로 하드웨어 환경은 CPU i5 1.3GHz, 8GB

메모리를 사용하 으며, 소 트웨어 환경은 Windows 7

x64 운 체제 하에, 유니티 3D 개발 도구를 이용하여

만들었으며, 스크립트는 C#을 이용하 다. 립 모션 컨트

롤러가 손가락을 인식 받기 해서 립 모션 SDK를 이

용하여 개발하 다.

5.2 로그램 시연 화면 소개

그림 6은 로그램 처음 화면이다. 화면 내에서 마우

스나 키보드로는 조작이 불가능하며 오직 립 모션 컨트

롤러를 이용하여 조작을 할 수 있다. 손가락의 끝을 인

식 받아 빨간색 을 화면에 표시하며, 그 을 버튼

에 치하고 있으면 일정한 시간이 흐른 뒤 선택 되는

것을 확인할 수 있다. 만약 다수의 손가락 끝을 인식하

게 될 시 앙의 포인트를 조작이 가능한 손가락으로

인식하며 빨간색 으로 표시하고 나머지의 포인트들은

회색으로 표시하여 인식이 되지 않는 것을 보여 다.

Play Game 버튼을 선택하게 되면 그림 7과 같은 화면

이 나오게 된다.

그림 7은 사용자가 투수 모드, 타자 모드를 선택하여

게임을 시작 할 수 있도록 하 다. 그림 8은 투수 모드

선택 시 나타나는 화면 첫 번째인 구질 선택 화면이

다. 선택 할 수 있는 구질은 투심, 커 , 커터, 싱커,

클, 슬라이더 총 6개로 구성 되어 있다. 그림 8에서 빨

간 은 유 의 손가락 끝 을 나타내는 것이다. 이

그림 6 로그램 실행 첫 화면

Fig. 6 Initial Screen of the Program

그림 7 게임 모드 선택 화면

Fig. 7 Game Mode Selection GUI

그림 8 구질 선택 화면

Fig. 8 Ball Quality Selection GUI

그림 9 투구 치 선택 화면

Fig. 9 Ball Location Decision GUI

들을 구질에 나타나 있는 록색 과 같은 모양을 하

면 구질에 빨간색 네온 효과가 나타나며 일정 시간이

지난 후에 구질이 선택되고 그림 9인 투구 치 선택

화면으로 넘어가게 된다.

그림 9의 화면 왼쪽 상단에 나타나있는 ST, BALL은

볼카운트인 Strike와 Ball을 의미하며 OUT은 아웃카운

트를 나타낸다. 게임이 진행됨에 따라서 볼카운트와 아

웃카운트가 계산된다. 오른쪽 상단은 Score 부분의 Player,

Com은 사용자와 컴퓨터가 가진 수를 나타낸다. 오른

쪽의 베이스가 나타나 있는 미니맵을 통해 주자의 치

를 알 수 있으며, 타격을 할 시 주자가 이동하는 것을

미니맵을 통해 확인 할 수 있다. 한 사용자가 투구의

치를 결정할 때, 스트라이크 존에 보이는 은 사용자

Page 7: (Development of Baseball Game Using Leap Motion Controllers) · 립 모션을 사용하는 어플리케이션을 만들기 위한 헤더 파일과 코드 라이브러리를 포함하는

립 모션 컨트롤러를 이용한 야구 게임 개발 349

그림 10 타자 모드 화면

Fig. 10 Hitter Mode GUI

그림 11 진루 모션 화면

Fig. 11 Advance Motion GUI

가 공을 던질 치를 나타내며, 이 은 스트라이크 존 밖

의 역까지 이동이 가능하며 사용자 임의로 볼 공을 유

도할 수 있다.

그림 10은 타자 모드의 첫 화면이다. 타자 모드의 진

행 순서는 타격 치 선정, 타격 성공 시 서클 모션을

통해 진루를 결정하게 된다. 그림 11은 타격 성공 시 서

클 모션에 한 지시를 나타내고 있는 그림이다. 서클

모션을 정확하고 빠르게 할수록 오른쪽의 진행 바

(progress bar) 는 큰 폭으로 증가하게 된다. 진루 게이

지 내 일정한 역을 기 으로 1루타, 2루타, 3루타, 홈

런으로 분류해 놓았다.

6. 결 론

마우스와 키보드와 같이 들이 많이 사용하는 컨

트롤러를 신해서 사용자의 동작을 인식 받아 작동 되

는 동작 인식 컨트롤러라 출시되고 있다. 본 논문에서는

립 모션 컨트롤러라는 손가락의 동작을 인식 받아 사용

되는 기기를 이용하여 야구 게임을 제작하 다. 야구공

을 잡는 방법에 따라 구질이 바 는 것을 착안하여 제

작하 기 때문에 게임을 이용하면서 투구에 한 심

을 더 가질 수 있다. 수비부분에서는 진루의 기능만 추

가하 으나, 야구 규칙에 따른 수비와 투수의 다양한 행

동, 주자에 한 행동 등을 추가하여 좀 더 실질 인 야

구 게임을 구 할 시 들에게 많은 심과 호응을

얻을 수 있을 것이라 여겨진다.

References

[ 1 ] Wikipedia, Sports game, [Online] http://en.wikipedia.

org/wiki/Sports-game (donwloaded 2014. Nov. 10)

[ 2 ] Leap Motion, [Online] http://www.Leap Motion.kr

(donwloaded 2014. Nov. 10)

[ 3 ] Wikipedia, Unity(game engine), [Online] http://en.

wikipedia.org/wiki/Unity_(game_engine) (donwloaded

2014. Nov. 10)

[ 4 ] Wikipedia, Kinect, [Online] http://en.wikipedia.org/

wiki/Kinect (donwloaded 2014. Nov. 10)

[ 5 ] iTween, [Online] http://itween.pixelplacement.com/

index.php (donwloaded 2014. Nov. 10)

[ 6 ] Sunyoung Cho, Hyeran Byun, Hee Kyung Lee,

Jihun Cha, "Arm Gesture Recognition for Shooting

Games based on Kinect Sensor," Journal of

KIISE:Software and Application, Vol. 39, No. 10,

pp. 768-773, Aug. 2012. (in Korean)

[ 7 ] Sortee, [Online] https://apps.leapmotion.com/apps/

sortee/windows (donwloaded 2014. Nov. 10)

[ 8 ] Dropchord, [Online] https://apps.leapmotion.com/

apps/dropchord/windows (donwloaded 2014. Nov. 10)

[ 9 ] Cyber Science Motion-zoo, [Online] https://apps.leap-

motion.com/apps/cyber-science-motion-zoology/wi

ndows (donwloaded 2014. Nov. 10)

[10] Duk-Woo Lee, "Fundamental of Unity 4 Game

Development," AirCon, 2013. (in Korean)

주 향 한

2015년 재 한국기술교육 학교 컴퓨터

공학부 재학. 심분야는 게임 로그래

, 센서 데이타

조 민 수

2015년 재 한국기술교육 학교 컴퓨터

공학부 재학. 심분야는 게임 로그래

Page 8: (Development of Baseball Game Using Leap Motion Controllers) · 립 모션을 사용하는 어플리케이션을 만들기 위한 헤더 파일과 코드 라이브러리를 포함하는

350 정보과학회 컴퓨 의 실제 논문지 제 21 권 제 5 호(2015. 5)

인 승 교

2015년 재 한국기술교육 학교 컴퓨터

공학부 재학. 심분야는 게임 로그래

조 규 원

2015년 재 한국기술교육 학교 컴퓨터

공학부 재학. 심분야는 게임 로그래 ,

3D Max

민 기

1995년 숭실 학교 산학과(학사). 1997

년 한국과학기술원 산학과(석사). 2002

년 한국과학기술원 산학과(박사). 2003

년~2004년 한국과학기술원 Post-Doc

빙교수. 2004년 한국 자통신연구

원 선임연구원. 2005년~ 재 한국기술

교육 학교 컴퓨터공학부 부교수. 심분야는 시공간DB, 스

트림데이타, 센서네트워크, MapReduce