KR101800795B1 - 이동 디바이스 모션 센서 입력을 갖는 웹 기반 게임 플랫폼 - Google Patents
이동 디바이스 모션 센서 입력을 갖는 웹 기반 게임 플랫폼 Download PDFInfo
- Publication number
- KR101800795B1 KR101800795B1 KR1020147033652A KR20147033652A KR101800795B1 KR 101800795 B1 KR101800795 B1 KR 101800795B1 KR 1020147033652 A KR1020147033652 A KR 1020147033652A KR 20147033652 A KR20147033652 A KR 20147033652A KR 101800795 B1 KR101800795 B1 KR 101800795B1
- Authority
- KR
- South Korea
- Prior art keywords
- game
- delete delete
- motion data
- gaming server
- image content
- Prior art date
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 187
- 238000000034 method Methods 0.000 claims description 111
- 210000000707 wrist Anatomy 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 12
- 210000000245 forearm Anatomy 0.000 claims description 11
- 239000011295 pitch Substances 0.000 description 65
- 238000004458 analytical method Methods 0.000 description 31
- 238000012545 processing Methods 0.000 description 14
- 210000004247 hand Anatomy 0.000 description 11
- 230000036316 preload Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 8
- 230000001965 increasing effect Effects 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000003384 imaging method Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 244000208734 Pisonia aculeata Species 0.000 description 1
- 244000299461 Theobroma cacao Species 0.000 description 1
- 235000009470 Theobroma cacao Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 210000000617 arm Anatomy 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 230000036571 hydration Effects 0.000 description 1
- 238000006703 hydration reaction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- XEEYBQQBJWHFJM-UHFFFAOYSA-N iron Substances [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 1
- 235000000396 iron Nutrition 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- YFBPRJGDJKVWAH-UHFFFAOYSA-N methiocarb Chemical compound CNC(=O)OC1=CC(C)=C(SC)C(C)=C1 YFBPRJGDJKVWAH-UHFFFAOYSA-N 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 210000002700 urine Anatomy 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/211—Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
- A63F13/335—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing 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/428—Processing 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/53—Controlling 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
- A63F13/537—Controlling 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 using indicators, e.g. showing the condition of a game character on screen
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/812—Ball games, e.g. soccer or baseball
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/90—Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
- A63F13/92—Video game devices specially adapted to be hand-held while playing
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/10—Features 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/105—Features 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 using inertial sensors, e.g. accelerometers, gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/20—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
- A63F2300/204—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform the platform being a handheld device
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/40—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
- A63F2300/406—Transmission via wireless network, e.g. pager or GSM
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/40—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
- A63F2300/407—Data transfer via internet
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Information Transfer Between Computers (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
- Pinball Game Machines (AREA)
Abstract
분포된 게이밍 플랫폼(100)이 제공되며, 여기서 모션 센서들을 갖는 이동 디바이스들(10) (예를 들어, 스마트폰)이 게임의 입력 컨트롤러들로서 사용된다. 클라우드 기반 게이밍 규칙 엔진(110)은 게임에서의 다수의 플레이어들 및 디스플레이에 대한 콘텐츠를 관리한다. 게임 출력은 이동 디바이스(10)와 물리적으로 별개인 임의의 웹-이용 가능 디스플레이(20) 상에 디스플레이된다. 다수의 플레이어들은 다수의 지리적 위치들에서 동일한 게임 또는 상이한 게임들을 동시에 플레이할 수 있다.
Description
본 발명은 컴퓨터 게임 분야에 관한 것으로, 보다 상세하게는 이동 디바이스 모션 센서 입력을 갖는 분포된 웹 기반 게임 플랫폼에 관한 것이다.
[관련출원]
본 출원은 “휴대폰 모션 센서 입력을 갖는 웹 기반 스포츠 게임 플랫폼”이라는 명칭으로 2012년 5월 2일자로 출원된 Jeffery 등에의 미국 가출원 번호 제 61/641,825호의 이익을 주장하며, 이 내용이 참조로 본원에 포함된다. 본 출원은 또한 "멀티미디어 프리젠테이션 스레드들의 동적 어셈블리 방법 및 시스템"이라는 명칭으로 2011년 10월 7일자로 출원된Jeffery에의 미국 특허 출원번호 제 13/269,534호; “이동 디바이스의 모션 센서들을 사용하여 스포츠 모션들을 분석하는 방법 및 시스템”이라는 명칭으로 2012년 10월 18일자로 출원된 Jeffery 등에의 미국 특허 출원번호 제 13/655,366호; 및 “이동 디바이스의 모션에 응답하는 동적 맞춤식 스포츠 명령어를 제공하는 방법”이라는 명칭으로 2012년 10월 24일자로 출원된 Jeffery 등에의 미국 특허 출원번호 제 13/659,774호와 관련되며; 각각의 내용이 그것의 전체가 본원에 참조로 포함된다.
영상 게이밍에 관한 광범위한 종래 기술이 있으며, 1972년의 Pong의 제1 게임으로 거슬러 올라가면, 이 제1 게임에서 매우 단순한 컨트롤러를 갖고 사용자들이 흑백 스크린 상에서 "패들들"(상하로 슬라이딩하는 2개의 짧은 선들)로 전후로 "볼"(스크린 상의 점)을 때린다. 컨트롤러들 및 게이밍 콘솔들은 지난 40년간 상당히 진보하였다. 예를 들어, PlayStation Move는 골프(Tiger Woods Golf) 및 테니스(Grand Slam Tennis), 또는 격투(The Fight)에 대한 맞춤식 컨트롤러들을 가지며, 여기서 게이밍 콘솔은 대략 $250의 비용이 들고 맞춤식 컨트롤러들은 $70의 추가 비용이 든다. 예를 들어, 무브 컨트롤러는 카메라를 사용하고 적외선 광 센서들을 갖는 블루투스 컨트롤러를 통해 모션을 캡처한다. Xbox 360 Kinect는 플레이어 바디 모션들이 3개의 3-D 카메라들 및 정교한 패턴 인식 알고리즘들을 통해 캡처됨에 따라, 물리적 컨트롤러도 사용하지 않는다. Wii, PlayStation 및 Xbox 360은 그것들의 호스팅된 온라인 네트워크들을 통해 멀티플레이어 게이밍을 가능하게 하도록 네트워크 능력을 갖는다.
많은 개인용 컴퓨터 기반 게임들은 컨트롤러로서 컴퓨터의 키보드 및/또는 마우스를 사용한다. 예를 들어, World of Warcraft에서, 통신을 위해 키보드를 사용함으로써, 사용자들은 병사들이 이동하고, 전투하고, 건축할 때, 병사들의 모션들을 제어하기 위해 그들의 캐릭터 및 온 스크린 기능들을 클릭한다. Gameloft Let's Golf 3 및 World PGA Tour Golf에서, 플레이어들은 아바타 골프 캐릭터의 스윙을 제어하기 위해 "슬라이딩 바"를 클릭한다. 이러한 게임들이 값비싼 컨트롤러들을 구입할 필요를 없이 하지만, 그것들은 키보드 및/또는 마우스를 사용하여 제어하기가 어려울 수 있다. 이것은 볼을 때리는 최적의 스윙이 팔 스윙, 엉덩이 및 어깨 돌림, 손목 힌지(hinge), 엉덩이 이동, 팔뚝 회전 및 인사이드 아웃 스윙 경로를 조합한 다차원적 바디 모션을 필요로 하고, 부정확하게 행해진 이들 각각이 최적 미만의 샷을 야기하는 골프와 같은 고도의 스킬 게임들에서 특히 분명하다. 실제로, 키보드 및/또는 마우스를 사용하여 골프 스윙의 전체 역학을 시뮬레이션하는 것이 단순히 가능하지 않다.
Nintendo Wii 컨트롤러는 블루투스 연결을 통해 게이밍 콘솔에 연결되고 ADXL330 가속도계를 사용하여 3개의 축들로 가속도를 감지한다. Wii remote는 또한 10 LED 센서 바와 조합하여, 게임 콘솔에 물리적으로 연결되어, Wii Remote가 어디를 지시하는 지의 판단을 가능하게 하는 PixArt 광 센서를 특징으로 한다. 타이완 회사, ASRock은 Nintendo Wii 게임에 대한 컨트롤러를 모방하기 위해 iPhone 모션 센서들을 사용하는 것을 요구하여, 사용자들이 게임 컨트롤러로서 iPhone을 사용하여 기존 Wii 또는 PC 기반 게임들을 플레이할 수 있다. iPhone은 블루투스 또는 WiFi 네트워크를 사용하여 게이밍 콘솔에 연결된다. 이것은 컨트롤러의 비용을 감소시키지만, 사용자들은 게임 콘솔 또는 그들의 개인용 컴퓨터에서의 특정 게임 컨트롤러 하드웨어 메인보드를 여전히 요구한다. ASRock 소프트웨어 설치는 또한 도전적이고 일부 유용성 문제들이 있다.
Nintendo Wii 컨트롤러 또는 iPhone을 사용하는 시뮬레이션된 ASRock Wii 컨트롤러가 골프 스윙, 야구 스윙 또는 테니스 서브와 같은 많은 스포츠 모션들의 정확한 표현이 아닌 데이터를 제공한다는 점을 주목해야 한다. 즉, Wii 컨트롤러는 많은 스포츠 모션들에의 총 근사치들만을 제공할 수 있다. 예를 들어, 그것은 조작자가 골프 스윙 모션을 행했는지, 그리고 대략 얼마나 세게 조작자가 스윙했는지를 감지할 수 있지만, 그 방법으로는 충돌시 속도 또는 충돌을 통한 클럽 헤드의 정확한 각도를 정확하게 계산할 수 없다.
Kim에의 미국 공개 특허 출원 제 2010/0069158호는 휴대폰들, 게이밍 서버 및 디스플레이 디바이스에 연결되는 게이밍 콘솔을 이용한 한국 화투 및 마작과 같은 멀티 플레이어 카드 및 보드 게임들에 대한 방법을 개시한다. 그러나, Kim은 디스플레이 디바이스에 물리적으로 배선되는 게이밍 콘솔이 골프와 같은 스포츠 게임들의 현실적인 제어를 위한 사용에 적절하지 않은 이동 디바이스들로부터의 단순한 키 데이터 입력(ASCII 데이터)을 갖고, 휴대폰들이 (예를 들어, 블루투스, 적외선 또는 무선 LAN 연결을 통해) 게이밍 콘솔에 연결되어야 한다는 것을 명백하게 요구한다.
Allen 등에의 미국 특허 제 8,019,878호는 게임을 생성하기 위해 이동 디바이스로 LAN(로컬 영역 네트워크) 상의 웹 브라우저를 제어하는 방법을 기술한다. 그러나, 그 방법은 동일한 LAN 상에 연결되는 디바이스들로 제한되고 LAN 상의 웹 브라우저와 이동 디바이스의 직접적 연결 및 웹 브라우저에의 플러그 인 소프트웨어 다운로드를 요구하며, 이 플러그 인 소프트웨어 다운로드는 현재 이용 가능한 웹-이용 가능 TV에서 작동하지 않는다.
영상 게이밍 종래 기술에 상당한 제한들이 있다. 콘솔 기반 게임들의 경우에, 사용자에게의 소유권의 총 비용은 상당하다(각각 약 $70의 비용이 드는 개별 게임들 및 $70의 추가 비용이 드는 컨트롤러들과 함께 단일 게임을 지원하는 플랫폼에 대해 적어도 $250). 아마도 이것은 콘솔 기반 게임들에 대한 판매량이 수년 동안 침체되었던 이유 중의 하나이다. PC, 태블릿 또는 휴대폰 기반 게임들의 경우, 종래의 사용자 입력은 컴퓨터 키보드 또는 터치 스크린을 통하고, 이러한 인터페이스는 골프, 야구, 볼링 또는 테니스와 같은 스포츠 바디 모션들을 포함하는 게이밍에 최적이 아니다.
본 발명의 목적은 컴퓨터 게임 분야의 이동 디바이스 모션 센서 입력을 갖는 분포된 웹 기반 게임 플랫폼을 제공하는 것이다.
본 발명의 시스템들 및 방법들에 따르면, 분포된 게이밍 플랫폼이 제공되며, 여기서 모션 센서들을 갖는 이동 디바이스들이 게임의 입력 컨트롤러들로서 사용된다. 클라우드 기반 게이밍 서버는 게임에서의 다수의 플레이어들 및 디스플레이에 대한 콘텐츠를 관리한다. 게임 출력은 이동 디바이스와 물리적으로 별개인 임의의 웹-이용 가능 디스플레이 상에 디스플레이된다. 다수의 플레이어들은 다수의 지리적 위치들에서 동일한 게임 또는 상이한 게임들을 동시에 플레이할 수 있다.
본 발명의 주목할 만한 특징은 각각의 사용자가 2개의 분리된 동시 인터넷 연결들(하나는 사용자의 이동 디바이스로부터 클라우드 기반 게이밍 규칙 엔진으로의 연결 및 다른 하나는 웹-이용 가능 디스플레이로부터 게이밍 규칙 엔진으로의 연결)을 수립하는 것이다. 필요로 되지 않지만, 이동 디바이스 및 디스플레이 디바이스가 동일한 무선 LAN(로컬 영역 네트워크) 상에 있으면, 이동 디바이스로부터 디스플레이 디바이스로의 직접적인 연결이 있을 수도 있다. 이러한 선택적 연결은 사용자 및 디스플레이 디바이스에의 레이턴시를 감소시키는 이점을 갖는다. 즉, 디스플레이 디바이스가 이동 디바이스와 동일한 LAN(로컬 영역 네트워크) 상에 있는 경우, LAN를 통해 디스플레이 디바이스로 스윙 데이터의 직접적으로 통과하는 것은 데이터를 다수의 라우터들을 통해 원격 서버로 그리고 그 다음 다시 다수의 라우터들을 통해 디스플레이 디바이스로 송신하는 것보다 더 빠르다.
더욱이, 분포된 아키텍처는: 바디 모션들이 이동 디바이스의 프로세서를 사용하여 분석되고, 클라우드 기반 게이밍 규칙 엔진이 다수의 플레이어들을 관리하고, 플레이어 상호 작용들을 분석하고, 플레이어 모션 이력들을 저장하고 분석하고, 게이밍 콘텐츠를 각각의 디스플레이 디바이스로 푸시하고 (또는 당김을 가능하게 하고), 디스플레이 디바이스 그 자체가 로컬 게이밍 로직을 프로세싱하고 클라우드 기반 게이밍 규칙 엔진으로부터 푸시되는 경량의 게이밍 로직을 사용하여 애니메이션들을 표현하는 3개의 레벨들의 계산 프로세싱이 채용된다.
본 접근법의 적어도 3가지의 중요한 이점들이 있다:
어떤 부가 장비도 필요하지 않다. 2015년까지, 전 세계적으로 십억 개가 넘는 스마트폰들이 있을 것이고, 모든 이러한 새로운 전화기들은 모션 센서들을 가질 것이다. 본원에 개시된 시스템은 통상적 게이밍 콘솔보다 상당히 덜 비싸고, 가까운 장래에, 평범한 사용자는 모든 필수 장비(모션 센서들을 갖는 이동 디바이스 및 웹-이용 가능 디스플레이)를 가질 것이다.
컴퓨터 키보드, 마우스 또는 터치 스크린이 게임을 제어하는데 필요로 되지 않는다. 키보드 접근법은 골프, 야구 또는 테니스와 같은 스포츠 모션 게임들에 대해 특히 비현실적이다. 예를 들어, 골프, 테니스 또는 야구의 경우, 키보드 상의 키를 누르는 것 또는 마우스를 클릭하는 것 대신에 웹 이용 가능 TV 상에 디스플레이되는 가상 볼을 때리기 위해 전화기를 스윙하는 상당히 보다 더 실 세계 경험이 있다. 더욱이, Wii 게임 컨트롤러들 및 영상 기반 바디 모션 캡처는 특히 정확하지 않고, 골프 스윙 예를 들어, 단지 그로스 움직임의 정확한 분석을 현재 가능하게 하지 않는다.
Wii 또는 Xbox와 같은 게이밍 콘솔들은 3차원 객체들의 풍부한 그래픽 표현을 가능하게 하고 1990년대의 Cray Y-MP와 같은 고성능 슈퍼컴퓨터의 동등한 연산 능력을 갖는다. 개시된 시스템은 고성능 그래픽 프로세서를 갖는 게이밍 콘솔 또는 개인용 컴퓨터를 구입하지 않고 다수의 지리적으로 분산된 위치들에서 멀티플레이어 동시 게이밍을 가능하게 한다. 개시된 게임들은 상세하게는 상대적으로 낮은 연산 능력을 갖고 임의의 웹-이용 가능 디바이스 상에서 작동하도록 설계되고, 실제로 Tiger Woods PGA Golf와 같은 일부 콘솔 게임들에의 향상인 풍부한 그래픽 콘텐츠를 갖는다.
더욱이, 개시된 웹 기반 분포된 게이밍 플랫폼을 구현하기 위해, 적어도 5가지의 중요한 기술적 혁신들이 활용된다:
(1) 이동 디바이스 센서들로부터 원시 모션 데이터를 정확하게 캡처하고, 이러한 데이터를 이동 디바이스 상에서 분석하고, 저레이턴시 연결을 가능하게 하는 형태로 분석된 데이터를 송신하는 방법;
(2) 게이밍 규칙 엔진으로부터 웹 이용 가능 디스플레이 디바이스로 송신되는 게이밍 디스플레이 매체의 대역폭 및 레이턴시를 조직적으로 감소시키고, 대역폭 활용 및 레이턴시를 최소화하기 위해 웹-이용 가능 디스플레이를 캐싱하는 콘텐츠를 큐잉하는 방법;
(3) 실 세계를 시뮬레이션하는 반면에, 디스플레이 디바이스의 대역폭 및 해상도에 대해 최적화하기 위해 특정 디스플레이 디바이스들에 대한 게이밍 디스플레이 매체를 향상시키는 방법;
(4) 이동 디바이스, 게이밍 규칙 엔진 및 웹-이용 가능 디스플레이가 분포된 프로세싱 아키텍처에서의 게이밍 모션들, 멀티 플레이어들, 게이밍 규칙들 및 각각의 출력 디스플레이 애니메이션들을 최적으로 분석하도록 계산들의 분포에 대한 방법; 및
(5) 사용자 데이터베이스 또는 이벤트 구동형 아키텍처의 주기적 폴링을 사용할 수 있는 사용자 입력들을 검출하는 게이밍 규칙 엔진 및 디스플레이 디바이스에 대한 방법으로, 이동 디바이스들은 스윙 이벤트들을 발행하고, 게이밍 엔진 및 디스플레이 디바이스는 특정 사용자들에 대한 특정 이벤트들을 인용하는 방법.
본 발명의 이러한 및 다른 양태들, 특징들 및 이점들은 바람직한 실시예들의 이하의 상세한 설명으로부터 명백해질 것이며, 이 상세한 설명은 첨부 도면들과 관련되어 읽혀질 것이다.
도 1은 이동 디바이스의 다양한 타입들의 회전 움직임을 도시한다.
도 2는 본 발명의 일 실시예에 따른 멀티 플레이어 분포된 게이밍 플랫폼에 대한 예시적인 아키텍처를 도시한다.
도 3은 본 발명의 일 실시예에 따른 멀티 플레이어 게이밍 플랫폼 아키텍처의 예시적인 실시예를 도시한다.
도 4a 내지 도 4e는 본 발명의 골프 게임의 바람직한 실시예에서의 다양한 사용자 경험들을 도시한다.
도 5는 본 발명의 일 실시예에 따른 골프 게임에 대한 멀티 플레이어 게이밍 플랫폼의 예시적인 실시예를 도시한다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 디지털 이미지들에 상응하는 세그먼트들로 분할하는 골프 홀을 도시한다.
도 7a 및 도 7b는 스윙 정확도를 결정하는 데에 유용한 예시적 풀 골프 스윙 동안 이동 디바이스의 피치 및 롤을 도시한다.
도 8a 및 도 8b는 충돌점 및 충돌점을 통한 골프 클럽 헤드의 속도를 결정하는 이동 디바이스의 피치 데이터의 사용을 도시한다.
도 9a 및 도 9b는 충돌점을 결정하는 예시적 풀 골프 스윙 동안 이동 디바이스의 피치 및 요의 사용을 도시한다.
도 10은 본 발명의 일 실시예에 따른 디지털 이미지의 현실성을 강화하는 계층들, 시네마그래프(cinemagraph) 및/또는 스프라이트 애니메이션(sprite animation)들의 사용을 도시한다.
도 11a 내지 도 11c는 예시적 테니스 스윙 또는 착석된 수평 골프 스윙 동안 이동 디바이스의 피치, 요 및 롤의 변화들을 도시한다.
도 12a 내지 도 12c는 야구 스윙에 대한 요, 롤 및 피치를 도시한다.
도 13a 내지 도 13c는 볼링 모션에 대한 피치, 롤 및 요를 도시한다.
도 2는 본 발명의 일 실시예에 따른 멀티 플레이어 분포된 게이밍 플랫폼에 대한 예시적인 아키텍처를 도시한다.
도 3은 본 발명의 일 실시예에 따른 멀티 플레이어 게이밍 플랫폼 아키텍처의 예시적인 실시예를 도시한다.
도 4a 내지 도 4e는 본 발명의 골프 게임의 바람직한 실시예에서의 다양한 사용자 경험들을 도시한다.
도 5는 본 발명의 일 실시예에 따른 골프 게임에 대한 멀티 플레이어 게이밍 플랫폼의 예시적인 실시예를 도시한다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 디지털 이미지들에 상응하는 세그먼트들로 분할하는 골프 홀을 도시한다.
도 7a 및 도 7b는 스윙 정확도를 결정하는 데에 유용한 예시적 풀 골프 스윙 동안 이동 디바이스의 피치 및 롤을 도시한다.
도 8a 및 도 8b는 충돌점 및 충돌점을 통한 골프 클럽 헤드의 속도를 결정하는 이동 디바이스의 피치 데이터의 사용을 도시한다.
도 9a 및 도 9b는 충돌점을 결정하는 예시적 풀 골프 스윙 동안 이동 디바이스의 피치 및 요의 사용을 도시한다.
도 10은 본 발명의 일 실시예에 따른 디지털 이미지의 현실성을 강화하는 계층들, 시네마그래프(cinemagraph) 및/또는 스프라이트 애니메이션(sprite animation)들의 사용을 도시한다.
도 11a 내지 도 11c는 예시적 테니스 스윙 또는 착석된 수평 골프 스윙 동안 이동 디바이스의 피치, 요 및 롤의 변화들을 도시한다.
도 12a 내지 도 12c는 야구 스윙에 대한 요, 롤 및 피치를 도시한다.
도 13a 내지 도 13c는 볼링 모션에 대한 피치, 롤 및 요를 도시한다.
본원에 이용되는 바에 따라, 이동 디바이스는 마이크로프로세서, 메모리 및 통합 모션 센서들을 갖는 휴대용 디바이스를 지칭한다. 그러한 이동 디바이스들의 예들은 Apple iPhone, Apple iPod 및 Samsung Galaxy 스마트폰을 포함한다. 본원에 언급되는 그러한 이동 디바이스들이 단지 예시적 목적을 위한 것으로 이해되어야 한다.
본원에 이용되는 바에 따라, 디스플레이 디바이스는 웹 페이지를 그래픽으로 디스플레이할 수 있는 임의의 인터넷 연결 디스플레이를 지칭한다.
본원에 이용되는 바에 따라, 이미지는 사진, 스프라이트, 시네마그래프, 영상, 래스터 또는 벡터 이미지, 애니메이션 및 다른 그래픽-엔진 생성 시각 객체들, 및 그것의 조합들을 포함하지만 이에 제한되지 않는 임의의 시각적으로 인지할 수 있는 그래픽 요소를 지칭한다.
본원에 이용되는 바에 따라, 대역폭 활용은 주어진 기간에서 통신 채널을 따라 보내질 수 있는 데이터의 양을 지칭한다.
본원에 이용되는 바에 따라, 레이턴시는 데이터의 송신과 수신 사이의 시간 지연을 지칭한다.
본원에 이용되는 바에 따라, 교정점은 스포츠 모션의 시작 이전에 셋업 위치에서 이동 디바이스의 시간 및 공간의 위치를 지칭한다.
본원에 이용되는 바에 따라, 충돌점은 가상 객체와의 충돌의 시간 및 공간의 위치를 지칭한다.
본원에 이용되는 바에 따라, 해제점은 가상 객체의 해제의 시간 및 공간의 위치를 지칭한다.
골프와 같은 일부 스포츠에서, 충돌점 및 해제점은 시간 및 공간에서 동일한 물리적 위치일 수 있다. 그러나 다른 스포츠에서, 충돌점 및 해제점은 일치하지 않을 수 있다. 예를 들어 라크로스에서, 볼은 손잡이가 긴 스틱에 의해 캐칭되고(볼이 충돌점에서 라크로스 스틱과 충돌하고) 그 다음 상이한 위치에서(해제점에서) 스틱으로부터 이후에 스로잉된다. 더욱이 일부 스포츠에서, 충돌의 지점이 없으므로, 해제점만이 있다. 예를 들어 제물 낚시에서, 해제점은 각 운동량을 낚싯대에 부여하는 손목의 휘두름에 의해 발생되며, 일정 최대값을 넘는 이 휘두름이 가중된 낚시 바늘을 낚싯대로부터 해제시킨다.
도 1은 이동 디바이스(10)의 모션 센서들에 의해 측정되는 다양한 타입들의 회전 움직임을 도시한다. 이러한 센서들은 (각각의 축을 따른 G들로 표현되는) X, Y 및 Z 가속도 데이터를 캡처하는 가속도계 및 (각각의 축에 대하여 라디안들로 표현되는) 이동 디바이스가 움직임에 따라 이동 디바이스(10)의 피치, 롤 및 요를 측정하는 자이로스코프를 포함한다. 현재, 모션 센서들은 초 당 약 100번(100헤르츠) 샘플링되며, 이러한 데이터가 이동 디바이스(10) 상에 로딩되는 애플리케이션에 (폴링하거나 밀려진 데이터를 가짐으로써) 이용 가능하게 된다. 본 발명과 함께 사용 가능한 대표적인 자이로스코프는 STMicroelectronics, Inc가 제작한 L3G4200D 자이로스코프이다. 그러나, 본 발명이 현재 이용 가능한 모션 센서 기술에 제한되지 않는다는 점이 이해되어야 한다.
도 2는 본 발명의 일 실시예에 따른 게이밍 플랫폼(100)의 예시적인 아키텍처를 도시한다. 도시된 바와 같이, 게이밍 플랫폼(100)의 3개의 주요 구성 요소들은 이동 디바이스들(10), 게이밍 서버(110) 및 디스플레이 디바이스들(20)이다. 게이밍 서버(110)는 플레이되고 있는 복수의 게임들을 관리하는 게이밍 규칙 엔진(115)을 포함한다. 도시된 바와 같이, 게이밍 규칙 엔진(115)은 사용자 데이터베이스(116), 게이밍 리소스 데이터베이스(117) 및 모션 아카이브 데이터베이스(118)에 액세스한다. 사용자 데이터베이스(116)는 로그인 정보 및 게임 정보를 저장한다. 골프의 경우, 게임 정보는 게임 동안 행해지는 각각의 스윙에 대한 스윙 데이터, 플레이어의 현재 점수, 현재 골프 홀 수, 현재 선택된 골프 클럽 등을 포함할 수 있다. 게이밍 리소스 데이터베이스(117)는 디스플레이 디바이스(20) 상에서 게임을 시뮬레이션하기 위한 그래픽 콘텐츠를 포함할 수 있다 . 예를 들어 골프의 경우, 게이밍 리소스 데이터베이스(117)는 이미지들이 가상 골프 볼이 착지하도록 투영되는 골프 홀의 어떤 세그먼트에 기반하여 검색될 수 있도록 표시되는 각각의 골프 홀들의 일부들의 복수의 2-D 이미지들 또는 영상들을 포함할 수 있다. 더 상세히 설명될 것인 바와 같이, 게이밍 리소스 데이터베이스(117)는 또한 게이밍 경험을 향상시키기 위해 (시네마그래프들, 영상들 및 스프라이트들과 같은) 다양한 다른 그래픽 요소들을 포함할 수 있다. 모션 아카이브 데이터베이스(118)는 장기 분석에 대한 이력 모션 데이터 예를 들어, 골프의 경우, 스윙, 퍼팅 및 칩핑 일관성 개선의 종적인 비교들에 대한 스윙 모션 정확도에 대한 데이터를 포함한다.
상기 실시예에서, 게이밍 서버(110)는 클라우드 기반이어서 인터넷(150)을 통한 전반적 연결성을 가능하게 한다. 각각의 사용자의 경우, 사용자의 이동 디바이스(10) 및 디스플레이 디바이스(20)는 분리된 그리고 별개의 인터넷 연결들을 통해 게이밍 서버(110)에 동시에 연결될 수 있다. 이동 디바이스(10)는 분석된 모션 데이터를 포함하는 데이터를 게이밍 서버(110)에 송신하며; 결국, 게이밍 서버(110)는 분리된 인터넷 연결을 통해 디스플레이(20)에서 게이밍 매체의 디스플레이를 용이하게 한다. 일 실시예에서, 경량의 게이밍 로직 엔진(120)은, 소프트웨어 애플리케이션의 형태로, 게이밍 규칙 엔진(115)의 상당한 양의 로직이 인코딩되는 적절한 웹-이용 가능 디스플레이 디바이스(20)에 푸시될 수 있고, 게이밍 로직 엔진(120)은 그때 그렇지 않으면 게이밍 서버(110)에서 직접 수행될 많은 작업을 수행할 수 있다.
일 실시예에서, 사용자의 이동 디바이스(10) 및 디스플레이 디바이스(20)는 도 2에서의 파선(75)으로 도시되는 동일한 네트워크 상의 LAN(로컬 영역 네트워크)를 통해 선택적으로 연결될 수 있다. LAN 연결은 동일한 지리적 위치에서의 사용자들에 대해 모션들과 게이밍 애니메이션 디스플레이들 사이의 매우 낮은 레이턴시를 가능하게 한다. 본 실시예에서, 모션 데이터는 (동일한 물리적 LAN 상이 아닌) 상이한 지리적 위치들에서 멀티플레이어 게이밍을 가능하게 하기 위해 이동 디바이스(10)로부터 디스플레이 디바이스(20) 및 게이밍 서버(110)로 직접 나아간다. 모션 데이터는 각각의 이동 디바이스(10)로부터 인터넷(150)을 통해 게이밍 서버(110)로 송신되며, 이 인터넷에서 그것은 게임에서의 다른 플레이어들의 디스플레이 디바이스들(10 및/또는 20)을 업데이트하기 위해 사용된다. LAN 연결(75)은 이동 디바이스(10)와 동일한 LAN 상에서 디스플레이 디바이스(20)로 데이터의 매우 빠른(밀리초) 통과를 가능하게 하여, 그러한 특정 플레이어에 대한 게임 플레이를 가속시킨다. 따라서 예를 들어, 이동 디바이스(10)를 스윙하는 것은 게이밍 로직 서버로 송신되고 그 다음 비로컬 연결을 통해 디스플레이 디바이스(20)로 전송되는 데이터에 대한 인식 가능한 (예를 들어, 1초의60분의 1의) 지연에 비해, 둘 다가 동일한 LAN 상에서 연결될 때, 디스플레이 디바이스(20) 상의 거의 즉각적인 볼 비행의 출현을 야기할 것이다.
디스플레이 디바이스가 PC(개인용 컴퓨터), 웹-이용 가능 TV, 태블릿 또는 유사 컴퓨팅 디바이스인 경우, 연결은 적절한 웹 브라우저 플러그 인을 설치함으로써 달성될 수 있다. 바람직하게는, 사용자는 플러그 인을 설치하고 이동 디바이스(10)에 대한 LAN을 탐색하는 것을 가능하게 하기 위해 "동의 버튼"을 클릭하고 디바이스(10)와 통신하도록 요구될 것이다. 대안적으로, 프로그램은 로컬 네트워크를 “리스닝(listening)”하도록 구성되는 커스텀 웹 브라우저일 수 있어, 플러그 인이 효과적으로 내장된다. 현재의 iPad, Android 및 웹 TV 웹 브라우저들은 플러그 인 기능성을 지원하지 않지만; 가까운 장래에 이러한 디바이스들 중 일부가 보다 개방된 플랫폼들이 되고 유사 연결들을 가능하게 할 것이라는 점이 예측된다. iPad 및 Android 플랫폼들의 경우, 통합되는 플러그 인을 갖는 필연적으로 웹 브라우저 주변에 스킨들인 커스텀 앱들이 기록될 수 있다. 따라서, 이동 디바이스(10)에의 직접적 LAN 연결이 다수의 웹 이용 가능 디스플레이 디바이스 플랫폼들에 행해질 수 있다.
도 3은 본 발명의 일 실시예에 따른 멀티 플레이어 게이밍 플랫폼 아키텍처의 예시적인 실시예를 도시한다. 이동 디바이스(10) 및 웹 디스플레이 디바이스(20)는 동일한 지리적 위치 또는 상이한 위치들에 있을 수 있다. 이동 디바이스(10)와 웹 디스플레이 디바이스(20) 사이의 통신은 웹소켓과 같은 롱 폴링의 사용을 통해 발생된다. 도시된 바와 같이, 2개의 상이한 롱 폴링 연결들(180)은 이동 디바이스(10)와 게이밍 서버(110) 사이, 그리고 게이밍 서버(110)와 디스플레이 디바이스(20) 사이에 수립된다. 게이밍 서버(110)는 복수의 사용자들 및 디스플레이 디바이스들을 지원하기 위해 복수의 폴링 포트들(130)을 채용한다.
본 발명의 이하의 설명에서, 본 발명의 다양한 양태들을 수행하는 예시적인 방법들이 개시된다. 본원에 개시된 본 발명의 방법들 및 시스템들이 C, C++, C#, Objective-C, Visual Basic 및 Java와 같은 다양한 적절한 프로그래밍 언어들로 기록되는 컴퓨터 프로그램 코드를 실행함으로써 실현될 수 있다는 점이 이해되어야 한다. 일부 실시예들에서, 애플리케이션 로직의 실질적 부분들이 예를 들어, 비동기 웹 애플리케이션을 생성하기 위해 AJAX(비동기 JavaScript 및 XML) 패러다임을 사용하여 디스플레이 디바이스상에 수행될 수 있다는 점이 이해되어야 한다. 더욱이, 일부 실시예들에서, 애플리케이션의 소프트웨어가 복수의 상이한 서버들(미도시) 중에 분포될 수 있다는 점이 이해되어야 한다.
또한 본 발명의 소프트웨어는 바람직하게는 적절한 브라우저 (예를 들어, Safari, Internet Explorer, Mozilla Firefox, Google Chrome, Opera)를 사용하여 클라이언트들에 의해 액세스 가능한 HTML, PHP, JavaScript, XML 및 AJAX로 기록되는 다양한 웹 기반 애플리케이션들을 더 포함할 것이라는 점이 이해되어야 한다.
본 발명의 중요한 양태는 대역폭 활용을 최적화하고 레이턴시를 최소화하는 반면에, 특정 디스플레이 디바이스(20)에 대한 최적의 그래픽 해상도를 표현하는 것에의 조직적 접근법이다. 레이턴시는 관심사의 특히 중요한 쟁점이고, 대역폭 활용 및 디스플레이 그래픽 해상도와 관련된다. 사용자 입력 바디 모션들과 출력 디스플레이 디바이스 상의 시뮬레이션된 동작들 사이의 시간 지연들은 스포츠 게임의 현실성을 손상시킨다. 더욱이, 다음 씬을 로딩하는 지연들은 또한 사용자들을 실망시킬 수 있다. 다른 목적은 풍부한 그래픽 콘텐츠의 씬에서 씬으로의 1초 미만의 전환들과 함께 입력 모션들에 응하여 거의 즉각적인 디스플레이 출력들로 가능한 한 매끄러운 사용자 경험을 가능하게 하는 것이다.
대역폭 활용 효과의 일 예로서, 5MB(메가바이트) 영상 또는 사진은 1Mb/s(Tl) 연결로 다운로드하는데 40초가 걸릴 것이다. 동일한 영상은 5Mb/sec 연결로 다운로드하는데 8초가 걸릴 것이며, 이는 미국에서의 평균 가정 광대역 연결 속도이다. 따라서, 게임에 대한 데이터 밀도(비트 수)가 크다면, 그때 사용자는 콘텐츠가 다운로드됨에 따라, 잠재적으로 상당한 지연들을 겪을 것이다.
다음 수년간 평균 대역폭 활용은 선진국들에서 대략 50Mb/s까지 상당히 증가될 것이라는 점이 예측된다. 이것은 4G 및 LTE 셀룰러 데이터 네트워크들의 발명, 그리고 고정 라인 케이블 및 4G와 경쟁하게 남도록 그것들의 시스템들을 업그레이드하는 통신 오퍼레이터들에 기인한다. 50Mb/s에서, 5MB 파일은 다운로드하는데 0.8초만이 걸릴 것이다. 그러나, 시간을 경과하여 동시에, 디스플레이 디바이스들은 크기 및 픽셀 해상도가 증가되고 있다. 예들로서, 2012년에, 평균 LCD TV 디스플레이 디바이스는 1920 X 1080 픽셀 해상도로 미국에서 37"이고 $300 내지 $500의 비용이 들며, 동일한 해상도 46"는 대략 $700의 비용이 들고 60" 디스플레이들은 $2000 미만의 비용이 든다. 2015년까지, 60" LCD는 거의 $700 기준 소매 가격일 수 있지만, 해상도는 2560 X 1440까지 증가할 것이다. 따라서, 둘 다가 시간을 경과하여 동시에 증가되는 대역폭 활용 및 디스플레이 해상도의 경합하는 요인들이 있다.
레이턴시의 일 예로서, (이동 디바이스 및 디스플레이 디바이스가 상이한 네트워크들 상에 있다고 가정하여) 사용자가 이동 디바이스(10)를 스윙함에 따라, 데이터가 인터넷을 거쳐서, 계산들이 수행되는 게이밍 서버(110)로, 그 다음 디스플레이 디바이스(20)로 송신될 때, 시간 지연이 발생한다. 이러한 시간 지연은 큰 대역폭 파일들이 동시에 디스플레이 디바이스로 전송되어, 디바이스의 대역폭 활용을 초과한다면, 모션 데이터가 필연적으로 버틀넥(bottleneck)을 통해 전송되고 있는 다른 게이밍 데이터와 함께 대기하는 큐로 들어가야 하므로, 악화된다. 본원에 개시된 방법들은 (1) 대역폭 활용, (2) 전체 시스템 레이턴시 및 (3) 디스플레이 디바이스 해상도의 3개의 치수들에서 시스템 성능을 최적화한다.
도 2 및 도 3에서, 스포츠 모션들 검출 및 출력 디스플레이에 대한 전체 시스템 레이턴시 ΔT는 이하와 같다:
ΔT = Δt스윙 분석 + Δt네트워크12 + Δt게이밍 서버 + Δt네트워크23 + Δt그래픽 엔진 (1)
여기서 Δt스윙 분석은 이동 디바이스 상의 스포츠 모션 분석에 대한 시간이고, Δt네트워크12는 이동 디바이스(10)로부터 네트워크를 거쳐서 게이밍 서버(110)로의 송신 시간이고, Δt게이밍 서버는 게이밍 서버(110)에서의 프로세싱 시간이고, Δt네트워크23은 게이밍 서버(110)로부터 디스플레이 디바이스(20)로의 송신 시간이고 Δt그래픽 엔진은 디스플레이 디바이스(20) 상의 애니메이션들, 이미지들 또는 다른 데이터를 디스플레이하는 프로세싱 및 시간이다. 도 3의 실시예에서 웹소켓들과 같은 롱 폴링의 이점은 이동 디바이스(10)로부터의 모션 데이터가 결국 디스플레이 디바이스(20)로 브로드캐스팅하는 이벤트로서 게이밍 엔진(110)으로 브로드캐스팅되는 것이다. 레이턴시는 미국 본토에서의 웹소켓 연결들 사이에서 대략 50밀리초(㎳)이다. 모션 데이터 및 사용자 인터페이스 업데이트들과 같은 데이터의 작은 패킷들에 대해 도 3에 도시되는 아키텍처를 사용하여, 전체 시스템 레이턴시는 그러므로 대략 Δt네트워크12 + Δt네트워크23 = 100 msec인 인터넷을 거친 데이터 송신 시간이 아닌 이동 디바이스(10)에서의 모션 분석 프로세싱, 게이밍 엔진 프로세싱, 및 그래픽 엔진 디스플레이에 의해 주로 제약된다.
실제로, 도 3의 아키텍처는 다수의 동시 사용자들에 대해 이동 디바이스(10)와, 게이밍 서버(110)와, 웹 디스플레이(20) 사이에서 거의 실시간 동기화를 제공한다. 이러한 아키텍처는 이동 디바이스(10) 및 웹 디스플레이 디바이스(20) 상에서 사용자 활동들의 거의 실시간 동기화를 가능하게 하는 반면에, 동시에 게이밍 서버(110)와의 스윙 모션 데이터 전송을 가능하게 한다. 게다가, 도 3의 아키텍처는 매우 확장 가능하고, 필수적 설계를 벗어나지 않는 범위 내에서 수천 명의 플레이어들이 동시에 플레이하는 것을 수용하도록 구현될 수 있다. 그러한 경우에, 수천 개의 상이한 게임들은 임의의 주어진 시간에 다양한 완료 단계에 있을 수 있고, 아키텍처는 또한 임의의 주어진 시간에 게이밍 서버(110)에 의해 관리되는 골프, 야구, 볼링 등과 같은 다양한 상이한 타입의 스포츠 게임들을 지원할 수 있다.
이러한 본 발명의 요소들 및 다른 새로운 요소들은 가상 멀티 플레이어 골프 게임, 2명 및 4명의 플레이어 테니스 게임 및 멀티 플레이어 야구 게임의 맥락에서 본 발명의 이하의 상세한 설명으로부터 명백해질 것이다. 그러나, 이하의 예들이 제한하고 있는 것으로 의미되지 않는다는 점이 이해되어야 한다.
골프 게임 예
도 4 내지 도 10을 참조하면, 본 발명은 본 발명의 일 실시예에 따른 본원에 설명되는 기법들을 사용하여 구현되는 골프 게임의 이하의 예에 의해 더 명확해질 것이다. 도 4a 내지 도 4e는 사용자 경험을 도시하고 도 5는 상응하는 분포된 골프 게이밍 아키텍처이다.
일 실시예에서, 분포된 게이밍 플랫폼(100)에 액세스하기 위해, 먼저, 사용자는 애플리케이션("앱")을 그들의 이동 디바이스(10)로 다운로드한다. Apple iPhone 4/4s에 대한 일 실시예에서, 앱은 Objective C로 프로그래밍되고, Cocoa Touch SDK(소프트웨어 개발 키트)에 포함되는 CoreMotion framework를 활용하여 가속도계, 자이로스코프 및 자력계와 같은 내장된 하드웨어 기반 센서들에 초 당 100개의 샘플들로 액세스한다. "신호-프로세싱 파이프라인"으로 칭해지는 이것 위의 계층은 실시간 스윙 분석 계산들을 제공하는 프로그램들의 플랫폼-독립 클래스를 포함한다. 신호-프로세싱 파이프라인 계층의 상단에 그래픽 기반 게이밍 프리젠테이션 계층이 놓이며, 이 그래픽 기반 게이밍 프리젠테이션 계층은 신호 프로세싱 엔진에 의해 계산되는 데이터를 처리하고, 이러한 데이터를 서버 기반 게이밍 규칙 엔진으로 보내고, 사용자에게 게이밍 경험을 보완하는 이동 디바이스 특정 콘텐츠를 제공한다.
대안적인 실시예에서, 이동 웹사이트는 이동 브라우저에서의 단순한 JavaScript 이벤트 처리기들을 사용하여 동일한 하드웨어 기반 센서들에 액세스할 수 있다. 그러나, 브라우저를 통해 이러한 센서들을 액세스하는 것은 현재의 기술로 초 당 10개의 샘플들의 샘플링으로 CoreMotion framework보다 일반적으로 훨씬 더 느리다. 여기서 스윙 데이터를 분석하기 위해 동일한 신호 프로세싱 파이프라인을 사용하고, 대화형 JavaScript 웹사이트는 이동 디바이스에 대한 스크린 상의 그래픽 상호 작용을 구축한다.
도 4a에서, 사용자는 자신의 이동 디바이스(10)를 사용하여 지정된 웹 사이트로 접속하고, 그 다음 사용자의 웹-이용 가능 디스플레이(20)는 임의의 표준 브라우저를 열고 거기에 순항함으로써 동일한 웹 사이트에 연결된다. 사용자가 연결들을 수립할 때, 각각의 경우에, 사용자의 정보를 요청하는 로그인 페이지가 제공된다. 로그인 시에, 게이밍 리소스 데이터베이스(117)로부터 게이밍 서버(110)를 통해 다운로드되는 가상 드라이브 범위 또는 골프 코스가 웹-이용 가능 디스플레이 디바이스(20)에 제공된다. 그러나, 디스플레이 디바이스(10)에의 웹 페이지의 초기 로드 동안, 경량의 게이밍 로직 엔진(120)이 또한 배경으로 다운로드될 수 있다. 이러한 웹 기반 게이밍 엔진은 예를 들어, AJAX를 사용하여 비동기 애플리케이션으로 프로그래밍될 수 있다.
도 4b에서, 디바이스들 둘 다(10 및 20)에 로그인되면, 사용자는 드라이브 범위를 입력하거나 게임들을 플레이하는 것을 선택할 수 있으며; 어느 한 경우에, 사용자는 플레이할 친구들(30)을 초대할 수 있다. 초대된 친구들은, 그들 자신의 디바이스들 상에 로그인되면, 초청들을 수락하고 호스트의 게임에 참여할 수 있다. 클라우드 기반 게이밍 규칙 엔진(115)은 플레이어 데이터베이스에서 사용자들 각각에 대한 기록들을 결합하여 플레이되고 있는 각각의 게임에 대한 임시 표를 형성함으로써 플레이어들의 클러스터들을 관리한다. 계정을 갖는 각각의 플레이어는 사용자 데이터베이스(116)에서 플레이어 자신의 데이터베이스 기록 세트들을 갖는다.
도 4c에서, 게임이 시작되면, 각각의 플레이어는 그들의 특정 가상 골프 가방으로부터 골프 클럽을 선택하고 그들 자신의 이동 디바이스(10)를 스윙하고, "충돌"시, 각각의 디바이스는 스윙을 분석하고 스윙 데이터의 작은 패킷을 이러한 데이터가 사용자 데이터베이스(116)에서 업데이트되는 게이밍 서버(110)로 송신한다. 골프 스윙 모션 분석은 이하의 세부 항목에서 상세히 설명된다. 플레이어와 게임 규칙 엔진(115) 사이의 상호 작용들은 예를 들어, 키 입력, 터치 스크린을 터치하는 것 및 이용 가능한 경우, 심지어 음성 인식에 의해 이동 디바이스들(10)의 다양한 입력 디바이스들을 사용하여 행해질 수 있다.
그 다음, 이러한 스윙 데이터는 이하의 세부 항목 (2)에서 설명되는 3개의 방법들 중 하나를 사용하여 디스플레이 디바이스(20)로 보내진다. 도 4d에서, 다운로드된 디스플레이 디바이스 그래픽 엔진(125)은 (볼 비행을 계산하거나 추정하는 알고리즘을 사용하여) 디스플레이(20) 상에 볼 비행(25)을 표현한다. 마찬가지로, 친구들이 그들의 가상 볼들을 때릴 때, 그들의 모션 데이터는 그들의 각각의 이동 디바이스들(10)로부터 게이밍 서버(110)로 송신되며, 이 게이밍 서버에서 이들 데이터는 사용자 데이터베이스(116)에 업데이트된다. 도 4e에서, 그것들은 그 다음 특정 사용자들로 보내지고, 볼 비행들은 그들의 특정 환경들 각각에서 표현되어, 각각의 플레이어들도 게이밍 환경에서의 그들의 특정 위치에서 그들의 친구들 각각으로부터의 복수의 골프 스윙 게이밍 모션들을 본다.
사용자들은 그들의 각각의 볼 비행의 위치로 진행하도록 클릭하거나 터치한다. 다운로드된 경량의 웹 기반 게이밍 엔진(120)은 사용자들이 그들의 골프 스윙이 주어지는 가상 골프 코스 상에 어디에 있는지를 판단하고, 게이밍 리소스 데이터베이스(117)로부터 게이밍 규칙 엔진(115)을 통해 적절한 그래픽 디스플레이 콘텐츠를 요청하는 디스플레이 디바이스에 대한 로직을 포함한다. 프로세스는 그 다음 지금 플레이어들이 아마도 골프 홀 상의 상이한 위치들에 있는 것을 제외하고, 반복된다. 플레이어 위치들은 사용자 데이터베이스(116)로 업데이트되고, 게이밍 엔진(120)은 가상 골프 코스 상의 플레이어들의 각각의 위치에서 각각의 플레이어의 각각의 볼 비행들을 표현한다. 게다가 일 실시예에서, 플레이어들은 서로 통신할 수 있어, 게임 플레이어들의 소셜 네트워크를 생성한다. 그러한 통신은 예를 들어, 적절한 IP 보이스 오버, 텍스트 채팅, 텍스트 메시지 보드 애플리케이션들을 갖는 게임 규칙 엔진(115)에 의해 달성될 수 있다.
게임을 플레이하는 것에 더하여, 사용자들은 또한 복수의 가상 상품 및 서비스들을 구입할 수 있다. 이것들은: 골프 레슨들, 업그레이드된 골프 클럽들, 커스텀 가방들 또는 골프 클럽 커버들, 친구들 샷을 엉망으로 만드는 매직 볼들, 대회를 우승하는 것에 대한 가상 포상들 등을 포함하지만, 이에 제한되지 않는다. “이동 디바이스의 모션에 응답하는 동적 맞춤식 스포츠 명령어를 제공하는 방법”이라는 명칭으로, 2012년 10월 24일자로 출원된 Jeffery 등에의 미국 특허 출원번호 제 13/659,774호에서 상세화된 바와 같이, 가상 상품은 또한 사용자들 특정 골프 스윙 분석에 기반한 맞춤식 골프 명령어를 포함할 수 있다.
본 발명의 관련된 새로운 양태는 예측 분석에 의해 가능하게 되는 "가상 캐디"이다. 사용자가 시스템에서 취하는 모든 스윙이 모션 아카이브 데이터베이스(118)에서 캡처된다. 각각의 사용자 샷의 경우, 이러한 데이터는 분석 소프트웨어 및 사용되는 예측 모델들을 사용하여 조사된다. 따라서 예를 들어, 드라이버의 100번의 스윙 후에, 평균적으로 사용자가 249야드를 때리지만 우측으로 30야드를 슬라이스하면, 특정 홀의 티 상에서 "가상 캐디"는 235야드 거리이고 우측 상에 25야드의 워터 해저드를 피하기 위해 3개의 우드를 플레이할 것을 추천할 수 있다.
모션 아카이브 데이터베이스(118)는 또한 스크린을 터치하는 것을 통해 그들의 이동 앱으로의 사용자의 수동 입력, 또는 각각의 샷 후에 음성 명령하는 것을 통해, 또는 골프 클럽에 물리적으로 부착되고 블루투스를 통해 이동 디바이스에 연결되는 자이로스코프 및 가속도계에 의해 물리적 골프 코스 상에 캡처되는 데이터로 증대될 수 있다. 가상 캐디는 그 다음 물리적 및 가상 골프를 플레이하는 것으로 확장될 수 있어, 물리적 골프 코스 상에서의 유사 충고가 가상 코스에서 플레이하는 것에 주어진다.
개시된 골프 게임의 부가 기술적 양태들이 이하의 부문들에서 설명된다: (1) 분포된 게이밍 엔진, (2) 이동 디바이스 스윙 분석 및 (3) 디스플레이 디바이스 최적화.
(1) 분포된 게이밍 엔진
도 5는 골프 게임에 대한 게이밍 플랫폼(100)의 일 실시예를 도시한다. 앞서 논의된 바와 같이, 게이밍 분석은 시스템의 3개의 주요 구성 요소들에 걸쳐 분포된다: 이동 디바이스들(10), 게이밍 서버(110) 및 디스플레이 디바이스들(20). 도 5는 4명의 다른 플레이어들(30): A, B, C 및 D에 대한 상이한 플레이 모드들의 일 예를 제공한다. 이러한 예가 예시적이고 4명의 플레이어들에 제한되지 않는다는 점이 이해된다. 도시된 바와 같이, 플레이어(A)는 이동 디바이스(10)를 갖지만 디스플레이 디바이스(20)를 갖지 않는다. 이러한 모드에서, 게임 그래픽들은 플레이어(A)의 이동 디바이스(10) 상에 단독으로 디스플레이된다. 플레이어(B)는 플레이어(A)와 상이한 지리적 위치에 있고 디스플레이 디바이스(20)에 액세스할 수 있다. 게이밍 상호 작용 및 디스플레이 디바이스(20) 상의 그래픽 디스플레이는 이하의 텍스트에서 설명된다. 예시적으로, 플레이어들(C 및 D)은 디스플레이 디바이스(20)를 갖고 사용자들(A 및 B)과 상이한, 동일한 지리적 위치에 있다. 동일한 지리적 위치에 있는 사용자들은 디바이스를 사용하여 각각의 플레이어들의 신원을 알도록 구성되는 하나의 이동 디바이스를 사용할 수 있거나, 그들의 자신의 각각의 이동 디바이스들을 가질 수 있다. 도 5에 도시된 예들이 특정 하드웨어 제조에 제한되지 않는다는 점이 이해된다.
골프 스윙의 분석은 이하의 부문에서 설명되는 방법을 통하여 이동 디바이스(10) 상에서 행해진다. 이러한 분석으로부터의 출력은 휴대폰의 스윙 속도, 충돌을 통한 전화기의 각도(훅 또는 슬라이스), 팔뚝 회전 속도, 손목 힌지(hinge) 속도 및 스윙 경로(인사이드 아웃사이드 또는 아웃사이드 인)을 포함하지만, 이에 제한되지 않는다. 이러한 데이터는 게이밍 서버(110)로 송신되며, 이 게이밍 서버는 필요로 되는 바에 따라 사용자 데이터베이스(116)를 업데이트하고, 상이한 사용자 상호 작용들을 관리하고, 게이밍 콘텐츠를 제공한다. 상대적으로 경량의 JavaScript/AJAX 게이밍 엔진(120)은 사용자가 로그인할 때, HTML5 이용 가능 디스플레이 디바이스 웹 브라우저에 다운로드될 수 있다. 이러한 게이밍 엔진(120)은 골프 게이밍 서버(110)로부터 보내지는 사용자들 각각의 스윙 데이터가 주어지면, 특정 사용자들 디스플레이 환경을 제어한다. 게이밍 엔진(120)은 골프 게임의 게이밍 로직 및 볼 비행 시뮬레이션 및 다른 표현에 대한 그래픽 엔진(125)을 갖는다. 이하의 부문들에서 상세히 논의되는 바와 같이, 각각의 골프 홀은 2차원 사진들 또는 영상들에 상응하는 세그먼트들로 나뉘어진다. 각각의 홀에 대한 사진의 수는 이하의 부문에서 개시되는 바와 같이, 사용자 경험 및 시스템의 대역폭 및 레이턴시 둘 다를 최적화하도록 선택된다. 각각의 홀에 대한 그리드 위치들은 각각의 홀에 대해 사전에 정의되고 웹 브라우저 게이밍 엔진의 Java 코드로 프로그래밍된다. 각각의 홀에 대한 각각의 그리드 위치에 상응하는 그래픽 콘텐츠는 게이밍 리소스 데이터베이스(117)에 저장된다.
볼 비행 거리 및 방향은 클럽 헤드 속도, 클럽의 로프트 및 충돌시 각도에 의해 주로 결정된다. 상이한 골프 클럽들의 경우, 로프트는 상이할 것이다. 그러나, 클럽의 속도는 충돌을 통한 사용자의 손들에서의 전화기의 속도에 직접 비례한다. 이하의 부문에서 설명되는 바와 같이, 전화기의 속도 및 골프 드라이버에 대한 클럽 헤드 속도의 정확도를 검증하기 위해 초 당 1,000 프레임으로 고속 영상 카메라들로 상세한 시험들을 행하였다. 이러한 데이터는 다양한 클럽들 및 클럽 헤드 속도들에 대한 볼 비행 거리들의 판매 회사 표들과 비교되었다. 볼을 슬라이스하는 것 또는 페이드하는 것은 야디지를 감소시키고, 볼을 훅하는 것 또는 드로우하는 것은 작은 도들의 드로우에 대한 야디지를 증가시키지만, 그때 전반적으로 수 도들보다 많은 훅에 대한 야디지를 감소시킨다.
사용자들 손들에서의 전화기의 속도, 사용자의 키 및 클럽의 길이를 고려하면, 클럽 헤드 속도를 계산할 수 있다. 보다 상세하게는, 다양한 골프 클럽들에 대한 표 검색을 사용하여 특정 골프 클럽들에 대한 클럽 헤드 속도들을 계산하고, 다시 표 검색을 통해 각각의 클럽의 다양한 로프트 각들에 대한 볼 비행들로 이러한 속도를 매핑할 수 있다. 스윙 경로 및 훅 또는 슬라이스 각도는 그때 휴대폰 센서 스윙 데이터로부터의 샷의 거리 및 방향을 정확하게 계산하기 위해 분수 곱셈기들/나눗셈기들로서 사용된다.
도 6a 및 도 6b는 각각의 홀이 어떻게 가상 그리드(190)로 분할되는지를 도시한다. 샷의 길이 및 방향은 샷의 종점인 (X, Y) 좌표를 정의한다. 이러한 (X, Y) 샷 종점은 도 6a를 참조하면, 특정 그리드 위치에 상응한다. 각각의 그리드 위치의 경우, (이미지, 스프라이트 및/또는 영상일 수 있는) 매체(119)는 게이밍 리소스 데이터베이스(117)에 저장된다. 샷 종점의 (X, Y) 좌표들이 주어지면, 웹 페이지 그래픽 엔진은 리소스 데이터베이스(117)에 질의하고, 표 검색을 통해, (X, Y) 위치에 상응하는 매체(119)를 디스플레이한다. 사용자 경험은 도 6b를 참조하면, (X, Y) 좌표 위치에 서 있는 관점으로부터 플래그의 웹 페이지 상의 매체를 그때 볼 것이다. 사용자가 다시 스윙함에 따라, 다음 (X, Y) 좌표는 스윙 속도, 선택되는 클럽 및 충돌시 클럽 헤드의 각도로부터 계산된다. 그래픽 엔진은 그때 새로운 위치에 대해 데이터베이스로부터 적절한 이미지를 디스플레이한다.
각각의 사용자에 대한 스윙 이력은 모션 아카이브 데이터베이스(118)에 업데이트된다. 이러한 데이터는 상술된 바와 같이, 시간을 경과하여 사용자 수행의 분석을 위해 사용된다. 사용자 데이터베이스(116)는 또한 업데이트되어, 게임에서 다수의 플레이어들의 진행을 추적한다. 이러한 데이터는 게이밍 엔진(120)을 업데이트하는 마스터 데이터로서 사용되고. 특정 사용자들 디스플레이 스크린 상에 다른 사용자들의 아바타들 및 볼 비행 시뮬레이션의 묘화를 가능하게 한다.
시뮬레이션된 볼 비행은 게이밍 엔진(120)의 일부인 3-D 그래픽 엔진 모듈(125)을 사용하여 2-D로 표현된다. 1600 X 900 픽셀 디스플레이 해상도의 경우, 스윙을 뒤따르는 골프 볼의 비행은 볼을 배경의 상단에 개별 객체로서 애니메이트함으로써 달성된다. 볼은 하단 가까이 위치되고 35 픽셀 넓이 35 픽셀 높이의 크기의 페이지 상에 중심 위치되어 시작된다. 스윙이 검출되면, 그것의 거리 및 방향은 그것이 볼 비행의 정확한 경로를 결정하는데 사용되는 게이밍 엔진으로 보내진다. 볼 비행은 이하의 것이 사용되는 그것의 시작 위치에서 클럽에 의해 결정되는 높은 위치로 나아가는 지수 곡선이다:
퍼터에 대해 +0픽셀(이것은 볼 롤링을 닮은 직선 경로를 생성한다)
드라이버에 대해 +200픽셀
아이언들에 대해 +225 내지 +325픽셀
웨지들에 대해 +350픽셀.
볼은 그 다음 이미지의 수평선의 높이 + (플래그로부터 현재의 거리 - 볼이 때려진 전방향 거리) / 2와 동등한 픽셀들에서의 Y 위치 및 이미지의 픽셀 중심 + 볼이 때려진 측면 거리 * 4와 동등한 픽셀들에서의 X 위치에서 종료한다.
볼 비행 동안 내내, 볼은 3픽셀 + 170 / 현재 스윙의 야디지에서 종료하는 역 기하 급수적 증가율로 “수축되게” 나타내어진다. 위에 주어진 픽셀 수들은 예시적인 것이고 한정하는 것이 아님이 이해된다.
본 발명의 특히 중요한 특징은 최소 레이턴시로 이동 디바이스 골프 스윙을 뒤따르는 볼 비행의 거의 실시간 표현이다. 게임이 플레이되고 있는 동안, 웹사이트는 업데이트를 찾으면서 사용자 데이터베이스(116)를 반복적으로 폴링하고 있다. 업데이트가 검출될 때, 스윙 데이터는 취해지고 게임 엔진(120)으로 보내져, 스윙 데이터에 의해 구동되는 볼 비행의 시뮬레이션을 트리거한다. 스크린 상에서 얼마나 높이 볼이 비행하는지, 얼마나 멀리 그것이 낙하하는지, 얼마나 멀리 그것이 좌측 또는 우측으로 운행하는지, 볼이 얼마나 작게 되는지, 그리고 얼마나 오랫동안 애니메이션이 걸리는지는 이러한 스윙 데이터에 의해 영향을 받는다. 참여자들로부터의 볼 비행들은 각각의 플레이어의 각각의 스크린 상에 표현된다. 복수의 플레이어들이 가상 드라이브 범위에 있으면, 예를 들어, 최고 야디지들이 디스플레이된다. 플레이어들이 골프의 게임 중에 있으면, 각각의 플레이어는 그들의 이전의 스윙에 의해 결정되는 홀 상의 새로운 위치로 이동한다. 게임에서, 플레이어들은 그들이 퍼팅을 시뮬레이션했을 때, 그들이 퍼팅 그린에 가상으로 위치될 때까지, 진행하고, 볼이 홀로 들어갔으면, 그 다음 다음 홀로 나아간다.
발명자들은 이동 디바이스의 스윙을 뒤따르는 볼 비행의 실시간 그래픽 디스플레이에 대한 다수의 방법들을 구현하였다. 현재의 AJAX 솔루션인, "쇼트 폴링"은 매우 확장 가능하고 상당수의 사용자들에 대해 실시간으로 콘텐츠를 업데이트하기 위해 사용될 수 있다.
사용되는 디폴트 폴링은 초 당 한 번인 반면에, 폴링은 초 당 5 또는 6번과 같이 보다 빈번하게 가능하다. AJAX 폴링 또는 "쇼트 폴링"으로, 쟁점은 이용 가능한 대역폭 중 하나가 된다. 데이터가 전송되고 있지 않은 경우에도, 이벤트에 대해 단지 체크하는 것은 일부 대역폭을 차지한다. 따라서, 예를 들어, 200,000명의 다수의 사용자들이 있다면, 초 당 5번으로의 폴링은 상당한 양의 대역폭을 필요로 한다. 그러나, 대역폭은 일반적으로 프로세싱 전력 및 저장 공간보다 더 양호하게 크기 조정된다. 게다가, 폴링 속도는 대역폭 사용량을 관리하도록 동적으로 조정될 수 있다.
다시 도 3을 참조하면, "롱 폴링"을 포함하는 아키텍처가 도시된다. 아키텍처는 웹소켓 웹 기술을 사용한다. 발명자들은 서버가 새로운 데이터를 웹사이트로 “푸시할” 때, 어떤 지연도 거의 없도록 확장 가능 롱 폴링 아키텍처를 창안하였다. AJAX 폴링으로, 웹사이트가 2분의 1초당 한 번 데이터베이스를 체크하는 것을 기다리고, 인지할 수 있는 지연이 있을 수 있다.
롱 폴링은 데이터의 양방향 송신을 가능하게 하고, 롱 폴링에 대한 하나의 가능한 기술은 웹소켓이며, 이 웹소켓은 단일 TCP 연결을 통한 전 이중 통신 채널들을 제공하는 웹 프로토콜이다. 웹소켓 API는 W3C에 의해 표준화되고 있고, 웹소켓 프로토콜은 RFC 6455로서 IETF에 의해 표준화되었으며, 이는 그것의 전체가 본원에 참조로 포함된다.
도 3은 이동 디바이스를 컨트롤러로서 사용하여 웹 디스플레이를 제어하고 순항하고, 네트워크를 거쳐서 이동 디바이스들에 의해 캡처되는 스포츠 모션 데이터를 송신하는 롱 폴링 아키텍처를 통한 방법을 도시한다. 전화기 및 웹 디스플레이 디바이스들은 동일하거나 상이한 지리적 위치들에 있을 수 있다. 이동 디바이스들과 웹 디스플레이 디바이스들 사이의 통신은 웹 소켓 기술의 사용을 통해 발생된다. 도 5는 도 2 상세하게는 골프에 대한 아키텍처들의 일 실시예이고, 쇼트 폴링 방법 또는 도 3의 롱 폴링 방법을 사용하여 구현될 수 있다.
(2) 이동 디바이스 골프 스윙 분석
본 발명의 중요한 양태는 “이동 디바이스의 모션 센서들을 사용하여 스포츠 모션들을 분석하는 방법 및 시스템”이라는 명칭으로, 2012년 10월 18일자로 출원된 Jeffery 등에의 출원번호 제 13/655,366호를 뒤따르는 이동 디바이스(10) 내에 내장되는 가속도계 및 자이로스코프로부터의 데이터를 사용하는 모션 분석기(130)이다. 본 발명이 극복하는 특정 과제는 실제로 볼을 때리거나 클럽 또는 라켓을 쥐지 않고 골프 스윙을 정확하게 분석하는 방법을 포함한다. 스윙 분석 기법이 골프에 대해 설명되지만, 본원에 설명되는 접근법이 예를 들어, 볼을 때리거나 스로잉하는 것, 총을 조준하고 쏘는 것, 또는 낚싯대를 던지는 것과 같은 다른 모션들에 적용 가능하지만 이에 제한되지 않는다는 점이 이해되어야 한다. 마지막 부문은 모션 분석 방법을 볼링, 테니스 및 야구와 같은 다른 스포츠에 일반화한다.
도 7은 예시적 풀 골프 스윙 동안 이동 디바이스(10)의 피치 (a) 및 롤 (b)을 도시한다. 본 발명의 중요한 요소는 어드레스 위치(위치 1)에서 이동 디바이스(10)를 정지하게 유지함에 의한 이동 디바이스(10)의 교정이다. 피치에 대한 모션 시그니처는 그 다음 백스윙(위치 2)에서 증가되고, 골프 백스윙(위치 3)의 정상에서 로컬 최소값을 갖는다. 그러나, 최소값(위치 3)은 180도보다 더 많이 회전되는 피치 모션 센서의 아티팩트이다. 실제로, 피치는 백스윙의 정상에서 180도보다 더 큰 최대값까지 계속해서 증가된다. 그러나, 센서의 제한들은 모션 시그니처를 0 내지 180도로 제약한다. 피치 데이터는 도시된 바와 같이 다운스윙(위치 4)에서 계속해서 감소되고, 다시 충돌점(위치 5)까지 감소된다.
정확도 분석
충돌점(위치 5)에서, 이동 디바이스(10)는 초기 교정점(위치 1) 가까이에 복귀했으며, 이 충돌점은 골프에 대해 가상 골프 볼과의 충돌시 손 위치이고 로컬 최소값이다는 점을 주목해야 한다. 고속 골프 스윙의 경우, 충돌점에서의 최소값은 자이로스코프의 감도 한계 제한들로 인해 교정 제로로 정확하게 복귀되지 않는다. 충돌점을 결정하는 것은 이러한 지점에서 이동 디바이스(10)의 롤이 클럽의 훅 또는 슬라이스를 한정하므로, 대단히 중요하다. 다른 스포츠에서, 충돌점은 배트 또는 라켓의 훅 및 슬라이스 및/또는 스로잉하거나 던지는 스포츠에서의 해제점을 결정하는데 필수적이다. 충돌점으로부터, 골프 스윙은 팔로우 스루인, 위치들 (6) 및 (7)을 통해 계속된다.
요컨대, 피치 데이터, 또는 스크린을 볼 때 이동 디바이스(10)를 상단 및 하단 절반들로 자르는 축(X-축) 주위의 회전(도 1 참조)은 골퍼가 그들의 스윙의 통해 움직일 때, 가장 현저한 데이터 스트림이다. 충돌은 (1초 동안 모든 전화기 위치/배향 데이터의 평균값을 취함으로써 "제로"로 정의되는, 예를 들어, 골퍼가 그들의 셋업 위치에 있을 때, 스윙 이전에 취해지는) 시작 교정점에 접근하는 주요 최소값에서 발견될 수 있다. 맥락을 상기하면, 골퍼의 스윙에서, 피치 데이터는 골퍼가 그들의 백스윙을 하기 시작할 때 상승하고, 골퍼가 충돌을 통해 스윙할 때 교정으로 복귀하고, 그 다음 골퍼가 그들의 팔로우 스루로 이동할 때 다시 상승한다. 충돌은 셋업 또는 교정점에 가장 근접해진 피치 위치에 있다.
일 실시예에서, 풀 골프 스윙에 대한 충돌점은 크롤러 알고리즘(crawler algorithm)을 사용하여 피치의 제2 최소값이 되도록 선택된다. 다른 실시예에서, 최소값은 그것을Z-가속도에서의 스파이크와 정렬함으로써 확인될 수 있다. 피치에서 하나 보다 많은 주요 최소값이 발견될 때, 충돌로 선택되는 최소값은 어느 지점이 최대 Z-가속도를 갖는지에 의해 결정된다. 이러한 확인은 골퍼의 백스윙 또는 팔로우 스루 회전이 매우 커서(셋업으로부터 거의 360도 회전) 자이로스코프가 완전히 튀기고 교정 가까이 추가 최소값들을 생성하는 경우들에서 도움이 된다.
충돌이 발견되면, 스윙 정확도는 교정시 롤 데이터에서 충돌시 롤 데이터를 감산함으로써 결정된다. 롤 데이터, 또는 스크린을 볼 때 전화기를 좌측 및 우측 절반들로 자르는 축(Y-축) 주위의 회전은 클럽 헤드 상의 "개방되고 폐쇄된" 면 위치들을 설명한다. 도 7b는 롤 데이터의 확대도를 도시한다. 음의 차이로 복귀되는 스윙들은 충돌 시의 폐쇄된 면 및 양에 따른 결과적인 드로우 또는 훅을 암시하는 사용자가 충돌 시에 과회전했다는 것을 의미한다. 양의 차이로 복귀되는 스윙들은 충돌 시의 개방된 면 및 결과적인 페이드 또는 슬라이스를 암시하는 사용자가 충돌 시에 부족회전했다는 것을 의미한다. 거의 제로값으로 복귀되는 스윙들은 충돌 시에 교정 배향에 매우 근접하게 매칭된 클럽면을 의미하고 직선 볼 비행을 암시한다.
속도 분석
클럽 헤드 속도는 볼 비행 거리를 한정하는 것에 골프에 대한 임계 파라미터이다. 골프 클럽 제조자들은 특정 스윙 속도들로 움직이는 클럽 헤드들에 의해 때려지는 골프 볼들에 대한 볼 비행 거리를 상세화하는 경험적 표들을 갖는다. 그러한 표들은 또한 클럽 타입(예를 들어, 드라이버, 5-아이언, 퍼터), 클럽 헤드 로프트, 샤프트 강성 및 볼 비행에 영향을 주는 다른 변수들을 고려한다.
스윙 속도는 스포츠 모션들의 역학으로 인한 복잡한 계산이다. 과제는 센서들이 손들의 모션들을 측정하는데 반해, 골프 클럽 헤드와 같은 가상 스포츠 장비의 속도를 계산하는 것에 관심이 있다는 것이다. 프로 선수들로의 광범위한 시험들이 손 및 팔 모션들이 어떻게 모션 센서 데이터 출력들로 변환되는지를 이해하기 위해 적절하게 맞추어진 스포츠 장비를 사용하여 행해졌다. 골프에 대한 분석이 예시되지만, 본 방법이 야구, 테니스, 볼링, 농구, 미식 축구 및 탁구의 스포츠에서 보이는 것과 같은 다른 스포츠 모션들에 일반화 가능하지만; 이러한 예들이 제한하는 것이 아님이 이해된다는 점이 이해되어야 한다.
도 8b는 풀 골프 스윙에 대한 스윙 모션 요소들을 도시한다. 클럽이 팔들을 따라 정확하게 스윙되면, 그때 이동 디바이스 속도, V는 이하에 의한 클럽 헤드 속도(V 클럽 헤드)와 관련된다:
V 클럽 헤드 = V x (팔 길이 + 클럽 길이) / 팔 길이 (2)
그러나, 전문적 플레이어들은 볼을 통한 클럽 헤드의 속도를 증가시키기 위해 그들의 손목을 힌징하고 그들의 팔뚝들을 회전시킨다. 이러한 힌징하고 회전시키는 모션들은 충돌을 통한 클럽 헤드의 속도를 극적으로 증가시킬 수 있어, 식 (2)는 대부분의 골퍼들에 대한 골프 스윙 속도의 추정하에서의 총계이다. 그러나, 손목들의 어떤 힌징도 없으므로, 그것은 퍼팅에 양호하다.
도 8a는 골프 스윙에 대한 이동 디바이스(10)의 속도를 어떻게 계산하는지를 상세하게 도시한다. 예시적 풀 골프 스윙에 대한 이동 디바이스(10)의 피치에 대한 모션 시그니처가 그래픽으로 도시된다. 스윙에 라벨링되는 피치 데이터에서의 지점들(4), (5) 및 (6)과 부합하는 스포츠 모션이 아래에 도시된다. 스윙(지점 5)의 맨 아래에서 피치의 로컬 최소값으로 정의되는 피치 데이터에서의 충돌점을 우선 찾는다. 그 다음 피치 데이터에서 60도 만큼 전후로 본다. 이러한 데이터 지점들은, 적절한 손목 힌징을 가정하면, 스윙(4) 및 (6)에서의 위치들과 정렬된다. 일반적으로, 약 10분의 1초가 이러한 2개의 위치들 사이에서 지나가므로, 플레이어의 팔 길이를 고려하면, 원호의 반경이 팔 길이와 동등한 120도 원호의 길이를 지나간 시간의 양으로 나눔으로써 충돌 주변의 이동 디바이스(10) 속도를 찾을 수 있다: 이것은 이동 디바이스(10)의 속도(손 속도)를 산출한다. 유사 방법이 감소된 스윙 길이로 인한 55도 이하의 단지 더 짧은 원호 길이를 갖는 칩핑에 사용될 수 있다.
고속 영상 클럭킹을 사용하여, 드라이버 클럽 헤드 속도가 2.4배 손 속도만큼 느리거나(이것은 경직된 팔들, 팔뚝들 및 손목들로 클럽을 스윙하는 사용자의 경우임), (세계 최상급 프로 골퍼의 경우에) 6배 손 속도만큼 빠를 수 있다는 것을 알게 되었다. 이러한 2개의 곱셈기들 사이의 차이는 손들이 충돌 주변의 90도의 원호 길이를 운행하는데 걸리는 시간에 골퍼들이 클럽 헤드가 (때때로 심지어 180도에 근접한) 훨씬 더 큰 원호 길이를 운행하게 만드는 것을 가능하게 하는 팔뚝 회전 및 손목 힌지의 조합에서 비롯된다. 선택한 곱셈기는 각각 손목 힌지 및 팔뚝 회전을 차지하는 Z 및 Y축(요 및 롤) 상에서 충돌을 통한 자이로스코프 가속도에 의해 직접 구동된다.
iPhone 4 및 4s로의 상세한 시험들로부터, 자이로스코프가 특히 정확하여, 롤 데이터가 대략 2분의 1도 내에서 훅 또는 슬라이스를 예측하는데 매우 적합하다는 점을 알게 되었다. 그러나, iPhone 4로부터의 가속도계 데이터는 "잡음이 있고", 전체 골프 스윙에 걸쳐 특히 정확하지 않지만, 충돌 주변의 팔뚝 회전 속도를 측정하기 위해 잘 작동한다. 이것은 스윙을 부분들로 분할하고 충돌을 통한 이동 디바이스의 평균 속도, V를 계산하는 이유이다:
여기서 D2 - D1은 도 8에서의 지점 (4)와 지점 (6) 사이의 거리이고; t2 - t1은 거리를 이동하는데 걸리는 시간이다. 더 짧은 거리는 충돌점에서의 즉각적인 속도의 더 근접한 근사치를 가능하게 하므로, 바람직하다. 그러나, 현재 자이로스코프의 0.01초 감도 한계는 120도 원호를 사용할 것을 요구한다. 추후에, 자이로스코프의 샘플링 감도 한계가 증가됨에 따라, 30도 이하의 원호가 바람직할 것이다.
식 (3)은 이동 디바이스의 실제 즉각적인 속도의 근사치이고, 그것이 상술된 손목 힌지 또는 팔뚝 회전을 포함하지 않으므로, 단지 골프 클럽 헤드의 속도의 1차 근사치이다. 고속 영상 카메라로의 상세한 시험들을 통해, 다양한 스윙 타입들에 대해 +/- 10% 내에서 클럽 헤드 속도를 계산한 결과로 이러한 변수들에 대한 곱셈기들을 구할 수 있다. 클럽 헤드 속도로부터, 이상적 조건들에서의 볼 비행 거리를 예측할 수 있다.
가속도계로부터의 데이터 품질 출력이 iPhone 또는 Android 기반 전화기들의 장래 버전들에서 극적으로 개선될 것이라는 점을 구상한다. 본 발명의 실시예에서, 충돌 시에 (충분히 정확한 가속도계를 갖는) 이동 디바이스(10)의 속도는 이동 디바이스의 백스윙(t bs )의 정상에서 제로(t o )까지의 가속도 (a x , a y , a z )를 적분함으로써 계산된다:
충돌 시의 총 이동 디바이스 속도로:
여기서 t o - t bs 는 피치 데이터로부터 측정되는 백 스윙(t bs )의 정상에서의 최소값과 충돌, t o 시의 스윙의 맨 아래의 제로 사이의 시간이다. 적분들은 제4차 룬게-쿠타(Runge-Kutta) 알고리즘을 사용하여 소프트웨어로 계산된다. 예를 들어, William H. Press 등, 수치적 방법들 제3 판: 과학적 컴퓨팅의 기술, 2007년을 참조할 수 있다.
속도 구성 요소 벡터들(5)은 내부 가속도계가 잡음이 있는 출력을 갖고 있기 때문에 현재 버전의 가속도계들로 정확하게 계산하기 어렵고, 따라서 현재 평균 방법 식(3)을 사용한다. 스윙 일관성 개선의 종적인 비교들을 위해 사용자의 계정으로 앱에 그리고 서버 상에 국부적인 스윙 모션 모션에 대한 데이터는 사용자에게 제공되고 저장된다.
사용자는 또한 수화기대(cradle)를 통해 전화기를 그들의 골프 클럽에 부착시키고 실제 연습 스윙들을 거리 및 정확도에 대해 계산된 스윙들과 비교할 수 있다. 전화기가 클럽에 부착될 때, 유사 분석을 사용하지만, 곱셈기들은 전화기가 골프 클럽보다 더 가볍고 따라서 대상자의 손들이 당연히 더 빨리 가므로, 전화기보다 더 느리게 골프 클럽을 스윙하는 사용자들로 인해 주로 상이하다.
스윙 분석의 부가 예로서, 골프 클럽의 풀 스윙보다 오히려 퍼팅을 고려한다. PING, Inc.는 퍼팅에 대한 iPhone 앱을 앞서 창안하였다. 그러나, 그것들의 종래 기술 발명은 이하의 3가지의 상당한 제한들을 갖는다: 그것들의 방법은 (1) 퍼터에의 부착을 필요로 하고, (2) 물리적 볼과의 충돌을 필요로 하고, (3) (대략 20 피트보다 더 긴) 롱 퍼트들에 대해 정확하지 않다.
본원에 설명되는 방법은 이러한 제한들 중 어떤 것도 갖지 않는다. 상술된 풀 스윙과 유사하게, 사용자는 이동 디바이스가 퍼터인 것처럼 이동 디바이스(10)를 쥐고, 정지하게 유지된 1초 후에 그것은 진동한다: 전화기가 준비된다. 사용자는 그 다음 상상적(가상의) 볼을 퍼팅한다. 풀 스윙과 비교하여, 전화기로부터의 피치 데이터는 이제 충돌 시에 최소값을 갖는 상대적으로 매끄러운 사인파 함수이다. 퍼터 스트로크는, D1 및 D2가 각각의 최대 거리 풀 백 및 볼과의 충돌을 통한 스트로크인 식 3으로부터 계산되는 평균 속도만으로 풀 골프 스윙과 유사하게 분석된다. 퍼터 스트로크의 이점은 기능이 매끄럽고 속도가 풀 골프 스윙과 비교하여 상대적으로 느리다는 것이다. 따라서, 식들 (4) 및 (5)는 또한 충돌 시의 즉각적인 속도를 계산하기 위해 사용될 수 있다 - 식 (2)를 참조하여 볼과의 충돌 시에 퍼터 헤드에서의 속도에 대한 퍼터의 길이에 대해 비례 곱셈기로 식들 (4)의 적분 및 식 (3)으로부터의 평균 속도인, 방법들 둘 다를 사용한다. 롱 퍼트들의 경우, 가속도 방법은 점점 더 부정확하게 되고, 따라서 평균 속도 방법은 경험적 측정값들로부터 유도되는 곱셈기로 더 양호한 결과들을 제공한다.
퍼터 헤드의 속도로부터, 볼이 운행하는 거리는 이상적 조건들을 가정하여 계산될 수 있다. 그러나, 가장 중요한 것은 물리적 볼과 충돌하지 않고 (풀 스윙에 대해 훅 또는 슬라이스와 유사한) 충돌 시의 이동 디바이스 롤 각도 차이들을 정량화할 수 있다는 것이다. 또한 퍼트를 통한 감속, 또는 좌측 당김 또는 우측 밈과 같은 에러들(이러한 앞의 2개의 에러들은 가속도의 제2 적분 및 롤 데이터의 조합으로부터 식별됨)에 대한 자이로스코프 가속도 데이터를 분석할 수 있다. 퍼팅 일관성 개선의 종적인 비교들을 위해 사용자의 계정으로 앱에 그리고 서버 상에 국부적인 스윙 모션 정확도 에 대한 데이터는 또한 사용자에게 제공되고 저장된다.
퍼팅에 대한 본 방법은, 분포된 게이밍 플랫폼과 함께, 골프 게이밍 종래 기술의 주요 결점(퍼팅이 가상 골프 게임에서 악명 높게 신뢰 불가능한 것)을 극복한다. PGA 투어에서 플레이하는 전문적 골퍼들은 골프 컴퓨터 게임들에서 일관되게 3번 또는 4번 퍼트하는 것으로 알려져 있으며, 그들은 물리적 골프에서 한번 또는 2번 퍼트할 것이다. 앞서 논의된 바와 같이, 이동 디바이스 자이로스코프를 사용하는 본 방법은 Nintendo Wii 컨트롤러보다 상당히 더 정확하며, 따라서 예를 들어, 가상 골프 게임에서 프로 골프 퍼팅을 모사할 수 있다.
멀티 센서 충돌 검출
이동 디바이스(10)의 단일 타입의 회전 데이터(피치)를 사용하여 가상 객체와의 "충돌점"을 검출하는 기법은 상술되었다. 스포츠 모션의 시그니처(시간의 함수로서의 피치 데이터)는 스포츠 모션의 타입 (예를 들어, 풀 골프 스윙)에 특정한 특성들에 대해 분석되었다. 스포츠 모션 시그니처의 선험적 구성은 가상 충돌점의 시간 및 공간상의 위치를 격리하는데 필요하였다. 다른 실시예에서, 많은 상이한 모션 시그니처들 및 다양한 모션들에 대한 충돌점 검출을 가능하게 하기 위해 본 발명 개념을 확장한다.
도 8a 및 도 8b는 예시적 풀 골프 스윙 동안 이동 디바이스(10)의 피치 및 요 각각의 변화들을 도시한다. 이러한 경우에, 사용되는 이동 디바이스는 Apple iPhone 4Gs이었다. 앞서 주목된 바와 같이, 이동 디바이스(10)의 교정은 어드레스 위치(위치 1)에서 이동 디바이스(10)를 정지하게 유지함으로써 달성된다. 피치에 대한 모션 시그니처는 그 다음 백스윙(위치 2)에서 증가되고, 골프 백스윙(위치 3)의 정상에서 로컬 최소값을 갖는다. 그러나, 최소값(위치 3)은 180도보다 더 많이 회전되는 피치 모션 센서의 아티팩트이다. 앞서 주목된 바와 같이, 실제로, 피치는 백스윙의 정상에서 180도보다 더 큰 최대값까지 계속해서 증가한다. 그러나, 센서의 제한들은 모션 시그니처를 0 내지 180도로 제약한다. 피치 데이터는 도시된 바와 같이 다운스윙(위치 4)에서 계속해서 감소하고, 다시 충돌점(위치 5)까지 감소한다.
고속 카메라들로의 상세한 시험들로부터, 가상 충돌점(위치 5)이 피치의 로컬 최소값이며, 이동 디바이스는 초기 어드레스 위치(위치 1)에 가깝게 복귀하였다는 것을 알게 되었다. 충돌점(위치 5)으로부터, 골프 스윙은 팔로우 스루(위치들 6 및 7)를 통해 계속된다.
충돌점을 결정하는 것은 이러한 지점에서 전화기의 롤이 클럽, 배트 또는 라켓의 훅 또는 슬라이스, 및/또는 스로잉하거나 던지는 스포츠에서의 해제점을 한정하므로, 대단히 중요하다. 발명자들은 제2 최소값에 대한 피치 모션 시그니처를 탐색하기 위해 크롤러 소프트웨어를 앞서 사용하였다. 그러나, 이러한 방법은 상이한 스윙들이 상이한 모션 시그니처들을 가지므로, 보편적으로 적용할 수는 없다.
상이한 타입들의 골프 스윙들은 상이한 모션 시그니처들을 가질 수 있다. 상세하게는, 골프를 플레이하는 노인들의 경우, 백 스윙을 생략하는 경향이 있어, 스윙 시그니처가 더 칩처럼 보이고, 도 9a에서의 제1 최소값을 놓친다는 것을 알게 되었다.
따라서, 단일 모션 센서 출력의 모션 시그니처의 특정 특징을 탐색하는 크롤러 방법은 잘못된 결과들을 만들어낸다. 상세하게는 골프의 경우에, 프로 골퍼의 풀 스윙에 대한 모션 시그니처는 피치 데이터의 제2 최소값에서 충돌점을 갖는다. 그러나, 짧은 스윙은 제2 최소값을 갖지 않으며; 따라서 이러한 타입들의 샷들에서 제2 최소값을 탐색하는 것은 에러를 생성할 것이다. 따라서, 충돌점을 획득하기 위해 단일 타입의 회전 측정값에 대한 모션 시그니처 데이터를 사용하는 방법은 한계가 있다. 본 실시예에서, 이것을 극복하기 위해 충돌점 및/또는 해제점을 계산하도록 적어도 2개의 상이한 타입들의 회전 측정값들 (예를 들어, 골프에서 피치 및 요)를 사용한다.
도 9b는 풀 골프 스윙을 통한 이동 디바이스의 요를 도시한다. 골프 및 야구 스윙들의 경우에, 요는 충돌점(5)을 통해 급속히 변화되고 있다. 따라서, 피치 및 요 모션 센서 데이터 둘 다를 사용하여, 최대 요 도함수(요의 변화)를 갖는 피치 모션 데이터의 최소값을 구함으로써 충돌 구역을 격리할 수 있다. 이러한 방법은 모든 타입들의 골프 스윙들에 대해 작용하고, 칩들 및 퍼트들에 대한 정확한 충돌점 검출을 가능하게 한다.
멀티 센서 충돌점 검출 방법의 중요한 이점은 이동 디바이스에서 모션 분석에서의 레이턴시의 최소화를 가능하게 하는 것이다. 상세하게는 골프의 경우, 상이한 사용자들은 매우 상이한 골프 스윙들을 할 수 있고, 교정점 후에 그들의 스윙 시작을 무작위로 지연시킬 수 있다. 가장 느린 스윙들은 교정 후에 대략 5초에 완료되는 반면에, 가장 빠른 스윙들은 겨우 2초이다. 하나의 방법은 막대한 대다수의 스윙들을 캡처하기 위해 교정점 후의 5초 동안 데이터를 수집하고, 그 다음 충돌점 최소값을 검출하기 위해 크롤러를 사용하는 것이다. 그러나, 이러한 방법은 스윙의 속도에 따라 3초까지의 지연을 부가하고, 이동 디바이스 상의 프로세싱의 속도를 떨어뜨리는 부가 데이터를 캡처하므로, 비효율적이다.
본 방법에서, 주요 이벤트는 도 9b를 참조하여, 요가 교정점에서의 요와 동등하거나, 균등하게 제로와 교차할 때이다. 슬라이스의 경우에, 충돌점은 요가 제로와 교차되고 나서 백분의 수초 후일 것이고, 훅의 경우에, 충돌점은 요가 교정점과 교차하기 백분의 수초 전일 것이다. 따라서, 요 제로 교차점은 골프 스윙의 맨 아래에서의 충돌점을 위치시키는 표시기로서의 역할을 한다. 상세하게는, 요가 제로와 교차할 때를 구하고, 부가 150msec 후에 데이터를 절단(truncate)한다: 충돌점은 요 제로 교차점으로부터 대략 100msec 안팎에 발견될 것이다.
10msec 미만의 계산 프로세싱 시간을 가정하면, 본 방법으로의 총 충돌 검출 및 스윙 분석 시간은 200msec 미만이다. 그러므로 골프 스윙의 경우, 식 (1)에서의 이동 디바이스 모션 분석, Δt 스윙 분석 의 레이턴시는 본 고유하고 발명적 멀티 센서 충돌 검출 방법을 사용하여 대략 3sec에서 200msec 미만까지 감소될 수 있다. 식 (1)에서의 작은 데이터 패킷 전송에 대한 50msec의 미국 본토에서의 전체 공공 인터넷 레이턴시, Δt 네트워크l2 + Δt 네트워크23 = 100 msec를 가정하면, 이동 디바이스 상의 충돌점으로부터 디스플레이 디바이스 상의 볼 비행까지의 근사 총 지연은 대략 350msec이며, 여기서 데이터 전송이 이동 디바이스(10)로부터 게이밍 서버(110)로 그리고 다시 디스플레이 디바이스(20)로의 수천 마일을 포함할 수 있다는 점이 이해된다. 사용자는 그들의 골프 스윙에서의 팔로우 스루인, 도 7에서의 모션들(5 내지 7)을 완료하는데 대략 500msec가 걸린다. 따라서, 볼 비행은 도 5의 골프 게이밍 시스템에서 다수의 동시 사용자들(30)(A, B, C 및 D)에게 디스플레이 디바이스들(20) 상에 거의 즉각적으로 나타난다.
이동 디바이스 모션 분석 레이턴시를 감소시키는 본원에 설명되는 방법은 골프 스윙들에 제한되지 않고 다른 모션들에 일반화 가능하다는 점이 이해된다. 더욱이, 다수의 센서들은 이동 디바이스의 피치 및 요가 아닐 수 있고 이동 디바이스 상에 이용 가능한 복수의 센서 출력들 중 임의의 2개일 수 있다.
본 발명에서 설명되는 바와 같이, 스윙 모션 정확도에 대한 데이터는 사용자에게 제공되고 스윙, 퍼팅 및 칩핑 일관성 개선의 종적인 비교들을 위해 모션 아카이브 데이터베이스(118)에서의 게이밍 서버(110)에 저장된다. 이러한 데이터는 그때 “이동 디바이스의 모션에 응답하는 동적 맞춤식 스포츠 명령어를 제공하는 방법”이라는 명칭으로, 2012년 10월 24일자로 출원된 Jeffery 등에의 미국 특허 출원변호 제 13/659,774호에서 상세히 개시되는 바와 같이 위에 개시되고 맞춤식 골프 명령어를 제공하는 "가상 캐디" 분석론에 대한 근원이 된다.
(3) 디스플레이 디바이스 최적화
종래 기술과 비교하여 본 발명의 또 다른 이점은 분포된 인터넷 환경에서 동작되도록 설계되어 그로써 디스플레이 디바이스 대역폭 활용을 최적화하고 전체 레이턴시(골프 맥락에서, 이동 디바이스를 스윙하는 것과, 디스플레이 디바이스 상에 볼 비행을 표현하는 것과, 다음 샷 디스플레이 매체를 표현하는 것 사이의 시간 지연)을 최소화하는 아키텍처이다. 레이턴시를 최소화하는 것은 이동 디바이스(10)로부터 게이밍 서버(110)로, 그리고 그 다음 그래픽 엔진(120)으로 스윙 데이터를 보내는 것의 맥락에서 식 (1)로 논의되었다. 여기서, 특정 사용자의 디스플레이 디바이스 인터넷 연결 속도(대역폭 활용)에 대해 최적화하는 그래픽 해상도 및 방법에 중점을 둔다.
골프와 같은 3-D 게임을 표현하는 것은 상당한 연산 능력을 취할 수 있고, 종래 기술 콘솔 기반 게임들의 그래픽 품질은 이러한 프로세싱에 의해 제한된다. 본 접근법은 골프 홀들이 각각 세그먼트화되고 이미지들이 세그먼트들로 매핑된다는 점에서 콘솔 기반 게임들과 실질적으로 상이하다. 일 실시예에서, HDR(고 명암비) 카메라들과 같은 현재 이용 가능한 이미지화 기술이 사용된다. 이미지들은 (도 10에 도시된 바와 같이) 시네마그래프들(순환하는 짧은 영상 클립들) 및 스프라이트들(그래픽 엔진에 의해 제어될 수 있는 짧은 영상들)을 통해 더 향상될 수 있어, 예를 들어, 나무들, 깃발 및 구름들은 바람을 향해 움직이도록 나타난다. 사진들 대신에 이미지들은 압축 고화질 영상, HDR 영상 또는 아직 발명되지 않은 다른 이미지화 기술과 같은 풀 스크린 영상일 수 있다. 효과는 굉장할 수 있고, 각각의 샷에 대해 낮은 데이터 밀도 및 컴퓨팅 필요 조건을 갖는다. 사용되는 이미지들이 사진 장비로 찍힌 실제 골프 코스의 디지털 이미지들일 수 있지만 (또는 이들에 기반할 수 있지만), 디지털 이미지들이 실제 골프 코스와 일치할 필요가 없고, 예를 들어, 전적으로 골프 코스의 아티스트의 연출이거나 실제 골프 코스의 지형의 간략화를 나타낼 수 있다는 점이 이해되어야 한다.
2000년부터 웹 브라우저들에서 지원되는 CSS(캐스케이딩 스타일 시트)는 그래픽들 및 웹 페이지에서의 텍스트의 포맷팅을 가능하게 한다. CSS의 하나의 특징은 페이지 상에 그래픽들의 계층들에 Z-인덱스로 칭해지는 번호를 할당하는 것이다. Z-인덱스는 특정 웹 페이지를 구성하는 이미지들의 스택으로 계층의 번호 및 계층의 각각의 순서 둘 다를 정의한다.
도 10은 시뮬레이션된 골프 게임에서 이미지들에 깊이를 부가하기 위해 CSS를 사용하는 본 기법의 예시적인 일 예를 제공한다. 이러한 접근법은 디스플레이 디바이스에서 그래픽 프로세싱을 최소화하며, 이는 레이턴시를 감소시킨다. 300의 Z-인덱스는 이미지의 상단에 애니메이트된 구름들(210) 및 장애물들(220 및 230)이 있는 배경 이미지(200)에 할당되며, 이 애니메이트된 구름들 및 장애물들은 특정 야디지들에서의 계층들이다. 예를 들어, 100야드에서의 나무(230) 및 150야드에서의 관목들 및 나무들(220)은 각각 100 및 150의 각각의 Z-인덱스들이 각각 할당된다.
볼 비행(25)은 초기에 300의 Z 인덱스를 가져, 그것이 메인 배경 상에 디스플레이되지만, 볼 비행 거리, 및 훅 또는 슬라이스에 따라, Z-인덱스는 변화된다. 볼 비행이 우측으로의 슬라이스를 갖는 120야드라고 가정하면, 그때 볼 비행(25)의 Z-인덱스는 예를 들어, 그것이 나무 계층 100의 뒤에 그리고 관목 및 나무 계층 150의 앞에 낙하하도록 125로 변경된다. 따라서, 볼이 특정 거리들에 상응하는 계층들 뒤에 낙하하도록 2-D 이미지 환경에서 깊이의 효과를 생성하기 위해 볼 비행 Z-인덱스를 동적으로 변화시킨다. 이러한 방법은 2-D 사진들에 제한되지 않고, 또한 디지털 영상, HDR 영상 또는 아직 발명되지 않은 다른 이미지화 기술에 적용 가능하도록 적용될 수 있다.
레이턴시를 감소시키고 디스플레이 디바이스의 대역폭 활용을 최적화하는 방법을 개시함으로써 본 발명의 새로운 양태들을 더 예시한다.
하기 표 1은 디지털 골프 게임들의 종래 기술 방법들에서의 이미지 밀도들의 비교들, 여기서 "아퀴모(Aquimo)"는 새로운 발명 방법이다.
이미지들(파 3) | 이미지들(파 4) | 이미지들(파 5) | |
아퀴모(Aquimo) | 50 | 75 | 100 |
방법 1 | 100 | 150 | 200 |
방법 2 | 200 | 300 | 400 |
표 1은 새로운 발명 방법("아퀴모")의 다른 대표적인 방법들인, 각각 라벨링된 방법 2 및 방법 3의 비교이다. 상세하게는, 파 3에 대해 50개, 파 4에 대해 75개 및 파 5에 대해 100개 미만의 이미지를 사용하며, 여기서 다른 방법들이 2 X 또는 4 X 이러한 양을 사용한다. 표 2 내지 표 4는 각각 5, 20 및 50 Mb/s의 대표적인 대역폭들에 대한 이러한 이미지들의 10%에 대해 수 초 이내의 대표적인 로드 시간들을 나타낸다. 이용 가능한 대역폭은 시간을 경과하여 증가되고, 본 방법은 상세하게는 이미지 해상도의 치수들 및 이미지들의 프리로드 시간들에서 최적화되고, 항상 종래 기술보다 더 양호하다.
하기 표 2는 저 대역폭(5Mb/sec)을 나타낸다:
샷 당 10% 프리로드 이미지들 | 로드 시간(sec)@5Mb/sec 낮음 중간 높음 |
|
Ai 골프 | 5 | 6 16 40 |
방법 1 | 10 | 12 32 80 |
방법 2 | 20 | 24 64 60 |
하기 표 3는 중간 대역폭(10Mb/sec)을 나타낸다:
샷 당 10% 프리로드 이미지들 | 로드 시간(sec)@10Mb/sec 낮음 중간 높음 |
|
AI 골프 | 5 | 3 8 20 |
방법 1 | 10 | 6 16 40 |
방법 2 | 20 | 12 32 80 |
하기 표 4는고 대역폭(50Mb/sec)을 나타낸다:
샷 당 10% 프리로드 이미지들 | 로드 시간(sec)@50Mb/sec 낮음 중간 높음 |
|
AI 골프 | 5 | 0.6 1.6 4 |
방법 1 | 10 | 1.2 3.2 8 |
방법 2 | 20 | 2.4 6.4 16 |
일 예로서, 향후의 볼 비행들을 예측하기 위해 지난 플레이어 스윙 모션들의 분석론을 사용한다. 따라서 예를 들어, 평균 드라이버 거리, 사용자의 훅 또는 슬라이스, 및 이러한 스윙 측정 기준들의 표준 편차들을 고려하면, 향상된 이미지들에 상응하는 코스상의 상단 5개의 영역들을 예측할 수 있으며, 이 코스상의 상단 5개의 영역들에서 볼은 착지할 가능성이 있다. 보다 입상의 방법들(표 2 내지 표 4에서의 방법 2 및 방법 3)은 동일 면적들을 커버하기 위해 더 많은 이미지들을 로드해야 한다. 표 2 내지 표 4는 모든 방법들 및 저 해상도, 중간 해상도 및 고 해상도 이미지들을 갖는 3개의 대역폭들에 대해 10% 프리로드를 가정한 비교를 나타낸다.
본 목적은 가능한 한 사용자에게 최고의 그래픽 경험을 제공하는 반면에 사용자 디스플레이 디바이스의 대역폭 활용을 고려하는 것이다. 따라서 예를 들어, 5Mb/s의 상대적으로 저대역폭 연결을 갖는 사용자는 다음 5개의 이미지에 대해 6sec 프리로드 시간으로 더 낮은 해상도 이미지들이 제공될 것이며 - 이 6sec 프리로드 시간은 사용자가 골프 클럽을 선택하며, 친구들과 이야기 하는 등에 소비하는 예상된 시간을 고려하면 수용 가능하다. 그러나, 사용자가 50Mb/s 연결을 하면, 5개의 이미지에 대해 4sec의 프리로드 시간으로 고 해상도 이미지들을 제공할 것이다.
특정 디스플레이 디바이스에 대한 대역폭 활용은 이하와 같이 측정된다: JavaScript 변수는 게임 스크린에 대한 디지털 이미지(2-D 이미지, 시네마그래프들, 스프라이트들 등)로서 현재 시간으로 설정된, 시작로드가 정의되며 총 대략 2MB가 게이밍 로직 서버로부터 전송된다. 종결로드로 칭해지는 제2 변수는 이미지가 로딩을 종결함에 따라 정의된다: 종결로드 - 시작로드 = 시간. 시간이 단일 이미지에 대해 4초보다 더 길면, 디지털 콘텐츠의 해상도를 감소시키고, 로드 시간이 1초 미만이면, 게이밍 디지털 콘텐츠 해상도는 증가된다.
그러므로, 사용자는 타당한 배경 프리로드 시간으로 가능한 최고 해상도 이미지들을 경험한다. 효과는 사용자의 대역폭 활용에 부합되는 가능한 최고 해상도 이미지들로 샷에서 샷으로의 즉각적인 전환이다. 표 2 내지 4에서 방법 2 및 3로서 예시되는 다른 방법들은 이러한 치수들 상에서 최적화되지 않고, 그러므로 엄청난 프리로드 다운로드 시간들을 가져, 샷들 또는 홀들 사이의 전환들, 또는 최적 미만의 이미지 해상도들로 게임을 시작하기 위해 잠재적으로 상당한 시간 지연들을 야기한다.
부가 스포츠 게임 예들
본원에 설명되는 기법들은 바디 모션, 스로잉 또는 볼을 때리는 것을 포함하는 다수의 게임들에 일반화 가능하다. 추가의 예들로서, 볼링, 테니스 및 야구를 설명한다. 그러나, 본 발명의 방법들 및 시스템들은 골프 또는 이러한 다른 스포츠들에 제한되지 않고, 모터스포츠, 미식 축구, 하키, 럭비 등과 같은 많은 다른 스포츠 게임들에 적용 가능하다. 게다가, 본 발명의 방법들 및 시스템들이 스포츠 게임들 외에 다른 장르들에 적용 가능할 수 있다는 점이 이해되어야 한다.
(1) 볼링
볼링 게임은 각각의 다른 또는 반대 팀들에 대하여 2명의 사람들에 의해 플레이될 수 있다. 각각의 사용자 (또는 팀)은 볼링장의 프레임인 메인 시점, 핀과의 충돌의 클로즈업 시점을 “보고”, 그들은 또한 친구들이 동시에 플레이하고 있는 어느 한 측에서 레인들을 줌 아웃하고 볼 수 있다. 각각은 사진들, 바람직하게는 점수 보드 상의 섬광등들에 대한 시네마그래프들을 갖는 2-D 아티스트 표현들, 환호하는 군중 등일 수 있거나. 메인 이미지는 풀 스크린 영상일 수 있다.
본 방법의 이점은 휴대폰 모션 센서들이 Nintendo Wii 컨트롤러와 같은 종래 기술에 비하여 볼링 스윙을 보다 정확하게 모델링하기 위해 사용될 수 있다는 것이다. 따라서, 스로우의 속도, 스로우의 방향 및 볼링 볼에 스핀 속도를 부여하는 각회전이 또한 측정될 수 있다. 각각의 스로우의 경우, 사용자는 좌우의 그리고 디스플레이 디바이스의 중심을 향하는 손으로 시작하기 위해 전화기를 우선 제로에 맞춘다. 그들은 진동을 느끼거나, 음성 "스윙"을 듣고 그 다음 볼링 스윙 모션을 거친다.
골프 게임과 유사하게, 스윙은 이동 디바이스(10) 상에서 분석되고, 분석된 데이터는 볼링 게이밍 서버(110)로 보내지며, 이 분석된 데이터는 그 다음 상술된 방법들 중 하나를 사용하여 디스플레이 디바이스(20)로 보내진다. 볼링 볼 궤적은 다운로드된 디스플레이 디바이스 그래픽 엔진(125)을 통해 동적으로 그려진다. 스프라이트들은 다양한 핀 모션들을 모델링하기 위해 사용되고 웹 기반 게이밍 엔진(120)으로 프로그래밍되는 로직에 따라 오게 되며, 이 로직은 휴대폰 스윙 분석에 대해 지나가는 볼의 속도, 궤적 및 스핀 속도에 의존한다. 상술된 골프 게임에서와 같이 콘텐츠를 프리로드하고 레이턴시를 최소화하는 동일한 방법을 사용한다. 볼링 명령어는 또한 “이동 디바이스의 모션에 응답하는 동적 맞춤식 스포츠 명령어를 제공하는 방법”이라는 명칭으로, 2012년 10월 24일자로 출원된 Jeffery 등에의 미국 특허 출원번호 제 13/659,774호를 추종하여 게이밍 환경으로 포함될 수 있다.
(2) 테니스
테니스는 네트가 있는 코트 상에서의 2명 또는 4명의 플레이어들 사이에서 플레이된다. 2명의 플레이어들에 대한 실시예를 설명하지만, 방법은 상이한 플레이어들에 의해 동시에 플레이되는 복식 게임들을 갖는 4명에 일반화 가능하다. 사진들에는 플레이어들의 관점에서 테니스 코트의 여러 영역들이 찍힌다. 사용자에 대한 즉각적인 디스플레이를 가능하게 하기 위해 환경으로 프리로드되는 최소 세트의 사진들을 사용한다. 이러한 2-D 사진들은 예를 들어, 환호하는 군중 및 이동하는 구름들의 시네마그래프들로 그리고 네트를 때리는 볼을 움켜쥐기 위해 코트를 가로질러 뛰는 볼 보이의 스프라이트들에 의해 향상된다. 대안적으로, 풀 스크린 영상이 시네마그래프들에 의해 향상되는 사진들 대신에 사용될 수 있다.
스프라이트들은 주요 샷들(서브, 포어핸드, 백핸드, 로브 샷 등)을 모방하는 플레이어들의 아바타들에 대해 생성된다. 이러한 스프라이트들은 웹 기반 테니스 게이밍 엔진에 의해 제어되어, 디스플레이 디바이스 웹 페이지에 다운로드된다. 볼 비행은 휴대폰 모션 센서들로부터의 입력 데이터로 다운로드된 그래픽 디스플레이 엔진에 의해 동적으로 표현된다.
테니스 스윙은 위성 위치 확인 센서와 조합으로 휴대폰에서의 모션 센서들을 사용하여 분석된다. 서브의 시작 부분에서 전화기를 제로에 맞추며, 여기서 사용자의 손들은 서브를 준비하면서 위쪽으로 있다. 그 다음 전화기의 피치 및 롤 그리고 가상 볼과 충돌을 통한 전화기의 속도를 분석할 수 있으며 - 이러한 데이터는 가상 볼에 부여되는 방향 및 스핀을 정의한다.
마찬가지로, 백핸드, 포어핸드 및 로브 샷 모션들이 분석된다. 이것들의 경우, 가상 볼이 네트를 건너 올 때와 동기화되는 데이터로 특정 회전 모션들을 구한다. 또한 플레이어가 스크린의 우측 또는 좌측으로 이동했는지, 또는 네트를 향해 앞으로 나갔는지를 알기 위해 GPS 데이터를 구체화한다. 이러한 데이터는 테니스 게이밍 엔진으로 보내져, 플레이어가 그것들의 위치들에 응하여 코트가 동적으로 변화되는 것을 본다. 예를 들어, 플레이어가 스크린의 우측부에서 앞으로 나가면, 그들은 코트의 우측부에서 네트에 근접한 2-D 이미지를 본다.
레이턴시를 최소화하는 것은 빠른 페이스로 인해 테니스에서 특히 중요하다. 각각의 샷 사이에 상당한 멈춤이 있어, 각각의 사용자의 휴대폰의 제로를 재교정하는 주기적 기회들이 있다. 바람직한 실시예에서, 이동 디바이스(10)는 웹 기반 게이밍 서버(110) 및 로컬 소켓 연결(75)을 통해 디스플레이 디바이스(20)에 동시에 연결된다. 이러한 방법은 로컬 게임 구성 요소들 사이의 직접적 전후 데이터 전송을 가능하게 한다.
따라서, 모션 분석은 로컬 게이밍 엔진(120)으로 거의 즉각적으로 보내져 볼 비행을 디스플레이한다. 볼은 바운스로 네트를 거쳐서 비행하는데 대략 1초가 걸리고, 그래픽 표현을 위해 다른 플레이어(들) 디스플레이로 이러한 휴대폰 데이터를 송신하도록 0.2sec 폴링 또는 웹소켓(도 3)을 채용한다. 예를 들어, 볼 모션을 예측하고 '사전 충돌 검출' 데이터를 송신할 수 있어 아바타가 사전 리턴 스윙 모션을 행하게 하여, 최소 레이턴시로 플레이를 동기화할 수 있다.
게다가, 테니스 명령어는 “이동 디바이스의 모션에 응답하는 동적 맞춤식 스포츠 명령어를 제공하는 방법”이라는 명칭으로, 2012년 10월 24일자로 출원된 Jeffery 등에의 미국 특허 출원번호 제 13/659,774호를 추종하여 게이밍 환경으로 포함될 수 있다.
(3) 야구
야구는 개시된 방법에 특히 적합하다. 게이밍 리소스 데이터베이스(117)는 야구 내야 상의 다양한 위치들에서 조직적으로 찍히는 2-D 사진들 또는 영상들을 포함할 수 있다. 사진들은 군중, 이동하는 구름들 등에 대한 시네마그래프들에 의해 향상될 수 있다. 스프라이트들은 또한 예를 들어, 불꽃 및 항공기 저공 비행에 대한 이미지들을 향상시키기 위해 사용된다.
게임은 예를 들어, 가상 팀에 대하여 배팅하는 단일 플레이어, 또는 다수의 플레이어들의 두 팀일 수 있다. 각각의 플레이어/포지션의 경우, 캐칭, 및 스로잉에 대한 스프라이트들의 데이터베이스(117)를 생성한다. 예를 들어, 1루 아바타는 베이스에 발을 놓고 다수의 방향들으로부터 볼을 대부분 캐치할 것이고, 다시 피처에게 볼을 던질 것이고, 때때로 2루, 3루 또는 홈으로 던질 수 있다. 따라서, 이러한 스프라이트들은 게임의 시퀀스에 따라 프리로딩될 수 있다.
게이밍 규칙 엔진(115)은 게이밍 리소스 데이터베이스(117) 및 사용자 데이터베이스들(116)과의 인터페이스들인, 다수의 플레이어 상호 작용들을 결정하고, 웹 사이트 게이밍 엔진(120) 및 그래픽 엔진들(125)은 특정 사용자 디스플레이 디바이스들(20) 상에서 다운로드된다. 스윙 및 스로잉 모션 분석은 사용자 이동 디바이스들(10) 상에서 행해진다. 따라서 예를 들어, 배트를 스윙하는 것은 이동 디바이스를 스윙함으로써 달성된다. 디스플레이 디바이스 상에서 가상 스트라이크 구역을 한정하고, 사용자들은 이러한 구역으로 피처 아바타에 의해 던져지는 가상 볼들을 향해 스윙한다. 스윙의 속도 및 스윙 경로를 한정하기 위해 이하의 부문에서 설명되는 방법을 사용한다. 스윙의 타이밍은 이동 디바이스(배트)가 스트라이크에 대해 볼을 놓치는지, 아니면 가능하게는 볼을 때리는지의 근사치를 내기 위해 사용된다. 게이밍 규칙 엔진(115)은 다양한 히트들(안타들, 플라이 볼, 홈런 등)을 야기하는 상응하는 피치들에 대한 스윙들의 세트를 한정한다. 게이밍 로직 엔진(120)은 그 다음 이동 디바이스 스윙에 응한 볼 비행 및 스프라이트 플레이어 애니메이션 응답들을 결정한다. 다양한 플레이어들은 가상 팀 동료들에 의해 제어될 수 있으며 - 그들은 각각의 필드의 2-D 사진 또는 영상 및 그들의 각각의 위치들에 대한 스프라이트 플레이어 아바타들을 본다. 볼의 스로우를 분석하기 위해 모션 센서들을 사용하며, 여기서 스크린 상의 가상 글러브는 볼을 캐치한다.
바람직한 실시예에서, 스트라이크들 또는 히트들은 이하의 방법을 사용하여 결정된다. 가상 피치가 플레이어에게 도달하는 데 걸리는 시간 t 볼 비행은 t 볼 비행 = d/v으로부터 계산될 수 있으며, 여기서 d는 피처에서 홈 플레이트까지의 거리이고(예로서, 메이저 리그 야구의 경우 60.5피트 또는 리틀 리그의 경우 45피트) v는 피치의 속도이다. 메이저 리그 야구에서 95mph 피치를 가정하면, 피처에서 홈 플레이트까지의 야구공의 비행 시간은 .43초이다. 즉, t 볼 비행 = .43초이다. 클라우드 기반 엔진은 던져진 피치, t 피치 더하기 t 볼 비행의 타임 스탬프를 충돌점, t 충돌점의 타임 스탬프와 비교한다. 그것들이 δ초 이하의, 예를 들어, 0.15초 이하의 미리 정해진 시간 간격 내에서 동시에 일어난다면,
Δt = |t 충돌점 - (t 피치 + t 볼 비행)| (6)
그때 가상 배트는 가상 볼을 쳤다고 가정될 수 있고, 볼 비행의 애니메이션은 그때 클라우드 기반 그래픽 엔진(125)을 통해 웹-이용 가능 디스플레이(20) 상에 표현될 수 있다. 그러나, Δt > δ초이면, 가상 배트는 가상 볼을 놓쳤다고 가정되고 스윙은 스트라이크로 간주된다.
바람직하게는, 스포츠 모션 분석 및 동기화는 각각 0.1초 이하의 충실도를 갖는 동기화된 이동 디바이스(10), 클라우드 기반 (또는 네트워크화된) 게이밍 서버(120) 및 웹-이용 가능 디스플레이(20)를 사용한다. 현재의 웹 브라우저들은 신뢰 불가능한 로컬 클럭 타임 스탬프들을 갖고 JavaScript는 통상적으로 정확하게 동등한 간격들로 폴링하지 않는 내부 클럭에 호출한다. 바람직한 실시예에서, NTP(네트워크 시간 프로토콜)은 패킷 교환, 가변 레이턴시 데이터 네트워크를 통해 컴퓨터 시스템들을 동기화하기 위해 사용될 수 있다. 클라이언트들(이동 디바이스(10) 및 디스플레이 디바이스(20)) 및 서버(클라우드 기반 소프트웨어 엔진)의 시간 오프셋들을 획득하기 위해 Java Script NTP 클라이언트를 사용한다. 이것은 정확한 외부 클럭에 기반하여 초기 조정된 시간을 설정한다. 그 다음 가능한 최고 신뢰 가능 입도로 setlnterval()를 사용하여 Java Script 회신을 스케줄링하며, 이 최고 신뢰 가능 입도는 웹 브라우저 의존적이다. 회신이 신뢰 가능한 간격들로 호출되고 있다고 가정하지 않지만, 대신에 호출을 회신 내에서부터의 새로운 Date().getTime()으로 사용하고 실제 조정된 시간을 얻기 위해 오프셋을 적용하고, 그 다음 피치, t 피치, 및 가상 충돌점, t 충돌점의 실제 시간을 찾기 위해 보간한다. 이러한 데이터는 그 다음 식 (6)을 계산하기 위해 사용된다.
따라서, 본 방법은 스포츠 모션이 야구 또는 테니스 볼과 같은 이동하는 가상 객체와 충돌하는 사용 경우에 일반화 가능하고 확장 가능하고, 테니스, 배드민턴, 탁구, 라켓 볼, 하키, 농구, 미식 축구 및 가상 스포츠 객체 (예를 들어, 볼, 퍽, 셔틀콕)이 움직이고 있고 그때 스포츠 모션 및 플레이어들 가상 스포츠 장비에 의해 쳐지거나, 던져지거나, 잡히는 모든 다른 유사 스포츠에 마찬가지로 적용될 수 있다.
특히 배팅 및 피칭에 대한 야구 명령어는 “이동 디바이스의 모션에 응답하는 동적 맞춤식 스포츠 명령어를 제공하는 방법”이라는 명칭으로, 2012년 10월 24일자로 출원된 Jeffery 등에의 미국 특허 출원번호 제 13/659,774호를 추종하여 게이밍 환경으로 포함될 수 있다.
일반화된 스포츠 모션 분석
골프 스윙을 분석하기 위해 이동 디바이스의 다수의 모션 센서들로부터의 데이터를 사용하는 본 방법은 다른 타입들의 스포츠 모션들에 일반화 가능하다. 도 11a 내지 도 11c는 테니스 포어핸드 또는 착석된 수평 골프 스윙의 예시적 모션 데이터를 도시한다. 이러한 예에서, 스윙 경로는 충돌 주변에 팔뚝 회전 및 손목 힌징만을 갖고 수평 평면으로 있다. 따라서, 모션 시그니처는 서 있는 골프 스윙과 상이하고, 도 11a에서의 충돌점에서, 피치는 지금 피치 데이터의 제로 교차점이다. 과제는 정확한 제로 교차점을 검출하는 것이다. 이러한 예에서, 요는 충돌점 근처의 로컬 최대값이다. 따라서 다시 2가지 타입들의 회전 측정값들(피치 및 요)을 사용하여, 도 11a 및 도 11b인, 피치 및 요를 각각 참조하면, 단일 센서의 데이터, 이러한 경우에 피치로부터 충돌점을 보다 정확하게 검출할 수 있다. 테니스 스윙의 경우에, 도 11c를 참조하면, 충돌점에서의 롤 데이터는 테니스 볼에 부여되는 훅 또는 슬라이스 스핀을 계산하기 위해 사용될 수 있다.
교정점이 이동 디바이스(10)가 동일한 위치에서 1초 동안 정지하게 유지되는 특정 셋업 위치일 필요가 없다는 점을 주목해야 한다. 테니스 및 탁구의 경우에, 교정점은 플레이어가 그의 손들을 플레이할 준비 위치에 두는 임의의 지점으로부터 획득될 수 있고/있거나, 이전 스포츠 모션의 종점 또는 교정점으로 선택될 수 있다.
스포츠 모션이 이동하는 가상 객체와 상호 교차할 수 있고 해제점 및 충돌점이 교정점과 상이한 바람직한 실시예들을 예시하기 위해, 야구 및 볼링에 대한 예들을 제공한다.
야구 스윙 모션 센서 데이터는 도 12a 내지 도 12c에 도시된다. 야구 스윙의 경우, 교정점은 바디의 전방에 내민 손들 둘 다로 쥔 이동 디바이스(10)로의 셋업 위치이며, 엄지 손가락들이 이동 디바이스(가상 배트)를 가상 티 상의 볼과 함께 자연스럽게 라인업하도록 향하게 하며; 손들은 지면에 수직이다. 나타낸 데이터는 프로 선수로부터 온 것이고 최적의 야구 스윙 모션의 필수적 특징들을 도시한다. 야구 스포츠 모션의 경우, "배트"가 가상 볼과의 충돌점을 통해 스윙됨에 따라, 이상적 손 위치가 손바닥들이 지면에 평행하게 있으며, 이는 충돌을 통한 이동 디바이스의 요의 급속한 변화를 야기하므로, 요 도 12a는 주요 변수이다. 교정점에서의 요는 제로였으며; 따라서 충돌점은 이동 디바이스가 교정점에 대하여 90도 회전되더라도, 도 13a를 참조하면, 요가 제로와 교차할 때이다. 이상적 야구 스윙에서, 배트의 롤은 도 13b를 참조하면, 충돌점 직후에 발생된다. 결국 충돌점에서 롤 최대값이 있으며, 그때 손목들은 볼의 상단 위로 배트를 들어올리는 경향이 있어, 그라운드 볼 또는 놓쳐진 볼을 야기한다: 이것은 "스윙 버블(bubble)"이다.
함께 취해지는 이동 디바이스(10)의 피치 및 요는 충돌점을 통한 배트의 각도의 간파들을 제공한다. 예를 들어, 도 12c에서의 피치 데이터는 피치가 충돌점에서 음이고 충돌점 후까지 제로로 복귀하지 않으므로, 손들이 충돌점에서 하향으로 경사진 것을 나타내고, 따라서 배트는 가상 볼이 교정점 아래로 즉, 스트라이크 구역의 더 낮은 절반에서 던져졌다면, 가상 볼에 접촉했을 것이다.
마지막 예로서, 해제점이 교정점 및 충돌점 둘 다와 상이한 사용 경우를 고려한다. 도 13a 내지 도 13c는 볼링 스포츠 모션에 대한 이동 디바이스 모션 센서 데이터를 도시한다. 이러한 예에서, 교정점은 플레이어의 곁에서 움직이지 않고, 완화되고, 충분히 펴진 손이며, 손의 손바닥이 전방으로 향한다. 볼링 모션은 우선 손들 둘 다로 부드럽게 잡힌 가상 볼링 볼을 턱까지 가져오는 것이고, 그 다음 수 걸음들을 취하면서 아래로 그리고 전방으로 스윙하는 것이다. 피치 데이터는 이동 디바이스(10)의 피치가 이동 디바이스(10)가 턱까지 가져와짐에 따라, 얼마나 증가되는지를 도시하며, 여기서 플레이어가 전방으로 걷기 시작할 때, 로컬 최소값이 있다. 그 다음, 피치는 플레이어가 백스윙 모션으로 스윙 다운함에 따라, 감소되며, 여기서 초기 교정 제로에 상응하는 피치의 제로가 있고, 그 다음 모션은 가상 볼링 볼의 해제점인 제2 제로까지 마지막 다운스윙들로 전환된다.
상술된 골프 스윙과 유사하게, 가상 볼링 볼의 속도는 도 8과 유사하게, 식 (3) 및 30 또는 60도 피치 지점들 사이의 시간 차이로부터, 또는 식 (4)의 적분을 통해 계산될 수 있다. 해제점을 통한 롤의 도함수인, 롤 데이터의 변화의 속도는 가상 볼링 볼에 부여되는 스핀 속도에 비례한다. 따라서, 해제점에서의 가상 볼링 볼의 속도 및 스핀을 계산할 수 있다.
이러한 예에서, 해제점이 교정점과 공간이 상이하고, 충돌점이 해제점으로부터 더 제거된다는 점을 주목해야 한다. 이러한 예에서, 충돌점은 가상 공간에서 발생된다. 상술된 바와 같이, 클라우드 기반 게이밍 플랫폼(100)을 사용하여, 볼링 볼은 웹 TV와 같은 HTML5 웹-이용 가능 디스플레이 상의 가상 볼링 레인에서 디스플레이될 수 있고, 핀들과의 충돌은 가상 볼링 볼의 속도 및 스핀, 및 가상 볼링 레인의 길이가 주어지면 시간 및 공간으로 시뮬레이션될 수 있다. 따라서, 플레이어는 웹-이용 가능 디스플레이 상에서 가상 볼링 모션을 실행하고, 가상 볼링 볼이 레인을 내려가고 핀들을 때리는 것을 보며, 경로 및 속도는 이동 디바이스의 스윙 시그니처으로부터 계산되는 속도 및 스핀에 의해 결정되고 연속적인 모션 같이 보이도록 제 시간에 동기화된다.
본 발명이 위에 기술된 다양한 예시적인 실시예들과 함께 설명되었지만, 많은 대안들, 변경들 및 변형들이 당업자에게 명백할 것인 점은 분명하다. 따라서, 위에 제시된 바와 같이, 본 발명의 예시적인 실시예들은 예시적이고 제한하지 않도록 의도된다. 다양한 변경들은 본 발명의 사상 및 범위를 벗어나지 않는 범위 내에서 행해질 수 있다.
Claims (55)
- 하나 이상의 게임을 관리하도록 구성되는 게이밍 서버를 포함하되,
(a) 제1 연결이 제1 디바이스와 상기 게이밍 서버 사이에 수립되며, 상기 제1 디바이스는 제1 모션 센서들을 갖고;
(b) 제2 연결이 제2 디바이스와 상기 게이밍 서버 사이에 수립되고;
(c) 제3 연결이 제3 디바이스와 상기 게이밍 서버 사이에 수립되며, 상기 제3 디바이스는 제2 모션 센서들을 갖고;
(d) 상기 게이밍 서버에서, 상기 제1 연결을 통해, 제1 디바이스 게임 모션 데이터가 상기 제1 디바이스로부터 수신되며, 상기 제1 디바이스 게임 모션 데이터는 게임 동안 제1 플레이어에 의해 움직이는 상기 제1 디바이스에 응답하는 상기 제1 모션 센서들을 사용하여 결정되고;
(e) 상기 제2 디바이스에서, 상기 게임과 관련되어 제1 이미지 콘텐츠가 디스플레이되며, 상기 제1 이미지 콘텐츠는 상기 수신된 제1 디바이스 게임 모션 데이터에 기반하여 적어도 부분적으로 표현되고;
(f) 상기 게이밍 서버에서, 상기 제3 연결을 통해, 제3 디바이스 게임 모션 데이터가 상기 제3 디바이스로부터 수신되며, 상기 제3 디바이스 게임 모션 데이터는 상기 게임 동안 제2 플레이어에 의해 움직이는 상기 제3 디바이스에 응답하는 상기 제2 모션 센서들을 사용하여 결정되고;
(g) 상기 게임과 관련되어 상기 제2 디바이스에서, 제2 이미지 콘텐츠가 디스플레이되며, 상기 제2 이미지 콘텐츠는 상기 수신된 제3 디바이스 게임 모션 데이터에 기반하여 적어도 부분적으로 표현되고,
상기 제2 디바이스는 게이밍 서버로부터 다운로드된 게이밍 로직을 가지는 비동기 웹 애플리케이션을 포함하고
상기 제2 디바이스는 그래픽 엔진을 포함하고, 상기 제1 이미지 콘텐츠 및 상기 제2 이미지 콘텐츠는 상기 그래픽 엔진에서 처리되는 게이밍 시스템. - 제1항에 있어서,
상기 제2 디바이스는 웹-이용 가능 디스플레이인, 게이밍 시스템. - 제1항에 있어서,
상기 제1 연결 및 상기 제2 연결은 분리된 인터넷 연결들인, 게이밍 시스템. - 제1항에 있어서,
상기 제1 모션 센서들은 자이로스코프 및 가속도계를 포함하는, 게이밍 시스템. - 제4항에 있어서,
상기 제1 디바이스는 상기 제1 디바이스 게임 모션 데이터를 결정하기 위해 상기 자이로스코프 및 상기 가속도계로부터 획득되는 원시 모션 데이터를 분석하는, 게이밍 시스템. - 제1항에 있어서,
상기 제1 디바이스 게임 모션 데이터는 스윙 속도 및 롤 각도를 포함하는, 게이밍 시스템. - 제6항에 있어서,
상기 제1 디바이스 게임 모션 데이터는 팔뚝 회전 속도, 손목 힌지 및 스윙 경로를 포함하는, 게이밍 시스템. - (a) 제1 디바이스와 게이밍 서버 사이에 제1 연결을 수립하는 단계로서, 상기 제1 디바이스는 스마트폰이며 제1 모션 센서들을 갖는 단계;
(b) 제2 디바이스와 상기 게이밍 서버 사이에 제2 연결을 수립하는 단계;
(c) 상기 제1 연결을 통해, 상기 제1 디바이스로부터 제1 디바이스 게임 모션 데이터를 상기 게이밍 서버에서 수신하는 단계로서, 상기 제1 디바이스 게임 모션 데이터는 게임 동안 제1 플레이어에 의해 움직이는 상기 제1 디바이스에 응답하는 상기 제1 모션 센서들을 사용하여 결정되는 단계;
(d) 상기 게임과 관련되어 제1 이미지 콘텐츠를 상기 제2 디바이스에서 디스플레이하는 단계로서, 상기 제1 이미지 콘텐츠는 상기 수신된 제1 게임 모션 데이터에 기반하여 적어도 부분적으로 표현되는 단계;
(e) 제3 디바이스와 상기 게이밍 서버 사이에 제3 연결을 수립하는 단계로서, 상기 제3 디바이스는 제2 모션 센서들을 갖는 단계;
(f) 상기 제3 연결을 통해, 상기 제3 디바이스로부터 제3 디바이스 게임 모션 데이터를 상기 게이밍 서버에서 수신하는 단계로서, 상기 제3 디바이스 게임 모션 데이터는 상기 게임 동안 제2 플레이어에 의해 움직이는 상기 제3 디바이스에 응답하는 상기 제2 모션 센서들을 사용하여 결정되는 단계; 및
(g) 상기 게임과 관련되어 제2 이미지 콘텐츠를 상기 제2 디바이스에서 디스플레이하는 단계로서, 상기 제2 이미지 콘텐츠는 상기 수신된 제3 디바이스 게임 모션 데이터에 기반하여 적어도 부분적으로 표현되는 단계를 포함하고,
상기 제2 디바이스는 게이밍 서버로부터 다운로드된 게이밍 로직을 가지는 비동기 웹 애플리케이션을 포함하고
상기 제2 디바이스는 그래픽 엔진을 포함하고, 상기 제1 이미지 콘텐츠 및 상기 제2 이미지 콘텐츠는 상기 그래픽 엔진에서 처리되는, 방법. - 제8항에 있어서,
상기 이미지 콘텐츠는 상기 제1 디바이스로부터의 로컬 네트워크 연결을 통해 상기 제2 디바이스에 의해 수신되는 상기 제1 디바이스 게임 모션 데이터에 기반하여 적어도 부분적으로 표현되는, 방법. - 제8항에 있어서,
상기 제2 디바이스는 웹-이용 가능 디스플레이인, 방법. - 제8항에 있어서,
상기 제1 연결 및 상기 제2 연결은 분리된 인터넷 연결들인, 방법. - 제8항에 있어서,
상기 제1 모션 센서들은 자이로스코프 및 가속도계를 포함하는, 방법. - 제12항에 있어서,
상기 제1 디바이스는 상기 제1 게임 모션 데이터를 결정하기 위해 상기 자이로스코프 및 상기 가속도계로부터 획득되는 원시 모션 데이터를 분석하는, 방법. - 제13항에 있어서,
상기 제1 디바이스 게임 모션 데이터는 스윙 속도 및 롤 각도를 포함하는, 방법. - 제13항에 있어서,
상기 제1 디바이스 게임 모션 데이터는 팔뚝 회전 속도, 손목 힌지 및 스윙 경로를 포함하는, 방법. - 제8항에 있어서,
상기 비동기 웹 애플리케이션은 상기 게이밍 서버를 직접적으로 제어하지 않고 상기 이미지 콘텐츠를 표현하고 상기 게이밍 서버를 폴링함으로써 상기 제1 디바이스 및 상기 제2 디바이스의 움직임의 표시를 획득하도록 구성되는, 방법. - 제16항에 있어서,
상기 폴링은 롱 폴링인, 방법. - 제17항에 있어서,
상기 롱 폴링은 웹소켓 프로토콜에 따라 수행되는, 방법. - 제8항에 있어서,
(h) 제3 디바이스와 상기 게이밍 서버 사이에 제3 연결을 수립하는 단계로서, 상기 제3 디바이스는 제2 모션 센서들을 갖는 단계;
(i) 제4 디바이스와 상기 게이밍 서버 사이에 제4 연결을 수립하는 단계;
(j) 상기 제3 연결을 통해, 상기 제3 디바이스로부터 제3 디바이스 게임 모션 데이터를 상기 게이밍 서버에서 수신하는 단계로서, 상기 제3 디바이스 게임 모션 데이터는 상기 게임 동안 제2 플레이어에 의해 움직이는 상기 제3 디바이스에 응답하는 상기 제2 모션 센서들을 사용하여 결정되는 단계; 및
(k) 상기 게임과 관련되어 이미지 콘텐츠를 상기 제2 및 제4 디바이스에서 디스플레이하는 단계로서, 상기 이미지 콘텐츠는 상기 제3 디바이스 게임 모션 데이터에 기반하여 적어도 부분적으로 표현되는 단계를 더 포함하며,
(l) 상기 제2 디바이스 및 상기 제4 디바이스 상에 디스플레이되는 상기 이미지 콘텐츠는 실질적으로 동일한 이미지 콘텐츠를 포함하는, 방법. - 제19항에 있어서,
(m) 상기 제1 연결을 통해, 상기 제1 디바이스로부터 부가 제1 디바이스 모션 데이터를 상기 게이밍 서버에서 수신하는 단계로서, 상기 부가 제1 디바이스 게임 모션 데이터는 상기 게임 동안 상기 제1 플레이어에 의해 다시 움직이는 상기 제1 디바이스에 응답하는 상기 제1 모션 센서들을 사용하여 결정되는 단계; 및
(n) 상기 게임과 관련되어 이미지 콘텐츠를 상기 제2 및 제4 디바이스에서 디스플레이하는 단계로서, 상기 이미지 콘텐츠는 상기 제3 디바이스 게임 모션 데이터에 기반하여 적어도 부분적으로 표현되는 단계를 더 포함하는, 방법. - 제8항에 있어서,
(h) 제n 디바이스와 상기 게이밍 서버 사이에 제n 연결을 수립하는 단계로서, 상기 제n 디바이스는 제(n-1) 모션 센서들을 갖는 단계;
(i) 제(n+1) 디바이스와 상기 게이밍 서버 사이에 제(n+1) 연결을 수립하는 단계;
(j) 상기 제n 연결을 통해, 상기 제n 디바이스로부터 제n 디바이스 게임 모션 데이터를 상기 게이밍 서버에서 수신하는 단계로서, 상기 제n 디바이스 게임 모션 데이터는 상기 게임 동안 움직이는 상기 제n 디바이스에 응답하는 상기 제(n-1) 모션 센서들을 사용하여 결정되는 단계; 및
(k) 상기 게임과 관련되어 이미지 콘텐츠를 제(n-1) 디바이스 및 상기 제(n+1) 디바이스에서 디스플레이하는 단계로서, 상기 이미지 콘텐츠는 상기 제n 디바이스 게임 모션 데이터에 기반하여 적어도 부분적으로 표현되는 단계를 더 포함하며,
(l) n은 정수로서, 3 ≤n 인, 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261641825P | 2012-05-02 | 2012-05-02 | |
US61/641,825 | 2012-05-02 | ||
US13/875,179 | 2013-05-01 | ||
US13/875,179 US9022870B2 (en) | 2012-05-02 | 2013-05-01 | Web-based game platform with mobile device motion sensor input |
PCT/US2013/039219 WO2013166251A1 (en) | 2012-05-02 | 2013-05-02 | Web-based game platform with mobile device motion sensor input |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150006463A KR20150006463A (ko) | 2015-01-16 |
KR101800795B1 true KR101800795B1 (ko) | 2017-12-20 |
Family
ID=49512930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147033652A KR101800795B1 (ko) | 2012-05-02 | 2013-05-02 | 이동 디바이스 모션 센서 입력을 갖는 웹 기반 게임 플랫폼 |
Country Status (9)
Country | Link |
---|---|
US (2) | US9022870B2 (ko) |
EP (1) | EP2844359B1 (ko) |
JP (1) | JP6313283B2 (ko) |
KR (1) | KR101800795B1 (ko) |
CN (1) | CN104394949A (ko) |
AU (1) | AU2013256266B2 (ko) |
BR (1) | BR112014026924B1 (ko) |
CA (1) | CA2869785C (ko) |
WO (1) | WO2013166251A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190099650A (ko) | 2018-02-19 | 2019-08-28 | 동서대학교 산학협력단 | 서브모터를 이용한 모션 입력 장치 및 모션 입력 방법 |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9821210B2 (en) * | 2011-05-11 | 2017-11-21 | Karsten Manufacturing Corporation | Systems, methods, and articles of manufacture to measure, analyze and share golf swing characteristics |
CN103677320B (zh) * | 2012-08-30 | 2018-09-25 | 索尼公司 | 遥控器、远端设备、多媒体系统及控制方法 |
JP5406396B1 (ja) * | 2013-04-03 | 2014-02-05 | 株式会社 ディー・エヌ・エー | サーバー装置、及び、プログラム |
IN2013CH04559A (ko) * | 2013-10-08 | 2015-04-10 | Samsung Electrinics Company | |
US9911231B2 (en) * | 2013-10-08 | 2018-03-06 | Samsung Electronics Co., Ltd. | Method and computing device for providing augmented reality |
CN104571986B (zh) * | 2013-10-22 | 2018-07-06 | 精工爱普生株式会社 | 显示系统、显示装置以及显示方法 |
US9744458B2 (en) * | 2013-11-13 | 2017-08-29 | Gaijin Entertainment Corp. | Method for simulating video games on mobile device |
US9669300B2 (en) | 2013-12-27 | 2017-06-06 | Ballcraft, Llc | Motion detection for existing portable devices |
AU2015231135A1 (en) * | 2014-03-19 | 2016-10-06 | Virtuix Holdings Inc. | Method of generating an input in an omnidirectional locomotion system |
US9339714B2 (en) | 2014-05-20 | 2016-05-17 | Arccos Golf Llc | System and method for monitoring performance characteristics associated with user activities involving swinging instruments |
ES2552881B1 (es) | 2014-06-02 | 2016-07-12 | Samsung Electronics Iberia, S.A.U. | Dispositivo portable y método de control mediante gestos |
US10222868B2 (en) | 2014-06-02 | 2019-03-05 | Samsung Electronics Co., Ltd. | Wearable device and control method using gestures |
WO2016036425A1 (en) * | 2014-09-05 | 2016-03-10 | Ballcraft, Llc | Motion detection for portable devices |
US11045723B1 (en) | 2014-11-18 | 2021-06-29 | Razer (Asia-Pacific) Pte. Ltd. | Gaming controller for mobile device and method of operating a gaming controller |
CN107206280B (zh) * | 2014-11-18 | 2019-07-09 | 雷蛇(亚太)私人有限公司 | 用于移动设备的游戏控制器以及操作游戏控制器的方法 |
CN105897811B (zh) * | 2015-01-26 | 2019-04-23 | 中国移动通信集团公司 | 一种数据同步方法和装置 |
US20160260319A1 (en) * | 2015-03-04 | 2016-09-08 | Aquimo, Llc | Method and system for a control device to connect to and control a display device |
JP2016209120A (ja) * | 2015-04-30 | 2016-12-15 | セイコーエプソン株式会社 | スイング支援装置、スイング支援方法、プログラム、およびスイング支援システム |
US9770639B2 (en) | 2015-07-21 | 2017-09-26 | Arccos Golf, Llc | System and method for monitoring performance characteristics associated with user activities involving swinging instruments |
US9578493B1 (en) | 2015-08-06 | 2017-02-21 | Adtile Technologies Inc. | Sensor control switch |
CN105597323A (zh) * | 2015-12-25 | 2016-05-25 | 北京像素软件科技股份有限公司 | 一种网络游戏中地形变化的实现方法及系统 |
KR101729887B1 (ko) * | 2016-01-25 | 2017-04-25 | 엔에이치엔엔터테인먼트 주식회사 | 롱폴링 처리 방법 및 시스템 |
CN107092430B (zh) * | 2016-02-18 | 2020-03-24 | 纬创资通(中山)有限公司 | 空间绘画计分方法、用于进行空间绘画计分的装置及系统 |
WO2017161192A1 (en) * | 2016-03-16 | 2017-09-21 | Nils Forsblom | Immersive virtual experience using a mobile communication device |
CN105933788A (zh) * | 2016-04-15 | 2016-09-07 | 成都趣梦网络科技有限公司 | 一种html5游戏控制方法、装置及终端 |
CN106055078B (zh) * | 2016-05-31 | 2019-03-01 | Oppo广东移动通信有限公司 | 一种移动终端的传感器处理方法、装置及移动终端 |
US10709975B2 (en) * | 2016-06-29 | 2020-07-14 | Intel Corporation | Systems and methods for manipulating a virtual object |
KR20180040451A (ko) * | 2016-10-12 | 2018-04-20 | 엘지전자 주식회사 | 이동 단말기 및 그의 동작 방법 |
US11794094B2 (en) * | 2016-10-17 | 2023-10-24 | Aquimo Inc. | Method and system for using sensors of a control device for control of a game |
CN106559481A (zh) * | 2016-11-02 | 2017-04-05 | 深圳市合互联技术有限责任公司 | 一种提供应用的方法及服务器 |
US10478732B2 (en) | 2016-11-07 | 2019-11-19 | Microsoft Technology Licensing, Llc | Arbitrating an outcome of a multiplayer game session |
US11318350B2 (en) | 2016-12-29 | 2022-05-03 | BioMech Sensor LLC | Systems and methods for real-time data quantification, acquisition, analysis, and feedback |
US10352962B2 (en) | 2016-12-29 | 2019-07-16 | BioMech Sensor LLC | Systems and methods for real-time data quantification, acquisition, analysis and feedback |
US9773330B1 (en) | 2016-12-29 | 2017-09-26 | BioMech Sensor LLC | Systems and methods for real-time data quantification, acquisition, analysis, and feedback |
US10973439B2 (en) | 2016-12-29 | 2021-04-13 | BioMech Sensor LLC | Systems and methods for real-time data quantification, acquisition, analysis, and feedback |
US9983687B1 (en) * | 2017-01-06 | 2018-05-29 | Adtile Technologies Inc. | Gesture-controlled augmented reality experience using a mobile communications device |
KR101881565B1 (ko) * | 2017-01-10 | 2018-07-24 | 동서대학교산학협력단 | 운동 물리량 측정기반 모션데이터 생성-편집시스템 및 모션데이터 편집 프로그램 장치 |
WO2018136419A1 (en) | 2017-01-17 | 2018-07-26 | Arccos Golf, Llc | Autonomous personalized golf recommendation and analysis environment |
JP2018126391A (ja) * | 2017-02-09 | 2018-08-16 | 株式会社セガゲームス | ゲーム装置、プログラム及びゲームシステム |
JP7061848B2 (ja) * | 2017-06-13 | 2022-05-02 | 任天堂株式会社 | 通信システム、サーバ、情報処理方法及びプログラム |
US10593149B2 (en) * | 2017-12-14 | 2020-03-17 | Igt | Skill based mobile device input to effect game outcome |
US11465056B2 (en) | 2018-01-12 | 2022-10-11 | Bunch Live, Inc. | Game mediation component for enriching multiplayer gaming sessions |
US11103772B2 (en) | 2018-01-12 | 2021-08-31 | Bunch Live, Inc. | Mediating multiplayer electronic game sessions |
JP7383647B2 (ja) * | 2018-06-20 | 2023-11-20 | バルブ コーポレーション | 仮想物体の保持および解放 |
CN109144642B (zh) * | 2018-08-14 | 2022-02-18 | Oppo广东移动通信有限公司 | 显示控制方法、装置、电子设备及存储介质 |
CN109621424B (zh) * | 2018-12-18 | 2022-05-13 | 深圳源中瑞科技有限公司 | 一种可扩展的游戏构建方法、游戏运行方法和存储介质 |
US11642596B2 (en) | 2019-04-29 | 2023-05-09 | Bunch Live, Inc. | Game mediation infrastructure for establishment of multiplayer gaming sessions |
JP6624767B1 (ja) | 2019-08-26 | 2019-12-25 | 株式会社ブラック | 情報処理システム及び情報処理方法 |
US11295527B2 (en) * | 2019-08-30 | 2022-04-05 | Sprongo, LLC | Instant technique analysis for sports |
US11606617B2 (en) * | 2020-03-11 | 2023-03-14 | Augusta National, Inc. | Method, apparatus and computer program product for presenting a sporting event |
CN112791385A (zh) * | 2021-03-22 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 游戏运行方法、装置、控制设备以及服务器 |
CN113476833B (zh) * | 2021-06-10 | 2024-07-16 | 深圳市腾讯网域计算机网络有限公司 | 游戏动作识别方法、装置、电子设备和存储介质 |
JP7457745B2 (ja) * | 2022-03-30 | 2024-03-28 | 任天堂株式会社 | ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法 |
US20240045903A1 (en) * | 2022-08-04 | 2024-02-08 | Google Llc | Methods, systems, and media for displaying streaming media content on a user device using video sprite sheets |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120077586A1 (en) * | 2008-10-27 | 2012-03-29 | Shervin Pishevar | Apparatuses, methods and systems for an interactive proximity display tether |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317722B1 (en) | 1998-09-18 | 2001-11-13 | Amazon.Com, Inc. | Use of electronic shopping carts to generate personal recommendations |
US7789742B1 (en) | 1999-05-12 | 2010-09-07 | Wilbert Q. Murdock | Smart golf club multiplayer system for the internet |
US6545661B1 (en) * | 1999-06-21 | 2003-04-08 | Midway Amusement Games, Llc | Video game system having a control unit with an accelerometer for controlling a video game |
KR20010003645A (ko) | 1999-06-24 | 2001-01-15 | 윤종용 | 이동통신시스템에서 에이티엠 시그널링 수행장치 |
US20070066396A1 (en) * | 2002-04-05 | 2007-03-22 | Denise Chapman Weston | Retail methods for providing an interactive product to a consumer |
JP2004113689A (ja) | 2002-09-30 | 2004-04-15 | Mitsumi Electric Co Ltd | ゴルフゲーム機能付き携帯電話機 |
EP1587588A2 (en) | 2002-12-19 | 2005-10-26 | Fortescue Corporation | Method and apparatus for determining orientation and position of a moveable object |
US20050054457A1 (en) | 2003-09-08 | 2005-03-10 | Smartswing, Inc. | Method and system for golf swing analysis and training |
US7300358B2 (en) | 2003-11-24 | 2007-11-27 | Karsten Manufacturing Corporation | Multiple flex shaft system for golf clubs |
TW200537901A (en) | 2004-04-22 | 2005-11-16 | Yuh-Swu Hwang | Method and apparatus enable mobile phone capable of exercise measuring and workout support |
EP1904189A2 (en) | 2004-05-19 | 2008-04-02 | Motus Corporation | Motion tracking and analysis apparatus and method and system implementations thereof |
US7982738B2 (en) | 2004-12-01 | 2011-07-19 | Microsoft Corporation | Interactive montages of sprites for indexing and summarizing video |
US8083589B1 (en) * | 2005-04-15 | 2011-12-27 | Reference, LLC | Capture and utilization of real-world data for use in gaming systems such as video games |
KR100703490B1 (ko) | 2005-04-18 | 2007-04-03 | 삼성전자주식회사 | 비동기 방식을 기반으로 한 이동 통신 단말기의 시간동기화 방법 및 그 시스템 |
US7942745B2 (en) | 2005-08-22 | 2011-05-17 | Nintendo Co., Ltd. | Game operating device |
US7927216B2 (en) | 2005-09-15 | 2011-04-19 | Nintendo Co., Ltd. | Video game system with wireless modular handheld controller |
US8218657B2 (en) | 2005-09-02 | 2012-07-10 | Netgear, Inc. | System and method for automatic adjustment of streaming video bit rate |
EP1810721A1 (en) | 2006-01-19 | 2007-07-25 | Friends-for-Golfers GmbH | Golf diagnosis apparatus, golf equipment device, golf diagnosis system, and method of mounting a golf diagnosis apparatus |
US7806777B2 (en) | 2006-04-18 | 2010-10-05 | World Golf Tour, Inc. | Automatically adapting virtual equipment model |
WO2008052605A1 (en) | 2006-10-31 | 2008-05-08 | Friend For Golfers Gmbh | Data processing system and golf diagnosis apparatus |
EP2750098A3 (en) | 2007-02-16 | 2014-08-06 | BodyMedia, Inc. | Systems and methods for understanding and applying the physiological and contextual life patterns of an individual or set of individuals |
WO2008144729A2 (en) | 2007-05-21 | 2008-11-27 | World Golf Tour, Inc. | Electronic game utilizing photographs |
JP2009000163A (ja) * | 2007-06-19 | 2009-01-08 | Nec Corp | ゲームシステム、ゲームサーバ、携帯端末、ゲーム管理方法およびプログラム |
US8850230B2 (en) | 2008-01-14 | 2014-09-30 | Microsoft Corporation | Cloud-based movable-component binding |
US8029359B2 (en) | 2008-03-27 | 2011-10-04 | World Golf Tour, Inc. | Providing offers to computer game players |
JP5438290B2 (ja) | 2008-07-01 | 2014-03-12 | 住友ゴム工業株式会社 | ゴルフクラブのスイングシミュレーション方法 |
KR20100086819A (ko) * | 2009-01-23 | 2010-08-02 | 삼성전자주식회사 | 휴대단말기의 게임 실행 방법 및 시스템 |
US9459936B2 (en) | 2009-05-01 | 2016-10-04 | Kaazing Corporation | Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications |
US8303387B2 (en) | 2009-05-27 | 2012-11-06 | Zambala Lllp | System and method of simulated objects and applications thereof |
US20110224012A1 (en) | 2010-01-12 | 2011-09-15 | Hashimoto Terry G | Game Device Swing Detector |
EP2392389A4 (en) | 2010-02-03 | 2014-10-15 | Nintendo Co Ltd | GAME SYSTEM, OPERATING METHOD AND GAME PROCESSING METHOD |
EP2353677A3 (en) * | 2010-02-03 | 2014-01-22 | Nintendo Co., Ltd. | Game system, image output device, and image display method |
CA2731025C (en) * | 2010-02-05 | 2014-10-07 | Fletcher Lu | Mobile social fitness networked game |
US8019878B1 (en) | 2010-03-05 | 2011-09-13 | Brass Monkey, Inc. | System and method for two way communication and controlling content in a web browser |
KR101852812B1 (ko) * | 2010-08-23 | 2018-04-27 | 엘지전자 주식회사 | 게임 애플리케이션 제공 방법 및 그 방법을 채용한 영상표시기기 |
US20120052933A1 (en) | 2010-08-30 | 2012-03-01 | Craig Alan Olson | Multifunctional gaming platform |
JP5258861B2 (ja) * | 2010-09-27 | 2013-08-07 | 株式会社東芝 | Gui処理装置、gui処理方法およびgui処理プログラム |
KR101059258B1 (ko) | 2010-12-31 | 2011-08-26 | (주) 골프존 | 모바일 단말기를 이용한 가상 골프 시뮬레이션 방법, 이를 위한 어플리케이션의 가상 골프 시뮬레이션 구현 방법, 이를 위한 어플리케이션 설계 방법, 이를 위한 어플리케이션의 프로그램 수행 방법 및 이를 제공하는 모바일 단말기 |
US8910309B2 (en) * | 2011-12-05 | 2014-12-09 | Microsoft Corporation | Controlling public displays with private devices |
JP5248689B1 (ja) * | 2012-02-17 | 2013-07-31 | 株式会社コナミデジタルエンタテインメント | ゲーム制御装置、プログラム、ゲーム制御方法、ゲーム制御システム |
-
2013
- 2013-05-01 US US13/875,179 patent/US9022870B2/en active Active
- 2013-05-02 AU AU2013256266A patent/AU2013256266B2/en active Active
- 2013-05-02 BR BR112014026924-6A patent/BR112014026924B1/pt active IP Right Grant
- 2013-05-02 JP JP2015510447A patent/JP6313283B2/ja active Active
- 2013-05-02 WO PCT/US2013/039219 patent/WO2013166251A1/en active Application Filing
- 2013-05-02 KR KR1020147033652A patent/KR101800795B1/ko active IP Right Grant
- 2013-05-02 CA CA2869785A patent/CA2869785C/en active Active
- 2013-05-02 CN CN201380022708.0A patent/CN104394949A/zh active Pending
- 2013-05-02 EP EP13784999.8A patent/EP2844359B1/en active Active
-
2015
- 2015-04-29 US US14/700,095 patent/US20150238858A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120077586A1 (en) * | 2008-10-27 | 2012-03-29 | Shervin Pishevar | Apparatuses, methods and systems for an interactive proximity display tether |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190099650A (ko) | 2018-02-19 | 2019-08-28 | 동서대학교 산학협력단 | 서브모터를 이용한 모션 입력 장치 및 모션 입력 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20150006463A (ko) | 2015-01-16 |
US20150238858A1 (en) | 2015-08-27 |
US20130296048A1 (en) | 2013-11-07 |
EP2844359A1 (en) | 2015-03-11 |
CA2869785A1 (en) | 2013-11-07 |
CN104394949A (zh) | 2015-03-04 |
BR112014026924A2 (pt) | 2017-06-27 |
EP2844359A4 (en) | 2015-09-23 |
BR112014026924B1 (pt) | 2022-05-17 |
CA2869785C (en) | 2018-02-13 |
US9022870B2 (en) | 2015-05-05 |
AU2013256266B2 (en) | 2015-04-09 |
AU2013256266A1 (en) | 2014-10-16 |
JP2015525085A (ja) | 2015-09-03 |
EP2844359B1 (en) | 2017-01-11 |
JP6313283B2 (ja) | 2018-04-18 |
WO2013166251A1 (en) | 2013-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101800795B1 (ko) | 이동 디바이스 모션 센서 입력을 갖는 웹 기반 게임 플랫폼 | |
US20240058691A1 (en) | Method and system for using sensors of a control device for control of a game | |
US11049258B2 (en) | Stereoscopic image capture with performance outcome prediction in sporting environments | |
CN104023799B (zh) | 使用移动装置的动作传感器对体育动作进行分析的方法和系统 | |
US9573037B2 (en) | Sports training apparatus and method | |
JP5286267B2 (ja) | ゲーム装置、ゲームプログラム及びオブジェクトの操作方法 | |
US20090029754A1 (en) | Tracking and Interactive Simulation of Real Sports Equipment | |
JPWO2009028690A1 (ja) | ゲーム装置、ゲームプログラム及びゲーム装置の制御方法 | |
US20220401841A1 (en) | Use of projectile data to create a virtual reality simulation of a live-action sequence | |
US20230191221A1 (en) | Interactive soccer system | |
US20240252917A1 (en) | Player monitoring systems and methods for efficiently processing sensor data | |
CN104063048A (zh) | 用于在计算机模拟中捕捉对象时需要附加用户输入的方案 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
GRNT | Written decision to grant |