게임 인터페이스
키넥트를 이용한 동작인식 게임의 인터페이스 보정 방법
☔
강경헌*, 김은석**
동신대학교 디지털콘텐츠협동연구센터*, 동신대학교 디지털콘텐츠학과**
{vagabond, eskim}@dsu.ac.kr
Interface Correction Method for Motion Recognition Game using Kinect
Gyeong-Heon Kang*, Eun-Seok Kim**
Digital Contents Cooperative Research Center*, Dept. of Digital Contents, Dongshin Univ.**
요 약
동작 인식 게임용으로 개발된 키넥트는 2011년 SDK가 공개되면서 게임뿐 아니라 과학, 교 육, 의료 등 다양한 분야에서 활용되고 있다. 키넥트는 사용자 움직임에 대한 반응 속도가 늦 고, 인식 데이터들에 노이즈가 많으며, 신체 일부분이 가려지면 추적할 수 없다는 문제점을 안 고 있다. 이러한 플레이 환경의 특수성으로 대부분 게임에서는 키넥트 설치 위치나, 자세 교정 과 같은 불편함을 요구한다. 본 연구에서는 키넥트를 이용한 게임에서 플레이어에 대한 요구 사항을 최소화하면서 노이즈와 같은 예외상황에 대처하고 일관된 동작 처리가 가능한 인터페이 스 설계 방법을 제안하며, 실험을 통해 키넥트를 이용한 게임 개발 시 고려해야 할 지연 시간 을 제시한다.
ABSTRACT
After the release of SDK in 2011, Kinect developed for the motion recognition games has been applied not only in game but also in various fields such as science, education, and health care. It has some problems as belated responses to player’s movements, a lot of noise in the recognized data, and an untraceable player when the body is partially occluded. Because of Kinect’s such peculiarities of playing environment, most Kinect games require the inconvenience of Kinect‘s location or player‘s posture correction. In this paper, we propose an interface correction method that minimizes the requirements to be asked players, manages the exceptions such as noise, and enables to process consistently the player’s movements in the game using Kinect. Also, we present the delay time to be considered to develop the game using Kinect through the experiment.
Keywords : Motion Recognition Game(동작인식 게임), Motion Interface(동작 인터페이스), Interface Correction(인터페이스 보정), Joints Normalization(조인트 정규화) Received: May. 22. 2015 Accepted: Jun. 16. 2015
Corresponding Author: Eun-Seok Kim(Korea Game Society) E-mail: [email protected]
ISSN: 1598-4540 / eISSN: 2287-8211
Ⓒ The Korea Game Society. All rights reserved. This is an open-access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.otg/licenses/by-nc/3.0), which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
1. 서 론
동작인식기술(Motion Recognition Technology) 은 사람의 움직임을 인식하고 획득한 데이터를 기 기의 조작이나 콘텐츠에 활용하는 인체인식기술 중 하나로서, 2006년 무선 단말기를 조작하여 사용자 의 동작을 획득하는 닌테도의 위(Wii)를 시작으로 2010년 특정 공간에 적외선을 투사하여 사용자를 검출하는 키넥트가 등장하면서 대중화되기 시작하 였다. 키넥트는 Microsoft가 자사의 콘솔 게임기인 엑스박스에 사용하기 위한 목적으로 개발하였으나 개발자들이 해킹을 통해 다양한 분야에 활용하면서 동작인식기술의 가능성을 확장시켰다. 2011년 키넥 트 SDK가 공개되고 윈도우용 키넥트가 출시되면 서 키넥트는 본래 목적인 게임뿐만 아니라 과학, 교육, 의료 등 다양한 분야에서 활용되고 있으며 전 세계에서 가장 성공을 거둔 동작 인식 인터페 이스 장치로 자리를 잡아가고 있다[1].
하지만 키넥트는 사용자의 움직임보다 늦게 반 응하고, 사용환경이 좁은 곳에서의 활용성이 떨어 지며, 사용자 복장에 큰 영향을 받는 등 여러 가지 문제점을 내포하고 있다. 또한, 제한된 공간 내에 서 키넥트와 적정 거리를 유지해야 하고, 키넥트를 정면으로 바라봐야 하며, 노이즈가 많아 세밀한 동 작 콘텐츠 조작에 활용하기 힘들다[2,3]. 특히 키넥 트 게임들이 플레이어 위치가 변경되어도 게임에서 는 고정되어 있는 상태로 보여주거나 단순한 미니 게임 형태를 많이 보이는 이유는 센싱 기술의 한 계에서 원인을 찾을 수 있다. 키넥트는 적외선 레 이저를 픽셀단위로 주사하고 반사된 레이저 빔 포 인트로 거리를 측정하기 때문에 시야에서 가려진 곳은 추적이 불가능하고 노이즈를 유발한다. 이것 은 게임에서 중요하게 요구되는 게임 공간 내비게 이션을 어렵게 만드는 주원인이다[4].
키넥트 게임의 입력 인터페이스는 음성인식을 사용하기도 하지만 대부분 플레이어의 조인트 위치 를 기반으로 하며 부가적으로 깊이 정보를 이용하 기도 한다. 조인트 위치는 키넥트가 바라보는 방향
에서 떨어진 거리를 나타내는 상대 좌표이다. 즉, 똑같은 자세를 취하고 있는 사용자가 있더라도 키 넥트의 설치 높이와 방향, 플레이어의 위치와 체형 에 따라 조인트 위치는 달라진다. [Fig. 1]은 상용 키넥트 게임인 ‘댄스 센트럴’에서 메뉴를 선택하고 있는 상황으로 (a)와 (b)의 키넥트 설치 높이는 바 닥으로부터 각각 1m, 2m이고 플레이어의 중심을 바라보고 있다. 그림의 위쪽(1)은 상단 메뉴를 선 택할 수 있는 가장 낮게 팔을 올린 상태이고 아래 쪽은(2) 하단 메뉴를 선택할 수 있는 가장 높게 팔 을 올린 상황으로 (a)와 (b)에서 메뉴를 선택할 수 있는 팔의 높이와 각도는 육안으로도 크게 차이가 난다. 이처럼 같은 결과를 얻기 위해 다른 동작을 취해야 하는 것을 줄이기 위해 키넥트 게임들은 키넥트의 설치 위치, 주변 환경, 참여 제한 등의 조건이나 자세 교정과 같은 번거로운 과정을 요구 하고 대부분 스포츠나 댄스와 같은 큰 움직임을 입력 인터페이스로 사용하고 있다.
[Fig. 1] Difference of Operating Ranges According to the Kinect’s Position
키넥트 게임은 본질적으로 플레이어의 움직임을 사용하기 때문에 오랜 시간 게임을 할 수 없고 지 연시간을 포함하고 있어 조작감이 떨어진다. 여기 에 게임 플레이를 위해 번거로운 조건이나 과정을
요구하는 것은 게임에 대한 흥미 및 지속적인 참 여를 감소시킬 수 있으며 교육, 치료와 같이 특수 한 목적이 결합된 경우에는 목적 달성에 영향을 끼칠 수 있다. 하지만 키넥트를 이용한 연구들은 대부분 영상으로부터 특징점을 찾아내는 방법, 깊 이 영상의 품질을 향상하는 방법, 특정 신체 부위 를 검출하기 위한 정확도 개선 방법, 제스처 (Gesture) 인식 방법 등에 집중되어 있고, 키넥트 의 특성을 극복하기 위한 연구는 거의 찾아볼 수 없다.
본 연구에서는 키넥트 게임 플레이를 위한 요구 조건을 최소화하면서 플레이 환경에 상관없이 플레 이어의 움직임을 일관되게 게임에 반영하는 인터페 이스 보정 방법에 대해 제안한다. 서론에 이어 2장 에서는 플레이어의 동작을 어떠한 방법으로 게임의 입력 인터페이스로 활용하고 있는지 알아보고 키넥 트를 활용한 게임의 연구 사례를 살펴본다. 3장에 서는 게임에 입력 명령을 내릴 플레이어를 결정하 는 방법과 동작 인터페이스의 일관된 처리를 위해 플레이어를 정규화하는 방법에 대해 기술하며 수집 한 조인트가 어느 정도의 지연시간을 가지고 있는 지 실험을 통해 알아보고, 4장에서 결론을 논한다.
2. 키넥트를 활용한 게임 연구 사례
키넥트는 사용자의 위치와 움직임을 3차원 좌표 로 감지할 수 있고, 음성을 인식하여 명령을 수행 할 수 있으며, 공식 SDK를 이용하여 비디오 영상, 깊이 정보도 취득할 수 있다. 초기의 키넥트는 동 시에 두 명의 사용자를 인식하고 신체를 구성하는 주요 20개의 조인트를 추적할 수 있었으나, 2014년 출시된 키넥트 V2는 6명의 사용자를 동시에 인식 할 수 있다. 또한, 엄지손가락, 손끝, 목, 눈, 코, 입, 얼굴 경계에 대한 위치가 추가되었으며, 손에 대한 3가지의 제스처 상태와 웃고 있는지, 안경을 썼는지, 눈을 감았는지, 입을 벌렸는지와 같은 얼 굴 상태 정보를 지원한다[Fig. 2].
[Fig. 2] Additional Information in Kinect V2
키넥트는 과학, 의료, 간접체험, 증강현실 등과 융합한 형태로 다양하게 활용되고 있으며 게임에서 는 주로 추적된 조인트를 게임 플레이를 위한 동 작 인터페이스로 사용하고 있다. 동작 인터페이스 란 사용자의 동작을 인식하여 기존 키보드나 마우 스 같은 입력 장치를 대체하는 기술로 게임을 조 작하기 위한 인터페이스로 활용하는 방법은 충돌 (Collision), 추적(Tracking), 인식(Recognition)으 로 구분할 수 있다[5].
충돌은 플레이어의 조인트가 게임의 특정 객체 와 겹쳐졌을 때를 검사하여 이벤트를 발생시키는 방법이다. 플레이어의 양손을 3D 마우스 포인터처 럼 표현한 [Fig. 3]은 조인트 좌표를 활용한 충돌 인터페이스를 사용하여 움직이는 공을 손으로 튕겨 내서 벽돌을 제거하는 게임이다.
[Fig. 3] Collision Type Interface : Boom Ball for Kinect[17]
추적은 플레이어의 움직임을 지속적으로 추적하 여 게임에서 활용될 수 있는지를 검사하는 방법으
로 플레이어와 동기화된 캐릭터를 애니메이션 하거 나 특정 객체를 제어하는 용도로 사용된다. [Fig.
4]는 플레이어의 움직임으로 객체를 제어하면서 목 표를 향해 미사일을 발사하는 슈팅 게임으로, 게임 의 재미와 제어 상태를 표현하기 위하여 비디오 영상에서 플레이어를 추출하고 제어 객체에 매핑 (Mapping)하였다.
[Fig. 4] Tracking Type Interface : Shape Up[18]
인식은 연속된 조인트 일부 또는 전체의 궤적을 추적하여 제스처와 같이 의미 있는 움직임인지를 판단하고 이벤트를 발생시키는 방법으로 [Fig. 5]
는 인식 인터페이스를 사용한 댄스 게임 플레이 장면이다. 이 게임은 애니메이션 되는 NPC와 음악 의 리듬에 맞는 제스처 이미지를 제공하여 플레이 어의 동작을 유도하고, 플레이어가 수행한 동작과 지정된 댄스 안무의 정확도를 측정하여 피드백하 며, 플레이어의 동작 확인은 깊이 정보로 시각화하 였다.
[Fig. 5] Recognition Type Interface : Dance Central[19]
이러한 동작 인터페이스 기술은 화면에 배치된
메뉴를 직접 선택하거나(충돌), 플레이어가 팔을 움직이는 방향으로 메뉴를 이동시키거나(추적), 제 스처를 취해서 특정 메뉴로 이동하는(인식) 것처럼 게임 메뉴를 조작하는 방법으로도 활용된다.
키넥트를 이용한 게임 활용 방안에 대한 연구는 국내외적으로 활발히 진행되고 있다. Elwin Lee 등은 인식 인터페이스를 이용한 수학 게임을 개발 하였다[Fig. 6](a). 이 게임은 1항의 숫자와(1) 몸 을 좌우로 움직여서 2항에 사용될 숫자를 지정하 고(2) 더하기, 빼기, 곱하기 형태로 제스처를 수행 하여(3) 유성에 표기된 숫자를(4) 결과로 만들어 내야 한다[6]. 단순해 보이지만 후반부로 갈수록 나오는 유성의 수가 많아지며 2항 숫자를 지정하 는 시간을 단축시키기 위한 순발력을 요구한다.
Giannis Altanis등은 추적 인터페이스를 이용하여 행동 장애가 있는 아동을 위한 행동 훈련 게임을 연구하였다[Fig. 6](b). 이 게임은 손으로 따라가야 하는 길의 모양, 제한 시간 등을 지정하여 대상 아 동에게 맞춤형 훈련을 제공하고자 하였고, 추적 결 과를 저장하여 다시 보기 및 경로를 확인할 수 있 는 리포팅 서비스도 고려하였다[7].
[Fig. 6] Math Skills and Motor Planning Game using Kinect
장창익은 공신력 있는 ‘어린이 교통안전 교육프 로그램’을 바탕으로 교통사고 발생이 높은 다양한 게임 공간을 구성하고 각 상황에서 플레이어가 수 행한 제스처를 인식하여 위험 상황이 발생할 때 올바른 대처법을 피드백하는 어린이 교통안전교육 훈련게임을 연구하였고[Fig. 7](a), 김성인 등은 자 폐범주성 장애 아동을 대상으로 실루엣에 자신의 형상을 맞춰 다양한 자세의 인체를 구별하고 자신 의 모습을 시각적으로 인지하여 인지발달 향상 및 정체성 인식 효과를 얻기 위한 게임을 연구하였다
[Fig. 7](b)[8,9].
[Fig. 7] Educational Games using Kinect
채영숙은 운동부족 및 재활치료가 필요한 사람 들을 대상으로 팔, 다리 동작을 이용한 충돌 인터 페이스 기반의 리듬게임을 연구하였다[Fig. 8](a).
이 연구는 플레이어의 키, 팔 벌림 등의 신체 사이 즈를 고려하여 충돌 가능 범위를 구성하였고, 재활 이 필요한 부위의 움직임을 측정하여 움직임이 개 선될 수 있도록 연주 위치를 정의하였으며 얼굴, 몸, 팔다리로 구성된 아바타를 플레이어와 동기화 시켜 운동 치료와 놀이를 결합하였다[10]. 이 밖에 충돌, 인식 인터페이스를 결합한 기타연주 리듬게 임[Fig. 8](b)[11], 태권도, 권투, 에어로빅 등의 요 소가 조합된 태보 동작을 음성 명령과 함께 융합 한 체감형 게임[12] 등 기존 입력 인터페이스를 동 작으로 대체하는 다양한 연구가 진행되고 있다.
[Fig. 8] Rhythm Games using Kinect
키넥트를 게임에서 활용한 사례들은 살펴보면 교육, 치료, 훈련 등 게임 외의 목적달성을 위하여 동작 인터페이스를 게임과 결합하고 있다. 특히 국 외에서는 주의력 결핍 과잉 행동 장애(Attention Deficit Hyperactivity Disorder, ADHD) 아동의 언어, 계산 교육과 기억, 행동 훈련을 위한 10여 종의 게임이 모니터링, 리포팅하는 시스템과 함께 결합되어 상용 서비스되는 등[20] 키넥트는 흥미를
유발하여 교육의 효과를 높이고자 하는 연구를 위 해 많이 활용되고 있다.
3. 키넥트 인터페이스 보정 방법
플레이어의 움직임이 키넥트를 거쳐 게임의 입 력 인터페이스로 활용되는 과정은 [Table 1]과 같 이 육하원칙으로 표현할 수 있다.
[Table 1] Motion Interface Process in Kinect Who Among the recognized players When When acquiring motion frame Where In recognition space
What Position of player’s joints How By converting into the motion interface Why To make the game event
여기서 게임 시나리오와 상관없는 공통된 과정 은 Who, When, Where, What으로, 각 과정은 키 넥트의 문제점을 내포하고 있으며 원활한 플레이를 위해 제약 조건을 요구한다. 게임 플레이를 위해 플레이어에게 번거로운 과정이나 조건을 요구하는 것은 게임에 대한 흥미 및 지속적인 참여를 감소 시킬 수 있다. 특히 게임 대상이 아동일 경우, 키 넥트와 평행 상태를 유지하고 정면을 바라보며 특 정 위치를 벗어나지 말고 얌전히 게임을 하라는 것은 무리한 요구가 될 수 있으며, 교육, 치료와 같이 특수한 목적이 결합된 경우 목적 달성에 영 향을 끼칠 수 있다.
본 연구의 목적은 플레이어에게 요구하는 조건 을 최소화하면서 플레이 환경에 상관없이 일관된 게임 환경을 제공하는 것이다. 이를 위해서는 Who, When, Where, What 과정에 발생할 수 있 는 예외 상황을 고려하고 극복해야 한다. 먼저 키 넥트는 노이즈를 플레이어로 인식하지 않아야 하 며, 인식된 다수의 ID 중에서 게임에 입력 명령을 내릴 주체를 결정해야 한다. 키넥트가 인식하는 공 간은 설치 위치와 방향에 따라 달라지고 추적한
조인트 위치에 영향을 끼치므로, 충돌 인터페이스 나 게임 공간과 상호작용하는 추적 인터페이스를 사용할 때는 사용자의 체형을 고려해야 한다. 또한, 키넥트 센서는 사용자의 움직임에 대한 처리 및 반응이 늦어 추적한 프레임이 이전 시간의 정보를 담고 있게 되므로, 특정 타이밍에 사용의 입력을 요구할 때는 지연시간을 고려해야 한다.
3.1 입력 명령의 주체 결정
키넥트는 [Fig. 9]와 같이 인체 골격과 유사하다 고 판단되는 객체나 전혀 의미 없는 객체를 사람 으로 인식하기도 한다. 또한, 키넥트는 다수의 사 용자를 추적할 수 있으므로 게임을 주도할 입력 명령의 주체를 선택해야 하는 경우가 발생하며 군 중 또는 물체에 의한 노이즈로 입력 명령의 주체 가 바뀔 수 있는 예외 상황이 존재한다. 사용자의 동작 정보를 입력 인터페이스로 사용하는 게임에서 플레이어의 의지와 상관없는 입력 명령은 게임 플 레이에 방해되므로 ‘키넥트가 인식하는 공간 안에 한 사람 또는 소수의 사람만이 존재해야 한다’와 같은 참여 제한 조건 및 ‘플레이 주변은 고정되고 단조로워야 한다’와 같은 환경 조건을 요구하게 된다.
[Fig. 9] Skeletal Display of Body Frame Tracked by Kinect
본 논문에서는 입력 명령의 주체를 대표 플레이 어(Representative Player)로 지칭하고, 하나의 플 레이 조건만을 요구하여 이러한 제약 사항을 극복 하고 대표 플레이어 인식과 관련된 예외상황에 대 처하는 방법을 제안한다. 플레이 조건은 ‘특정 제스 처를 취하면 입력 명령의 주체가 된다’이며, 가장 먼저 추적된 사용자를 대표 플레이어로 사용한다.
3.1.1 대표 플레이어 인식 방법
키넥트 V2가 획득한 6개의 보디 프레임 배열에 는 추적 상태, ID, 조인트 좌표, 손에 대한 정보가 들어있다. 보디 프레임들이 배열에 저장되는 순서 는 추적된 순서를 의미하지 않기 때문에, 보디 프 레임들이 추적된 순서를 찾기 위해서는 기존 프레 임 정보에 시간 정보를 추가하여야 한다. [Fig. 10]
은 가장 먼저 추적된 ID를 대표 플레이어로 선정 하기 위해 최초로 추적된 보디 프레임 정보를 유 지하는 방법을 나타낸 것이다.
[Fig. 10] Processing Method for Efficient Decision of the Representative Player
먼저, 보디 프레임 배열이 취득되면 현재 시각을 추적된 시간으로 기록하고 동작 현재 보디 프레임 상태 정보를 저장하는 CBS에 복사한다. CBS의 각 보디 프레임에 대하여 추적 여부를 확인하고 추적 중인 상태(TRACKED)이면 그 프레임의 ID 와 동일한 프레임이 최근 추적된 보디 프레임을 저장하는 LBS에 있는지 확인한다. ID가 동일한 프레임을 발견하면 추적 시간을 비교하고 LBS의 추적 시간이 앞선다면 CBS 추적시간을 LBS의 시 간으로 수정한다. 모든 보디 프레임 확인이 끝나면
추적시간이 빠른 순서대로 CBS 각 보디 프레임을 LBS에 복사한다. 이러한 과정을 거친 LBS의 각 보디 프레임은 최초로 추적된 시간을 갖고 추적 시간 순서대로 정렬되게 된다.
[Fig. 11]은 키넥트 인식 공간에 불특정 사용자 들이 돌아다닐 때 대표 플레이어를 결정하는 과정 을 보여준다. 멀티 플레이 게임에서는 LBS의 0번 인덱스 프레임을 첫 번째 플레이어로, 1번 인덱스 프레임을 두 번째 플레이어로 활용할 수 있다.
[Fig. 11] Decision of the Rep Player
하지만 두 명의 플레이어를 좌측 플레이어, 우측 플레이어로 구분하고 게임 공간에 고정하여 움직임 을 표현한다면, 현실에 있는 플레이어가 게임 공간 에서 경계선을 넘어 반대 위치에 있는 상황이 발 생할 수 있고 플레이에 혼란을 줄 수 있다. 이러한 상황을 해결하는 방법은 키넥트가 인식하는 공간을 지원하고자 하는 멀티 플레이어 수로 분리하고 각 분리된 공간 안에 추적된 ID 중에서 가장 먼저 추 적된 ID를 각 영역의 대표 플레이어로 인식하는 방법이 활용될 수 있을 것이다[Fig. 12].
[Fig. 12] Decision of the Rep Players in Multi-player Game Using Space Partition
3.1.2 대표 플레이어 전환 방법
대표 플레이어 전환은 키넥트 인식 범위 안에 있는 불특정 사용자가 대표 플레이어 되길 원할 때 우선권을 주는 기능이다. 이러한 기능은 플레이 어의 의지와 상관없이 키넥트에서 발생한 노이즈로 대표 자격을 빼앗기는 예외상황에 대처하기 위해 필요하다. [Fig. 13]과 같이 대표 플레이어 A가 이 동하면서 신체 일부분이 사물에 의해 가려졌고 노 이즈가 발생하여 사물을 A로 인식했다고 하자. 대 표 자격은 사물에 빼앗기고 자신은 새로운 ID를 얻어 B가 된다. 대표 자격을 다시 획득하기 위해 서는 사물에 얽혀있는 노이즈나 키넥트 렌즈를 자 신의 몸으로 가려 제거해야 한다.
[Fig. 13] Problem of Ghost Player
다행히 노이즈가 일시적으로 발생하고 다시 회 복되는 경우라도 [Fig. 14]와 같이 인식된 다른 사 용자가 있을 때는 새로운 문제가 발생한다.
[Fig. 14] Wrong Representative Player
일상에서 발생할 수 있는 이러한 예외상황은 플 레이 중인 ID가 특정 제스처를 수행할 때 강제로 대표 자격을 주는 방법으로 해결할 수 있다. 키넥 트를 이용한 제스처 인식은 조인트 위치나 깊이 정보를 이용하며 HHM(Hidden Markov Model)기
반의 방법[13], CRF(Conditional Random Field) 모델 기반의 방법[14], 정확도를 높이기 위해 이 둘을 혼합한 방법[15]을 주로 사용한다. 이러한 제 스처 인식 방법은 게임에 정의된 명령 동작이 많 거나 불특정 연속 동작을 요구하는 게임에서는 오 버헤드가 발생하고 인식률이 떨어질 수 있다.
키넥트 V2에는 획득한 보디 프레임에는 손을 쥐었는지, 폈는지, 손을 쥐고 엄지를 들었는지에 대한 3가지 제스처 정보가 포함되어 있으므로, 이 를 대표 플레이어 전환 제스처로 활용하면 게임 개발의 수고를 덜어줄 수 있다. 이 중 일상에서 가 장 드문 행동은 손을 쥐고 엄지를 드는 행동이며 양손이 동시에 수행되는 상황은 더욱 적을 것이다.
이 방법은 플레이어의 요구 동작을 줄이고 즉시 내릴 수 있는 명령으로 대표 플레이어 전환 방법 으로 적합하다. 대표 플레이어는 LBS의 인덱스 정 보를 사용하므로 CBS에서 대표 플레이어 전환 제 스처가 발견될 때 시간 정보를 음수로 바꾸어 주 면 간단히 처리될 수 있다[Fig. 15].
[Fig. 15] Example of Switching Rep Player
제안한 대표 플레이어를 선택하고 전환하는 방법 은 단순하지만, 플레이어가 게임을 이용하기 위한 가정을 줄일 수 있고 인식과 관련된 다양한 문제를 해결할 수 있다. 또한, 다수 플레이어가 입력 명령 을 나누어 수행하거나, 필요에 따라 플레이어를 전 환하여 명령을 내리는 협동 플레이가 가능해지는 등 다양한 게임 진행 방식으로 활용할 수 있다.
3.2 조인트 정규화
플레이어의 동작은 마우스와 같이 자취를 추적 하는 연속 좌표 입력기(Stroke) 형태의 입력 인터 페이스이다. 마우스를 이용하는 게임에서 마우스 포인터를 시각화하지 않으면 게임 플레이는 불가능 할 것이다. 키넥트를 이용한 게임에서 플레이어를 시각화하는 것은 흥미를 끌 수 있는 요소이기도 하지만, 플레이어가 입력한 명령이 게임에 어떻게 전달되는지 확인하는 수단이며 특정 이벤트 수행 방법을 전달하는 인터랙션 인터페이스 역할을 한 다. 또한, 입력 동작을 시각화하는 방법에 따라 복 잡한 게임 공간을 형성할 수 있으며, 다양한 게임 공간 활용이 가능해지면 키넥트와 사용자의 위치를 고려할 필요가 없는 게임 연출이 가능하다.
충돌, 추적과 같은 동작 인터페이스는 조인트 위 치를 기반으로 처리되므로 정확한 플레이어 표본을 얻기 위해 ‘키넥트는 플레이어와 평행하게 위치해 야 하고 플레이어를 정면으로 바라봐야 한다’와 같 은 설치 조건이나 ‘특정 시간 동안 화면과 같은 자 세를 취하라.’ 같은 플레이 조건을 요구한다. 이러 한 제약 조건들을 제거하기 위해서는 플레이 도중 수집되는 조인트를 정규화하는 방법이 필요하다.
3.2.1 키넥트 설치 높이 정규화
추적된 조인트를 게임에 그대로 적용하는 것은 사용자 공간과 게임 공간을 같은 공간으로 다루는 것과 같으며 [Fig. 16]과 같이 키넥트 높이에 영향 을 받는다. 또한, 키넥트 높이는 플레이어의 움직 임 표현에 직접적인 영향을 끼치며, 플레이어가 사 용하는 디스플레이 장치의 크기 및 플레이 장소와 같은 환경요소에 따라 달라진다. 키넥트 높이 정규 화는 키넥트 방향을 추정하고 플레이어를 회전시켜 각 플레이어의 키넥트 설치 높이가 다르더라도 같 은 게임 공간 안에 있는 것처럼 일반화하는 과정 이다.
[Fig. 16] Transformation of Game Space According to the Kinect’s Location
자세교정을 요구하지 않고 키넥트 방향을 추정 하기 위해서는 플레이어의 두 발이 지면에 닿아있 고 차렷 자세와 같은 일직선의 모습을 보이는 타 이밍이 필요하며, [Fig. 17]과 같이 팔을 제외한 6 개 관절의 각도를 이용하여 결정할 수 있다. 플레 이어의 신체가 직선으로 보이지 않는 상태는 머리 를 움직였을 때(), 척추를 구부렸을 때(), 무릎 을 구부렸을 때(, ), 골반을 중심으로 상체를 움직였을 때(, )이다. 즉, 이들의 평균값인 가 180도에 가까울수록 플레이어의 머리부터 발목 까지의 방향은 직선에 가깝다. 는 보디 프레임이 획득될 때마다 산출하며 가장 큰 값이 발생할 때 를 최대치( )로 결정하고 플레이어 회전각
을 결정한다. 이때, 대표 플레이어 전환이 발생 하면 와 는 초기화 된다.
[Fig. 17] Process of Estimating the Straight Posture
키넥트로부터 떨어진 플레이어 머리까지의 거리 를 , 양발의 중심까지의 거리를 , 플레이어의 키 를 라 할 때, 가 성립하면 플레이어는 키넥트의 중심 방향에 누워있는 상태가 되며,
이 성립하면 플레이어와 키넥트는 직각을 이루고 있는 상태가 된다[Fig. 18].
[Fig. 18] Rotational Relation between Player’s Posture and Kinect’s Camera
따라서 플레이어의 중심점 를 기준으로 플 레이어와 키넥트 방향을 직각 상태로 만들기 위한 x축 회전각 을 [Fig. 19]와 같이 계산할 수 있으 며, 의 부호는 회전 방향을 나타낸다.
[Fig. 19] Direction Normalization with X-Axis Rotation
3.2.2 플레이어 체형 정규화
플레이어의 체형은 나이, 성별, 체중 등에 따라 서로 다르며 각 관절의 길이도 차이를 보인다. 키 넥트 위치 정규화를 수행하더라도 플레이어 체형을 고려하지 않으면, 플레이어에 따라 게임 형태와 난 이도가 달라져 같은 동작 인터페이스에 대해 다른 결과를 보일 수 있다. 플레이어 체형 정규화는 명 령 수행을 위한 플레이어 참여 제한 조건을 제거 하기 위한 과정으로, 게임 시나리오에 이상적인 체 형을 정의하고 게임을 이용하는 모든 플레이어를 정의한 체형으로 변환한다. 이 과정을 통해 게임
제작자는 다양한 게임 공간을 쉽게 구성할 수 있 게 되고 특정 이벤트 수행을 위해 플레이어의 체 형을 고려할 필요가 없어지며 플레이어는 게임 조 작의 불이익을 면할 수 있다.
[Fig. 20]은 플레이어의 조인트 방향은 유지하고 정의한 조인트간의 거리에 맞게 정규화한 그림이 다. C의 각 조인트는 신체 중심 의 위치를 기준 으로 신체 바깥 방향 순서로 산출한 후
만큼 Y축 이동되어 결정된다.
[Fig. 20] Distance Normalization Between Joints
3.2.3 정규화 결과
플레이어 정규화 결과를 확인하기 위해 다양한 의 키넥트 높이를 고려하여 실험하였다. 키넥트를 실험 공간의 천장에 가장 가까운 최대 높이(A), 책 상 위에 놓인 27인치 모니터 상단 높이, 바닥과 플 레이어의 머리가 동시에 보일 수 있는 최소 높이 (C)에 각각 설치하여, 체형 차이가 크게 나는 두 명의 남성을 대상으로 실험하였다[Fig. 21].
[Fig. 21] Experiment Environment
피실험자의 체형을 정규화하기 위한 기준 체형 은 피실험자와 체격 차이가 많이 나는 키 160cm, 몸무게 50kg의 여성을 대상으로 하였고 실험결과 와 비교하기 위한 자세를 함께 수집하였다. 정확한 키넥트 방향을 추정하기 위해 차렷 자세를 취하게 하였고 추정된 는 10〫 였다[Fig. 22].
[Fig. 22] Reference Body and Posture
피실험자들에게 실험의 목적은 설명하지 않고 키넥트 인식 범위 밖에 있다가 지정한 위치로 진 입한 후 화면에 보이는 자세를 취하게 하였다.
는 피실험자가 인식 범위로 들어오면서 변 하기 시작하였고, 지정위치에 들어서는 순간 최대 치로 고정되었다. [Table 2]는 키넥트 A, B, C의 환경에서 추정된 와 값으로 넓은 체형을 가지고 있는 플레이어 M2의 는 플레이어 M1보다 작았다.
[Table 2] Estimated Kinect Angle Player
Kinect
M1 M2
A 173.6 52.3 171.5 53.2
B 175.0 14.1 171.1 15.1
C 176.1 -27.5 168.5 -22.3
[Fig. 23]과 [Fig. 24]는 A, B, C의 위치에서 피 실험자 M1과 M2에 대해 정규화가 적용되지 않은 원래의 조인트(Original), 키넥트 설치 위치를 정규 화한 후의 조인트(After Division Normalization), 기준 플레이어 체형으로의 정규화를 거친 조인트 (After Distance Normalization) 형태를 나타낸
것이다. 기준 체형 F의 자세 및 위치와의 비교를 위해 기준 체형에서 추정된 의 값인 10〫 를 정규 화 각도에서 추가로 빼주었다.
[Fig. 23] Experimental Results of Player M1
[Fig. 24] Experimental Results of Player M2
실험 결과 키넥트가 A와 같이 높은 위치에 있 는 경우 눈에 띄는 개선 효과가 있었으며, 키넥트 의 높이나 플레이어의 체형과 상관없이 참조 자세 와 비슷하게 나타났다. 이러한 결과는 키넥트 설치 환경과 플레이어 체형이 달라도 충돌, 추적과 같은 조인트 위치 기반의 명령 수행을 일관되게 처리할 수 있도록 해줌으로써, 입력 명령 인지의 효율성을 높이고 게임 플레이에 대한 요구 사항을 줄일 수
있음을 보여준다. 플레이어의 키는 머리와 발의 조 인트 위치를 사용하였으나 실제 비디오 영상과 비 교하면 오차가 발생한다. 머리부터 발끝까지의 조 인트에서 발생한 오차를 보상하여 플레이어 키를 추정하는 방법[16]을 사용한다면 정규화 효과는 더 욱 향상될 것이다.
3.3 입력 동작의 지연
입력 동작의 지연 실험은 동작 인터페이스를 이 용한 댄스 트레이닝 게임을 개발하던 중, 강사의 안무 애니메이션과 플레이어 동작 비교 및 리듬 측정을 위해 수집된 안무 동작의 위치 보정이 계 속 요구됨에 따라 근본적인 원인을 찾으면서 시작 되었다.
키넥트는 객체의 움직임을 추적하고 깊이 정보 를 획득하여 인체의 골격 정보를 생성한다. 이러한 처리 시간으로 인해 게임에서 보여주는 프레임들은 획득된 시간 이후에 보여주게 됨에 따라 현재 동 작과의 차이를 보이게 된다. 입력 장치에서의 데이 터 전송 지연으로 인해 플레이어의 명령이 뒤늦게 게임에 반영되는 것은 조작감을 감소시키고 원활한 게임진행을 방해하며 결과적으로 게임의 완성도에 큰 영향을 끼치게 된다. 본 연구에서는 키넥트와 게임이 운용되는 시스템 성능 간의 관계와 플레이 어 동작 입력에 대한 지연 시간을 확인하기 위해 두 가지 실험을 수행하였다. 실험에 사용된 게임 시스템은 [Table 3]과 같이 2종류의 데스크톱 PC 와 2종류의 노트북 PC로서, 모든 PC의 운영체제 는 64bit 윈도우 8.1로 구성하였다.
[Table 3] System Environments for Experiment
PC CPU GPU RAM
A i7-950, 3.07GHz Quadcore
NVIDIA Geforce GTX 460 12GB B i7-940, 2.93GHz
Quadcore
NVIDIA Geforce 8800 GTS 12GB C i7-4700HQ, 2.4GHz
Quadcore
Intel HD
Graphics 4600 8GB D i5-3337U, 1.8GHz
Dualcore
Intel HD
Graphics 4000 4GB
[Table 4]는 보디 정보만 획득할 수 있도록 키 넥트를 초기화하고 1분 단위로 10분간 진행한 보 디 프레임 획득 성능 결과로서, 1분 동안 획득한 최소‧최대 프레임 수, 10분간 취득한 전체 프레임 수와 평균 FPS, Kinect Service Module의 CPU 점유율 평균 값을 보여준다. 실험결과 모바일 저전 력 듀얼코어 CPU를 사용한 D를 제외한 나머지 PC의 CPU 점유율은 비슷하였고, 전체 프레임 취 득 손실은 CPU 성능에 따라 약간의 차이를 보이 나 10분간 평균 FPS는 29.9 이상으로 나타나 시스 템 성능에 따른 지연시간 차이는 미미할 것으로 판단된다.
[Table 4] Body Frame Acquisition Performance PC
Entries A B C D
Min Frames
(in 1min) 1,797 1,795 1,796 1,791 Max Frames
(in 1min) 1,802 1,799 1,801 1,799 Total Frames
(in 10min) 17,997 17,992 17,985 17,964 Avg. FPS 29.995 29.991 29.975 29.940 CPU Usage 2.8% 3.6% 3.3% 12.4%
플레이어가 특정 동작을 수행하고 키넥트의 반 응 시간을 정확하게 측정하는 것은 어려운 과제이 다. 본 연구에서는 수집된 안무 동작의 지연을 확 인하기 위해 동작 수집‧편집‧재생 기능을 제공하 는 저작도구를 개발하여 활용하였다.
[Fig. 25]는 위치 보정을 위한 저작도구의 편집 화면을 보여주고 있다. 수집된 동작 프레임 a는 터 닝 모션 프레임 b로 정렬되며, 음악 위치, 리듬 위 치 등으로 탐색할 수 있다. 리듬 위치는 음악의 빠 르기에 따라 리듬 주기가 반복되는 위치로서, 음악 의 파형을 분석하여 1ms 단위로 산출하였고, 터닝 모션은 각 조인트의 운동량과 리듬의 반복주기를 기반으로 동작의 방향이 변형되는 추정된 참고용 리듬 동작을 나타낸다.
특정 프레임으로 이동하면 현재 위치를 기준으
로 전 후 동작이 그레이스케일 그라데이션으로 보 여지며(c), 여기서 시각적으로 지연된 프레임을 확 인하여 위치를 보정한다. 분홍색은 현재 위치의 동 작(d), 노랑색은 수집될 당시의 리듬 동작(e), 녹색 은 추정된 리듬 동작(f)이다. f는 오차를 가지고 있 을 수 있으며, 원본의 안무 영상 g와 비교하여 이 동시킬 수 있다. 그림에서 f는 오차가 없으며, e는 5프레임 지연이 발생했음을 확인할 수 있다(h).
[Fig. 25] Editing Tool for Dance Game for Kinect
실험을 위한 안무 수집은 남녀로 구성된 두 명 의 댄스 아카데미 강사(F, M)를 대상으로 하였고 빠르기가 다른 5종류의 댄스 음악을 1분 30초 분 량으로 편집하여 각각 5회씩 총 50회 수행 후 리
듬 위치를 보정하였다. 리듬 위치는 회당 약 95번 씩 발생하였고, 각 리듬에서 발생한 지연 프레임 수와 지연 시간의 평균을 내어 [Table 5]의 결과 를 얻을 수 있었다.
실험 결과 BPM이 높아질수록 지연 시간은 감 소하였고, 현재 동작과 처리되는 동작 사이에는 평 균 5.5 프레임의 차이가 났으며, 평균 지연시간은 181ms였다. 또한, 너무 빠르거나(162 BPM) 너무 느린(88 BPM) 음악의 경우 운동 신경 등의 개인 적인 차이로 인해 중간 빠르기의 음악들과 비교해 지연 프레임 수가 1프레임 정도 차이를 보였다. 운 동 효과를 위한 피트니스 음악은 110 BMP에서 135 BPM 사이가 가장 적합한 것으로 알려져 있 다. 따라서 키넥트의 동작 입력 지연 시간은 특이 값들을 제외한 중간값들의 평균인 185ms 정도로 판단할 수 있다.
[Table 5] Average Delay Time of Kinect’s Motion Input
BPM
Averages 88 104 110 112 162
Delayed Frames 6.03 5.41 5.62 5.61 4.96 Delay Time(ms) 201 182 187 187 148
Microsoft의 공식적인 키넥트 지연시간을 찾을 수는 없었으나, 2013년 더 넥스트 웹(The Next Web)의 Microsoft 웹진[21]을 통해 알려진 키넥트 V2의 지연시간은 60ms 이내로 본 연구의 실험결 과와 125ms 정도의 차이를 보인다. 전문적인 댄서 라도 1프레임 이내의 짧은 시간을 극복하고 정확 한 동작을 연속으로 수행하는 것은 불가능하므로 측정된 평균 지연시간은 약간의 오차를 가지고 있 지만, 약 3,800개의 리듬 동작을 실험 표본으로 사 용하였다는 것을 고려하면 185ms의 지연시간은 유 의한 데이터라 할 수 있을 것이다.
[Fig. 26]은 Kinect V2 전용으로 출시된 ‘Just Dance 2015’라는 댄스게임으로, A는 플레이어가 수행해야 할 리듬 동작이고 B는 플레이어의 동작 과 상관없이 정해진 댄스 안무가 애니메이션 되는
NPC이다. C는 플레이어의 움직임으로 손을 내리 기 이전 동작을 취하고 있지만, 수행 결과는 Perfect이다. 실제로 A는 약 0.2초 후에 B의 모습 을 나타내었다. 이러한 결과는 지연시간 발생으로 현시점에 수집된 동작을 수행할 동작에 반영할 수 없어 이전 시간의 결과를 나타낸 것으로 보인다.
이처럼 댄스 게임과 같이 현실에서 수행한 동작 의 시간과 게임이 입력받은 시간이 밀접한 관계에 있고 연속된 움직임을 요구하는 게임에서는 조인트 의 위치, 방향, 가속도 등의 정보를 토대로 185ms 이후의 모습을 예측하거나 지연시간 이전의 결과를 게임에 적용해야 할 것이다.
[Fig. 26] Just Dance 2015[21]
4. 결 론
플레이어의 움직임을 키넥트 게임의 입력 인터 페이스로 처리하는 방법은 충돌, 추적, 인식으로 구분된다. 충돌, 추적 인터페이스는 조인트 위치를 기반으로 처리되므로 플레이어 위치와 체형에 직접 적인 연관이 있으며 결국 게임 이벤트 발생 및 시 각적인 인터랙션에도 영향을 끼친다. 이러한 플레 이 환경의 특수성으로 인해 키넥트 게임들은 키넥 트 설치 조건, 주변 환경 조건, 플레이 참여 제한 조건, 자세 교정과 같은 플레이 조건 등을 사용자 에게 요구하고 있다. 게임 플레이를 위해 플레이어 에게 번거로운 조건이나 과정을 요구하는 것은 게 임에 대한 흥미 및 지속적인 참여를 감소시킬 수 있다. 특히 교육, 치료와 같이 특수한 목적이 결합
된 경우 목적 달성에 영향을 미칠 수 있으나 게임 설계 시 입력 장치 특성으로 인한 문제점을 해결 하려는 노력은 부족하다.
본 연구에서는 키넥트가 인식한 사용자 중에서 실제 게임에 명령을 내릴 대표 플레이어를 결정․
전환 하는 방법과 사용자에게 요구하는 조건을 최 소화하면서 일관된 동작 인터페이스 처리가 가능한 플레이어 정규화 방법을 제안하였다. 또한, 실험을 통해 동작 인터페이스를 사용하는 게임 설계를 위 해 고려해야 할 키넥트의 지연시간을 제시하였다.
대표 플레이어 결정․전환 방법은 일상생활에서 발생할 수 있는 다양한 간섭문제를 해결할 수 있 고 멀티플레이를 넘어서 분할․협동 플레이로 활 용할 수 있는 가능성을 보여주며, 제안한 플레이어 정규화 방법으로 어떠한 요구조건 없이 키넥트의 설치 높이가 2m 이상 차이를 보이고 플레이어 체 형이 크게 다르더라도 가상의 키넥트 위치로 일관 되게 정규화할 수 있었다. 제안 방법은 키넥트를 활용하는 게임에서 원하는 형태의 카메라 구도를 확보 수 있게 해줌으로써 다양한 게임 연출에 활 용할 수 있을 것으로 기대된다. 마지막으로, 현실 에서 수행하는 동작과 게임에 입력되는 시간과의 동기화가 중요한 경우, 실험을 통해 확인된 약 185ms의 지연시간을 고려하여 동작 인터페이스를 설계할 것을 제언한다.
REFERENCES
[1] Korea Creative Content Agency, “In-Depth Report: Human-Device Interaction Technologies”, CT Insight, No. 27, pp.2-40, 2012.
[2] C. J. Lim, D. H. Kim, Y. J. Kim, “Present and Future of Game Contents based on Motion Recognition”, Journal of the Institute of Electronics and Information Engineers, Vol. 39, No. 4, pp.18-26, 2012.
[3] T. Leyvand, C. Meekhof, Y. Wei, J. Sun, and B. Guo, “Kinect Identity: Technology and Experience”, IEEE Computer, Vol. 44, No. 4,
pp.94-96, 2011.
[4] D. Nieuwenhuisen, A. Kamphuis, M.H.
Overmars “High Quality Navigation in Computer Games”, Science of Computer Programming, Vol. 67, No. 1, pp.91-104, 2007.
[5] K. M. Lee, “Designing physical game interfaces using gestures”, Journal of The Korean Society for Computer Game, Vol. 24, No. 1, pp.135-144, 2011.
[6] E. Lee, X. Liu, X. Zhang. “Xdigit: An Arithmetic Kinect Game to Enhance Math Learning Experiences”, Fun and Games Conference, Toulouse, France Retrieved August 5, 2012.
[7] G. Altanis, M. Boloudakis, S. Retalis, N.
Nikou, “Children with Mo tor Impairments Play a Kinect Learning Game: First Findings from a Pilot Case in an Authentic Class room Environment”, Interaction Design and Architecture(s) Journal-IxD&A, No. 19, pp.91-104, 2013.
[8] C. I. Jang, “A Study of the Physical Experience Using Serious Game Design Traffic Safety Education for Children applied using 3D Depth Gesture Recognition Technology”, Journal of Korea Game Society, Vol 12, No. 6, pp.5-14, 2012.
[9] S. I. Kim, et al., “Development of a Kinect based serious game for improving cognitive development in children with Autism Spectrum Disorder”, Conference of Korea HCI Society, pp.21-24. 2014.
[10] Y. S. Chae, “A Serious Game Design and Prototype Development for Rehabilitation us ing KINECT Tools”, Journal of Korea Multimedia Society, Vol. 17, No. 2, pp.248-256, 2014.
[11] D. G. Park, J. S. Jeong, “Guitar Rhythm Game Using Motion Capture”, Journal of the Korea Institute Of Information and Communication Engineering, Vol. 17, No. 5, pp.1106-1112, 2013.
[12] J. K. Yoo, H. M. Won, K. M. Lee,
“Recognition-based multimodal interfaces in a physical interactive Tae-bo game”, Journal of The Korean Society for Computer Game, Vol. 24, No. 3, pp.109-117, 2011.
[13] A. R. Kim, S. Y. Rhee, “Recognition of Nat
ural Hand Gesture by Using HMM”, Journal of Korean Institute of Intelligent Systems, Vol. 22, No. 5, pp.639-645, 2012.
[14] H. D. Yang, “Conditional Random Field bas ed Gesture Recognition with Kinect Sensor”, Journal of KIISE: Software and Applications, Vol. 40, No. 11, pp.716-726. 2013.
[15] S. Y. Cho, H. R. Byun, H. K. Lee, J. H. Cha,
“Arm Gesture Recognition for Shooting Games based on Kinect Sensor”, Journal of KIISE: Software and Applications, Vol. 39, No. 10, pp.796-805. 2012.
[16] S. M. Kim, J. K. Song, B. W. Yoon, J. S, Park, “Height Estimation using Kinect in the Indoor”, Journal of KIECS, Vol. 9, No. 2, pp.343-350. 2014.
[17] http://boomballgame.com [18] http://shapeup.ubi.com [19] http://dancecentral.com [20] http://kinems.com
[21] http://thenextweb.com/microsoft [22] http://just-dance.ubi.com
강 경 헌(Kang, Gyeong Heon)
2006년 2월 동신대학교 멀티미디어콘텐츠학과(이학사) 2008년 2월 동신대학교 디지털콘텐츠학과(이학석사) 2008년-현재 동신대학교 디지털콘텐츠협동연구센터
선임연구원
관심분야 : 융합콘텐츠, 실감미디어, 콘텐츠디자인
김 은 석(Kim, Eun Seok)
1995년 2월 전남대학교 전산학과(이학사) 1997년 2월 전남대학교 전산통계학과(이학석사) 2001년 2월 전남대학교 전산통계학과\이학박사) 2002년-현재 동신대학교 디지털콘텐츠학과 부교수 관심분야 : 컴퓨터그래픽스, 실감미디어, 가상현실