KR20220143430A - 증강현실 기반 바둑알 충돌 모바일 게임 시스템 및 그 방법 - Google Patents

증강현실 기반 바둑알 충돌 모바일 게임 시스템 및 그 방법 Download PDF

Info

Publication number
KR20220143430A
KR20220143430A KR1020210049935A KR20210049935A KR20220143430A KR 20220143430 A KR20220143430 A KR 20220143430A KR 1020210049935 A KR1020210049935 A KR 1020210049935A KR 20210049935 A KR20210049935 A KR 20210049935A KR 20220143430 A KR20220143430 A KR 20220143430A
Authority
KR
South Korea
Prior art keywords
game
ball
augmented reality
virtual
collision
Prior art date
Application number
KR1020210049935A
Other languages
English (en)
Other versions
KR102542830B1 (ko
Inventor
권혁윤
김지원
원소현
Original Assignee
서울과학기술대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울과학기술대학교 산학협력단 filed Critical 서울과학기술대학교 산학협력단
Priority to KR1020210049935A priority Critical patent/KR102542830B1/ko
Publication of KR20220143430A publication Critical patent/KR20220143430A/ko
Application granted granted Critical
Publication of KR102542830B1 publication Critical patent/KR102542830B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1087Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals comprising photodetecting means, e.g. a camera
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/30Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
    • A63F2300/303Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device for displaying additional data, e.g. simulating a Head Up Display
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Optics & Photonics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 증강현실 기반 바둑알 충돌 모바일 게임 시스템에 관한 것으로, 카메라의 모션인식을 통한 증강현실 기반 바둑알 충돌 모바일 게임 시스템에 관한 것이다. 본 발명의 일측면에 따르면, 레이아웃 상에서 View화면을 만든 후, 상기 View화면에 가상의 바둑알을 추가하는 게임 보드(100); 카메라를 통해 상기 View 화면상의 손가락 추적과 오브젝트 추적을 지원하여 사용자 모션을 인식하는 프레임워크(200); 및 상기 View화면 상에 나타나는 가상의 바둑알과 상기 프레임워크의 사용자 모션인식 간의 상호작용을 바탕으로 가상의 바둑알의 이동과 충돌로 인한 위치를 결정하는 안드로이드부(300);를 포함하여, 추가적인 하드웨어 장비없이 스마트폰의 카메라를 이용한 증강현실 기반으로 손가락 모션을 인식하여 모바일 바둑알 충돌게임을 할 수 있는 효과가 있다.

Description

증강현실 기반 바둑알 충돌 모바일 게임 시스템 및 그 방법{Mobile game system for playing Baduk-ball based on augmented reality and method therefor}
본 발명은 증강현실 기반 바둑알 충돌 모바일 게임 시스템에 관한 것으로, 보다 상세하게는 카메라의 모션인식을 통한 증강현실 기반 바둑알 충돌 모바일 게임 시스템에 관한 것이다.
증강현실(Augmented Reality, AR)은 가상현실(VR)의 한 분야로 실제로 존재하는 환경에 가상의 사물이나 정보를 합성하여 마치 원래의 환경에 존재하는 사물처럼 보이도록 하는 컴퓨터 그래픽 기법이다. 디지털 미디어에서 빈번하게 사용된다.
종래, 한국공개특허 제10-2019-0024174호, '마커 인식 기반 증강현실 생성 시스템'에 의하면, 대상체에 마커를 투영시키는 적외선 프로젝터, 대상체를 촬영하여 획득된 적외선 영상으로부터 마커를 인식하고, 마커의 좌표값을 획득하는 적외선 카메라, 대상체를 촬영하여 가시광선 영상을 획득하는 가시광선 카메라 및 적외선 카메라로부터 획득된 마커의 좌표값 및 가시광선 카메라로부터 획득된 가시광선 영상을 기초로 증강현실 영상을 생성하는 증강현실 생성 장치를 포함한다.
기존에는 증강 현실에서 마커기반 사용자 인터랙션을 이용하여 사용자의 제스처를 인식하여 증강 현실에 존재하는 3D 객체와 사용자가 상호작용할 수 있도록 하였다. 마커기반 사용자 인터랙션은 이동 마커를 이용하여 증강 현실에 존재하는 3D 객체의 자세를 추정하고 해당 지점에서 이동 마커가 머무른 시간을 이용하여 클릭 이벤트를 발생하였다. 하지만, 이러한 마커기반 사용자 인터랙션을 이용하여 사용자의 제스처를 인식하는 방법은 사용자가 인터랙션을 위해 프린트된 이동 마커를 사용해야 하며 클릭 이벤트를 발생하기 위한 지점에 이동 마커를 이동하기 때문에 사용자의 몰입감과 실제감이 떨어진다는 문제점이 있다.
한편, 기존 보드게임은 휴대성 문제와 공간상의 제약이 존재한다. 또한 사용자의 몰입감과 실제감을 높이기 위해서는 스마트폰의 카메라를 이용한 증강현실 기반으로 추가적인 하드웨어 장비없이 스마트폰만으로 모션을 인식할 수 있는 기능이 요구된다.
도 1은 종래의 leap motion 기기를 나타낸 도면이다. 일예로 도 1에 도시된 바와 같이, 기존 게임인 Fruit Ninja에서는 leap motion이라는 추가적인 하드웨어를 필요로 하기에 장비를 별도로 휴대를 해야하는 제약이 있다. Leap motion은 센서를 통해 손과 손가락의 움직임을 감지하여 컴퓨터를 제어할 수 있게 도와주는 장치이다.
대표적인 기존 증강현실 관련 기기는 Microsoft Hololens와 Facebook Oculus로, 별도의 장비를 마련하기 위한 비용이 필수적이다.
본 발명은 상술한 문제를 해결하고자 고안한 것으로, 스마트폰의 카메라를 이용한 증강현실 기반으로 추가적인 하드웨어 장비없이 스마트폰만으로 손가락 모션을 인식할 수 있는 증강현실 기반 바둑알 충돌 모바일 게임 시스템 및 그 방법을 제공함에 목적이 있다.
본 발명의 일측면에 따른 증강현실 기반 바둑알 충돌 모바일 게임 시스템은 레이아웃 상에서 View화면을 만든 후, 상기 View화면에 가상의 바둑알을 추가하는 게임 보드(100); 카메라를 통해 상기 View 화면상의 손가락 추적과 오브젝트 추적을 지원하여 사용자 모션을 인식하는 프레임워크(200); 및 상기 View화면 상에 나타나는 가상의 바둑알과 상기 프레임워크의 사용자 모션인식 간의 상호작용을 바탕으로 가상의 바둑알의 이동과 충돌로 인한 위치를 결정하는 안드로이드부(300);를 포함한다.
한편, 증강현실 기반 바둑알 충돌 모바일 게임 시스템을 이용한 방법에 있어서, (a) 안드로이드부가 레이아웃 상의 View화면에 가상의 바둑알을 선택하도록 하는 단계; (b) 상기 안드로이드부가 카메라를 통해 상기 View 화면상의 손가락 추적과 오브젝트 추적을 지원하여 사용자 모션을 인식하도록 하는 단계; 및 (c) 상기 안드로이드부가 상기 View화면 상에 나타나는 가상의 바둑알과 상기 프레임워크의 사용자 모션인식 간의 상호작용을 바탕으로 가상의 바둑알 이동과 충돌로 인한 위치를 결정하는 단계;를 포함한다.
본 발명에 따르면, 추가적인 하드웨어 장비없이 스마트폰의 카메라를 이용한 증강현실 기반으로 손가락 모션을 인식하여 모바일 바둑알 충돌게임을 할 수 있는 효과가 있다.
도 1은 종래의 leap motion 기기를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 증강현실 기반 바둑알 충돌 모바일 게임 시스템을 나타낸 도면이다.
도 3은 제안하는 게임의 화면 구성을 나타낸 도면이다.
도 4는 바둑알 선택 및 공격방향 및 세기 결정 과정을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 증강현실 기반 바둑알 충돌 모바일 게임 시스템의 시퀀스 다이어그램이다.
도 6은 게임에 필요한 정적인 요소들을 화면에 추가한 도면이다.
도 7은 Android Graphics를 이용하여 화면에 바둑알을 추가한 도면이다.
도 8은 바둑알 충돌 구현을 설명하기 위한 도면이다.
도 9는 사용자의 손동작을 인식을 설명하기 위한 도면이다.
도 10은 구현한 모바일 바둑알 충돌게임의 실행 최종 결과를 나타낸 도면이다.
도 11은 본 발명의 일 실시예에 따른 증강현실 기반 바둑알 충돌 모바일 게임 시스템(10)의 구성을 나타낸 도면이다.
도 12는 본 발명의 일 실시예에 따른 증강현실 기반 바둑알 충돌 모바일 게임 시스템을 이용한 방법의 전체 흐름을 나타낸 도면이다.
본 발명의 실시예에서 제시되는 특정한 구조 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있다. 또한, 본 명세서에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 되며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경물, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
한편, 본 발명에서 제1 및/또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소들과 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않는 범위 내에서, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 실시 예를 설명한다. 본 발명의 실시예를 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 설명을 생략하였다.
본 발명의 일 실시예에 따른 증강현실 기반 바둑알 충돌 모바일 게임 시스템은 도 11에 도시된 바와 같이, 게임 보드(100), 프레임워크(200), 안드로이드부(300)를 포함한다.
게임 보드(100)는 레이아웃 상에서 View화면을 만든 후, 상기 View화면에 가상의 바둑알을 추가하는 구성이다. 이러한 게임 보드는 Native XML에서 View화면을 만든 후, Java 소스코드를 이용하여 상기 View화면에 가상의 바둑알을 추가한다. Native XML에서 게임보드의 View화면을 생성하여, 시스템 부하를 줄이고, Java 소스코드를 이용하여 동적 변환을 지원한다.
프레임워크(200)는 카메라를 통해 View 화면상의 손가락 추적과 오브젝트 추적을 지원하여 사용자 모션을 인식하는 구성이다. 이러한 프레임워크는 게임 보드의 View화면 상에서 손바닥의 랜드마크를 인식한 후 손의 움직임을 추적하고 랜드마크와 손가락 끝점 등의 위상 관계를 활용하여 사용자의 제스처를 인식하는 구성이다.
안드로이드부(300)는 View화면 상에 나타나는 가상의 바둑알과 상기 프레임워크의 사용자 모션인식 간의 상호작용을 바탕으로 가상의 바둑알의 이동과 충돌로 인한 위치를 결정하는 구성이다. 이러한 안드로이드부는 View화면 상에 나타나는 사용자의 손가락이 움직이는 속도를 측정하여 바둑알이 날아가는 속도를 결정하고, 사용자의 손 모양을 인식하여 바둑알이 날아가는 방향을 결정하고, 가상의 바둑알의 이동과 충돌로 인한 최종 위치를 결정한다. 이는 획득된 손의 엄지 및 검지 영상과 자이로 센서를 이용하여 연산된 날아가는 알의 속도 및 방향을 기초로 알의 충돌을 추정하여 바둑알의 최종위치를 결정한다. 이에 대한 설명은 아래에서 구체적으로 설명하기로 한다.
이하, 첨부 도면을 참조하여 구체적으로 설명하면 다음과 같다.
본 발명의 일 실시 예에서는 증강현실 기반 모바일 바둑알 충돌 게임을 설계하고 구현한다. 보드게임에 필요한 보드와 바둑알은 안드로이드 스튜디오에서 제공하는 그래픽을 사용하여 구현하며, 사용자의 바둑알 치기 모션 인식은 Google의 MediaPipe에서 제공하는 hand tracking 기술을 사용하여 구현한다.
본 실시 예에서의 가상 객체와 현실 객체와의 충돌은 기존 증강현실 게임들과 비교하여 다음과 같은 차별점이 있다. 기존 증강현실 게임들은 사용자 모션을 인식하기 어려운 문제를 해결하기 위하여 화면상에 가상 객체를 띄워주고 사용자가 화면을 실제 터치하는 것으로 충돌을 구현한다. 또한, 사용자 모션 인식을 구현한 일부의 경우에도 이를 위하여 스마트폰 이외의 추가적인 하드웨어 장비를 요구한다.
본 실시 예에서는 스마트폰의 카메라로 사용자의 모션을 인식하고 이에 대한 사용자의 액션을 감지하여 충돌을 구현함으로써 추가 하드웨어 장비 없이 스마트폰 만으로 사용자 모션 인식 기반의 모바일 게임을 가능하게 한다. 여기에서 제시한 결과는 스마트폰을 이용한 증강현실 기반 게임 구현을 통하여 물리적 보드와 바둑알이 없이도 게임을 진행할 수 있게 함으로써, 보드게임의 휴대성 문제와 게임 진행에 필요한 공간상의 제약을 해결할 수 있는 가능성을 보였다는데 의의가 있다.
본 발명의 일 실시예에 따른 증강현실 기반 바둑알 충돌 모바일 게임 시스템은 증강현실 및 가상 현실 기술에서 게임에 대한 수요가 증가하고 있고, 물리적 보드와 바둑알이 없이도 게임을 진행할 수 있도록 함으로써, 보드게임의 휴대성 문제와 게임 진행에 필요한 공간상의 제약을 해결하는데 기술적 과제가 있다.
또한 기존 증강현실 게임에서의 모션 인식과 차별화된 실제 터치를 통한 충돌을 구현하였다.
도 2는 본 발명의 일 실시예에 따른 증강현실 기반 바둑알 충돌 모바일 게임 시스템의 미디어파이프(MediaPipe)를 나타낸 도면이다.
기존의 사용자 모션 인식기술들이 고성능의 서버를 기반으로 동작하는 반면, 본 실시예에 따른 증강현실 기반 바둑알 충돌 모바일 게임 시스템은 도 2에 도시된 바와 같이, 모바일 환경에서 손가락 추적(hand tracking)과 오브젝트 추적(object tracking)을 지원해주는 프레임워크(Google MediaPipe)를 활용한다.
참고로, 대부분의 hand tracking에 관련한 최신 기술들은 많은 연산량과 리소스를 필요로 하기 때문에 데스크톱이나 서버 기반에서 수행되어 왔다. Google의 MediaPipe는 그와 다르게 스마트폰 환경에서의 hand tracking을 지원한다. 해당 기술은 먼저 손바닥 인식 후, 손의 landmark를 기반으로 손 뼈대를 예측한다. 하지만 제스처를 인식하는 오픈소스는 제공하지 않는다. 따라서, 본 실시 예에서는 가상 바둑알과 실제 사용자의 손 객체 간의 충돌을 구현하기 위하여 손에 대한 landmark topology를 설계하고 구현한다.
Google의 MediaPipe는 모바일 환경에서 hand tracking과 object tracking을 지원해 주는 프레임워크이다. 이를 설명하면, 손바닥의 랜드마크를 인식한 후 손의 움직임을 추적해 나간다. 그리고 랜드마크와 손가락 끝점 등의 위상 관계를 활용하여 사용자의 제스처를 인식한다. 즉, 본 실시 예에서는 Google의 MediaPipe를 사용하여 사용자의 손가락이 움직이는 속도를 측정하여 바둑알이 날아가는 속도를 결정하고, 사용자의 손 모양을 인식하여 바둑알이 날아가는 방향을 결정한다. 이에 대한 설명은 아래에서 설명하기로 한다.
게임 보드 구현에는 Native XML과 안드로이드 그래픽(Android Graphics)를 통해 구현하였다. Native XML은 앱 개발시 레이아웃 제작에 기본적인 방법으로 안드로이드에서 기본적으로 제공되는 것으로, 시스템의 부하를 최소화하지만, 동적으로 변환하는 것이 제한적이라는 단점이 있다. 이에 본 실시 예에 따르면, 시스템의 부하를 줄이면서 동적 변환을 지원하기 위하여 Native XML을 이용하여 기본 게임 보드를 구현하면서, 동적 변환을 지원하기 위하여 Android Graphics를 추가로 이용한다. Android Graphics는 Native XML에서 View를 만든 후, Java 소스코드를 이용하여 View에 Object를 추가하는 방식이다. 보통 Canvas를 생성하여 그 위에 이미지나 객체를 올리는 방법으로 사용된다. Android Graphics의 경우, Java 소스코드를 기반으로 동작하기 때문에 게임 보드의 동적 변환을 지원할 수 있다.
본 실시 예에 따른 증강현실 기반 바둑알 충돌 모바일 게임 시스템은 이러한 안드로이드 스튜디오에서 제공하는 그래픽을 사용하여 구현하며, 사용자의 바둑알 치기 모션 인식은 Google의 MediaPipe에서 제공하는 hand tracking 기술을 활용한다. 증강현실의 가장 큰 특징은 현실 세계와 가상 세계의 융합을 구현했다는 점이다. 스마트 폰을 이용한 증강현실 기반의 게임 구현을 통하여 물리적 보드와 바둑알이 없이도 게임을 진행할 수 있게 함으로써, 보드게임의 휴대성 문제와 게임 진행에 필요한 공간상의 제약을 해결할 수 있다.
증강현실 기반 바둑알 충돌게임의 설계와 구현에서, 화면 구성 및 게임 시나리오를 설명하면 다음과 같다.
본 발명에서 설계하고 구현한 증강현실 기반 바둑알 충돌게임은 휴대폰 화면상에 나타나는 가상의 바둑알과 현실의 사용자 모션인식 간의 상호작용을 바탕으로 실제 바둑알 충돌게임을 하는 것처럼 스마트폰에서 구현한 증강현실 기반의 보드게임이다.
도 3은 제안하는 게임의 화면 구성을 보여준다. 먼저 애플리케이션을 실행시키면 도 3(a)와 같은 메인 페이지가 실행된다. Game Start를 통해 바로 게임을 시작할 수 있으며, 필요에 따라 튜토리얼을 볼 수 있다. 게임을 시작하면 도 3(b)의 화면을 통해 게임을 시작한다. 게임 도중 재시작을 원한다면, 좌측 상단의 Setting 버튼을 클릭하면 도 3(c)와 같은 팝업을 통해 게임을 다시 시작할 수 있다. 한 명의 플레이어가 모든 바둑알을 잃으면 게임이 종료되며, 도 3(d)와 같이 게임의 결과가 팝업으로 뜨고 다시 메인 페이지로 이동하게 된다.
본 게임은 알까기를 할 때 진행되는 사용자의 생각의 흐름과 유사하게 전개된다. 일반적으로 바둑알 충돌 게임을 할 때, 1) 공격할 내 바둑알 선택, 2) 공격할 상대 바둑알 결정(즉, 공격방향 결정), 3) 공격세기 결정을 한다. 여기서, 제안한 게임에서는 이 과정을 위하여 1) 자이로 센서를 활용하여 휴대폰을 좌우로 기울여서 바둑알의 선택, 2) 손가락 제스처를 취하여 선택된 바둑알 주변을 돌고 있는 화살표를 통해 공격방향을 선택, 3) 검지와 엄지를 사용하여 튕기는 제스처를 취하면 손가락 간의 벌려진 거리와 속도를 바탕으로 공격 세기가 결정된다. 도 4는 바둑알 선택 및 공격방향 및 세기 결정 과정을 보여준다. 도 4(a)와 도 4(b)처럼 자이로 센서를 이용하여 알을 선택할 수 있으며, 도 4(c)와 같이 원하는 방향이 되었을 때, 엄지와 검지를 모아서 방향을 선택할 수 있다. 도 4(d)와 같이 튕겨진 손가락 간의 거리를 통해 알의 세기를 구할 수 있다.
도 5는 본 발명의 일 실시예에 따른 증강현실 기반 바둑알 충돌 모바일 게임 시스템의 시퀀스 다이어그램이다. 도 5에 도시된 바와 같이, 전체 애플리케이션은 Android Studio를 중심으로 MediaPipe와 Player UI(user interface)와의 상호작용을 기반으로 동작한다. 도 5의 시퀀스 다이어그램을 보면, Player UI가 (1)과 같이 게임을 시작하면 Android Studio에서 (2)와 같이 화면에 가상 객체를 생성한다. (3) ~ (4)과정에서 Player UI는 자이로센서를 이용하여 알을 선택하고 Android Studio는 선택된 알을 변경하여 UI에 표시한다. (5)과정을 통해 Player의 손동작을 카메라로 촬영한 후, (6)과정에서 Player의 제스처를 탐지한다. (7) ~ (10)에서 MediaPipe는 제스처를 바탕으로 공격 방향과 세기를 탐지하여 바둑알의 이동 및 충돌을 구현한다. (11)에서 아직 Player의 알이 남아있으면 다음 Player의 차례로 넘어간다.
Native XML 및 Android Graphics를 이용한 UI 제작을 설명하면 다음과 같다.
화면에 고정되어 있는 정적인 영역은 Native XML을 이용하였고, 바둑알과 화살표처럼 움직임이 필요한 동적인 객체의 경우 Android Graphics를 이용하여 개발하였다.
먼저 Native Xml을 통해 도 6과 같이 게임에 필요한 정적인 요소들을 화면에 추가한다. 여기서, 노란색 사각 틀은 바둑판을 의미한다. 아래 progress bar로 사용자의 남은 시간을 표시하였으며, 그 아래에 바둑알 속 숫자는 남아있는 바둑알의 개수를 표시하였다. 이후 도 7과 같이 Android Graphics를 이용하여 화면에 바둑알을 추가하였으며, Java 구현을 통해 바둑알의 이동과 충돌을 구현하였다.
바둑알 충돌 구현을 설명하면 다음과 같다.
바둑알의 충돌은 벡터 연산을 기반으로 계산하였다. 원과 원이 만날 때 생기는 접선 방향으로 이동방향이 바뀌게 된다. 도 8은 중심점이 (
Figure pat00001
,
Figure pat00002
)인 바둑알
Figure pat00003
가 중심점이 (
Figure pat00004
,
Figure pat00005
)인 바둑알
Figure pat00006
으로 날아가
Figure pat00007
에서 충돌한 경우이다. 도 8에서
Figure pat00008
는 바둑알
Figure pat00009
의 중심에서
Figure pat00010
의 중심으로의 방향을 가진 벡터이며,
Figure pat00011
Figure pat00012
의 중심에서
Figure pat00013
의 중심으로의 방향을 가진 벡터이다.
Figure pat00014
는 충돌 이후
Figure pat00015
Figure pat00016
로 분해된다. 이때
Figure pat00017
Figure pat00018
가 충돌이후 진행하는 방향이며
Figure pat00019
Figure pat00020
의 접선벡터이고,
Figure pat00021
Figure pat00022
의 충돌이후의 진행방향이다.
Figure pat00023
Figure pat00024
Figure pat00025
Figure pat00026
사잇각인
Figure pat00027
를 이용하여
Figure pat00028
를 사영시키면 구할 수 있다.
실제 구현과정에서 연산과정은 다음과 같다.
먼저 사용자가 방향을 선택하면 날아가는 방향인
Figure pat00029
가 정해진다. 또한 사용자의 제스처를 통해 최종적으로 날아갈 수 있는 거리
Figure pat00030
를 정할 수 있다. 처음 바둑알을 튕기면
Figure pat00031
속도로 이동한다. 만약 바둑알이 충돌하지 않는다면
Figure pat00032
에 도착하게 되며,
Figure pat00033
를 구할 수 있다.
주어진 조건을 바탕으로
Figure pat00034
(
Figure pat00035
,
Figure pat00036
) 에서 출발한 바둑알이
Figure pat00037
(
Figure pat00038
,
Figure pat00039
)에서
Figure pat00040
(
Figure pat00041
,
Figure pat00042
)에 위치한 바둑알과 충돌한다면,
Figure pat00043
Figure pat00044
를 이용하여
Figure pat00045
Figure pat00046
의 충돌 이후의 벡터를 구할 수 있다. 먼저, 제2코사인공식(
Figure pat00047
)을 이용하여
Figure pat00048
Figure pat00049
를 구할 수 있으며,
Figure pat00050
,
Figure pat00051
임 연산을 통해 알 수 있다.
Figure pat00052
은 충돌 이후
Figure pat00053
벡터를 더한 좌표인
Figure pat00054
에 도착할 것이며
Figure pat00055
가 된다.
마찬가지로
Figure pat00056
는 충돌 이후
Figure pat00057
벡터를 더한 좌표인
Figure pat00058
에 도착할 것이며,
Figure pat00059
Figure pat00060
가 된다.
다음으로 구글 미디어파이프(Google MediaPipe) 구현을 설명하면 다음과 같다. 본 실시예에서는 Google MediaPipe를 사용하여 카메라에서 촬영한 실시간 이미지로부터 손바닥과 손을 탐지하고, 이를 바탕으로 손의 골격과 위상 정보를 추적하여 사용자의 손동작을 인식한다.
사용자의 손동작을 인식하기 위하여 도 9의 노란 원과 같이 엄지와 검지의 위상을 나타내는 두 점 사이의 정규화된 거리가 0.08 이하로 줄어들었을 때 두 손가락이 서로 접한 것으로 판별을 한다. 이후 사용자가 손가락을 튕기면서 두 손가락 사이의 거리가 0.13의 일정 거리 이상 멀어질 경우 두 손가락 사이의 거리와 손가락 이동 시간을 바탕으로 알의 속도를 결정한다. 알의 속도와 함께 바둑알을 중심으로 회전하는 화살표(도 4 ?? (c))로 지정된 방향을 통하여 벡터를 결정한다. 마지막으로 바둑알에 벡터를 더하여 목표 지점을 설정하고, 이동 방향의 단위 벡터에 매 프레임을 갱신하는데 걸린 시간(deltaTime)을 곱한 만큼씩 목표 지점까지 이동시킨다.
도 10은 구현한 모바일 바둑알 충돌게임의 실행 최종 결과를 나타낸 도면이다. 도 10(a)와 같이, Player 1이 게임을 시작한다. 이후 도 10(b)와 같이 자이로 센서를 이용하여 공격할 바둑알을 선택한다. 도 10(c)와 도 10(d)와 같이 Player 1의 검정 바둑알이 날아가는 것을 볼 수 있다. Player 1의 차례가 끝나면 도 10(e)와 같이 Player2 로 공격순서가 넘어간다. 아래의 막대를 통해 남아있는 시간을 볼 수 있다. 최종적으로 3개의 알이 먼저 바둑판 밖으로 나가게 된 Player가 게임에서 지고, 게임의 결과가 화면에 표시된 뒤에 메인 화면으로 돌아가게 된다.
본 실시 예에서는 Android Studio와 Google Mediapipe를 이용하여 증강현실기반 바둑알 충돌 게임을 개발하였다. 먼저 Native Xml과 Android graphics를 이용하여 게임에 필요한 UI를 구성하였다. 현실 사용자의 손동작 인식을 위해 Google MediaPipe를 이용하여 손의 골격과 위상 정보를 바탕으로 바둑알의 방향과 세기를 결정하였다. 또한, 바둑알 충돌을 구현하기 위하여 물리적인 연산을 도입하였다. 기존의 가상현실 기반 모바일 게임에서 제한적인 사용자 상호작용을 지원하거나 추가적인 하드웨어 장비를 필요로 하는 기존 방법들과 달리, 제안한 게임은 사용자들이 추가적인 장비없이 스마트폰 만을 이용하여 사용자의 모션을 기반으로 바둑알 충돌 게임을 구현했다는 점이 가장 차별화된 특징이다.
향후 가상현실 기술 기반으로 가상 객체와 현실 객체의 충돌을 통하여 사용자들이 추가적인 장비 없이 눈앞에 보이는 화면을 다룰 수 있는 기술들이 활발히 개발될 것으로 예상된다. CES2020에서 삼성전자 사내 벤처팀에서 스마트폰 전면 카메라를 이용한 가상 키보드인 "SelfieType "을 제안하였다. 스마트폰의 작은 화면에서의 타이핑을 전면 카메라와 AI 기술을 활용하여 현실 공간에서의 타이핑으로 대체하는 기술이다. 이 기술은 본 논문에서 보인 가상 객체와 현실 객체와의 상호작용의 또 다른 적용 사례로 볼 수 있다.
향후 보다 현실적인 증강현실 게임의 환경을 구현하기 위해 ARCore를 이용하여 화면의 UI를 구성할 수도 있다. 기존의 XML의 경우, 2차원 화면에 띄워져 있는 그래픽이기 때문에 상대적으로 현실감이 떨어진다. 하지만 ARCore의 경우 화면을 3차원 공간으로 설정하여 보다 현실적인 바둑알의 움직임을 제공할 수 있을 것으로 예상된다.
한편, 도 12는 증강현실 기반 바둑알 충돌 모바일 게임 시스템을 이용한 방법의 전체흐름을 나타낸 도면이다. 도 12에 도시된 바와 같이, (a) 안드로이드부는 레이아웃 상의 View화면에 가상의 바둑알을 선택하도록 한다. 다음으로 (b) 카메라를 통해 View 화면상의 손가락 추적과 오브젝트 추적을 지원하여 사용자 모션을 인식하도록 한다. 그리고 (c)View화면 상에 나타나는 가상의 바둑알과 프레임워크의 사용자 모션인식 간의 상호작용을 바탕으로 가상의 바둑알의 이동과 충돌로 인한 위치를 결정하는 단계를 포함한다.
이러한 (c) 단계에서, 안드로이드부는 손가락 제스처를 취하여 선택된 바둑알 주변을 돌고 있는 화살표를 통해 공격방향을 선택하는 단계, 검지와 엄지를 사용하여 튕기는 제스처를 취하면 손가락 간의 벌려진 거리와 속도를 바탕으로 공격 세기가 결정되는 단계 및 가상의 바둑알의 이동과 충돌로 인한 위치를 결정하는 단계를 포함한다.
본 발명에 따르면, 추가적인 하드웨어 장비없이 스마트폰의 카메라를 이용한 증강현실 기반으로 손가락 모션을 인식하여 모바일 바둑알 충돌게임을 할 수 있는 효과가 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함은 당업자에게 명백할 것이다.
100 : 게임 보드
200 : 프레임워크
300 : 안드로이드부

Claims (5)

  1. 레이아웃 상에서 View화면을 만든 후, 상기 View화면에 가상의 바둑알을 추가하는 게임 보드(100);
    카메라를 통해 상기 View 화면상의 손가락 추적과 오브젝트 추적을 지원하여 사용자 모션을 인식하는 프레임워크(200); 및
    상기 View화면 상에 나타나는 가상의 바둑알과 상기 프레임워크의 사용자 모션인식 간의 상호작용을 바탕으로 가상의 바둑알 이동과 충돌로 인한 위치를 결정하는 안드로이드부(300);를 포함하는 것을 특징으로 하는 증강현실 기반 바둑알 충돌 모바일 게임 시스템.
  2. 제1항에 있어서,
    상기 프레임워크는 상기 게임 보드의 View화면 상에서 손바닥의 랜드마크를 인식한 후 손의 움직임을 추적하고 랜드마크와 손가락 끝점 등의 위상 관계를 활용하여 사용자의 제스처를 인식하는 것을 특징으로 하는 증강현실 기반 바둑알 충돌 모바일 게임 시스템.
  3. 제1항에 있어서,
    안드로이드부는 상기 View화면 상에 나타나는 사용자의 손가락이 움직이는 속도를 측정하여 바둑알이 날아가는 속도를 결정하고, 사용자의 손 모양을 인식하여 바둑알이 날아가는 방향을 결정하는 것을 특징으로 하는 증강현실 기반 바둑알 충돌 모바일 게임 시스템.
  4. 증강현실 기반 바둑알 충돌 모바일 게임 시스템을 이용한 방법에 있어서,
    (a) 안드로이드부가 레이아웃 상의 View화면에 가상의 바둑알을 선택하도록 하는 단계;
    (b) 상기 안드로이드부가 카메라를 통해 상기 View 화면상의 손가락 추적과 오브젝트 추적을 지원하여 사용자 모션을 인식하도록 하는 단계; 및
    (c) 상기 안드로이드부가 상기 View화면 상에 나타나는 가상의 바둑알과 상기 프레임워크의 사용자 모션인식 간의 상호작용을 바탕으로 가상의 바둑알 이동과 충돌로 인한 위치를 결정하는 단계;를 포함하는 것을 특징으로 하는 증강현실 기반 바둑알 충돌 모바일 게임방법.
  5. 제4항에 있어서,
    상기 (c) 단계는,
    상기 안드로이드부가 손가락 제스처를 취하여 선택된 바둑알 주변을 돌고 있는 화살표를 통해 공격방향을 선택하는 단계, 검지와 엄지를 사용하여 튕기는 제스처를 취하면 손가락 간의 벌려진 거리와 속도를 바탕으로 공격 세기가 결정되는 단계 및 가상의 바둑알의 이동과 충돌로 인한 위치를 결정하는 단계를 포함하는 것을 특징으로 하는 증강현실 기반 바둑알 충돌 모바일 게임방법.
KR1020210049935A 2021-04-16 2021-04-16 증강현실 기반 바둑알 충돌 모바일 게임 시스템 및 그 방법 KR102542830B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210049935A KR102542830B1 (ko) 2021-04-16 2021-04-16 증강현실 기반 바둑알 충돌 모바일 게임 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210049935A KR102542830B1 (ko) 2021-04-16 2021-04-16 증강현실 기반 바둑알 충돌 모바일 게임 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20220143430A true KR20220143430A (ko) 2022-10-25
KR102542830B1 KR102542830B1 (ko) 2023-06-14

Family

ID=83804144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210049935A KR102542830B1 (ko) 2021-04-16 2021-04-16 증강현실 기반 바둑알 충돌 모바일 게임 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102542830B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090001667A (ko) * 2007-05-09 2009-01-09 삼성전자주식회사 증강 현실 기술을 이용하여 컨텐츠를 구현하기 위한 장치및 방법
KR20110010659A (ko) * 2011-01-10 2011-02-01 김동환 알까기 게임 및 그 프로그램

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090001667A (ko) * 2007-05-09 2009-01-09 삼성전자주식회사 증강 현실 기술을 이용하여 컨텐츠를 구현하기 위한 장치및 방법
KR20110010659A (ko) * 2011-01-10 2011-02-01 김동환 알까기 게임 및 그 프로그램

Also Published As

Publication number Publication date
KR102542830B1 (ko) 2023-06-14

Similar Documents

Publication Publication Date Title
US10481689B1 (en) Motion capture glove
JP6875346B2 (ja) 情報処理方法及び装置、記憶媒体、電子機器
JP5137970B2 (ja) ビデオストリームにおいて、マーク無しに、テクスチャー化平面幾何学的オブジェクトをリアルタイムで自動追跡するリアリティ向上方法および装置
US9952820B2 (en) Augmented reality representations across multiple devices
US9330478B2 (en) Augmented reality creation using a real scene
Suma et al. Adapting user interfaces for gestural interaction with the flexible action and articulated skeleton toolkit
KR101379074B1 (ko) 인간 기계 인터페이스를 위한 장치 시스템 및 방법
CN102915112A (zh) 用于近距离动作跟踪的系统和方法
JP7283388B2 (ja) 情報処理装置、情報処理方法、およびプログラム
CN108700957A (zh) 用于虚拟环境中文本输入的电子系统和方法
CN110215685B (zh) 游戏中的虚拟对象控制方法及装置、设备、存储介质
CN107930114A (zh) 信息处理方法及装置、存储介质、电子设备
CN106536004B (zh) 增强的游戏平台
Katzakis et al. INSPECT: extending plane-casting for 6-DOF control
CN111467794A (zh) 游戏交互方法及装置、电子设备、存储介质
JP7257370B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
Zhang et al. Operating virtual panels with hand gestures in immersive vr games: Experiences with the leap motion controller
JP6732078B2 (ja) 触覚オーバーレイを拡張現実に統合するシステム、方法及び非一時的コンピュータ可読媒体
KR102542830B1 (ko) 증강현실 기반 바둑알 충돌 모바일 게임 시스템 및 그 방법
JP2015153159A (ja) 移動制御装置及びプログラム
Halim et al. Designing ray-pointing using real hand and touch-based in handheld augmented reality for object selection
JP2019205514A (ja) プログラム、方法、および情報端末装置
Bernardes Jr et al. Design and implementation of a flexible hand gesture command interface for games based on computer vision
KR102557808B1 (ko) 게임 서비스 시스템 및 상기 시스템에서의 메모 공유 방법
Kim et al. Dynamic hierarchical virtual button-based hand interaction for wearable AR

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right