[go: up one dir, main page]

KR101060779B1 - Methods and apparatuses for applying gearing effects to an input based on one or more of visual, acoustic, inertial, and mixed data - Google Patents

Methods and apparatuses for applying gearing effects to an input based on one or more of visual, acoustic, inertial, and mixed data Download PDF

Info

Publication number
KR101060779B1
KR101060779B1 KR1020087029707A KR20087029707A KR101060779B1 KR 101060779 B1 KR101060779 B1 KR 101060779B1 KR 1020087029707 A KR1020087029707 A KR 1020087029707A KR 20087029707 A KR20087029707 A KR 20087029707A KR 101060779 B1 KR101060779 B1 KR 101060779B1
Authority
KR
South Korea
Prior art keywords
gearing
input device
interaction
movement
game
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020087029707A
Other languages
Korean (ko)
Other versions
KR20090025228A (en
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
Priority claimed from US11/381,729 external-priority patent/US7809145B2/en
Priority claimed from US11/381,728 external-priority patent/US7545926B2/en
Priority claimed from US11/381,725 external-priority patent/US7783061B2/en
Priority claimed from US11/381,724 external-priority patent/US8073157B2/en
Priority claimed from US11/381,727 external-priority patent/US7697700B2/en
Priority claimed from US11/381,721 external-priority patent/US8947347B2/en
Priority claimed from US11/382,036 external-priority patent/US9474968B2/en
Priority claimed from US11/382,038 external-priority patent/US7352358B2/en
Priority claimed from US11/382,041 external-priority patent/US7352359B2/en
Priority claimed from US11/382,040 external-priority patent/US7391409B2/en
Application filed by 소니 컴퓨터 엔터테인먼트 아메리카 엘엘씨 filed Critical 소니 컴퓨터 엔터테인먼트 아메리카 엘엘씨
Publication of KR20090025228A publication Critical patent/KR20090025228A/en
Application granted granted Critical
Publication of KR101060779B1 publication Critical patent/KR101060779B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • 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/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0325Detection arrangements using opto-electronic means using a plurality of light emitters or reflectors or a plurality of detectors forming a reference frame from which to derive the orientation of the object, e.g. by triangulation or on the basis of reference deformation in the picked up image
    • 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/105Features 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
    • 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/1081Input via voice recognition
    • 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/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
    • A63F2300/1093Features 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 using visible light
    • 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/6045Methods for processing data by generating or executing the game program for mapping control signals received from the input arrangement into game commands
    • 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/6063Methods for processing data by generating or executing the game program for sound processing
    • A63F2300/6072Methods for processing data by generating or executing the game program for sound processing of an input signal, e.g. pitch and rhythm extraction, voice recognition

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)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)
  • Pinball Game Machines (AREA)

Abstract

본 발명에 따르면, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법들 및 장치들이 제공된다. 컴퓨터 게임 시스템은 영상 데이터를 캡쳐하기 위한 비디오 캡쳐 장치를 포함한다. 본 방법은, 비디오 캡쳐 장치로 입력 장치를 디스플레이 하는 단계를 포함하며, 입력 장치는, 캡쳐된 영상 데이터의 분석 및 복수의 광들의 상태에 근거하여 컴퓨터 게임 시스템에 의해 해석될 입력 장치의 위치결정 및 통신 데이터를 전달하도록 변조되는 복수의 광들을 갖는다. 본 방법은 또한, 물체의 이동이 캡쳐된 영상 데이터 내에서 검출된 것처럼 입력 장치의 위치에서의 이동들로 매핑되도록, 컴퓨터 게임 시스템에 의해 실행될 컴퓨터 게임의 물체 이동을 정의하는 단계를 포함한다. 그 다음에, 본 방법은, 컴퓨터 게임의 물체 이동과 입력 장치의 위치 이동 사이의 기어링을 설립한다. 기어링은, 입력 장치의 위치 이동들과 물체의 이동들 사이의 비율을 정의한다. 기어링은, 게임과 사용자에 의해 동적으로 설정될 수 있고, 또는 기어링 알고리즘에 따라 구성된 소프트웨어 또는 사용자에 의해 미리 설정될 수 있다. 입력 장치의 실시형태들은, 기어링도리 수 있는 관성 데이터를 제공하는 데에 이용될 수 있으며, 컴퓨터 게임 시스템에 의해 해석될 수 있다. 게다가, 실시형태들은, 요망된 기어링을 적용하도록, 영상 캡쳐, 관성 캡쳐 및 음향 캡쳐의 혼합뿐만 아니라, 음향 검출 시스템들을 사용할 수 있다. In accordance with the present invention, methods and apparatuses for interacting with a computer game system are provided. The computer game system includes a video capture device for capturing image data. The method includes displaying an input device with a video capture device, the input device comprising: positioning of the input device to be interpreted by the computer game system based on the analysis of the captured image data and the state of the plurality of lights; It has a plurality of lights that are modulated to convey communication data. The method also includes defining an object movement of the computer game to be executed by the computer game system such that the movement of the object is mapped to movements in the position of the input device as detected in the captured image data. The method then establishes gearing between the object movement of the computer game and the positional movement of the input device. Gearing defines the ratio between positional movements of the input device and movements of the object. Gearing may be set dynamically by the game and the user, or may be preset by the user or software configured according to the gearing algorithm. Embodiments of the input device may be used to provide gearable inertial data and may be interpreted by a computer game system. In addition, embodiments may use acoustic detection systems, as well as a mix of image capture, inertial capture, and acoustic capture, to apply the desired gearing.

컴퓨터 게임 시스템, 영상 데이터, 기어링, 매핑 Computer Game System, Image Data, Gearing, Mapping

Description

시각, 음향, 관성, 및 혼합 데이터 중 하나 이상에 근거하여 기어링 효과들을 입력에 적용하기 위한 방법들 및 장치들{Methods and apparatus for applying gearing effects to input based on one or more of visual, acoustic, inertial, and mixed data}Methods and apparatus for applying gearing effects to input based on one or more of visual, acoustic, inertial, and mixed data}

비디오 게임 산업은 수년동안 많은 변화들을 보여왔다. 연산 능력(computing power)이 확장됨에 따라, 비디오 게임 개발자들은, 이러한 연산 능력의 증가들을 이용하는 게임 소프트웨어를 마찬가지로 제작해왔다. 이 때문에, 비디오 게임 개발자들은, 매우 사실적인 게임 경험을 얻기 위하여 섬세한 동작들 및 수학들을 내장한 게임들을 코딩(coding)하여왔다. The video game industry has seen many changes over the years. As computing power expands, video game developers have similarly produced game software that takes advantage of these increases in computing power. Because of this, video game developers have coded games that incorporate delicate operations and maths to get a very realistic game experience.

예시적인 게임 플랫폼들(gaming platforms)은 게임 콘솔(game console)의 형태로 판매되는 소니 플레이스테이션(Sony Playstation) 또는 소니 플레이스테이션2(Sony Playstation2; PS2)를 포함한다. 공지되어 있듯이, 게임 콘솔은, 모니터(통상적으로 텔레비젼)에 연결되고 핸드헬드 제어기들(handheld controllers)을 통하여 사용자 상호작용을 가능하게 하도록 고안되어 있다. 게임 콘솔은, CPU, 집중적인 그래픽 동작들을 처리하기 위한 그래픽 합성기(graphics synthesizer), 지오메트리 변환들(geometry transformations)을 수행하기 위한 벡터 유닛(vector unit) 을 포함하는 전문 처리 하드웨어, 및 다른 탈착가능 하드웨어, 펌웨어(firmware), 및 소프트웨어와 함께 고안된다. 게임 콘솔은, 또한 게임 콘솔을 통한 로컬 플레이(local play)를 위하여 게임 콤팩트 디스크들(game compact discs)을 수납하기 위한 광 디스크 트레이(optical disc tray)와 함께 고안된다. 온라인 게임 또한 가능한데, 사용자는 인터넷을 통하여 다른 사용자들과 상호작용하며 플레이할 수 있다. Exemplary gaming platforms include Sony Playstation or Sony Playstation2 (PS2) sold in the form of a game console. As is known, game consoles are designed to be connected to a monitor (typically a television) and to enable user interaction via handheld controllers. The game console may include a CPU, a graphics synthesizer for processing intensive graphics operations, professional processing hardware including a vector unit for performing geometry transformations, and other removable hardware. , Firmware, and software. The game console is also designed with an optical disc tray for receiving game compact discs for local play through the game console. Online games are also possible, where users can interact and play with other users over the Internet.

게임 복잡성이 플레이어들의 흥미를 계속해서 돋움에 따라, 게임 소프트웨어 및 하드웨어 제조자들은 추가적인 상호작용을 가능하게 하기 위해 계속해서 혁신하여 왔다. 사실, 그러나, 사용자들이 게임과 상호작용하는 방식은 수년동안 드라마틱하게 변화하여 오지는 않았다. 통상적으로, 사용자들은 여전히 핸드헬드 제어기들을 이용하여 컴퓨터 게임들을 플레이하거나 마우스 포인팅 장치들(mouse pointing devices)을 이용하여 프로그램들과 상호작용한다. As game complexity continues to inspire players, game software and hardware manufacturers have continued to innovate to enable additional interactions. In fact, however, the way users interact with games has not changed dramatically over the years. Typically, users still play computer games using handheld controllers or interact with programs using mouse pointing devices.

상술한 바와 같이, 사용자가 게임 플레이와 더욱 진전된 상호작용을 할 수 있는 방법들 및 시스템들이 필요하다. As mentioned above, there is a need for methods and systems that enable a user to have more advanced interaction with game play.

포괄적으로 말하면, 본 발명은, 컴퓨팅 시스템과의 동적 사용자 상호작용을 가능하게 하는 방법들, 시스템들 및 장치들을 제공함으로써 이러한 필요를 만족시킨다. 일 실시형태에서, 컴퓨팅 시스템은 프로그램을 실행시킬 것이며 상호작용은 프로그램과 있을 것이다. 프로그램은 예를 들어 상호작용 물체들 또는 특징들을 정의하는 비디오 게임일 수 있다. 상호작용은, 사용자들에게, 처리가 수행될 정도를 조정할 기어링(gearing) 요소를 조정할 능력을 제공하는 단계를 포함한다. 일 실시형태에서, 기어링은, 컴퓨터 프로그램의 물체 또는 특징에 의해 처리되는 이동량과 입력 장치의 이동 사이의 상대적 이동에 적용될 수 있다.Collectively, the present invention satisfies this need by providing methods, systems, and apparatuses that enable dynamic user interaction with a computing system. In one embodiment, the computing system will execute the program and the interaction will be with the program. The program may for example be a video game defining interactive objects or features. The interaction includes providing users with the ability to adjust gearing elements to adjust the extent to which the processing is to be performed. In one embodiment, gearing may be applied to the relative movement between the movement of the input device and the amount of movement processed by the object or feature of the computer program.

또 다른 실시형태에서, 기어링은 컴퓨터 프로그램의 특징에 적용될 수 있고, 입력 장치로부터의 검출은 관성 분석기의 처리에 근거할 수 있다. 관성 분석기는 관성 동작에 대하여 입력 장치를 추적할 것이며, 그 다음에 관성 분석기는 이러한 정보를 프로그램에 전달할 수 있다. 그 다음에 프로그램은 관성 분석기로부터 출력을 얻어, 기어링 분량이 출력에 적용될 수 있다. 그 다음에, 기어링 분량은, 프로그램이 동작을 연산할 비율을 지시할 것이다. 동작은 임의의 개수의 형태들을 취할 수 있으며, 동작의 일 실시예는 잡음, 다양한 냄새, 물체에 의한 이동, 또는 변수를 생성하는 것일 수 있다. 출력이 변수라면, 변수(예를 들어, 승산기(multiplier) 또는 이와 유사한 것)는 처리의 실행을 완성하는 데에 이용될 수 있어, 처리는 기어링 분량을 고려할 것이다. 기어링 분량은 사용자에 의해 미리 설정될 수 있거나, 동적으로 설정도리 수 있고, 또는 요구에 따라 조정될 수 있다. In yet another embodiment, gearing may be applied to the features of the computer program and the detection from the input device may be based on the processing of the inertial analyzer. The inertial analyzer will track the input device for inertial motion, which can then pass this information to the program. The program then obtains the output from the inertial analyzer so that the gearing amount can be applied to the output. The amount of gearing will then indicate the rate at which the program will compute the action. The operation may take any number of forms, and one embodiment of the operation may be to generate noise, various odors, movement by an object, or a variable. If the output is a variable, a variable (eg, multiplier or the like) can be used to complete the execution of the process, so that the process will take into account the amount of gearing. The gearing amount can be preset by the user, set dynamically or can be adjusted as required.

일 실시형태에서, 추적은 음향 분석기에 의해 수행될 수 있다. 음향 분석기는 입력 장치로부터 음향 신호들을 수신하도록 구성되고, 음향 분석기는 수행될 명령 또는 상호작용으로 적용될 기어링 분량을 전달할 수 있다. 음향 분석기는 컴퓨터 프로그램 세그먼트(들)(computer program segment(s))의 형태일 수 있거나, 음향 신호 정보를 처리하도록 고안된 회로에서 구체적으로 정의될 수 있다. 그러므로, 음향 신호 정보는, 프로그램에 의해 동적으로 설정될 수 있고, 입력 장치를 통하여(예를 들어, 제어기의 버튼을 선택하거나, 음성 명령 등에 의해) 사용자에 의한 요구에 따라 설정될 수 있는 기어링 데이터를 포함할 수 있다. In one embodiment, tracking can be performed by an acoustic analyzer. The acoustic analyzer is configured to receive acoustic signals from the input device, and the acoustic analyzer can deliver the amount of gearing to be applied with the command or interaction to be performed. The acoustic analyzer may be in the form of a computer program segment (s) or may be specifically defined in circuitry designed to process acoustic signal information. Therefore, the acoustic signal information can be set dynamically by a program and gearing data that can be set according to a request by a user through an input device (for example, by selecting a button of a controller or by a voice command or the like). It may include.

일 실시형태에 있어서, 입력 장치의 추적은 영상 분석기를 통하여 수행될 수 있다. 이하에서 논의되는 것처럼, 영상 분석기는 사용자 및 입력 장치가 위치되는 공간의 영상들을 캡쳐(capture)하는 카메라를 포함할 수 있다. 이러한 실시예에 있어서, 영상 분석기는 처리 프로그램의 특징에 대한 일부 각각의 동작을 일으키기 위해 제어기의 위치를 결정하고 있다. 프로그램은 게임일 수 있으며, 특징은 입력 장치에 의해 제어되는 물체일 수 있다. 영상 분석기는 위치 데이터를 입력 기어링 값과 혼합하도록 더 구성된다. 기어링 값은 실행 동안 동적으로 사용자에 의해 제공될 수 있고 또는 실행 세션 내의 동작에 의존하여 프로그램에 의해 설정될 수 있다. 기어링 입력은 사용자에 의한 입력 동작에 근거하여 컴퓨터 프로그램에 의한 일부 처리에 대한 상대적 영향을 설정할 것이다. 일 실시형태에서, 기어링은 명령 또는 동작을 사용자 또는 사용자 입력 장치로부터 프로그램의 특징으로 번역할 것이다. 프로그램의 특징은 가시적인 물체일 필요는 없지만, 일부 파라미터(parameter)를 계산하는 데에 이용되는 변수의 조정, 음향, 진동 또는 영상 이동의 평가 또는 번역을 포함할 수 있다. 그러므로, 기어링은, 제어의 추가적 감지를, 프로그램 및 프로그램의 특징들에 제공되는 상호작용으로 제공할 것이다. In one embodiment, tracking of the input device may be performed via an image analyzer. As discussed below, the image analyzer may include a camera that captures images of the space in which the user and the input device are located. In this embodiment, the image analyzer is determining the position of the controller to cause some respective action on the characteristics of the processing program. The program may be a game and the feature may be an object controlled by the input device. The image analyzer is further configured to mix the position data with the input gearing value. The gearing value may be provided by the user dynamically during execution or may be set by the program depending on the operation in the execution session. The gearing input will set the relative impact on some processing by the computer program based on the input action by the user. In one embodiment, gearing will translate the command or action from a user or user input device to a feature of the program. Features of the program need not be visible objects, but may include adjustment of variables used to calculate some parameters, evaluation of acoustic, vibration, or image movement or translation. Therefore, gearing will provide additional sensing of control in the interaction provided to the program and its features.

또 다른 실시형태에서, 믹서 분석기가 제공된다. 믹서 분석기는 게임의 특징으로의 혼성 효과를 생성하도록 고안 된다. 예를 들어, 믹서 분석기는, 영상 분석기, 음향 분석기, 관성 분석기 등의 조합으로부터의 입력을 얻을 수 있다. 그러므로, 일 실시형태에서, 믹서 분석기는, 혼성 결과, 명령 또는 프로그램의 특징과의 상호작용을 생성하도록 혼합되고 합성될 수 있는 수개의 기어링 변수들을 수신할 수 있다. 또한, 프로그램의 특징은, 가시적 물체, 비가시적 물체, 동작의 처리에 사용되는 변수들, 가청(audible) 반응들에 대한 조정 등을 포함하는 것으로 이해되어야 한다. In yet another embodiment, a mixer analyzer is provided. The mixer analyzer is designed to create hybrid effects as a feature of the game. For example, the mixer analyzer can obtain input from a combination of an image analyzer, an acoustic analyzer, an inertial analyzer, and the like. Therefore, in one embodiment, the mixer analyzer may receive several gearing variables that may be mixed and synthesized to create interactions with hybrid results, instructions, or features of the program. Also, it is to be understood that the features of the program include visible objects, invisible objects, variables used in the processing of motion, adjustments to audible responses, and the like.

일 실시형태에서, 사용자의 제어기에 의한 이동이 게임의 특징에 대한 이동 또는 동작으로 번역될 분량은, 설정되거나 결정된 기어링과 적어도 부분적으로 관련될 것이다. 기어링은 게임 동안 동적으로 설정되거나, 미리 설정될 수 있으며 또는 사용자에 의한 게임 플레이 동안 조정될 수 있고, 반응은, 또 다른 수준의 사용자 상호작용 및 향상된 경험을 제공하기 위해 비디오 게임 물체 또는 특징으로 매핑(mapping)된다. In one embodiment, the amount by which the movement by the user's controller will be translated into movement or motion relative to the features of the game will be at least partially related to the gearing set or determined. Gearing can be set dynamically during the game, preset or adjusted during game play by the user, and the response can be mapped to video game objects or features to provide another level of user interaction and enhanced experience. mapping).

본 발명은, 프로세스(process), 장치(apparatus), 시스템, 디바이스(device), 또는 방법을 포함하여, 다양한 방식들로 실시될 수 있다. 본 발명의 수개의 진보적 실시형태들이 이하에서 설명된다. The invention can be implemented in a variety of ways, including as a process, an apparatus, a system, a device, or a method. Several inventive embodiments of the present invention are described below.

일 실시형태에서, 컴퓨터 게임 시스템과 상호작용 인터페이스(interface)하기 위한 방법이 제공된다. 컴퓨터 게임 시스템은 영상 데이터를 캡쳐하기 위한 비디오 게임 장치를 포함한다. 본 방법은, 비디오 캡쳐 장치로의 입력 장치를 디스플레이하는 단계를 포함하고, 입력 장치는, 캡쳐된 영상 데이터의 분석 및 복수의 광들의 상태에 근거하여, 입력 장치의 위치결정 및 컴퓨터 게임 시스템에 의해 해석될 통신 데이터를 전달하도록 변조되는 복수의 광들을 가진다. 본 방법은 또한 컴퓨터 게임 시스템에 의해 실행될 컴퓨터 게임의 물체의 이동을 정의하는 단계를 포함하여, 물체의 이동은, 캡쳐된 영상 데이터에서 검출된 대로 입력 장치의 위치 이동들로 매핑될 수 있다. 그 다음에, 본 방법은, 컴퓨터 게임의 물체의 이동과 입력 장치의 위치 이동들 사이의 기어링을 설립한다. 기어링은, 입력 장치의 위치 이동들과 물체의 이동들 사이의 비율을 설립한다. 기어링은 게임 또는 사용자에 의해 동적으로 설정될 수 있거나, 또는 기어링 알고리즘에 따라 구성된 소프트웨어에 의해 또는 사용자에 의해 미리 설정될 수 있다. In one embodiment, a method is provided for interacting with a computer game system. The computer game system includes a video game device for capturing image data. The method includes displaying an input device to a video capture device, the input device being based on the analysis of the captured image data and the state of the plurality of lights by means of positioning of the input device and a computer game system. It has a plurality of lights that are modulated to convey communication data to be interpreted. The method also includes defining a movement of the object of the computer game to be executed by the computer game system, wherein the movement of the object may be mapped to positional movements of the input device as detected in the captured image data. The method then establishes gearing between the movement of the object of the computer game and the positional movements of the input device. Gearing establishes the ratio between the positional movements of the input device and the movements of the object. Gearing may be set dynamically by the game or the user, or may be preset by the user or by software configured according to the gearing algorithm.

또 다른 실시형태에서, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법이 제공된다. 컴퓨터 게임 시스템은 영상 데이터를 캡쳐하기 위한 비디오 캡쳐 장치를 포함한다. 본 방법은, 비디오 캡쳐 장치로의 입력 장치를 디스플레이하는 단계를 포함하여, 입력 장치는, 캡쳐된 영상 데이터의 분석에 근거하여 입력 장치의 위치결정 및 컴퓨터 게임 시스템에 의해 해석될 통신 데이터를 전달한다. 그 다음에, 본 방법은, 컴퓨터 게임 시스템에 의해 실행될 컴퓨터 게임의 물체 이동을 정의하고, 물체 이동은 캡쳐된 영상 데이터에서 검출된 대로 입력 장치의 위치 이동으로 매핑될 수 있다. 그 다음에 본 방법은, 컴퓨터 게임의 물체 이동과 입력 장치의 위치 이동들 사이의 기어링을 설립한다. 기어링은, 입력 장치의 위치 이동들과 물체의 이동들 사이의 사용자 조정가능 비율을 설립한다. In yet another embodiment, a method for interacting with a computer game system is provided. The computer game system includes a video capture device for capturing image data. The method includes displaying an input device to a video capture device, the input device delivering communication data to be interpreted by a computer game system and positioning of the input device based on the analysis of the captured image data. . The method then defines an object movement of the computer game to be executed by the computer game system, which may be mapped to the position movement of the input device as detected in the captured image data. The method then establishes gearing between the object movement of the computer game and the positional movements of the input device. Gearing establishes a user adjustable ratio between the positional movements of the input device and the movements of the object.

또 다른 실시형태에서, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 프로그램 명령들을 포함하는 컴퓨터 판독가능 매체가 제공된다. 컴퓨터 게임 시스템은 영상 데이터를 캡쳐하기 위한 비디오 캡쳐 장치를 포함한다. 컴퓨터 판독가능 매체는 비디오 캡쳐 장치로의 입력 장치의 디스플레이를 검출하기 위한 프로그램 명령들을 포함하고, 입력 장치는, 캡쳐된 영상 데이터의 분석에 근거하여 입력 장치의 위치 결정 및 컴퓨터 게임 시스템에 의해 해석될 통신 데이터를 전달한다. 컴퓨터 판독가능 매체는 또한 컴퓨터 게임 시스템에 의해 실행될 컴퓨터 게임의 물체 이동을 정의하기 위한 프로그램 명령을 포함하고, 물체 이동은 캡쳐된 영상 데이터에서 검출된 대로 입력 장치의 위치 이동들로 매핑된다. 컴퓨터 판독가능 매체는 또한 컴퓨터 게임의 물체 이동과 입력 장치의 위치 이동들 사이의 기어링을 설립하기 위한 프로그램 명령들을 포함하고, 기어링은, 입력 장치의 위치 이동들과 물체의 이동들 사이의 사용자 조정가능 비율을 설립하도록 구성될 수 있다. 사용자 조정가능 비율은, 게임 플레이 동안, 게임 플레이 세션 전에, 또는 게임 동안의 특정 동작 이벤트들 동안 동적으로 변화될 수 있다. In yet another embodiment, a computer readable medium is provided that includes program instructions for interacting with a computer game system. The computer game system includes a video capture device for capturing image data. The computer readable medium includes program instructions for detecting the display of the input device on the video capture device, the input device being interpreted by the computer game system and the positioning of the input device based on the analysis of the captured image data. Pass communication data. The computer readable medium also includes program instructions for defining object movements of the computer game to be executed by the computer game system, where the object movements are mapped to position movements of the input device as detected in the captured image data. The computer readable medium also includes program instructions for establishing gearing between the object movement of the computer game and the position movements of the input device, wherein the gearing is user adjustable between the position movements of the input device and the movements of the object. It can be configured to establish a ratio. The user adjustable rate may change dynamically during game play, before a game play session, or during certain motion events during the game.

또 다른 실시형태에서, 사용자 동작들과 컴퓨터 프로그램의 물체에 의해 수행될 동작들 사이의 동적 사용자 상호작용을 수행하기 위한 시스템이 제공된다. 본 시스템은, 컴퓨팅 시스템, 컴퓨팅 시스템에 연결된 비디오 캡쳐 장치, 컴퓨팅 시스템으로부터 입력을 수신하는 디스플레이를 포함한다. 본 시스템은 또한 컴퓨팅 시스템에 의해 실행될 컴퓨터 프로그램과 인터페이스하기 위한 입력 장치를 포함한다. 입력 장치는, 제어되는 물체의 이동과 매핑되는 입력 장치의 이동 사이의 비율을 설립하기 위한 기어링 제어를 갖는다. 물체는 컴퓨터 프로그램에 의해 정의되고 컴퓨팅 시스템에 의해 실행된다. 입력 장치의 이동은 비디오 캡쳐 장치에 의해 식별되고, 디스플레이 상에 표시되는 물체의 이동은 입력 장치의 기어링 제어에 의해 설정되는 기어링 값을 갖는다. 이러한 실시형태에서, 입력 장치와 관련된 기어링은 일반적인 어플리케이션(application)에 적용될 수 있고, 반드시 게임에 대한 것이어야 할 필요는 없다. In yet another embodiment, a system is provided for performing dynamic user interaction between user actions and actions to be performed by an object of a computer program. The system includes a computing system, a video capture device coupled to the computing system, and a display that receives input from the computing system. The system also includes an input device for interfacing with a computer program to be executed by the computing system. The input device has gearing control to establish a ratio between the movement of the controlled object and the movement of the mapped input device. Objects are defined by computer programs and executed by computing systems. The movement of the input device is identified by the video capture device, and the movement of the object displayed on the display has a gearing value set by the gearing control of the input device. In this embodiment, the gearing associated with the input device can be applied to a general application and need not necessarily be for a game.

또 다른 실시형태에서, 사용자 동작들과 컴퓨터 프로그램의 물체에 의해 수행될 동작들 사이의 동적 사용자 상호작용을 수행하기 위한 장치가 제공된다. 본 장치는 컴퓨팅 시스템에 의해 실행될 컴퓨터 프로그램과 인터페이스하기위한 입력 장치를 포함한다. 입력 장치는 제어되는 물체의 이동과 매핑되는 입력 장치의 이동 사이의 비율을 설립하기 위한 기어링 제어를 갖는다. 컴퓨터 프로그램에 의해 정의되고 컴퓨팅 시스템에 의해 실행되는 물체, 및 입력 장치의 이동은, 비디오 캡쳐 장치에 의해 식별되고, 물체의 이동은, 입력 장치의 기어링 제어에 의해 설정되는 기어링 값을 갖는 디스플레이에 표시된다. In yet another embodiment, an apparatus is provided for performing dynamic user interaction between user actions and actions to be performed by an object of a computer program. The apparatus includes an input device for interfacing with a computer program to be executed by a computing system. The input device has gearing control to establish a ratio between the movement of the controlled object and the movement of the mapped input device. The object defined by the computer program and executed by the computing system, and the movement of the input device, is identified by the video capture device, and the movement of the object is displayed on the display with the gearing value set by the gearing control of the input device. do.

또 다른 실시형태에서, 기어링은 컴퓨터 프로그램의 특징에 적용될 수 있고, 입력 장치로부터의 검출은 관성 분석기의 처리에 근거할 수 있다. 관성 분석기는 관성 동작에 대한 입력 장치를 추적할 것이며, 그 다음에 관성 분석기는 이러한 정보를 프로그램에 전달할 수 있다. 그 다음에, 기어링 분량이 출력에 적용될 수 있도록, 프로그램은 출력을 관성 분석기로부터 얻을 것이다. 그 다음에, 기어링 분량은, 프로그램이 동작을 연산하는 비율을 지시할 것이다. 동작은 임의의 개수의 형태들을 취할 수 있으며, 동작의 일 실시예는 잡음, 다양한 냄새, 물체에 의한 이동, 또는 변수를 생성하는 것일 수 있다. 출력이 변수라면, 변수(예를 들어, 승산기 등)는 프로세스의 실행을 완료하는 데에 이용될 수 있어, 프로세스는 기어링의 분량을 고려할 것이다. 기어링의 분량은, 미리 설정될 수 있거나, 사용자에 의해 동적으로 설정될 수 있거나, 또는 요구에 따라 조정될 수 있다. In yet another embodiment, gearing may be applied to the features of the computer program and the detection from the input device may be based on the processing of the inertial analyzer. The inertial analyzer will track the input device for inertial motion, which can then pass this information to the program. The program will then obtain the output from the inertial analyzer so that the gearing amount can be applied to the output. The amount of gearing will then indicate the rate at which the program calculates the motion. The operation may take any number of forms, and one embodiment of the operation may be to generate noise, various odors, movement by an object, or a variable. If the output is a variable, a variable (eg multiplier, etc.) can be used to complete the execution of the process, so that the process will consider the amount of gearing. The amount of gearing may be preset, dynamically set by the user, or adjusted as required.

일 실시형태에서, 추적은 음향 분석기에 의해 수행될 수 있다. 음향 분석기는 입력 장치로부터 음향 신호들을 수신하도록 구성되고, 음향 분석기는 수행되는 명령 또는 상호작용에 적용될 기어링 분량을 전달할 수 있다. 음향 분석기는 컴퓨터 프로그램 세그먼트(들)의 형태일 수 있으며, 또는 구체적으로 음향 신호 정보를 처리하도록 고안된 회로에서 정의될 수 있다. 그러므로, 음향 신호 정보는, 프로그램에 의해 동적으로 설정될 수 있고, 입력 장치를 통하여(예를 들어, 제어기 상의 버튼을 선택하거나 음성 명령 등을 통하여) 사용자에 의한 요구에 따라 설정될 수 있는 기어링 데이터를 포함할 수 있다. In one embodiment, tracking can be performed by an acoustic analyzer. The acoustic analyzer is configured to receive acoustic signals from the input device, and the acoustic analyzer can deliver the amount of gearing to be applied to the command or interaction being performed. The acoustic analyzer may be in the form of computer program segment (s) or may be specifically defined in circuitry designed to process acoustic signal information. Therefore, the sound signal information can be set dynamically by a program and gearing data that can be set according to a request by a user through an input device (for example, by selecting a button on a controller or by a voice command or the like). It may include.

또 다른 실시형태에서, 믹서 분석기가 제공된다. 믹서 분석기는 게임의 특징으로의 혼성 효과를 생성하도록 고안 된다. 예를 들어, 믹서 분석기는 영상 분석기, 음향 분석기, 관성 분석기 등의 조합으로부터 입력을 얻을 수 있다. 그러므로, 믹서 분석기는, 일 실시형태에서, 혼성 결과, 명령 또는 프로그램의 특징과의 상호작용을 생성하도록 혼합되고 합성될 수 있는 수개의 기어링 변수들을 수신할 수 있다. 또한 프로그램의 특징은, 가시적 물체, 비가시적 물체, 동작의 처리에 사용되는 변수들, 가청 반응들에 대한 조정들 등을 포함하는 것으로 이해되어야 한다. In yet another embodiment, a mixer analyzer is provided. The mixer analyzer is designed to create hybrid effects as a feature of the game. For example, a mixer analyzer can obtain input from a combination of an image analyzer, an acoustic analyzer, an inertial analyzer, and the like. Therefore, the mixer analyzer may, in one embodiment, receive several gearing variables that may be mixed and synthesized to create interactions with hybrid results, instructions, or features of the program. It is also to be understood that the features of the program include visible objects, invisible objects, variables used in the processing of motion, adjustments to audible responses, and the like.

본 발명의 장점들은, 예를 들어 본 발명의 원리들을 도시하는 첨부된 도면들과 함께, 이하의 실시예들로부터 명확해질 것이다. Advantages of the present invention will become apparent from the following embodiments, for example in conjunction with the accompanying drawings which illustrate the principles of the invention.

본 발명은, 첨부된 도면들과 함께 이하의 실시예에 의해 쉽게 이해될 것이며, 동일한 참조번호들은 동일한 구성요소들을 지칭한다. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will be readily understood by the following embodiments in conjunction with the accompanying drawings, wherein like reference numerals refer to like elements.

도 1은 영상 캡쳐 장치를 갖는 상호작용 게임 셋업(interactive game setup)을 도시한다. 1 illustrates an interactive game setup with an image capture device.

도 2는 비디오 처리 시스템을 이용하는 예시적인 컴퓨터 상호작용을 도시한다. 2 illustrates an example computer interaction using a video processing system.

도 3은 그래픽 디스플레이 상의 물체와 상호작용하기 위한 예시적 사용자 입력 시스템의 블록도이다. 3 is a block diagram of an example user input system for interacting with an object on a graphical display.

도 4는 본 명세서에서 설명되는 본 발명의 실시형태들을 실시하도록 구성된 컴퓨터 처리 시스템의 개략 블록도이다. 4 is a schematic block diagram of a computer processing system configured to implement embodiments of the present invention described herein.

도 5는, 선택적인 입력 장치로서 기능하며 조작되는 물체와 함께 사용하기에 적합한 비디오 게임 콘솔의 구성요소들의 구성의 블록도이다. 5 is a block diagram of the configuration of components of a video game console suitable for use with an object being manipulated and functioning as an optional input device.

도 6은, 사용자에 의해 조작되는 것처럼, 사용자 입력 장치에 대응하는 픽셀(pixel) 그룹을 추적하고 식별하는 데에 이용되는 기능 블록들을 도시하는 블록도이다. FIG. 6 is a block diagram illustrating functional blocks used to track and identify a group of pixels corresponding to a user input device, as manipulated by a user.

도 7은, 예시적 영상 처리 시스템에 대한 개략 블록도를 도시한다. 7 shows a schematic block diagram for an example image processing system.

도 8은 도 7의 영상 처리 시스템에 대한 예시적 응용예를 도시한다. 8 illustrates an example application of the image processing system of FIG. 7.

도 9 및 도 10은, 영상 캡쳐 장치와 상호작용하는 예시적 제어기의 평면도 및 배면도이다. 9 and 10 are top and back views of example controllers interacting with an image capture device.

도 11은, 도 9 및 도 10의 제어기에 대한 예시적 응용예를 도시한다. 11 illustrates an example application for the controller of FIGS. 9 and 10.

도 12는, 도 11에 도시된 응용예에 대한 예시적 소프트웨어 제어 기어링 분량을 도시한다. FIG. 12 shows an exemplary software controlled gearing quantity for the application shown in FIG. 11.

도 13은 스티어링 휠(steering wheel)을 갖는 예시적 제어기를 도시한다. 13 shows an example controller with a steering wheel.

도 14는 도 13의 제어기에 대한 예시적 응용예를 도시한다. FIG. 14 illustrates an example application for the controller of FIG. 13.

도 15는 시간에 대한 기어링 분량의 예시적 변화들을 도시하는 예시적 그래프를 도시한다. FIG. 15 shows an example graph showing example changes in the amount of gearing over time.

도 16은 사용자 상호작용에 대응하는 영상 처리 시스템의 또 다른 예시적 응용예를 도시한다. 16 illustrates another example application of an image processing system corresponding to user interaction.

도 17은 도 16에 도시된 응용예에 대한 야구 배트(bat) 스윙(swing)의 길이를 따르는 다른 시간들에서의 예시적 기어링 분량을 도시하는 그래프를 도시한다. FIG. 17 shows a graph showing an example gearing quantity at different times along the length of a baseball bat swing for the application shown in FIG. 16.

도 18은 사용자 상호작용에 대응하는 영상 처리 시스템의 또 다른 예시적 응용예를 도시한다. 18 illustrates another example application of an image processing system corresponding to user interaction.

도 19는 도 18에 도시된 응용예에 대하여 풋볼(football)을 "릴리스(release)"할 때의 기어링 분량의 예시적 변화를 보여주는 그래프를 도시한다. FIG. 19 shows a graph showing an exemplary change in the amount of gearing when “release” a football for the application shown in FIG. 18.

도 20은 컴퓨터 프로그램으로의 사용자 입력을 수신하기 위한 예시적 과정을 설명하는 순서도를 도시한다. 20 depicts a flowchart illustrating an example process for receiving user input to a computer program.

이하의 실시예에서, 많은 구체적 세부사항들이 본 발명의 완전한 이해를 위해 제시될 것이다. 그러나, 당업자라면, 본 발명이 이러한 구체적 세부사항들의 일부 또는 전부 없이도 실시될 수 있다는 것을 잘 알 것이다. 공지된 과정들은, 본 발명을 불명확하게 하지 않도록 상세하게 설명되지 않을 것이다. In the following examples, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without some or all of these specific details. Known procedures will not be described in detail so as not to obscure the present invention.

본 명세서에서 설명된 기술은 컴퓨터 프로그램과의 상호작용을 위해 동적으로 기어링된 입력들을 제공하는 데에 이용될 수 있다. 일반적으로, 기어링은 크기 및/또는 시간에서 다양한 정도들을 가질 수 있는 입력으로 정의될 수 있다. 그 다음에, 기어링의 정도는 컴퓨팅 시스템으로 전달될 수 있다. 기어링의 정도는 컴퓨팅 시스템에 의해 실행되는 프로세스에 적용될 수 있다. 유추하여, 프로세서는 입력 및 출력을 갖는 물통(bucket)의 유체(fluid)로서 표현될 수 있다. 상기 유체는 시스템에서 실행되는 프로세스이고, 따라서 기어링은 컴퓨팅 시스템에 의해 수행되는 일 양상(an aspect)의 처리를 제어한다. 일 예로서, 기어링은, 물통으로 들어가는 유체의 방울들로서 고려되는 입력 분량에 대하여 유체가 유체 물통으로부터 비워지는 속도를 제어할 수 있다. 그러므로, 충진 속도는 동적이고, 배출 속도도 동적이며, 배출 속도는 기어링에 의해 영향을 받을 수 있다. 그러므로, 기어링은, 게임 프로그램과 같은 프로그램으로 스트리밍될 수 있는 변화 값을 맞추도록 조정되거나 시간설정이 될 수 있다. 기어링은 또한, 프로세서에 의해 동작 또는 게임 요소, 물체, 플레이어, 캐릭터 등을 제어하는 이동 데이터 카운터와 같은 카운터에 영향을 줄 수 있다. The techniques described herein can be used to provide dynamically geared inputs for interaction with a computer program. In general, gearing may be defined as an input that may have varying degrees in size and / or time. Then, the degree of gearing can be transferred to the computing system. The degree of gearing can be applied to the processes executed by the computing system. In analogy, a processor may be represented as a fluid in a bucket having inputs and outputs. The fluid is a process running in the system, so gearing controls the processing of an aspect performed by the computing system. As one example, gearing may control the rate at which the fluid is emptied from the fluid reservoir with respect to the input amount considered as droplets of fluid entering the bucket. Therefore, the filling speed is dynamic, the discharging speed is dynamic, and the discharging speed can be influenced by gearing. Therefore, the gearing can be adjusted or timed to match the change value that can be streamed into a program such as a game program. Gearing can also affect counters, such as movement data counters, which control motion or game elements, objects, players, characters, etc. by the processor.

이러한 유추를 더욱 실체적인 컴퓨팅 예에 행한다면, 유체가 비워지는 속도는, 제어가, 일부 입력과 기어링의 합에 대응하여, 컴퓨터 프로그램의 특징에 의해 통과되거나 실행되는 속도일 수 있다. 컴퓨터 프로그램의 특징은 물체, 프로세스, 변수, 또는 예정/맞춤 알고리즘, 캐릭터, 게임 플레이어, 마우스(2D 또는 3D) 등일 수 있다. 기어링에 의해 변경될 수 있는 처리의 결과는, 임의의 개수의 방식들로 관측자에게 전달될 수 있다. 일 방식으로서, 디스플레이 스크린에서 시각적인 것, 음향에 의해 청취가능한 것, 촉감에 의해 진동, 이들의 조합들 등이 있을 수 있으며, 게임 또는 프로그램의 상호작용 요소에 대한 처리의 변경된 반응에 의해 일어날 수 있다. If such an analogy is made in a more realistic computing example, the speed at which the fluid is emptied can be the speed at which control is passed or executed by the characteristics of the computer program, corresponding to the sum of some input and gearing. Features of the computer program may be objects, processes, variables, or scheduled / custom algorithms, characters, game players, mice (2D or 3D), and the like. The results of the processing, which can be changed by gearing, can be conveyed to the viewer in any number of ways. In one way, there may be visual on the display screen, audible by sound, vibration by touch, combinations thereof, etc., and may occur by altered response of processing to interactive elements of a game or program. have.

입력은 다음을 통하여 수행되는 추적에 의해 획득될 수 있다: (1) 영상 분석, (2) 관성 분석, (3) 음향 분석, 또는 (1), (2) 또는 (3)의 혼성 혼합 분석. 다양한 실시예들이 영상 분석들 및 적용된 기어링과 관련하여 제공되지만, 추적은 비디오에 한정되지 않으며, 다양한 방식들, 구체적으로, 관성 분석, 음향 분석, 이들의 혼합들 및 다른 적합한 분석기들에 의해 성취될 수 있다는 것이 이해되어야 한다. Input can be obtained by tracking performed through: (1) image analysis, (2) inertial analysis, (3) acoustic analysis, or hybrid mixed analysis of (1), (2) or (3). While various embodiments are provided in connection with image analysis and applied gearing, tracking is not limited to video, and may be accomplished by various methods, specifically, inertial analysis, acoustic analysis, mixtures thereof, and other suitable analyzers. It should be understood that it can.

다양한 실시형태들에서, 비디오 카메라(예를 들어, 영상 분석)를 갖는 컴퓨터 또는 게임 시스템은, 영상 데이터를 처리할 수 있으며, 비디오 카메라의 전방에 있는 초점 영역 또는 주어진 체적에서 일어나는 다양한 동작들을 식별할 수 있다. 이러한 동작들은, 전형적으로 3차원 공간의 물체를 이동시키는 것 또는 회전시키는 것, 또는 버튼들, 다이얼들(dials), 조이스틱들(joy sticks) 등과 같은 다양한 제어들을 작동시키는 것을 포함한다. 이러한 기술들에 추가하여, 본 발명의 기술은 또한 디스플레이 스크린(display screen) 상의 하나 이상의 대응 동작들 또는 프로그램의 특징과 관련하여 입력의 감도를 조정하기 위해, 본 명세서에서 기어링으로 칭해지는 스케일링(scaling) 요소를 조정하는 추가적인 기능을 제공한다. 예를 들 어, 디스플레이 스크린 상의 동작들은 비디오 게임의 초점인 물체일 수 있다. 물체는, 또한 변수, 승산기, 또는 음향, 진동, 디스플레이 스크린 상의 영상들 또는 이들의 조합 및 기어링된 출력의 다른 표현들로 렌더링(rendering)될 연산과 같은 프로그램의 특징일 수 있다. In various embodiments, a computer or game system having a video camera (eg, image analysis) can process image data and identify various operations occurring in a given volume or area of focus in front of the video camera. Can be. Such operations typically include moving or rotating an object in three dimensional space, or operating various controls such as buttons, dials, joy sticks, and the like. In addition to these techniques, the technique of the present invention also scales, referred to herein as gearing, to adjust the sensitivity of the input in relation to a feature of a program or one or more corresponding operations on a display screen. ) Provides additional functionality for adjusting elements. For example, the actions on the display screen may be an object that is the focal point of the video game. An object may also be a feature of a program, such as a variable, multiplier, or operation to be rendered into sound, vibration, images on a display screen or combinations thereof, and other representations of geared output.

또 다른 실시형태에서, 기어링은 컴퓨터 프로그램의 특징에 적용될 수 있고, 입력 장치의 검출은 관성 분석기에 의한 처리에 근거할 수 있다. 관성 분석기는 관성 동작에 대하여 입력 장치를 추적할 것이며, 그 다음에 프로그램으로 이에 대한 정보를 전달할 수 있다. 그 다음에, 프로그램은, 기어링 분량이 출력에 적용될 수 있도록 관성 분석기로부터 출력을 얻을 것이다. 그 다음에, 기어링 분량은 프로그램이 동작을 연산할 비율을 지시할 것이다. 동작은 임의의 개수의 형태들을 취할 수 있으며, 동작의 일 실시예는 잡음, 다양한 냄새, 진동, 물체에 의한 이동, 또는 가시적 및/또는 청취가능한 결과를 출력하는 프로그램에 의한 연산을 생성하는 것일 수 있다. 출력이 변수라면, 변수는 프로세스의 실행을 완료하는 데에 이용될 수 있고, 프로세스는 기어링의 분량을 고려할 것이다. 기어링의 분량은 미리 설정될 수있거나, 사용자에 의해 동적으로 설정될 수 있거나, 또는 요구에 따라 조정될 수 있다. In another embodiment, gearing may be applied to the features of the computer program and the detection of the input device may be based on processing by an inertial analyzer. The inertial analyzer will track the input device for inertial motion, which can then pass information to the program. The program will then get the output from the inertial analyzer so that the amount of gearing can be applied to the output. The amount of gearing will then dictate the rate at which the program will compute the motion. The operation may take any number of forms, and one embodiment of the operation may be to generate noise, various odors, vibrations, movement by an object, or operation by a program that outputs visible and / or audible results. have. If the output is a variable, the variable can be used to complete the execution of the process, and the process will take into account the amount of gearing. The amount of gearing may be preset, dynamically set by the user, or adjusted as desired.

다양한 유형들의 관성 센서 장치들은 6개의 자유도들(예를 들어, X, Y 및 Z 병진이동(예를 들어, 가속도) 및 X, Y 및 Z 축들을 중심으로 한 회전)에 대한 정보를 제공하는 데에 이용될 수 있다. 6개의 자유도들에 대한 정보를 제공하기 위한 적합한 관성 센서들의 실시예들은, 가속도계들, 하나 이상의 단일 축 가속도계들, 기계적 자이로스코프들(mechanical gyroscopes), 링 레이저 자이로스코프들(ring layser gyroscopes) 또는 이들 중 2개 이상의 조합들을 포함한다. Various types of inertial sensor devices provide information about six degrees of freedom (e.g., X, Y, and Z translation (e.g., acceleration) and rotation about the X, Y, and Z axes). It can be used to. Embodiments of suitable inertial sensors to provide information about six degrees of freedom include accelerometers, one or more single axis accelerometers, mechanical gyroscopes, ring laser gyroscopes or these Combinations of two or more of them.

센서(들)로부터의 신호들은 본 발명의 방법에 따라 비디오 게임의 플레이 동안 제어기의 움직임 및/또는 방향을 결정하도록 분석될 수 있다. 이러한 방법은, 프로세서 판독가능 매체 내에 저장되고 디지털 프로세서에서 실행되는 일련의 프로세서 실행가능 프로그램 코드 명령들로서 실시될 수 있다. 예를 들어, 비디오 게임 시스템은 하나 이상의 프로세서들을 포함할 수 있다. 각각의 프로세서는, 임의의 적합한 디지털 프로세서, 예를 들어, 비디오 게임 콘솔들에서 통상적으로 사용되는 유형의 마이크로 프로세서 또는 맞춤고안된 멀티-프로세서 코어들일 수 있다. 일 실시형태에서, 프로세서는, 프로세서 판독가능 명령들의 실행을 통하여 관성 분석기를 실시할 수 있다. 명령들의 일부분은 메모리 내에 저장될 수 있다. 선택적으로, 관성 분석기는, 하드웨어, 예를 들어, ASIC(application specific integrated circuit) 또는 DSP(digital signal processor)에서 실시될 수 있다. 이러한 분석기 하드웨어는 제어기 또는 콘솔에 위치될 수 있으며, 또는 원거리의 그 밖의 위치에 위치될 수 있다. 하드웨어 실시형태들에 있어서, 분석기는, 예를 들어, 프로세서로부터의 신호들, 또는 USB 케이블, 이더넷(Ethernet), 네트워크, 인터넷, 단거리 무선 연결, 광대역 무선, 블루투스, 또는 로컬 네트워크를 통하여 연결된 원거리에 위치된 다른 소스(source)로부터의 외부 신호들에 반응하여 프로그래밍될 수 있다. The signals from the sensor (s) can be analyzed to determine the motion and / or direction of the controller during play of the video game in accordance with the method of the present invention. This method may be embodied as a series of processor executable program code instructions stored in a processor readable medium and executed on a digital processor. For example, a video game system can include one or more processors. Each processor may be any suitable digital processor, for example a microprocessor of the type commonly used in video game consoles or custom multi-processor cores. In one embodiment, the processor may implement the inertial analyzer through execution of processor readable instructions. Portions of the instructions may be stored in memory. Optionally, the inertial analyzer can be implemented in hardware, for example, an application specific integrated circuit (ASIC) or a digital signal processor (DSP). Such analyzer hardware may be located in a controller or console, or may be located elsewhere in the distance. In hardware embodiments, the analyzer may, for example, be connected to signals from a processor or to a remote connection via a USB cable, Ethernet, network, Internet, short range wireless connection, broadband wireless, Bluetooth, or local network. It can be programmed in response to external signals from another source located.

관성 분석기는, 관성 센서들에 의해 생성되는 신호들을 분석하고 제어기의 위치 및/또는 방향에 관한 정보를 이용하는 명령들을 포함하거나 실시할 수 있다. 관성 센서 신호들은 제어기의 위치 및/또는 방향에 관한 정보를 결정하도록 분석될 수 있다. 위치 및/또는 방향 정보는 시스템과 함께 비디오 게임의 플레이 동안 이용될 수 있다. The inertial analyzer may include or execute instructions that analyze the signals generated by the inertial sensors and use information regarding the position and / or orientation of the controller. Inertial sensor signals can be analyzed to determine information regarding the position and / or orientation of the controller. Location and / or orientation information may be used during the play of a video game with the system.

일 실시형태에서, 게임 제어기는, 관성 신호를 통해 프로세서로 위치 및/또는 방향 정보를 제공할 수 있는, 하나 이상의 관성 센서들을 포함할 수 있다. 방향 정보는, 제어기의 틸트(tilt), 롤(roll) 또는 요(yaw)와 같은 각도 정보를 포함할 수 있다. 이상에서 언급된 것처럼, 예를 들어, 관성 센서들은 임의의 개수 및/또는 조합의 가속도계들, 자이로스코프들 또는 틸트 센서들을 포함할 수 있다. 일 실시형태에서, 관성 센서들은 틸트 및 롤 축들과 관련하여 조이스틱 제어기의 방향을 감지하기에 적합한 틸트 센서들, 요 축을 따르는 가속도를 감지하기에 적합한 제 1 가속도계, 및 요 축과 관련하여 각 가속도를 감지하기에 적합한 제 2 가속도계를 포함한다. 가속도계는, 예를 들어, 하나 이상의 방향들과 관련된 질량의 변위를 감지하기 위한 센서들과 함께 하나 이상의 스프링들에 의해 실장된 질량을 포함하는 MEMS 장치로서 실시될 수 있다. 질량의 변위에 의존하는 센서들로부터의 신호들은 조이스틱 제어기의 가속도를 결정하는 데에 사용될 수 있다. 이러한 기술들은, 메모리 내에 저장될 수 있고 프로세서에 의해 실행될 수 있는, 게임 프로그램 또는 일반적인 프로그램으로부터의 명령들에 의해 실시될 수 있다. In one embodiment, the game controller may include one or more inertial sensors, which may provide position and / or direction information to the processor via an inertial signal. The direction information may include angle information such as tilt, roll or yaw of the controller. As mentioned above, for example, inertial sensors may include any number and / or combination of accelerometers, gyroscopes, or tilt sensors. In one embodiment, the inertial sensors are tilt sensors suitable for sensing the direction of the joystick controller with respect to the tilt and roll axes, a first accelerometer suitable for sensing acceleration along the yaw axis, and angular acceleration with respect to the yaw axis. A second accelerometer suitable for sensing. The accelerometer may be implemented as a MEMS device, for example comprising a mass mounted by one or more springs with sensors for sensing a displacement of the mass in relation to one or more directions. Signals from sensors that depend on the displacement of the mass can be used to determine the acceleration of the joystick controller. Such techniques may be implemented by instructions from a game program or a general program, which may be stored in memory and executed by a processor.

예를 들어, 관성 센서로서 적합한 가속도계는, 예를 들어, 스프링들에 의해 프레임(frame)에 3개 또는 4개의 점들에서 탄성적으로 결합된 단순 질량일 수 있다. 피치(pitch) 및 롤 축들은, 조이스틱 제어기에 실장되는 프레임과 교차하는 평 면 내에 놓여 있다. 프레임( 및 조이스틱 제어기)이 피치 및 롤 축들을 중심으로 회전함에 따라, 질량은 중력의 영향 하에서 이동할 것이며, 스프링들은 피치 및/또는 롤의 각도에 의존하는 방식으로 연장되거나 압축될 것이다. 질량의 변위는, 피치 및/또는 롤의 분량에 의존하는 신호로 감지되고 변환될 수 있다. 요 축을 중심으로 한 각 가속도 또는 요 축을 따르는 선형 가속도는, 각 또는 선형 가속도의 분량에 의존하는 신호들로 감지되고 변환될 수 있는 스프링들의 압축 및/또는 연장, 또는 질량의 움직임의 특성 패턴들을 생성할 수 있다. 이러한 가속도계 장치는, 질량의 이동 또는 스프링들의 압축 및 팽창 힘들을 추적함으로써 요 축을 중심으로 한 틸트, 롤 각 가속도 및 요 축을 따르는 선형 가속도를 측정할 수 있다. 내변형성 계량 물질, 광 센서들, 자기 센서들, 홀-효과 장치들, 압전 장치들, 정전용량 센서들 등을 포함하여, 질량의 위치 및/또는 질량에 미치는 힘들을 추적하는 다수의 다른 방식들이 있다. For example, an accelerometer suitable as an inertial sensor can be, for example, a simple mass elastically coupled at three or four points in the frame by springs. The pitch and roll axes lie in a plane that intersects the frame mounted to the joystick controller. As the frame (and joystick controller) rotates about the pitch and roll axes, the mass will move under the influence of gravity and the springs will extend or compress in a manner that depends on the angle of the pitch and / or roll. The displacement of the mass can be sensed and converted into a signal that depends on the pitch and / or amount of roll. Angular acceleration about the yaw axis or linear acceleration along the yaw axis produces characteristic patterns of compression and / or extension of springs or mass movement that can be detected and converted into signals depending on the amount of angular or linear acceleration. can do. Such accelerometer devices can measure tilt around the yaw axis, roll angular acceleration and linear acceleration along the yaw axis by tracking the movement of mass or compression and expansion forces of the springs. Numerous other ways of tracking the force on the location and / or mass of the mass, including strain-resistant metering materials, light sensors, magnetic sensors, hall-effect devices, piezoelectric devices, capacitive sensors, and the like have.

게다가, 광원들은, 예를 들어, 펄스 코드(pulse code), 진폭 변조 또는 주파수 변조 포맷(frequency modulation format)으로 원격 측정 신호들을 프로세서에 제공할 수 있다. 이러한 원격 측정 신호들은 어떤 버튼들이 눌려지고 있는지 및/또는 이러한 버튼들이 얼마나 세게 눌려지고 있는지를 가리킬 수 있다. 원격 측정 신호들은, 예를 들어, 펄스 코딩(pulse coding), 펄스 폭 변조(pulse width modulation), 주파수 변조 또는 광 세기(진폭) 변조에 의해 광학 신호로 엔코딩(encoding)될 수 있다. 프로세서는 광학 신호로부터 원격 측정 신호를 디코딩(decoding)할 수 있고, 디코딩된 원격 측정 신호에 대응하여 게임 명령을 실행할 수 있다. 원격 측정 신호들은, 영상 캡쳐 유닛에 의해 획득된 조이스틱 제어기의 영상들의 분석으로부터 디코딩될 수 있다. 선택적으로, 장치는, 광원들로부터의 원격 측정 신호 수신 전용인 분리된 광 센서를 포함할 수 있다. In addition, the light sources can provide telemetry signals to the processor, for example, in a pulse code, amplitude modulation or frequency modulation format. These telemetry signals can indicate which buttons are being pressed and / or how hard these buttons are being pressed. Telemetry signals may be encoded into an optical signal by, for example, pulse coding, pulse width modulation, frequency modulation, or light intensity (amplitude) modulation. The processor may decode the telemetry signal from the optical signal and execute game instructions in response to the decoded telemetry signal. The telemetry signals can be decoded from the analysis of the images of the joystick controller obtained by the image capture unit. Optionally, the apparatus may include a separate light sensor dedicated to receiving telemetry signals from light sources.

프로세서는, 영상 캡쳐 유닛에 의해 검출된 광원들로부터의 광학 신호들 및/또는 마이크로폰 배열에 의해 검출된 음향 신호들로부터의 음원 위치 및 특성 정보와 함께 관성 센서로부터의 관성 신호들을 사용하여, 제어기 및/또는 사용자의 위치 및/또는 방향에 대한 정보를 유추한다. 예를 들어, "음향 레이더" 음원 위치 및 특성은, 조이스틱 제어기의 움직임이 (관성 센서들 및/또는 광원들을 통하여) 독립적으로 추적되는 동안 이동 음성(moving voice)을 추적하기 위해 마이크로폰 배열과 함께 사용될 수 있다. 음향 레이더에서, 미리 정해진 청취 영역이 실행 시간에 선택되고, 미리 정해진 청취 영역의 외부 소스들로부터 발생하는 음향들은 여과되어 제거된다. 미리 정해진 청취 영역들은 영상 캡쳐 유닛의 초점 체적 또는 필드에 대응하는 청취 영역을 포함할 수 있다. The processor uses the inertial signals from the inertial sensor together with the sound source position and characteristic information from the optical signals from the light sources detected by the image capturing unit and / or the acoustic signals detected by the microphone array. And / or infer information about the user's location and / or orientation. For example, the "sound radar" sound source position and characteristics may be used with the microphone array to track the moving voice while the movement of the joystick controller is tracked independently (via inertial sensors and / or light sources). Can be. In the acoustic radar, a predetermined listening area is selected at run time, and sounds generated from external sources of the predetermined listening area are filtered out. The predetermined listening areas may include a listening area corresponding to a focal volume or field of the image capturing unit.

일 실시형태에서, 추적은 음향 분석기에 의해 수행될 수 있다. 음향 분석기는 입력 장치로부터 음향 신호들을 수신하도록 구성되고, 음향 분석기는 수행되는 명령 또는 상호작용에 적용될 기어링 분량을 전달할 수 있다. 음향 분석기는 컴퓨터 프로그램 세그먼트(들)의 형태일 수 있거나 또는 구체적으로 음향 신호 정보를 처리하도록 고안된 회로에서 정의될 수 있다. 그러므로, 음향 신호 정보는, 프로그램에 의해 동적으로 설정되고, 입력 장치를 통하여(예를 들어, 제어기 상의 버튼을 선택하거나 음성 명령 등을 통하여) 사용자에 의한 요구에 따라 설정될 수 있는 기 어링 데이터를 포함할 수 있다. 음향 분석기의 일 실시예가 2006년 5월4일에 출원된 미국특허출원 "컴퓨터 상호작용 처리를 갖는 선택적 음원 청취"(샤오동 마오(Xiadong Mao), 리차드 엘. 막스(Richard L. Marks) 및 게리 엠. 제일러스키(Gary M. Zalewski); 대리인 참조번호 SCEA04005JUMBOUS)에 기술되어 있다. In one embodiment, tracking can be performed by an acoustic analyzer. The acoustic analyzer is configured to receive acoustic signals from the input device, and the acoustic analyzer can deliver the amount of gearing to be applied to the command or interaction being performed. The acoustic analyzer may be in the form of computer program segment (s) or may be specifically defined in circuitry designed to process acoustic signal information. Therefore, the acoustic signal information is dynamically set by the program and receives gearing data that can be set according to a request by a user through an input device (for example, by selecting a button on a controller or by a voice command or the like). It may include. One embodiment of an acoustic analyzer is described in US patent application “Selective sound source with computer interaction processing” filed May 4, 2006 (Xiadong Mao, Richard L. Marks and Gary). Gary M. Zalewski; agent reference SCEA04005JUMBOUS.

분석기들은 매핑 체인(mapping chain)과 함께 구성될 수 있다. 매핑 체인들은, 분석기 및 믹서로 세팅(setting)될 수 있는 것처럼 게임-플레이 동안 게임에 의해 교환될 수 있다. Analyzers can be configured with a mapping chain. The mapping chains can be exchanged by the game during game-play as can be set with the analyzer and the mixer.

일 실시형태에서, 입력 장치의 추적은 영상 분석기에 의해 수행될 수 있다. 영상 분석기는, 이하에서 논의되는 것처럼, 사용자 및 입력 장치가 위치되는 공간의 영상들을 캡쳐하는 카메라를 포함할 수 있다. 일 실시예에서, 영상 분석기는 처리 프로그램의 특징으로의 각각의 동작을 일으키는 제어기의 위치를 결정하고 있다. 프로그램은 게임일 수 있고, 특징은 입력 장치에 의해 제어되는 물체일 수 있다. 영상 분석기는 또한 위치 데이터를 입력 기어링 값과 혼합하도록 구성된다. 기어링 값은 실행 동안 동적으로 사용자에 의해 제공될 수 있으며, 또는 실행 세션 내의 동작에 의존하는 프로그램에 의해 설정될 수 있다. 기어링 입력은, 사용자에 의한 입력 동작에 근거하여 컴퓨터 프로그램에 의해 일부 처리에 대한 상대적인 영향을 설정할 것이다. 일 실시형태에서, 기어링은, 사용자 또는 사용자 입력 장치로부터의 명령 또는 동작을 프로그램의 특징으로 번역할 것이다. 프로그램의 특징은 가시적인 물체일 필요는 없지만, 일부 파라미터를 계산하는 데에 사용되는 변수의 조정, 음향, 진동 또는 영상 이동의 평가 또는 번역을 포함할 수 있다. 그러므로, 기어링은, 프로그램 및 프로그램의 특징들로 제공되는 상호작용에 대한 제어의 추가적 감지를 제공할 것이다. In one embodiment, tracking of the input device may be performed by an image analyzer. The image analyzer may include a camera that captures images of the space in which the user and the input device are located, as discussed below. In one embodiment, the image analyzer is determining the location of the controller that causes each action as a feature of the processing program. The program may be a game and the feature may be an object controlled by the input device. The image analyzer is also configured to mix the position data with the input gearing values. The gearing value may be provided by the user dynamically during execution, or may be set by a program that depends on the actions in the execution session. The gearing input will set the relative impact on some processing by the computer program based on the input action by the user. In one embodiment, gearing will translate the commands or actions from the user or user input device into features of the program. Features of the program need not be visible objects, but may include adjustment of variables used to calculate some parameters, evaluation or translation of acoustic, vibration, or image movement. Therefore, gearing will provide additional sensing of control over the interaction provided by the program and its features.

또 다른 실시형태에서, 믹서 분석기가 제공된다. 믹서 분석기는 게임의 특징으로의 혼성 효과를 생성하도록 고안 된다. 예를 들어, 믹서 분석기는, 영상 분석기, 음향 분석기, 관성 분석기 등의 조합으로부터의 입력을 얻을 수 있다. 그러므로, 믹서 분석기는, 혼성 결과, 명령 또는 프로그램의 특징과의 상호작용을 생성하도록 혼합되고 합성될 수 있는 수개의 기어링 변수들을 수신할 수 있다. 또한, 프로그램의 특징은, 가시적 물체 및 비가시적 물체, 동작의 처리에 사용되는 변수들, 가청 반응들에 대한 조정들 등을 포함하는 것으로 이해되어야 한다. In yet another embodiment, a mixer analyzer is provided. The mixer analyzer is designed to create hybrid effects as a feature of the game. For example, the mixer analyzer can obtain input from a combination of an image analyzer, an acoustic analyzer, an inertial analyzer, and the like. Therefore, the mixer analyzer can receive several gearing variables that can be mixed and synthesized to produce an interaction with the hybrid result, instruction or program feature. In addition, the features of the program should be understood to include visible and invisible objects, variables used in the processing of motion, adjustments to audible responses, and the like.

도 1은, 본 발명의 일 실시형태에 따른, 상호작용 게임 셋업(100)을 도시한다. 상호작용 게임 셋업(100)은 디스플레이 스크린(110)에 연결되는, "콘솔"로 칭해지는 컴퓨터(102)를 포함한다. 영상 캡쳐 장치(105)는 디스플레이 스크린(110)의 위에 위치될 수 있고, 컴퓨터(102)에 연결된다. 일 실시형태에서, 컴퓨터(102)는, 사용자들이 비디오 게임들을 플레이하고 제어기들(108)을 통하여 비디오 게임들과 인터페이스하는 것을 가능하게 하는 게임 시스템 콘솔이다. 컴퓨터(102)는 또한 상호작용 온라인 게임을 가능하게 하기 위해 인터넷에 연결될 수 있다. 영상 캡쳐 장치(105)는 디스플레이 스크린(110)의 위에 위치된 것으로 도시되지만, 영상 캡쳐 장치(105)는, 디스플레이 스크린(110)의 대략 전방에 위치되는 영상들을 캡쳐하는 것을 가능하게 하는 임의의 다른 근사적인 위치에 위치될 수 있다. 이러한 이동들 및 상호작용들을 캡쳐하기 위한 기술들은 다양하며, 예시적 기술들이, 2003년 2월 21일에 출원된 영국특허출원 GB 0304024.3(PCT/GB2004/000693) 및 GB 0304022.7(PCT/GB2004/000703)에 기술되어 있다. 1 illustrates an interactive game setup 100, in accordance with an embodiment of the present invention. The interactive game setup 100 includes a computer 102 called a “console” that is connected to the display screen 110. The image capture device 105 may be located above the display screen 110 and connected to the computer 102. In one embodiment, computer 102 is a game system console that enables users to play video games and interface with video games through controllers 108. Computer 102 may also be connected to the Internet to enable interactive online gaming. Although image capture device 105 is shown positioned above display screen 110, image capture device 105 may be any other that enables capturing images located approximately in front of display screen 110. It may be located in an approximate location. Techniques for capturing such movements and interactions are various, and exemplary techniques are described in British patent applications GB 0304024.3 (PCT / GB2004 / 000693) and GB 0304022.7 (PCT / GB2004 / 000703, filed February 21, 2003). ).

일 실시형태에서, 영상 캡쳐 장치(105)는 표준 웹-캠(web-cam)과 같이 단순할 수 있고 또는 더욱 진보된 기술을 포함할 수 있다. 영상 캡쳐 장치(105)는 영상들을 캡쳐하고, 영상들을 디지털화하고, 영상 데이터를 컴퓨터(102)에 전달할 수 있다. 일부 실시형태들에 있어서, 영상 캡쳐 장치는, 디지털화, 및 영상 캡쳐 장치(105)가 디지털화를 위하여 컴퓨터(102)에 아날로그 비디오 신호를 전달할 또 다른 실시형태를 수행하기 위해 집적된 논리를 가질 것이다. 어느 경우든, 영상 캡쳐 장치(105)는, 영상 캡쳐 장치(105)의 전방에 위치된 물체의 컬러 또는 흑백 영상들을 캡쳐할 수 있다. In one embodiment, the image capture device 105 may be as simple as a standard web-cam or may include more advanced technology. The image capture device 105 may capture images, digitize the images, and transfer the image data to the computer 102. In some embodiments, the image capture device will have integrated logic to perform digitization, and another embodiment where the image capture device 105 will deliver an analog video signal to the computer 102 for digitization. In either case, the image capture device 105 may capture color or black and white images of an object located in front of the image capture device 105.

도 2는, 영상 캡쳐 및 처리 시스템을 이용하는 예시적 컴퓨터 상호작용을 도시한다. 컴퓨터(102)는 영상들을 시야(202)로부터 생성하는 영상 캡쳐 장치(105)로부터의 영상 데이터를 수신한다. 시야(202)는 장난감 비행기의 형상의 물체(215)를 조작하는 사용자(210)를 포함한다. 물체(215)는 영상 캡쳐 장치(105)에 의해 볼 수 있는 복수의 LED들(212)을 포함한다. LED들(212)은 물체(215)의 위치 및 방향 정보를 제공한다. 게다가, 물체(215)는 컴퓨터 입력을 생성하기 위한 버튼, 방아쇠, 다이얼 등과 같은 하나 이상의 작동 요소들을 포함할 수 있다. 또한 음성 명령들이 사용될 수 있다. 일 실시형태에서, 물체(215)는, 영상 캡쳐 장치(105)를 통하여 데이터를 컴퓨터(102)로 전달하기 위한 LED들(212)을 변조하기 위해 논리를 포함하는 회로(220)를 포함한다. 데이터는 작동 수단의 조작들에 반응하여 생성되는 엔코딩 된 명령들을 포함할 수 있다. 물체(215)가 영상 캡쳐 장치(105)에 의해 보여질 수 있는 3차원 공간에서 이동되고 회전됨에 따라, 영상 데이터에서 표현되는 LED 위치들은, 도 3 내지 도 6을 참조하여 설명되는 것처럼, 3차원 공간 내의 좌표들, α, β, γ 값들을 이용한 방향 정보뿐만 아니라, x, y 및 z 좌표들을 이용한 위치 정보를 설명하는 좌표들로 번역된다. 좌표들은, 장난감 항공기가, 장난감 항공기(215)의 조작에 반응하여 다양한 스턴트들을 수행하는 실제 또는 실제처럼 움직이는 항공기(215')로서 디스플레이(110)에 표현되는 항공기 게임일 수 있는 컴퓨터 어플리케이션으로 전달된다. 선택적으로, 장난감 항공기(215) 대신에, 사용자(210)는 (도 1에 도시된) 제어기(108)를 조작할 수 있고, 제어기(108)의 이동은 추적될 수 있으며, 디스플레이 스크린 상의 물체의 이동을 일으키기 위해 명령들이 캡쳐될 수 있다. 2 illustrates an example computer interaction using an image capture and processing system. Computer 102 receives image data from image capture device 105 that generates images from field of view 202. The field of view 202 includes a user 210 for manipulating an object 215 in the shape of a toy plane. Object 215 includes a plurality of LEDs 212 that can be seen by image capture device 105. LEDs 212 provide location and orientation information of object 215. In addition, object 215 may include one or more actuation elements, such as buttons, triggers, dials, and the like, for generating computer input. Voice commands can also be used. In one embodiment, object 215 includes circuitry 220 including logic to modulate LEDs 212 for transferring data to computer 102 through image capture device 105. The data may comprise encoded instructions generated in response to operations of the actuating means. As the object 215 is moved and rotated in a three-dimensional space that can be seen by the image capture device 105, the LED positions represented in the image data are three-dimensional, as described with reference to FIGS. 3 to 6. Coordinates in the space, as well as direction information using α, β, and γ values, are translated into coordinates describing position information using x, y and z coordinates. The coordinates are passed to a computer application where the toy aircraft may be an aircraft game represented on the display 110 as a real or realistically moving aircraft 215 'that performs various stunts in response to manipulation of the toy aircraft 215. . Optionally, instead of the toy aircraft 215, the user 210 can operate the controller 108 (shown in FIG. 1), the movement of the controller 108 can be tracked, and the movement of the object on the display screen. Instructions can be captured to cause movement.

일 실시형태에서, 사용자(210)는, 실제처럼 움직이는 항공기(215')와의 상호작용의 정도를 변화시키거나 변경하도록 선택할 수 있다. 상호작용의 정도는, 사용자의 제어기(108)( 또는 장난감 항공기(215))가 실제처럼 움직이는 항공기(215')에 의한 이동으로 매핑될 분량을 조정할 "기어링" 분량을 사용자(215)가 조정하는 것을 가능하게 함으로써 변경될 수 있다. 동적으로 설정되거나, 게임에 대하여 미리 설정되거나, 사용자(210)에 의해 게임 플레이 동안 조정될 수 있는 기어링에 따라서, (예를 들어 비디오 게임 물체와 같은) 실제처럼 움직이는 항공기(215')로 매핑되는 반응은 또 다른 수준의 사용자 상호작용 및 향상된 경험을 제공하도록 변화할 것이다. 기어링에 관한 또 다른 세부사항들이 도 7 내지 도 20을 참조하여 이하에 서 제공될 것이다. In one embodiment, the user 210 may choose to change or change the degree of interaction with the aircraft 215 'that is moving in the real world. The degree of interaction is such that the user 215 adjusts the amount of "gearing" that the user's controller 108 (or toy aircraft 215) will adjust to the amount that will be mapped to the movement by the aircraft 215 'which is in motion. By making it possible. Reactions that are mapped to realistically moving aircraft 215 '(e.g., video game objects), depending on the gearing that can be set dynamically, preset for the game, or adjusted by the user 210 during gameplay. Will change to provide another level of user interaction and an improved experience. Further details regarding gearing will be provided below with reference to FIGS. 7-20.

도 3은, 본 발명의 실시형태들을 실시하기 위해 사용될 수 있는 그래픽 디스플레이 상의 물체와 상호작용하기 위한 예시적 사용자 입력 시스템의 블록도이다. 도 3에 도시된 것처럼, 사용자 입력 시스템은 비디오 캡쳐 장치(300), 입력 영상 프로세서(302), 출력 영상 프로세서(304), 및 비디오 디스플레이 장치(306)로 이루어진다. 비디오 캡쳐 장치(300)는 비디오 영상들의 시퀀스들을 캡쳐할 수 있는 임의의 장치일 수 있으며, 일 실시형태에서 ("웹-캠"과 같은) 디지털 비디오 카메라이거나, 유사한 영상 캡쳐 장치이다. 3 is a block diagram of an example user input system for interacting with an object on a graphical display that can be used to practice embodiments of the present invention. As shown in FIG. 3, the user input system consists of a video capture device 300, an input image processor 302, an output image processor 304, and a video display device 306. Video capture device 300 may be any device capable of capturing sequences of video images, and in one embodiment is a digital video camera (such as a “web-cam”), or a similar image capture device.

비디오 캡쳐 장치(300)는 깊이 영상을 제공하도록 구성될 수 있다. 상세한 설명에서, 용어들 "깊이 카메라" 및 "3차원 카메라"는, 2차원 픽셀 정보뿐만 아니라 거리 또는 깊이 정보를 획득할 수 있는 임의의 카메라를 칭한다. 예를 들어, 깊이 카메라는 거리 정보를 획득하기 위해 제어된 적외선 광을 이용할 수 있다. 또 다른 예시적 깊이 카메라는 2개의 표준 카메라들을 이용하여 거리 정보를 삼각측량하는 스테레오 카메라 쌍일 수 있다. 유사하게, 용어 "깊이 감지 장치"는 2차원 픽셀 정보뿐만 아니라 거리 정보를 획득할 수 있는 임의의 유형의 장치를 칭한다. The video capture device 300 may be configured to provide a depth image. In the detailed description, the terms “depth camera” and “three-dimensional camera” refer to any camera capable of obtaining distance or depth information as well as two-dimensional pixel information. For example, the depth camera may use controlled infrared light to obtain distance information. Another example depth camera may be a stereo camera pair that triangulates distance information using two standard cameras. Similarly, the term “depth sensing device” refers to any type of device capable of obtaining distance information as well as two-dimensional pixel information.

그러므로, 카메라(300)는 표준 2차원 비디오 영상에 추가하여 제 3 차원을 캡쳐하고 매핑하는 능력을 제공할 수 있다. 표준 카메라들과 유사하게, 깊이 카메라는 비디오 영상을 포함하는 복수의 픽셀들에 대하여 2차원 데이터를 캡쳐한다. 이러한 값들은 픽셀들에 대한 색상 값들, 일반적으로, 각각의 픽셀에 대한 적색, 녹색, 및 청색(red, green, and blue; RGB) 값들이다. 이런 식으로, 카메라에 의해 캡쳐된 물체들은 모니터 상의 2차원 물체들로서 나타난다. 그러나, 통상의 카메라와 달리, 깊이 카메라는 또한 장면에 대한 깊이 값들을 표현하는 장면의 z-요소들을 캡쳐한다. 깊이 값들이 전형적으로 z-축에 할당되기 때문에, 깊이 값들은 종종 z-값들로서 칭해진다. Thus, camera 300 may provide the ability to capture and map a third dimension in addition to a standard two-dimensional video image. Similar to standard cameras, the depth camera captures two-dimensional data for a plurality of pixels containing a video image. These values are color values for the pixels, generally red, green, and blue (RGB) values for each pixel. In this way, objects captured by the camera appear as two-dimensional objects on the monitor. However, unlike a conventional camera, a depth camera also captures z-elements of the scene that represent depth values for the scene. Because depth values are typically assigned to the z-axis, depth values are often referred to as z-values.

동작 중에, z-값은 장면의 각각의 픽셀에 대하여 캡쳐된다. 각각의 z-값은, 카메라로부터 관련된 픽셀에 대응하는 장면 내의 특정 물체로의 거리를 표현한다. 게다가, 최대 검출 범위는 깊이 값들이 검출되지 않기 시작하는 범위로 정의된다. 이러한 최대 범위 평면은, 사용자 정의 물체 추적을 제공하기 위해 본 발명의 실시형태들에 의해 이용될 수 있다. 그러므로, 깊이 카메라를 이용하여, 각각의 물체는 3차원으로 추적될 수 있다. 결과적으로, 본 발명의 실시형태들의 컴퓨터 시스템은 사용자에 대한 향상된 3차원 상호작용 환경을 생성하기 위해 2차원 픽셀 데이터를 따라 z-값들을 이용할 수 있다. 깊이 분석에 대한 더 많은 정보는, 2003년 5월29일에 출원된 미국특허출원 제10/448,614호, 실시간 3차원 상호작용 환경을 제공하는 시스템 및 방법을 참조하여 얻어진다. In operation, a z-value is captured for each pixel of the scene. Each z-value represents a distance from a camera to a particular object in the scene corresponding to the associated pixel. In addition, the maximum detection range is defined as the range in which depth values begin not to be detected. This maximum range plane can be used by embodiments of the present invention to provide user defined object tracking. Therefore, using a depth camera, each object can be tracked in three dimensions. As a result, the computer system of embodiments of the present invention may use z-values along the two-dimensional pixel data to create an improved three-dimensional interaction environment for the user. More information on depth analysis is obtained with reference to US patent application Ser. No. 10 / 448,614, filed May 29, 2003, systems and methods for providing a real-time three-dimensional interaction environment.

깊이 카메라가 일 실시형태에 따라서 사용될지라도, 3차원 공간 내의 물체의 위치 및 좌표들을 식별하는 데에 필요한 것으로 해석되어서는 안 된다. 예를 들어, 도 2에 도시된 시나리오에서, 물체(215)와 카메라(105) 사이의 거리는 최좌측 및 최우측 LED들(212)의 거리를 측정함으로써 추론될 수 있다. LED들(212)이 영상 캡쳐 장치(105)에 의해 생성된 영상에서 더 가까워지면, 물체(215)는 카메라(105)로부터 더 멀어진다. 그러므로, z-축 좌표들의 합리적으로 정확한 추정은 전형적 디 지털 카메라에 의해 생성된 2차원 영상들로부터 행해질 수 있다. Although a depth camera is used in accordance with one embodiment, it should not be construed as necessary to identify the position and coordinates of an object in three-dimensional space. For example, in the scenario shown in FIG. 2, the distance between the object 215 and the camera 105 can be inferred by measuring the distance of the leftmost and rightmost LEDs 212. As the LEDs 212 get closer to the image generated by the image capture device 105, the object 215 is further away from the camera 105. Therefore, reasonably accurate estimation of z-axis coordinates can be made from two-dimensional images generated by a typical digital camera.

도 3에 따르면, 입력 영상 프로세서(302)는 제어 물체의 (깊이 영상들일 수 있는) 캡쳐된 비디오 영상들을, 출력 영상 프로세서로 전달되는 신호들로 번역한다. 일 실시형태에서, 입력 영상 프로세서(302)는, 깊이 정보를 통하여 캡쳐된 비디오 영상 내의 배경으로부터 제어 물체를 분리시키고 제어 물체의 위치 및/또는 이동에 반응하여 출력 신호를 생성하도록 프로그래밍된다. 출력 영상 프로세서(304)는, 입력 영상 프로세서(302)로부터 수신된 신호들에 반응하여 비디오 디스플레이 장치(306) 상의 물체의 병진 및/또는 회전 이동에 영향을 주도록 프로그래밍된다. According to FIG. 3, the input image processor 302 translates the captured video images (which may be depth images) of the control object into signals delivered to the output image processor. In one embodiment, the input image processor 302 is programmed to separate the control object from the background in the captured video image via depth information and generate an output signal in response to the position and / or movement of the control object. The output image processor 304 is programmed to influence translational and / or rotational movement of an object on the video display device 306 in response to signals received from the input image processor 302.

본 발명의 이러한 추가적 영상들은 소프트웨어 명령들을 실행하는 하나 이상의 프로세서들에 의해 실시될 수 있다. 본 발명의 일 실시형태에 따르면, 단일 프로세서는 입력 영상 처리 및 출력 영상 처리 모두를 실행시킨다. 그러나, 도면들에 도시된 것처럼, 처리 동작들은 입력 영상 프로세서(302)와 출력 영상 프로세서(304) 사이에서 분할되는 것처럼 도시되어 있다. 본 발명은, 2개 이상의 프로세서와 같은 특정 프로세서 구성으로 제한되는 것으로 해석되어서는 안 된다. 도 3에 도시된 복수 처리 블록들은 설명의 편의를 위해서만 도시된 것이다. These additional images of the present invention may be implemented by one or more processors executing software instructions. According to one embodiment of the invention, a single processor executes both input image processing and output image processing. However, as shown in the figures, processing operations are shown as being split between the input image processor 302 and the output image processor 304. The invention should not be construed as limited to any particular processor configuration, such as two or more processors. The plurality of processing blocks shown in FIG. 3 are shown for convenience of description only.

도 4는, 본 명세서에서 설명된 본 발명의 실시형태들을 실시하도록 구성된 컴퓨터 처리 시스템의 개략 블록도이다. 처리 시스템은, 주 메모리(420)에 연결된 중앙 처리 유닛(CPU; central processing unit; 424) 및 그래픽 처리 유닛(GPU; graphical processing unit; 426)을 포함하는 컴퓨터-기반 엔터테인먼트 시스템 실 시형태를 표현할 수 있다. CPU(424)는 또한 입력/출력 프로세서 버스(IOP bus; input/output processor bus; 428)에 연결된다. 일 실시형태에서, GPU(426)는 그래픽 데이터에 근거한 픽셀의 빠른 처리를 위한 내부 버퍼를 포함한다. 게다가, GPU(426)는, 엔터테인먼트 시스템 또는 그의 요소들의 외부에 연결된 디스플레이 장치(427)로 전송하기 위해, 처리된 영상 데이터를, 예를 들어 NTSC 또는 PAL과 같은 표준 텔레비젼 신호들로 변환하는 출력 처리 부분 또는 기능을 포함할 수 있다. 선택적으로, 데이터 출력 신호들은, 컴퓨터 모니터, LCD(liquid crystal display) 장치, 또는 다른 유형의 디스플레이 장치와 같이, 텔레비젼 모니터가 아닌 디스플레이 장치로 제공될 수 있다. 4 is a schematic block diagram of a computer processing system configured to implement embodiments of the present invention described herein. The processing system may represent a computer-based entertainment system implementation that includes a central processing unit (CPU) 424 and a graphical processing unit (GPU) 426 coupled to the main memory 420. have. The CPU 424 is also coupled to an input / output processor bus 428. In one embodiment, GPU 426 includes an internal buffer for fast processing of pixels based on graphics data. In addition, GPU 426 output processing to convert the processed image data into standard television signals such as, for example, NTSC or PAL, for transmission to a display device 427 connected external to the entertainment system or its elements. It can include parts or functions. Optionally, the data output signals may be provided to a display device other than a television monitor, such as a computer monitor, liquid crystal display (LCD) device, or other type of display device.

IOP 버스(428)는, CPU(424)를 다양한 입력/출력 장치들 및 다른 버스들 또는 장치에 연결한다. IOP 버스(428)는, 입력/출력 프로세서 메모리(430), 제어기(432), 메모리 카드(434), USB 포트(universal serial bus port; 436), (파이어와이어 인터페이스(Firewire interface)로 공지된) IEEE1394 포트(438) 및 버스(450)에 연결된다. 버스(450)는, 운영 체제 롬(opering system(OS) ROM; 440), 플래시 메모리(442), 음향 처리 유닛(SPU; sound processing unit; 444), 광 디스크 제어 유닛(446), 및 하드 디스크 드라이브(HDD; hard disk drive; 448)를 포함하는 수개의 다른 시스템 요소들을 CPU(424)에 연결한다. 이 실시형태의 일 양상에서, 비디오 캡쳐 장치는 CPU(424)로의 전송을 위해 IOP 버스(428)에 직접 연결될 수 있고; 비디오 캡쳐 장치로부터의 데이터는 GPU(426)에서의 그래픽 영상들을 생성하는 데에 사용되는 값들을 변화시키거나 갱신하는 데에 사용될 수 있다. 게다 가, 본 발명의 실시형태들은, 2003년 2월11일에 출원된 미국특허출원 제10/365,120호, 실시간 움직임 캡쳐를 위한 방법 및 장치에 기술된 것과 같은 다양한 영상 처리 구성들 및 기술들을 사용할 수 있다. 컴퓨터 처리 시스템은 셀(CELLTM) 프로세서에서 실행될 수 있다. IOP bus 428 connects CPU 424 to various input / output devices and other buses or devices. IOP bus 428 may include input / output processor memory 430, controller 432, memory card 434, universal serial bus port 436, (also known as a Firewire interface). Is connected to the IEEE1394 port 438 and the bus 450. The bus 450 includes an operating system (OS) ROM 440, a flash memory 442, a sound processing unit (SPU) 444, an optical disk control unit 446, and a hard disk. Several other system components, including drives (HDDs) 448, connect to the CPU 424. In one aspect of this embodiment, the video capture device may be directly connected to the IOP bus 428 for transmission to the CPU 424; The data from the video capture device can be used to change or update the values used to generate graphical images on the GPU 426. In addition, embodiments of the present invention may utilize various image processing configurations and techniques, such as those described in US patent application Ser. No. 10 / 365,120, filed Feb. 11, 2003, methods and apparatus for real time motion capture. Can be. The computer processing system can run in a CELL processor.

도 5는 본 발명의 일 실시형태에 따라 선택적인 입력 장치로서 기능하는 조작된 물체와 함께 사용하기에 적합한 비디오 게임 콘솔의 요소들의 구성의 블록도이다. 예시적인 게임 콘솔(510)은, 콘솔(510)의 전반적인 제어를 위한 멀티프로세서 유닛(MPU; multiprocessor unit; 512), 다양한 프로그램 동작들 및 데이터의 저장에 사용되는 주 메모리(514), 지오메트리 처리에 필요한 부동점 벡터 연산들을 수행하기 위한 벡터 연산 유닛(516), MPU(512)로부터의 제어들에 근거하여 데이터를 생성하고 모니터(110)에 비디오 신호들을 출력하기 위한 영상 프로세서(520), MPU(512) 또는 벡터 연산 유닛(516)과 영상 프로세서(520) 사이의 전송 버스에 걸쳐 조정 등을 수행하기 위한 그래픽 인터페이스(GIF; graphics interface; 522), 주변 장치들로 데이터를 전송하고 주변장치들로부터 데이터를 수신하기 위한 입력/출력 포트(524), 예를 들어, 커널의 제어를 수행하기 위해 플래시 메모리에 의해 구성되는 내부 OSD 기능 ROM(OSDROM; OSD functional ROM), 및 달력 및 타이머 기능들을 갖는 실제 시간 클록(RTC; real time clock; 528)이 갖추어져 있다. 5 is a block diagram of the configuration of elements of a video game console suitable for use with an manipulated object functioning as an optional input device in accordance with one embodiment of the present invention. Exemplary game console 510 includes a multiprocessor unit (MPU) 512 for overall control of console 510, main memory 514 used for storage of various program operations and data, and geometry processing. A vector computing unit 516 for performing the necessary floating point vector operations, an image processor 520 for generating data and outputting video signals to the monitor 110 based on the controls from the MPU 512, an MPU ( 512 or a graphics interface (GIF) 522 for performing adjustments and the like over the transmission bus between the vector computation unit 516 and the image processor 520, transferring data to and from the peripherals. Input / output port 524 for receiving data, for example, an internal OSD functional ROM (OSDROM) configured by flash memory to perform control of the kernel, and calendar and other It is equipped with the (528 RTC;; real time clock) real time clock having Murray function.

주 메모리(514), 벡터 연산 유닛(516), GIF(522), OSDROM(526), 실제 시간 클록(528) 및 입력/출력 포트(524)가 데이터 버스(530)에 걸쳐 MPU(512)에 연결되 어 있다. 또한, 버스(530)에는, 압축된 동영상들 및 텍스쳐(texture) 영상들을 확장시키기 위한 프로세서인 영상 처리 유닛(538)이 연결되어, 영상 데이터를 전개시킨다. 예를 들어, 영상 처리 유닛(538)은, MPEG2 또는 MPEG4 표준 포맷들에 따른 비트 스트림들(bit streams)의 디코딩 및 전개(development), 마크로블록 디코딩(macroblock decoding), 역이산 코사인 변환들(inverse discrete cosine transformations), 컬러 공간 변환, 벡터 양자화를 수행하는 것 등을 위한 기능들을 수행할 수 있다. Main memory 514, vector computation unit 516, GIF 522, OSDROM 526, real time clock 528, and input / output port 524 to MPU 512 across data bus 530. It is connected. In addition, the bus 530 is connected to an image processing unit 538, which is a processor for expanding compressed video and texture images, to develop image data. For example, the image processing unit 538 can decode and develop bitstreams, macroblock decoding, and inverse discrete cosine transforms in accordance with MPEG2 or MPEG4 standard formats. perform functions for discrete cosine transformations, color space transformation, vector quantization, and so on.

음향 시스템은, MPU(512)로부터의 명령들에 기초하여 음악 또는 다른 음향 효과들을 생성하기 위한 음향 처리 유닛(SPU; 571), 파형 데이터가 SPU(571)에 의해 기록될 수 있는 음향 버퍼(573), 및 SPU(571)에 의해 생성되는 음악 또는 다른 음향 효과들을 출력하기 위한 스피커(575)에 의해 구성된다. 스피커(575)는 모니터(110)의 일부로서 내장될 수 있으며, 또는 외부 스피커(575)에 부착된 분리된 오디오 라인-아웃 연결(separate audio line-out connection)로서 제공될 수 있다. The acoustic system includes a sound processing unit (SPU) 571 for generating music or other sound effects based on instructions from the MPU 512, and an acoustic buffer 573 in which waveform data can be recorded by the SPU 571. ), And a speaker 575 for outputting music or other sound effects generated by the SPU 571. Speaker 575 may be embedded as part of monitor 110 or may be provided as a separate audio line-out connection attached to external speaker 575.

디지털 데이터의 입력/출력의 기능들을 가지며, 본 발명에 따른 디지털 콘텐츠의 입력을 위한 인터페이스인 통신 인터페이스(540)가 버스(530)에 연결되어 제공된다. 예를 들어, 통신 인터페이스(540)를 통하여, 사용자 입력 데이터는, 온라인 비디오 게임 어플리케이션들을 수용하기 위해 네트워크의 서버 단말로 전송될 수 있고, 상태 데이터가 상기 서버 단말로부터 수신될 수 있다. 콘솔(510)과 관련하여 (예를 들어, 키 입력 데이터 또는 좌표 데이터와 같은) 데이터의 입력을 위한 (또한 제어기로서 공지된) 입력 장치(532), 및 다양한 프로그램들 및 데이터(즉, 물체들과 관련된 데이터, 텍스쳐 데이터 등)가 저장되어 있는 CD-ROM 등과 같은 광 디스크(569)의 콘텐츠의 재생을 위한 광 디스크 장치(536)은 입력/출력 포트(524)에 연결되어 있다. A communication interface 540 having functions of input / output of digital data and which is an interface for inputting digital content according to the present invention is provided connected to the bus 530. For example, via communication interface 540, user input data may be sent to a server terminal in a network to accommodate online video game applications, and status data may be received from the server terminal. An input device 532 (also known as a controller) for input of data (e.g., as key input data or coordinate data) with respect to the console 510, and various programs and data (i.e. objects Is connected to an input / output port 524 for reproducing the contents of the optical disk 569, such as a CD-ROM having stored therein data, texture data, and the like.

본 발명은 입력/출력 포트(524)에 연결된 디지털 비디오 카메라(105)를 더 포함한다. 입력/출력 포트(524)는 직렬 및 USB 인터페이스들을 포함하는 하나 이상의 입력 인터페이스들에 의해 실시될 수 있고, 디지털 비디오 카메라(190)는 USB 입력 또는 카메라(105)와 함께 사용하기에 적절한 다른 통상의 인터페이스를 이용하는 것이 바람직하다. The invention further includes a digital video camera 105 coupled to the input / output port 524. Input / output port 524 may be implemented by one or more input interfaces, including serial and USB interfaces, and digital video camera 190 may be a USB input or other conventional suitable for use with camera 105. It is preferable to use an interface.

상술한 영상 프로세서(520)는 렌더링 엔진(570), 인터페이스(572), 영상 메모리(574) 및 디스플레이 제어 장치(576)(예를 들어, 프로그램가능 CRT 제어기 등)를 포함한다. 렌더링 엔진(570)은, MPU(512)로부터 공급되는 렌더링 명령들에 대응하여, 메모리 인터페이스(572)를 통하여 영상 메모리 내의 예정된 영상 데이터의 렌더링을 위한 동작들을 실행시킨다. 렌더링 엔진(570)은, 예를 들어, NTSC 또는 PAL과 일치하는 320×240 픽셀들 또는 640×480 픽셀들의 영상 데이터를 실시간으로, 구체적으로 1/60 내지 1/30 초당 십 내지 수십 번들보다 더 큰 속도로 렌더링하는 능력을 가진다. 버스(578)는 메모리 인터페이스(572)와 렌더링 엔진(570) 사이에 연결되고, 제 2 버스(580)는 메모리 인터페이스(572)와 영상 메모리(574) 사이에 연결되어 있다. 제 1 버스(578) 및 제 2 버스(580)는 각각 예를 들어 128 비트의 비트 폭을 가지며, 렌더링 엔진(570)은 영상 메모리와 관련하여 고속 렌더링 처리를 실행할 수 있다. 영상 메모리(574)는, 예를 들어, 텍스쳐 렌더링 영역 및 디스플레이 렌더링 영역이 균일 영역으로 설정될 수 있는 통합된 메모리 구조를 이용한다. The image processor 520 described above includes a rendering engine 570, an interface 572, an image memory 574, and a display control device 576 (eg, a programmable CRT controller, etc.). The rendering engine 570 executes operations for rendering the predetermined image data in the image memory through the memory interface 572 in response to the rendering instructions supplied from the MPU 512. The rendering engine 570 may, for example, display more than 320x240 pixels or 640x480 pixels of image data in real time, in particular more than tens to tens of tens of bundles per second, for example NTSC or PAL. Has the ability to render at high speeds. The bus 578 is connected between the memory interface 572 and the rendering engine 570, and the second bus 580 is connected between the memory interface 572 and the image memory 574. The first bus 578 and the second bus 580 each have a bit width of, for example, 128 bits, and the rendering engine 570 may execute high speed rendering processing in relation to image memory. The image memory 574 uses an integrated memory structure, for example, where the texture rendering area and the display rendering area can be set to uniform areas.

디스플레이 제어기(576)는, 광 디스크 장치(536)를 통하여 광 디스크(569)로부터 검색된 텍스쳐 데이터, 또는 주 메모리(514)에서 생성되는 텍스쳐 데이터를, 메모리 인터페이스(572)를 경유하여 영상 메모리(574)의 텍스쳐 렌더링 영역으로 기록하도록 구성된다. 영상 메모리(174)의 디스플레이 렌더링 영역에서 렌더링되는 영상 데이터는, 메모리 인터페이스(572)를 경유하여 판독되고, 모니터(110)에 출력되며, 스크린 상에 디스플레이된다. The display controller 576 stores the texture data retrieved from the optical disk 569 through the optical disk device 536 or the texture data generated in the main memory 514 via the memory interface 572 through the image memory 574. To the texture rendering area. The image data rendered in the display rendering area of the image memory 174 is read through the memory interface 572, output to the monitor 110, and displayed on the screen.

도 6은, 본 발명의 일 실시형태에 따라 사용자에 의해 조작되는 것처럼 사용자 입력 장치에 대응하는 픽셀 그룹을 추적하고 식별하는 데에 이용되는 기능 블록들을 도시하는 블록도이다. 블록들에 의해 도시되는 기능들은 도 5의 게임 콘솔(510) 내의 MPU(512)에 의해 실행되는 소프트웨어에 의해 실시된다. 게다가, 도 6의 블록들에 의해 도시된 기능들 모두가 각각의 실시형태에 대하여 이용되는 것은 아니다. FIG. 6 is a block diagram illustrating functional blocks used to track and identify a group of pixels corresponding to a user input device as manipulated by a user in accordance with one embodiment of the present invention. The functions shown by the blocks are performed by software executed by the MPU 512 in the game console 510 of FIG. 5. In addition, not all of the functions illustrated by the blocks in FIG. 6 are used for each embodiment.

처음에, 카메라로부터 입력된 픽셀 데이터는 입력/출력 포트 인터페이스(524)를 통하여 게임 콘솔(510)에 공급되고, 게임 콘솔에서 수행될 다음의 프로세스들을 가능하게 한다. 첫째, 영상의 각각의 픽셀이 예를 들어 래스터(raster) 구조로 샘플링(sampling)됨에 따라, 컬러 분할 처리 단계(S201)가 수행되는데, 각각의 픽셀의 색상은 결정되고, 영상은 다른 색상들의 다양한 2차원 세그먼트들로 분할된다. 다음에 특정 실시형태들에 대하여, 색상 변이 위치측정 단계(S203)가 수 행되고, 다른 색상들의 세그먼트들이 인접하는 영역들이 더욱 구체적으로 결정되고, 이에 따라 뚜렷한 색상 변이들이 일어나는 영상의 위치를 정의한다. 그 다음에, 지오메트리 처리 단계(S205)가 수행되는데, 실시형태에 따라서, 에지 검출 프로세스 또는 영역 통계에 대한 연산 수행을 포함하여, 관심 물체의 에지들에 대응하는, 수학적 용어 또는 기하학적 용어인 직선들, 곡선들 및/또는 다각형들을 정의한다. Initially, pixel data input from the camera is supplied to the game console 510 via the input / output port interface 524, enabling the following processes to be performed at the game console. First, as each pixel of the image is sampled, for example, in a raster structure, a color segmentation processing step S201 is performed, in which the color of each pixel is determined and the image is a variety of different colors. It is divided into two-dimensional segments. Next, for certain embodiments, a color shift positioning step S203 is performed, in which regions in which segments of other colors are adjacent are more specifically determined, thereby defining the position of the image where distinct color shifts occur. . Geometry processing step S205 is then performed, depending on the embodiment, straight lines, which are mathematical or geometric terms, corresponding to edges of the object of interest, including performing an edge detection process or computation on area statistics. Define curves and / or polygons.

물체의 3차원 위치 및 방향은, 본 발명의 바람직한 실시형태들의 이하의 상세한 설명들과 관련하여 기술될 알고리즘에 따라, 단계 S207에서 연산된다. 3차원 위치 및 방향의 데이터는 또한 성능을 향상시키기 위해 칼만 필터링(Kalman filtering)에 대한 처리 단계(S209)를 겪는다. 이러한 처리는, 물체가 시간에 따라 어디에 있을 것인지를 평가하도록 수행되고, 가능하지 않은 스퓨리어스 측정들(spurious measurements)을 거부하도록 수행되며, 따라서 진실 데이터 세트의 외부에 있는 것으로 고려된다. 칼만 필터링을 행하는 또 다른 이유는, 예시적 디스플레이가 60Hz로 실행되는 반면에, 카메라(105)는 30Hz로 영상들을 생성하므로, 칼만 필터링은 게임 프로그램의 동작을 제어하는 데에 사용되는 데이터의 간격들을 채운다. 칼만 필터링을 통한 이산 데이터의 평탄화는 컴퓨터 분야에서 공지되어 있으므로, 더 이상 설명되지 않을 것이다. The three-dimensional position and orientation of the object is computed in step S207, in accordance with an algorithm to be described in connection with the following detailed description of preferred embodiments of the present invention. Data in three-dimensional position and orientation also undergoes a processing step S209 for Kalman filtering to improve performance. This process is performed to evaluate where the object will be over time, to reject spurious measurements that are not possible, and are therefore considered to be outside of the truth data set. Another reason for performing Kalman filtering is that while the exemplary display runs at 60 Hz, the camera 105 generates images at 30 Hz, so Kalman filtering is used to determine the intervals of data used to control the operation of the game program. Fill it. Flattening of discrete data via Kalman filtering is well known in the computer art and will not be described any further.

도 7은, 영상 캡쳐 장치(105)에 의해 보여지는 공간 체적(702) 내의 물체(705)의 이동들을 매핑하기 위한 예시적 영상 처리 시스템(700)에 대한 개략 블 록도를 도시한다. 이러한 실시예에서, 물체(705)가 3차원 공간(702) 내에서 거리 x1만큼 이동됨에 따라, 영상 처리 시스템(700)은 물체(705)의 캡쳐된 비디오 영상들을 해석하고, 물체(705)의 움직임을 식별하고, 디스플레이 스크린(110)에 실질적으로 대응하는 동작을 생성한다. FIG. 7 shows a schematic block diagram of an example image processing system 700 for mapping the movements of an object 705 in a spatial volume 702 seen by the image capture device 105. In this embodiment, as the object 705 is moved by distance x 1 in the three-dimensional space 702, the image processing system 700 interprets the captured video images of the object 705, and the object 705 Identify the movement of the control panel and generate an operation substantially corresponding to the display screen 110.

구체적으로, 영상 캡쳐 장치(105)는, 당업계에서 공지된 것처럼 렌즈를 통과한 후에 디지털 영상 센서에 영향을 주는 광에 의해 형성된 영상을 표현하는 영상 데이터를 생성하기 위한 디지털 영상 센서를 포함한다. 영상 캡쳐 장치(105)는 광에 의해 형성된 영상을 표현하는 아날로그 신호를 생성하는 아날로그 비디오 카메라를 포함하는 것이 또한 가능하다. 후자의 경우에, 아날로그 신호는 인식기(710)에 의한 처리 이전에 영상의 디지털 표현으로 변환된다. 3차원 공간(702)의 연속적인 2차원 영상들을 표현하는 영상 데이터는 인식기(710)로 전달된다. 인식기(710)는, 물체(705)를 식별하기 위해 도 6을 참조하여 이상에서 기술되는 것처럼 다양한 처리 단계들을 수행할 수 있다. 물체(705)의 위치는 매퍼(mapper; 712)로 전달된다. 예를 들어, 3차원 공간(702) 내의 물체(705)의 절대 좌표들은 매퍼(712)로 연산되고 전달될 수 있다. x 및 y 축들을 따르는 좌표들은 각각의 영상에서 표현되는 것처럼 물체의 위치로부터 결정될 수 있다. z-축을 따르는 물체(705)의 좌표는 물체의 크기로부터 유추될 수 있다. 즉, 물체(705)는, 영상 캡쳐 장치(105)에 더 가까울수록, 영상에서 더 크게 나타날 것이다. 그러므로, 영상 내에 나타나는 물체의 직경에 대한 측정은, 영상 캡쳐 장치(105)로부터의 거리, 즉, z-축 좌표를 연산하 는 데에 이용될 수 있다. Specifically, the image capture device 105 includes a digital image sensor for generating image data representing an image formed by light that affects the digital image sensor after passing through the lens as is known in the art. Image capture device 105 may also include an analog video camera that generates an analog signal representing an image formed by light. In the latter case, the analog signal is converted into a digital representation of the image prior to processing by the recognizer 710. Image data representing successive two-dimensional images of the three-dimensional space 702 is transferred to the recognizer 710. The recognizer 710 may perform various processing steps as described above with reference to FIG. 6 to identify the object 705. The position of the object 705 is communicated to a mapper 712. For example, the absolute coordinates of the object 705 in the three dimensional space 702 can be computed and passed to the mapper 712. Coordinates along the x and y axes can be determined from the position of the object as represented in each image. The coordinates of the object 705 along the z-axis can be inferred from the size of the object. That is, the closer the object 705 is to the image capture device 105, the larger will appear in the image. Therefore, the measurement of the diameter of the object appearing in the image can be used to calculate the distance from the image capture device 105, ie the z-axis coordinates.

위치 정보에 추가하여, 인식기(710)는 물체(705)로부터 수신된 명령들을 식별할 수 있다. 명령들은 물체(705)의 전달들/변형들, 음향 및 광 생성 등으로부터 해석될 수 있다. 물체(705)로부터 수신된 명령들은 인식기에 의해 해석되고, 수신된 명령들에 대응하는 데이터는 어플리케이션(714)으로 전달될 수 있다. 어플리케이션(714)은, 영상 캡쳐 장치(105)로부터 사용자 입력을 수신하는 게임 어플리케이션 또는 다른 컴퓨터 어플리케이션일 수 있다. 일 실시형태에서, 매퍼(712)는, 인식기(710)로부터의 절대 좌표들을 입력하고, 이러한 좌표들을, 기어링 분량에 따라 스케일링된 출력 좌표들로 매핑한다. 또 다른 실시형태에서, 매퍼(712)는, 인식기(710)로부터 연속적인 좌표 정보를 수신하고, 좌표 정보의 변화들을 물체(705)의 벡터 이동들로 변환한다. 예를 들어, 물체(705)가 시간 t1으로부터 t2로 거리 x1만큼 이동한다면, 벡터(x1, 0, 0)가 생성되고 어플리케이션(714)에 전달된다. 시간 t1 내지 시간 t2는 영상 캡쳐 장치(105)에 의해 생성된 비디오의 연속적인 프레임들 사이의 시간 구간일 수 있다. 매퍼(712)는, 예를 들어, 기어링 분량(G)에 의해 벡터를 승산(multiplication)함으로써 스케일링 알고리즘에 따라 벡터를 스케일링할 수 있다. 다른 실시형태에서, 각각의 좌표는 대응하는 기어링 요소, 예를 들어, Gx, Gy 및 Gz에 의해 승산된다. 따라서, 디스플레이(110) 내에서 보여지는 것처럼 가상 물체(705')의 대응 움직임은 x1과 다른 거리 x2일 수 있다. In addition to the location information, recognizer 710 may identify commands received from object 705. The instructions may be interpreted from the transmissions / deformations of the object 705, sound and light generation, and the like. Commands received from the object 705 may be interpreted by the recognizer, and data corresponding to the received commands may be passed to the application 714. The application 714 may be a game application or other computer application that receives user input from the image capture device 105. In one embodiment, mapper 712 inputs absolute coordinates from recognizer 710 and maps these coordinates to scaled output coordinates according to the amount of gearing. In another embodiment, the mapper 712 receives continuous coordinate information from the recognizer 710 and converts changes in the coordinate information into vector movements of the object 705. For example, if the object 705 is moved by a time t by the distance t 2 from 1 x 1, the vector (x 1, 0, 0) is generated and transmitted to the application 714. Time t 1 to time t 2 may be a time interval between successive frames of video generated by image capture device 105. The mapper 712 can scale the vector according to a scaling algorithm, for example, by multiplication of the vector by the gearing amount G. In another embodiment, each of the coordinates is, for gearing element, for corresponding, is multiplied by a G x, G y and G z. Thus, the corresponding movement of the virtual object 705 ′ as shown within the display 110 may be a distance x 2 that is different from x 1 .

어플리케이션(714)은, 인식기(710)로부터 수신된 명령들(713)에 따라, 또는 기어링 분량이 변화하도록 하는 기어링 데이터를 매퍼(712)로 보내는 소프트웨어의 정상 동작에 따라 기어링 분량을 변화시킬 수 있다. 기어링 데이터는, 사용자 명령, 다양한 이벤트들, 또는 어플리케이션(714)의 동작 모드들에 반응하여 매퍼(712)에 보내질 수 있다. 그러므로, 기어링 분량은, 사용자 명령들에 반응하거나 소프트웨어에 의해 제어되는 것처럼 실시간으로 변화될 수 있다. 그러므로, 매퍼(712)는 물체(705)의 움직임의 출력 벡터, 공간(702) 내의 물체(705)의 위치 변화와 관련되어 변화하는 출력, 및 기어링 분량을 어플리케이션(714)으로 전송한다. 일 실시형태에서 비디오 게임인 어플리케이션(714)은, 출력 벡터를, 디스플레이(110) 상에 디스플레이될 대응 동작으로 번역한다. The application 714 can change the gearing amount in accordance with instructions 713 received from the recognizer 710 or in accordance with the normal operation of the software sending the gearing data to the mapper 712 to cause the gearing amount to change. . Gearing data may be sent to the mapper 712 in response to user commands, various events, or modes of operation of the application 714. Therefore, the amount of gearing can be changed in real time as in response to user commands or as controlled by software. Therefore, the mapper 712 sends to the application 714 the output vector of the movement of the object 705, the output that changes with respect to the change in position of the object 705 in the space 702, and the amount of gearing. The application 714, which is a video game in one embodiment, translates the output vector into a corresponding action to be displayed on the display 110.

도 8은, 도 7의 영상 처리 시스템(700)에 대한 예시적 응용예를 도시한다. 컴퓨터 시스템(102)은, 장면(810)을 보여주는 영상 캡쳐 장치(105)를 포함한다. 장면(810)은, 인식기(710; 도 7)에 의해 인식되는 물체(804)를 잡고 있는 사용자(802)를 포함한다. 이 실시예에서 체커(checker) 게임인 어플리케이션 프로그램은, 체커보드(801) 상에 체커들(808)을 집거나 놓기 위해 물체(804)로부터 배포되는 명령을 인식한다. 사용자가 영상 캡쳐 장치(105) 앞에서 물체(805)를 움직임에 따라, 컴퓨터(102)는 영상들을 처리하여 물체(804)의 움직임을 식별하고, 이러한 움직임을 디스플레이(110) 상의 가상 물체(805')의 움직임으로 번역한다. 가상 물체(805')가 실제 물체(805)와 관련하여 움직이는 거리는 기어링 분량(806)에 의존한다. 이 실시예에서, 기어링 분량은 디스플레이(110) 상에서 "3"으로 표현된다. 일 실시형태에서, 기어링 분량은 사용자가 선택가능하다. 기어링 분량이 더 커질수록, 디스플레이(110) 상의 체커(805')의 특정 거리 이동에 영향을 주는데 실제 물체(805)의 이동이 더 작게 필요하다. 8 illustrates an example application for the image processing system 700 of FIG. 7. Computer system 102 includes an image capture device 105 showing a scene 810. Scene 810 includes user 802 holding object 804 recognized by recognizer 710 (FIG. 7). The application program, which is a checker game in this embodiment, recognizes the instructions distributed from the object 804 to pick or place the checkers 808 on the checkerboard 801. As the user moves the object 805 in front of the image capture device 105, the computer 102 processes the images to identify the movement of the object 804, which is then translated into a virtual object 805 ′ on the display 110. To translate). The distance that the virtual object 805 'travels in relation to the real object 805 depends on the amount of gearing 806. In this embodiment, the gearing amount is represented by "3" on the display 110. In one embodiment, the amount of gearing is user selectable. The larger the amount of gearing, the smaller the movement of the real object 805 is needed to affect the specific distance movement of the checker 805 'on the display 110.

도 9 및 도 10은, 영상 캡쳐 장치(105; 도 1)와 상호작용하는 예시적 제어기(900)를 도시한다. 제어기(900)는 다양한 버튼들 및 조이스틱들을 포함하는 복수의 인터페이스 장치들을 포함하는 인터페이스(902)를 포함한다. 본 명세서에서 논의된 제어기들은 유선 또는 무선일 수 있다. 위피(WiFi), 블루투스, IR, 음향, 및 광들과 같은 기술들은, 게임 콘솔과 같은 컴퓨터와 인터페이스하도록 동작할 수 있다. 일 실시형태에서, 제어기(900)는 LED 배열(905)을 가진다. LED 배열은, 각각의 LED들이 가상의 직사각형 또는 정사각형 블라인딩 박스(blinding box)의 꼭지점에 위치된 2×2 스택(stack)을 포함하는 다양한 레이아웃들(layouts)로 구성될 수 있다. 영상 캡쳐 장치에 의해 생성된 영상 평면 상에 투사되는 블라인딩 박스의 위치 및 변형을 추적함으로써, 변형들은, 제어기의 위치 및 방향 정보를 해독하기 위해 비디오 분석기에서 분석될 수 있다. 9 and 10 show an example controller 900 that interacts with the image capture device 105 (FIG. 1). Controller 900 includes an interface 902 that includes a plurality of interface devices including various buttons and joysticks. The controllers discussed herein can be wired or wireless. Technologies such as WiFi, Bluetooth, IR, sound, and lights can operate to interface with a computer, such as a game console. In one embodiment, the controller 900 has an LED arrangement 905. The LED arrangement may consist of various layouts, each of which includes a 2x2 stack located at the vertex of the virtual rectangular or square blinding box. By tracking the position and deformation of the blinding box projected on the image plane generated by the image capture device, the deformations can be analyzed in the video analyzer to decode the position and orientation information of the controller.

LED 배열(905)은 적외선 또는 가시광선을 생성할 수 있다. 영상 캡쳐 장치(105; 도 1)는 다양한 다른 진보적 실시형태들을 참조하여 이상에서 기술된 것처럼 LED 배열(905)을 식별할 수 있다. 각각의 제어기는, 플레이어 번호 1-4 또는 임의의 번호의 플레이어들 중 사용자가 선택할 수 있게 하는 스위치(910)를 이용하여 플레이어 1로부터 예를 들어 플레이어 4까지 지정될 수 있다. 각각의 플레이어 번호 선택은, LED 배열(905)에 의해 점등되는 LED들의 독특한 패턴 또는 변조에 대응 한다. 예를 들어, 플레이어 1에 대하여, 제 1, 제 3 및 제 5 LED들이 점등된다. 이러한 플레이어 정보는 복수의 비디오 프레임들에 걸쳐서 시간에 대하여 반복되는 형태로 엔코딩되고 전송된다. 제어기 또는 장치 LED들이 추적 모드와 전송 모드 사이에서 교환될 수 있도록 인터리브(interleave) 구조를 취하는 것이 바람직하다. 추적 모드에서, 모든 LED들이 사이클의 제 1 부분 동안 켜질 수 있다. 전송 모드에서, 정보는 사이클의 제 2 부분 동안 LED들에 의해 변조될 수 있다. 시간에 걸쳐서, LED들은 추적 및 통신 정보를, 비디오 분석기 또는 신호를 수신할 수 있는 적합한 장치로 전송한다. 전송 모드에서, LED들은 플레이어 ID를 표현하는 정보를 엔코딩할 수 있다. 기간 및 듀티 사이클은 추적 속도, 발광 조건들, 제어기들의 개수 등을 조정하도록 선택될 수 있다. 통신들 및 추적 정보를 끼워넣음으로써, 비디오 캡쳐 장치는 적합한 정보를 공급받아, 각각의 제어기에 대한 추적 파라미터들을 연산하고 제어기들 사이에서 식별한다. 이러한 식별은, 제어기 이동의 위치 및 방향 및 다른 측정기준을 감시하고 추적할 때 각각의 물리적 제어기를 분리시키도록 비디오 분석기에서 사용될 수 있다. LED array 905 may generate infrared or visible light. Image capture device 105 (FIG. 1) may identify LED array 905 as described above with reference to various other progressive embodiments. Each controller may be designated from player 1 to player 4, for example, using a switch 910 that allows a user to select among player numbers 1-4 or any number of players. Each player number selection corresponds to a unique pattern or modulation of the LEDs illuminated by the LED array 905. For example, for player 1, the first, third and fifth LEDs are lit. This player information is encoded and transmitted in a repeating form over time over a plurality of video frames. It is desirable to take an interleave structure so that controller or device LEDs can be exchanged between tracking mode and transmission mode. In tracking mode, all the LEDs can be turned on during the first part of the cycle. In the transmission mode, the information can be modulated by the LEDs during the second part of the cycle. Over time, the LEDs transmit tracking and communication information to a video analyzer or a suitable device capable of receiving signals. In the transmit mode, the LEDs may encode information representing the player ID. The duration and duty cycle may be selected to adjust the tracking speed, emission conditions, number of controllers, and the like. By embedding communications and tracking information, the video capture device is supplied with appropriate information to calculate tracking parameters for each controller and identify between the controllers. This identification can be used in the video analyzer to isolate each physical controller when monitoring and tracking the position and direction of controller movement and other metrics.

전송 모드에서, 명령들 또는 상태 정보를 포함하는 다른 정보는 공지된 엔코딩 및 변조 구조들에 따라서 제어기 또는 장치 LED들에 의해 전송될 수 있다. 수신기 측에서, 비디오 캡쳐 장치에 연결된 비디오 분석기는 LED들의 상태와 동기화되고 이를 추적하며, 정보 및 제어기 이동들을 디코딩한다. 더 높은 대역폭이 전송 모드 사이클에서의 프레임들에 걸쳐 데이터를 변조함으로써 얻어질 수 있다. In the transmission mode, other information, including commands or status information, may be transmitted by the controller or device LEDs in accordance with known encoding and modulation schemes. At the receiver side, a video analyzer connected to the video capture device is synchronized with and tracks the state of the LEDs and decodes information and controller movements. Higher bandwidth can be obtained by modulating the data over frames in the transmission mode cycle.

인터페이스(902)와의 사용자 상호작용은 LED 배열(905)에서의 LED들 중 하나 이상이 색상을 변조하고 그리고/또는 변화하도록 할 수 있다. 예를 들어, 사용자가 조이스틱을 이동시킴에 따라, LED들은 밝기를 변화시키거나 정보를 전송할 수 있다. 농도 또는 색상의 변화들은 컴퓨터 시스템에 의해 감시될 수 있고, 농도 값으로서 게임 프로그램에 제공될 수 있다. 게다가, 각각의 버튼은 LED 배열(905) 내의 LED들 중 하나 이상의 색상 변화 또는 농도로 매핑될 수 있다. User interaction with the interface 902 may cause one or more of the LEDs in the LED arrangement 905 to modulate and / or change color. For example, as the user moves the joystick, the LEDs may change brightness or transmit information. Changes in density or color can be monitored by a computer system and provided to the game program as a density value. In addition, each button can be mapped to a color change or intensity of one or more of the LEDs in the LED array 905.

제어기(900)가 3차원 공간에서 이동되고 롤, 요 또는 피치 방향 중 하나에서 회전됨에 따라, 영상 캡쳐 장치(105)는, 컴퓨터 시스템(102)과 함께, 이러한 변화들을 식별할 수 있고, 영상 평면 상의 이동을 설명하기 위한 2차원 벡터 또는 3차원 공간 내의 이동을 설명하기 위한 3차원 벡터를 생성할 수 있다. 벡터는, 상대적인 이동을 설명하는 일련의 좌표들 및/또는 영상 캡쳐 장치(105)와 관련된 절대 위치로서 제공될 수 있다. 당업자에게 명확한 것처럼, 영상 캡쳐 장치(105)에 더 가까운 제어기의 이동은 외부로 퍼지게 나타나는 LED 배열에 의해 식별될 수 있는 반면에, 영상 캡쳐 장치(105)의 시선에 수직인 평면(영상 평면)의 이동은 영상 캡쳐 영역 내의 절대 위치에 의해 식별될 수 있다. As the controller 900 is moved in three-dimensional space and rotated in one of the roll, yaw, or pitch directions, the image capture device 105, along with the computer system 102, can identify these changes, and the image plane A two-dimensional vector for describing the movement of the image or a three-dimensional vector for describing the movement in the three-dimensional space can be generated. The vector may be provided as a series of coordinates describing the relative movement and / or as an absolute position relative to the image capture device 105. As will be apparent to those skilled in the art, the movement of the controller closer to the image capture device 105 can be identified by the LED arrangement appearing to spread outward, while the plane of the plane (image plane) perpendicular to the line of sight of the image capture device 105 can be identified. Movement can be identified by an absolute position within the image capture area.

LED들(905)의 직사각형 구성은 3개의 축들 상의 제어기(900)의 이동 및 각각의 축을 중심으로 한 회전이 검출되는 것을 가능하게 한다. 단지 4개의 LED들이 도시되어 있을지라도, 이는 예시적인 목적만을 위한 것이며, 임의의 구성의 임의의 개수의 LED들이 가능하다. 제어기(900)가 전방 또는 후방으로 던져짐에 따라, 상부 LED와 하부 LED는 서로 더욱 가까워지고, 좌측 LED와 우측 LED는 동일 거리를 유지하고 있을 것이다. 유사하게, 제어기가 좌측 또는 우측으로 흔들림(yaw)에 따라, 상부 LED와 하부 LED는 서로 동일 거리를 유지하고 있지만, 좌측 LED와 우측 LED는 설 접근하는 것으로 나타날 것이다. 제어기의 롤링(rolling) 움직임은 영상 평면 상의 LED들의 방향을 식별함으로써 검출될 수 있다. 제어기가 시선을 따라 영상 캡쳐 장치(105)에 더 가까워지도록 움직임에 따라, LED들 모두가 서로 더 가까워지도록 나타날 것이다. 마지막으로, 영상 평면을 따르는 제어기의 이동은 영상 평면 상의 LED들의 위치를 식별함으로써 추적될 수 있으며, 이로써 각각의 x 축 및 y 축을 따르는 이동을 식별한다. The rectangular configuration of the LEDs 905 allows the movement of the controller 900 on three axes and the rotation about each axis to be detected. Although only four LEDs are shown, this is for illustrative purposes only, and any number of LEDs in any configuration is possible. As the controller 900 is thrown forwards or backwards, the top LED and the bottom LED will be closer together, and the left and right LEDs will be keeping the same distance. Similarly, as the controller yaws to the left or to the right, the top LED and the bottom LED are keeping the same distance from each other, but the left LED and the right LED will appear to approach. The rolling movement of the controller can be detected by identifying the direction of the LEDs on the image plane. As the controller moves closer to the image capture device 105 along the line of sight, all of the LEDs will appear closer to each other. Finally, the movement of the controller along the image plane can be tracked by identifying the location of the LEDs on the image plane, thereby identifying the movement along the respective x and y axes.

제어기(900)는 또한 가청 또는 초음파 음향을 생성하기 위한 스피커(915)를 포함할 수 있다. 스피커(915)는, 증가된 상호작용을 위한 음향 효과들을 생성할 수 있고, 전송들을 수신하기 위한 마이크로폰 또는 다른 요소들을 갖는 컴퓨터 시스템으로, 인터페이스(902)로부터 배포된 명령들을 전송할 수 있다. The controller 900 may also include a speaker 915 for producing an audible or ultrasonic sound. Speaker 915 may generate sound effects for increased interaction and may transmit instructions distributed from interface 902 to a computer system having a microphone or other elements for receiving transmissions.

도 11은 도 9 및 도 10의 제어기에 대한 예시적 응용예를 도시한다. 이러한 응용예에서, 드라이빙 시뮬레이션(driving simulation)은 제어기(900)의 회전을 가상 자동차의 스티어링 휠의 회전과 같이 해석한다. 사용자(도시되지 않음)가 제어기(900)를 화살표(1105)에 의해 표시된 것처럼 회전시킴에 따라, 가상 스티어링 휠(900')은 화살표(1105')에 의해 표시된 것처럼 디스플레이(110) 상에서 회전된다. 일 실시형태에서, 제어기(900)의 각각의 회전 각도에 대하여 스티어링 휠(900')의 회전량을 지시하는 기어링 분량은 도 8을 참조하여 이상에서 기술된 것처럼 사용자가 선택가능하다. 또 다른 실시형태에서, 기어링 분량은, 도 12에서 도시된 예시적 그래프(1200)에 표현된 것처럼 소프트웨어에 의해 제어된다. 이러한 실시예에서, 기어링 분량은, 제어기(900)의 중심으로부터의 거리, 즉, 가상 방향고 관련하여 변화한다. 이것은, 제어기(900)의 90°회전만으로 가상 스티어링 휠(900')의 540°회전을 가능하게 한다. 0°근처(중심) 위치에서 낮은 기어링 분량을 유지함으로써, 일반적으로 상당한 스티어링 회전을 필요로 하지 않는 고속 드라이빙 동안 고도의 제어가 유지될 수 있다. 제어기(900)가 중심 위치로부터 더 멀리 회전됨에 따라, 기어링 분량은 그래프(1200)에 도시된 것처럼 증가되어, 일반적으로 더 느린 속도에서 필요한 더 급격한 회전을 수용한다. 11 illustrates an example application for the controller of FIGS. 9 and 10. In this application, driving simulation interprets the rotation of the controller 900 as the rotation of the steering wheel of the virtual vehicle. As the user (not shown) rotates the controller 900 as indicated by arrow 1105, virtual steering wheel 900 ′ is rotated on display 110 as indicated by arrow 1105 ′. In one embodiment, the amount of gearing indicative of the amount of rotation of the steering wheel 900 'for each angle of rotation of the controller 900 is user selectable as described above with reference to FIG. In yet another embodiment, the amount of gearing is controlled by software as represented in the example graph 1200 shown in FIG. 12. In this embodiment, the amount of gearing changes in relation to the distance from the center of the controller 900, ie the virtual direction. This allows for 540 ° rotation of the virtual steering wheel 900 ′ with only 90 ° rotation of the controller 900. By maintaining a low amount of gearing near the 0 ° (center) position, high control can be maintained during high speed driving, which typically does not require significant steering rotation. As the controller 900 is rotated further away from the center position, the amount of gearing increases as shown in the graph 1200, generally to accommodate the sharper rotation required at slower speeds.

도 13은 사용자에 의해 조작될 수 있는 스티어링 휠(1305)을 갖는 또 다른 예시적 제어기(1300)를 도시한다. 이러한 경우에, 스티어링 휠(1305)의 회전들 및 인터페이스(1302)의 버튼들의 동작은, LED들(1310)을 통한 데이터 전송을 행하는 제어기(1300)에 의해 해석된다. 13 shows another example controller 1300 having a steering wheel 1305 that can be operated by a user. In this case, the rotations of the steering wheel 1305 and the operation of the buttons of the interface 1302 are interpreted by the controller 1300 making data transfer via the LEDs 1310.

도 14는 제어기(1300)의 예시적 응용예를 도시한다. 이 실시예에서, 응용예는 스티어링 휠(1305)의 회전에 반응하여 배포된 명령들을 수신하고 이러한 명령들을 디스플레이(110) 내의 가상 스티어링 휠(1305)의 대응하는 회전들로서 번역하는 드라이빙 시뮬레이션이다. 스티어링 휠(1305)의 회전을 가상 스티어링 휠(1305')의 대응하는 회전으로 스케일링하는 기어링 분량은, 인터페이스(1302; 도 13)와의 사용자 상호작용에 반응하거나 소프트웨어 제어에 반응하여 변화될 수 있다. 도 15는 시간에 걸친 기어링 분량의 예시적 변화들을 도시하는 예시적 그래프(1500)를 도시한다. 일 실시예에서, 기어링의 변화들은 게임 플레이 동안 사용자에 의해 동적으로 설정될 수 있다. 게다가, 그래프(1500)에 의해 도시된 것처럼, 기어링의 변이들 은, 평탄하거나, 급격하거나, 단계적이거나, 장시간, 단시간 또는 이들의 조합일 수 있다. 그러므로, 기어링은, 더욱 사실적인 상호작용 경험을 제공하기 위해, 게임 세션 동안 시간에 걸쳐 게임에 의해 설정되거나 변화될 수 있다. 게다가, 사용자가 기어링을 제어할 수 있게 됨에 따라, 통상의 게임들에서 발견되는 예정된 제어들을 넘는 또 다른 차원의 제어가 가능하게 된다. 14 illustrates an example application of the controller 1300. In this embodiment, the application is a driving simulation that receives commands distributed in response to the rotation of the steering wheel 1305 and translates these commands as corresponding rotations of the virtual steering wheel 1305 in the display 110. The amount of gearing that scales the rotation of the steering wheel 1305 to the corresponding rotation of the virtual steering wheel 1305 'may vary in response to user interaction with the interface 1302 (FIG. 13) or in response to software control. FIG. 15 shows an example graph 1500 showing example changes in the amount of gearing over time. In one embodiment, changes in gearing can be dynamically set by the user during game play. In addition, variations of gearing may be flat, abrupt, gradual, long, short, or a combination thereof, as shown by graph 1500. Therefore, the gearing can be set or changed by the game over time during the game session to provide a more realistic interactive experience. In addition, as the user is able to control gearing, another dimension of control over the predetermined controls found in conventional games is possible.

도 16은 사용자 상호작용에 대응하는 영상 처리 시스템의 또 다른 예시적 응용예를 도시한다. 이 실시예에서, 사용자(1602)는, 영상 처리 시스템에 의해 입력 물체로서 인식될 수 있는 장난감 야구 배트(1605)를 스윙함으로써 야구 시뮬레이션과 상호작용한다. 장난감 야구 배트가 스윙됨에 따라, 사용자 및/또는 소프트웨어는 가상 야구 배트(1605')의 속도 또는 거리를 조작하기 위해 기어링 분량을 제어할 수 있다. 일 실시형태에서, 배트는 게임 플레이 동안 눌려질 수 있는 다수의 버튼들을 포함할 수 있고, 버튼들이 눌려짐에 따라 기어링은 변화될 수 있다. 또 다른 실시형태에서, 사용자는, 배트가 스윙될 때 적용될 기어링 레벨들의 조합을 미리 설정하거나 프로그래밍할 수 있다. 16 illustrates another example application of an image processing system corresponding to user interaction. In this embodiment, the user 1602 interacts with the baseball simulation by swinging a toy baseball bat 1605 that can be recognized as an input object by the image processing system. As the toy baseball bat swings, the user and / or software can control the amount of gearing to manipulate the speed or distance of the virtual baseball bat 1605 '. In one embodiment, the bat may include a number of buttons that can be pressed during game play, and the gearing may change as the buttons are pressed. In yet another embodiment, the user can preset or program a combination of gearing levels to be applied when the bat is swinging.

도 17은, 스윙의 길이에 따라 다른 시간들(t1 내지 t5)에서의 예시적 기어링 분량을 도시하는 그래프(1700)를 도시한다. 이러한 기어링 분량들은, 배트를 스윙하기 전에 사용자에 의해 설정될 수 있고 또는 카메라(105)에 의해 보여지는 것처럼 배트의 위치에 반응하여 게임에 의해 동적으로 설정될 수 있다. 또한, 어떻게 기어링이 시간에 따라 변화하거나, 특정 구간들에서 일정하거나, 또는 점점 증가할 수 있는 지가 도시되어 있다. 그래프(1700)에서, 기어링은, 접촉이 공과 행해질 때 배트의 스윙이 더욱 힘이 있도록, 시간들 t2-t3에서 더 높게 설정되며, 배트가 이미 접촉된 시간 t3-t4에서는 완화되어 있다. 일 실시형태에서, 상기와 같은 다른 시간들은 사용자에 의해 평가될 수 있거나, 또는 컴퓨터에 의해 결정될 수 있다. FIG. 17 shows a graph 1700 showing an example amount of gearing at different times t 1 to t 5 depending on the length of the swing. These gearing quantities may be set by the user before swinging the bat or may be dynamically set by the game in response to the bat's position as seen by the camera 105. Also shown is how gearing can change over time, be constant or increase in specific intervals. In graph 1700, gearing is set higher at times t 2- t 3 so that the swing of the bat becomes more powerful when the contact is made with the ball, and is relaxed at times t 3- t 4 when the bat is already in contact. have. In one embodiment, such other times may be evaluated by the user or determined by a computer.

일 실시예에서, 사용자는 수개의 연습 스윙들을 할 수 있고, 그 이후에 컴퓨터는 사용자의 실제 스윙 능력에 대응하는 다수의 예시적 시간 슬롯들을 매핑할 수 있다. 그 이후에, 사용자는, 사용자가 어떻게 게임 상호작용에 영향을 주기 원하는가에 따라, 각각의 시간 구간에 특정 기어링을 맞춤할당할 수 있다. 기어링이 설정되면, 사용자의 배트(1605) 이동은 배트(1605'; 예를 들어 게임 물체)의 이동으로 매핑될 수 있다. 또한, 기어링은, 다른 동작 동안 게임에 의해 미리 설정될 수 있고, 사용자에 의해 게임 플레이 동안 설정될 수 있으며, 게임 플레이 동안 실시간으로 조정될 수 있다. In one embodiment, the user may make several practice swings, after which the computer may map multiple example time slots corresponding to the user's actual swing ability. Thereafter, the user can assign specific gearing to each time interval, depending on how the user wants to affect game interaction. Once gearing is established, movement of the bat 1605 of the user may be mapped to movement of the bat 1605 '(e.g., a game object). In addition, gearing may be preset by the game during other operations, set by the user during game play, and adjusted in real time during game play.

도 18은, 사용자 상호작용에 반응하는 영상 처리 시스템의 또 다른 예시적 응요예를 도시한다. 이 실시예에서, 사용자(도시되지 않음)는 장난감 풋볼을 가지고 드로잉(throwing) 움직임을 행하고 작동기를 누름으로써 풋볼의 릴리스(release)를 가리키고, 풋볼 시뮬레이션과 상호작용한다. 물론, 장난감 풋볼 대신에, 제어기가 사용될 수 있다. 가상 플레이어(1802)는 사용자 상호작용에 반응하여 가상 풋볼(1805)을 조작한다. 일 실시형태에서, 작동기는, LED가, 풋볼 시뮬레이션 어플리케이션으로 보내지는 명령으로서, 영상 처리 시스템에 의해 인식되는 색상을 점등하거나 변화시키게 한다. 공을 릴리스한 이후에, 사용자는, 선택된 리시버의 움직임과 같은, 필드 상의 특정 동작을 제어할 수 있다. 일 실시형태에서, 공의 릴리스는, 예를 들어, 입력 물체의 더 좋은 이동들을 식별하는 것을 가능하게 하기 위해, 기어링 분량을 변화시키도록, 어플리케이션이 매퍼(도 7)로 기어링 데이터를 보내는 것을 유발한다. 18 illustrates another example application of an image processing system in response to user interaction. In this embodiment, the user (not shown) points to the release of the football by making a drawing movement with the toy football and pressing the actuator and interacts with the football simulation. Of course, instead of toy football, a controller can be used. The virtual player 1802 manipulates the virtual football 1805 in response to user interaction. In one embodiment, the actuator causes the LED to light up or change the color perceived by the image processing system as a command sent to the football simulation application. After releasing the ball, the user can control certain actions on the field, such as the movement of the selected receiver. In one embodiment, the release of the ball causes the application to send gearing data to the mapper (FIG. 7) to change the amount of gearing, for example to enable identifying better movements of the input object. do.

도 19는, 풋볼의 "릴리스" 시 기어링 분량의 변화를 보여주는 예시적 그래프(1900)를 도시한다. 간단한 그래프(1900)로 도시되었을지라도, 기어링은, 게임 물체에 따라 임의의 형태를 취할 수 있다. 19 shows an example graph 1900 showing a change in the amount of gearing upon "release" of football. Although shown as a simple graph 1900, gearing can take any form depending on the game object.

도 20은, 컴퓨터 프로그램에 대한 사용자 입력을 수신하기 위한 예시적 과정을 설명하는 순서도(2000)를 도시한다. 상기 과정은 시작 블록(2002)에 의해 표시된 것처럼 시작되고, 제어 입력의 위치가 식별되는 동작(2004)으로 진행한다. 제어 입력은, 도 7과 관련하여 이상에서 설명되는 3차원 공간 내의 입력 물체의 위치, 또는 도 14와 관련하여 이상에서 설명되는 사용자 인터페이스 장치의 위치일 수 있다. 위치는, 대표 값, 또는 벡터와 같은 복수의 값들로 표현될 수 있다. 제어 입력의 위치를 식별한 이후에, 과정은 동작 2006으로 진행한다. 20 shows a flowchart 2000 illustrating an example process for receiving user input for a computer program. The process begins as indicated by start block 2002 and proceeds to operation 2004 where the location of the control input is identified. The control input may be a position of an input object in the three-dimensional space described above with reference to FIG. 7, or a position of the user interface device described above with reference to FIG. 14. The position may be represented by a representative value, or a plurality of values such as a vector. After identifying the location of the control input, the process proceeds to operation 2006.

동작 2006에서, 위치가 변화되었는지 여부에 대한 결정이 행해진다. 위치가 변화되지 않았다면, 과정은 동작 2004로 복귀한다. 일 실시형태에서, 동작 2004는, 영상 데이터의 새로운 프레임이 영상 캡쳐 장치로부터 수신될 때까지 연기된다. 동작 2006에서, 위치가 변화되었음이 결정된다면, 과정은 동작 2008로 진행한다. In operation 2006, a determination is made whether the location has changed. If the position has not changed, the process returns to operation 2004. In one embodiment, operation 2004 is postponed until a new frame of image data is received from the image capture device. In operation 2006, if it is determined that the position has changed, the process proceeds to operation 2008.

동작 2008에서, 이동 벡터가 연산된다. 이동 벡터는 임의의 개수의 차원들을 가질 수 있다. 예를 들어, 3차원 공간 내의 입력 물체가 이동 중에 있다면, 이동 벡터는 3차원 벡터로서 이동을 기술할 수 있다. 그러나, 이동이 스티어링 휠과 같은 1차원 제어 입력이라면, 이동 벡터는, 스티어링 휠의 회전량을 기술하는 1차원 벡터이다. 이동 벡터를 결정한 이후에, 과정은 동작 2010으로 진행한다. In operation 2008, the motion vector is computed. The motion vector can have any number of dimensions. For example, if an input object in three-dimensional space is in motion, the motion vector can describe the motion as a three-dimensional vector. However, if the movement is a one-dimensional control input such as a steering wheel, then the movement vector is a one-dimensional vector describing the amount of rotation of the steering wheel. After determining the motion vector, the process proceeds to operation 2010.

동작 2010에서, 이동 벡터는 입력 벡터를 결정하기 위해 현재 기어링 분량에 의해 승산된다. 현재 기어링 분량은 스칼라량(scalar quantity) 또는 다차원 값일 수 있다. 스칼라량이라면, 이동 벡터의 모든 차원들은 동일한 량만큼 승산된다. 기어링 분량이 다차원이라면, 이동 벡터의 각각의 차원은 대응 차원의 기어링 분량만큼 승산된다. 기어링 분량은 사용자 입력에 반응하여 변화할 수 있고, 소프트웨어의 제어를 받을 수 있다. 그러므로, 현재 기어링 분량은 시시각각으로 변화할 수 있다. 이동 벡터에 현재 기어링 분량을 승산한 이후에, 과정은 동작 2012로 진행한다. In operation 2010, the motion vector is multiplied by the current gearing quantity to determine the input vector. The current gearing quantity can be a scalar quantity or a multidimensional value. If it is a scalar amount, all dimensions of the motion vector are multiplied by the same amount. If the amount of gearing is multidimensional, then each dimension of the motion vector is multiplied by the amount of gearing of the corresponding dimension. The amount of gearing can change in response to user input and can be controlled by software. Therefore, the current gearing amount can change from moment to moment. After multiplying the current vector by the amount of gearing, the process proceeds to operation 2012.

동작 2012에서, 가상 물체의 새로운 위치가 동작 2010에서 연산된 입력 벡터를 이용하여 연산된다. 새로운 위치는 카메라 위치, 또는 가상 스티어링 휠과 같은 물체 위치일 수 있다. 가상 물체는 디스플레이 스크린 상에 디스플레이되지 않을 수 있다. 가상 물체의 새로운 위치가 연산되면, 과정은, 새로운 위치를 표현하는 데이터가 어플리케이션 프로그램으로 전달되는 동작 2014로 진행한다. 그 다음에, 과정은 종료 블록(2016)에 의해 표시된 것처럼 종료한다. 그러나, 이러한 진행은 본질적으로 예시적이며, 다른 선택례들이 가능하다. In operation 2012, a new position of the virtual object is computed using the input vector computed in operation 2010. The new position may be a camera position or an object position such as a virtual steering wheel. The virtual object may not be displayed on the display screen. When the new position of the virtual object is calculated, the process proceeds to operation 2014 in which data representing the new position is transferred to the application program. The process then ends as indicated by end block 2016. However, this process is exemplary in nature, and other options are possible.

일 실시형태에서, 동작들은 입력 장치의 검출 및 입력 장치의 이동을 포함할 것이다. 입력 장치의 이동은 입력 장치를 보고 있는 카메라에 의해 결정된다. 사용자 제어 또는 미리 설정되거나 미리 프로그래밍된 세팅들에 의해 기어링 값은 적용된다. 사용자에 의해 설정된다면, 기어링 값은, 예를 들어, 사용자가 입력 장치(예를 들어, 제어기)의 버튼을 치는 것을 허용함으로써 선택될 수 있다. 기어링 분량에 따라서, 이동 제어는 컴퓨터 게임의 물체로 매핑된다. 사용자가 게임의 동작 그림을 제어하기 위해 입력 장치를 이용한다면, 설정되거나 설정되도록 제어되는 기어링은, 입력 장치에 의한 이동이 컴퓨터 게임의 동작 그림에 의한 이동으로 매핑되는 방법에 영향을 미칠 것이다. 그러므로, 기어링 및 기어링의 변화는, 컴퓨터 게임의 일부일 수 있는 물체에 의한 매핑된 반응의 동적 응용을 가능하게 한다. In one embodiment, the operations will include detection of the input device and movement of the input device. The movement of the input device is determined by the camera looking at the input device. The gearing value is applied by user control or by preset or pre-programmed settings. If set by the user, the gearing value can be selected, for example, by allowing the user to hit a button on an input device (eg, a controller). Depending on the amount of gearing, the movement control is mapped to the object of the computer game. If the user uses the input device to control the motion picture of the game, the gearing that is set or controlled to be set will affect how movement by the input device is mapped to motion by the motion picture of the computer game. Therefore, the gearing and the change in the gearing allow for the dynamic application of the mapped response by an object that may be part of a computer game.

다양한 실시형태들에서, 농도 값, 제어기 플레이어 번호, 제어기들을 포함하는 하나 이상의 입력 물체의의 방향 및/또는 위치를 결정하기 위해 이상에서 설명되는 영상 처리 기능들은, 컴퓨터 시스템에서 실행되는 프로세스에서 수행된다. 컴퓨팅 시스템은, 또한 제어기 플레이어 번호, 제어기들을 포함하는 하나 이상의 입력 물체들의 방향 및/또는 위치, 제어기 동작 등을 포함하는 데이터와 같은, 영상 또는 오디오 처리로부터 생성된 데이터를 요청하거나 이러한 데이터를 수용하는, 게임 어플리케이션일 수 있는 어플리케이션 프로그램으로 칭해지는 주 프로세스를 실행시킨다. 다양한 실시형태들에서, 영상 및/또는 오디오 처리 기능들을 수행하는 프로세스는, 비디오 카메라 또는 비디오/오디오 감시 장치를 위한 구동기이며, 상기 구동기는, 일반적으로 당업계에서 공지된 실시형태일 수 있는 임의의 형태의 프로세스간 통신을 통하여 데이터를 주 프로세스로 제공한다. 게임 소프트웨어 또는 다른 어플리케이션 프로그램인 주 프로세스를 실행시킴에 따라, 영상 또는 오디오 처리를 수행하는 프로세스는 동일 프로세서 또는 다른 프로세서에서 실행된다. 예를 들어, 프로시져 콜(procedure call)을 이용하여, 동일 프로세스에서의 영상 또는 오디오 처리 및 게임 기능 모두에 대한 공통 프로세스를 가지는 것이 가능하다. 그러므로, 입력 벡터 또는 다른 정보가 "프로그램"으로 제공되는 것으로 기술되고 있지만, 본 발명은, 단일 프로세스가 영상 처리 기능 및 게임 기능 모두를 수행할 수 있도록 프로시져 콜 또는 다른 소프트웨어 기능을 이용하여 프로세스의 일 루틴으로 이러한 데이터를 제공하는 것을 포함한다. 이에 따라, 통상의 프로세서 코어 또는 복수 프로세서 코어들에서 실행되는 하나 이상의 프로세스들이, 본 명세서에서 기술된 것처럼 영상 및/또는 오디오 처리를 수행하고, 분리된 프로세스는 게임 기능들을 수행한다. In various embodiments, the image processing functions described above to determine the concentration value, controller player number, direction and / or location of one or more input objects including the controllers are performed in a process executed in a computer system. . The computing system may also request or accept data generated from video or audio processing, such as data including a controller player number, the direction and / or location of one or more input objects including controllers, controller operation, and the like. It executes a main process called an application program which may be a game application. In various embodiments, the process of performing video and / or audio processing functions is a driver for a video camera or video / audio surveillance device, the driver being generally any of the embodiments known in the art. Provides data to the main process through a form of interprocess communication. By executing the main process which is game software or other application program, the process of performing the video or audio processing is executed in the same processor or another processor. For example, using a procedure call, it is possible to have a common process for both video or audio processing and game functions in the same process. Therefore, while an input vector or other information is described as being provided as a "program", the present invention uses a procedure call or other software function to enable a single process to perform both image processing and game functions. This includes providing this data to a routine. Accordingly, one or more processes running on a conventional processor core or multiple processor cores perform video and / or audio processing as described herein, and the separate process performs game functions.

본 발명은, 다른 사용자 입력 메커니즘들 및, 음향의 각도 방향을 추적하는 메커니즘들 및/또는 물체의 위치를 능동적으로 또는 수동적으로 추적하는 메커니즘들, 기계 시각을 이용하는 메커니즘들, 이들의 조합들로서 이용될 수 있으며, 추적된 물체는 시스템으로의 피드백을 조작하는 보조 제어들 또는 버튼들을 포함하고, 이러한 피드백은, 전송 또는 변조에 영향을 미치거나, 상태를 엔코딩하거나, 그리고/또는 명령들을 추적되는 장치로부터 또는 상기 장치로 전송하는, 버튼들, 압력 패드 등 뿐만 아니라, 광원으로부터의 발광, 음향 변형 수단, 또는 다른 적합한 송신기 및 변조기들을 포함할 수 있으며 이에 제한되지 않는다. The invention is intended to be used as other user input mechanisms, mechanisms for tracking the angular direction of sound and / or mechanisms for actively or passively tracking the position of an object, mechanisms using machine vision, combinations thereof The tracked object may include auxiliary controls or buttons to manipulate feedback to the system, which feedback may affect transmission or modulation, encode status, and / or commands from the device being tracked. Or but not limited to, buttons, pressure pads, etc., as well as light emitting from a light source, sound modifying means, or other suitable transmitters and modulators that transmit to the device.

본 발명은, 게임 콘솔들, 게임 컴퓨터들 또는 컴퓨팅 장치들, 핸드-헬드 장 치들, 마이크로프로세서 시스템들, 마이크로프로세서-기반 또는 프로그래밍가능 소모 전자장치들, 미니컴퓨터들, 주 프레임 컴퓨터들 등을 포함하는 다른 컴퓨터 시스템 구성들로 실시될 수 있다. 본 발명은, 네트워크를 통해 링크된 원거리 처리 장치들에 의해 태스크들이 수행되는 분산 컴퓨팅 환경들에서 실시될 수 있다. 예를 들어, 온라인 게임 시스템들 및 소프트웨어가 또한 사용될 수 있다. The invention includes game consoles, game computers or computing devices, hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, main frame computers, and the like. Other computer system configurations. The invention may be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a network. For example, online game systems and software may also be used.

이상의 실시형태들이 기술되었을지라도, 본 발명은 컴퓨터 시스템들 내에 저장된 데이터를 포함하는 다양한 컴퓨터-실시 동작들을 이용할 수 있다. 이러한 동작들은 물리적 분량들의 물리적 조작을 필요로 하는 것들이다. 통상적으로, 필수적이지는 않지만, 이러한 분량들은, 저장되고, 전송되고, 결합되며, 비교되고, 그렇지 않은면 조작될 수 있는 전기적 또는 자기적 신호들의 형태를 취한다. 게다가, 수행되는 조작들은, 종종 재생, 식별, 결정 또는 비교와 같은 용어로 칭해진다. Although the above embodiments have been described, the present invention may utilize various computer-implemented operations including data stored in computer systems. These operations are those requiring physical manipulations of physical quantities. Typically, but not necessarily, these quantities take the form of electrical or magnetic signals that can be stored, transmitted, combined, compared, and otherwise manipulated. In addition, the operations performed are often referred to in terms such as reproduction, identification, determination or comparison.

본 발명의 일부를 형성하는, 본 명세서에서 기술된 동작들은 유용한 기계 동작들이다. 본 발명은 또한 이러한 동작들을 수행하기 장치와 관련된다. 상기 장치는 이상에서 논의된 캐리어 네트워크(carrier network)와 같은 필요한 목적들을 위하여 특별히 구성될 수 있거나, 또는 컴퓨터 내에 저장된 컴퓨터 프로그램에 의해 선택적으로 동작되거나 구성되는 범용 컴퓨터일 수 있다. 특히, 다양한 범용 기계들이 본 명세서의 사상에 따라 기록된 컴퓨터 프로그램들을 이용하여 사용될 수 있거나, 또는 필요한 동작들을 수행하기 위해 더욱 특수화된 장치를 구성하는 것이 더욱 편할 수 있다. The operations described herein, which form part of the invention, are useful machine operations. The invention also relates to an apparatus for performing these operations. The apparatus may be specially configured for the necessary purposes, such as the carrier network discussed above, or it may be a general purpose computer which is selectively operated or configured by a computer program stored in the computer. In particular, various general purpose machines may be used using computer programs recorded in accordance with the teachings of the present disclosure, or it may be more convenient to construct a more specialized apparatus to perform the necessary operations.

본 발명은, 또한 컴퓨터 판독 매체 상의 컴퓨터 판독가능 코드로서 실시될 수 있다. 컴퓨터 판독가능 매체는, 컴퓨터 시스템에 의해 판독될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 장치이다. 컴퓨터 판독가능 매체의 실시예들은, 하드 드라이브들, NAS(network attached storage), 리드-온리 메모리(read-only memory), 랜덤-액세스 메모리(random-access memory), 플래시 기반 메모리(FLASH based memory), CD-ROM들, CD-R들, CD-RW들, DVD들, 자기 테이프들, 및 다른 광학 및 비-광학 데이터 저장 장치들을 포함한다. 컴퓨터 판독가능 매체는, 컴퓨터 판독가능 코드가 분산 형태로 저장되고 실행되도록, 네트워크에 연결된 컴퓨터 시스템들에 걸쳐서 분포될 수 있다. The invention may also be embodied as computer readable code on a computer readable medium. A computer readable medium is any data storage device that can store data that can be read by a computer system. Embodiments of computer readable media may include hard drives, network attached storage (NAS), read-only memory, random-access memory, flash based memory. , CD-ROMs, CD-Rs, CD-RWs, DVDs, magnetic tapes, and other optical and non-optical data storage devices. The computer readable medium may be distributed over computer systems connected to a network such that the computer readable code is stored and executed in a distributed form.

또한, 기어링이 비디오 게임들과 관련하여 논의되었을지라도, 기어링은 임의의 컴퓨터 제어 환경에 적용될 수 있다고 이해되어야 한다. 일 실시예에서, 기어링은, 정보의 상호작용, 선택 또는 입력을 가능하게 하는 컴퓨터 입력 장치와 관련될 수 있다. 다른 입력 또는 상호작용 동작들 동안 다른 기어링을 적용하는 것은, 미리 구성된 제어 세팅들을 가지는 환경들에서 통상적으로 발견되지 않는 더 발전된 동작을 수행하게 할 수 있다. 따라서, 본 명세서에서 정의된 것처럼, 기어링의 실시형태들은 넓은 범위를 포괄하는 어플리케이션이 주어져야 한다. Also, although gearing has been discussed in connection with video games, it should be understood that gearing can be applied to any computer controlled environment. In one embodiment, gearing may be associated with a computer input device that enables the interaction, selection or input of information. Applying different gearing during different input or interaction operations may result in a more advanced operation that is not typically found in environments with preconfigured control settings. Thus, as defined herein, embodiments of gearing should be given a wide range of applications.

기어링이 결정되면, 기어링은 컴퓨터 프로그램으로 전달되는 동작에 적용될 수 있다. 이상에서 언급되었듯이, 입력 장치의 동작의 추적은, 영상 분석, 관성 분석, 가청 분석을 통하여 성취될 수 있다. 동작들의 실시예들은, 공과 같은 물체를 던지는 것, 배트 또는 골프 클럽(golf club)과 같은 물체를 스윙하는 것, 핸드 펌 프(hand pump)를 펌핑하는 것, 문 또는 창문을 열거나 닫는 것, 스티어링 휠을 돌리는 것 또는 다른 차량 제어, 펀치들과 같은 무술 움직임, 모래를 뿌리는 움직임, 왁스를 칠하거나 벗겨내는 것, 집에 페인트칠하는 것, 흔드는 것, 덜걱거리는 것, 굴리는 것, 풋볼 던지기, 야구공 던지기, 손잡이를 돌리는 움직임, 3D/2D 마우스 움직임, 스크롤(scroll) 움직임, 공지된 윤곽들을 가진 움직임, 임의의 기록가능 움직임, 공간에서 임의의 방향으로 타이어를 펌핑하는 것과 같은 임의의 벡터의 앞뒤를 따르는 움직임, 경로를 따르는 움직임, 잡음 플로어, 스플라인들(splines) 등 내에서 기록되고, 추적되며, 반복될 수 있는 사용자 조작에 근거한 정확한 정지 시간과 시작 시간을 갖는 움직임을 포함하며, 이에 제한되지 않는다. 이러한 동작들 각각은 경로 데이터로부터 미리 기록될 수 있고 시간-기반 모델로서 저장될 수 있다. 그러므로, 기어링은 사용자 또는 프로그램에 의해 설정된 기어링의 정도에 따라서, 이러한 동작들 중 하나에 적용될 수 있다. Once gearing is determined, gearing may be applied to the operation transferred to the computer program. As mentioned above, the tracking of the operation of the input device may be achieved through image analysis, inertial analysis, and audible analysis. Embodiments of operations include throwing an object, such as a ball, swinging an object, such as a bat or golf club, pumping a hand pump, opening or closing a door or window, Turning the steering wheel or other vehicle control, martial arts movements such as punches, sanding movements, waxing or peeling off, painting the house, shaking, rattles, rolling, playing football Any vector such as, throwing a baseball, turning a handle, 3D / 2D mouse movement, scrolling movement, known contoured movement, any recordable movement, pumping tires in any direction in space Accurately based on user manipulations that can be recorded, tracked, and repeated within motions along the front and back, along paths, noise floors, splines, etc. It comprises a movement having a support time and the start time, not limited to this. Each of these operations may be pre-recorded from the route data and stored as a time-based model. Therefore, gearing may be applied to one of these operations, depending on the degree of gearing set by the user or program.

상술한 발명이 명확한 이해를 위하여 상세히 기술되었을지라도, 특정 변화들 및 변형례들이 첨부된 청구범위 내에서 실시될 수 있음은 명확하다. 따라서, 본 실시형태들은 예시적인 것이며 제한적이지 않고, 본 발명은 본 명세서 내에 주어진 세부사항들에 제한되지 않으며, 첨부된 청구범위의 범위 및 균등물 내에서 변형될 수 있다. Although the foregoing invention has been described in detail for clarity of understanding, it is clear that certain changes and modifications may be made within the scope of the appended claims. Accordingly, the present embodiments are illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.

Claims (21)

영상 데이터를 캡쳐(capture)하기 위한 비디오 캡쳐 장치를 포함하는 컴퓨터 게임 시스템과 상호작용 인터페이스(interface)하기 위한 방법으로서, 상기 방법은:A method for interacting with a computer game system comprising a video capture device for capturing image data, the method comprising: 입력 장치를 식별하는 단계;Identifying an input device; 상기 컴퓨터 게임 시스템에 의해 실행될 예정이며, 상기 입력 장치의 상호작용에 반응하는 동작을 정의하는 단계; Defining an action that is to be executed by the computer game system and that is responsive to interaction of the input device; 상기 동작과 상기 입력 장치의 상호작용 사이의 기어링(gearing)을 설립하는 단계; 및Establishing gearing between the operation and the interaction of the input device; And 상기 동작이 실행되는 동안 상기 기어링을 조정하는 단계를 포함하며,Adjusting the gearing while the operation is performed, 상기 기어링은 상기 입력 장치의 상호작용과 상기 동작들 사이의 비율을 설립하는 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법.And said gearing establishes a ratio between the interaction of said input device and said actions. 제 1 항에 있어서, 상기 입력 장치는, (i) 상기 상호작용을 정의하도록 이동하는 광(light), (ii) 상기 상호작용을 정의하도록 변화하는 관성 센서, (iii) 상기 상호작용을 정의하도록 변화하는 음향 장치, 또는 (iv) 상기 상호작용을 정의하는 변화들을 수신하는 믹서(mixer) 중 하나를 포함하는 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법. The apparatus of claim 1, wherein the input device comprises: (i) light moving to define the interaction, (ii) an inertial sensor changing to define the interaction, and (iii) to define the interaction A changing sound device, or (iv) a mixer receiving the changes defining the interaction. 제 1 항에 있어서, 광들의 이동은, 비디오 캡쳐 장치에 의해 캡쳐되는 체적 공간 내에서 검출되는 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법. The method of claim 1, wherein the movement of lights is detected within the volume space captured by the video capture device. 제 3 항에 있어서, The method of claim 3, wherein 상기 광들의 감지된 이동을 연속적으로 분석하는 단계; 및Continuously analyzing the sensed movement of the lights; And 상기 감지된 이동에 근거하거나 또는 프로그램에 근거하여 상기 동작의 갱신이 이루어지게 하는 단계를 더 포함하는 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법.And causing the update of the operation to be made based on the sensed movement or on a program basis. 제 2 항에 있어서, 상기 광은 발광 다이오드인 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법. 3. The method of claim 2, wherein the light is a light emitting diode. 제 5 항에 있어서, 상기 광의 상태는 온/오프(on/off) 조합들의 설정에 의해 표현되는 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법. 6. The method of claim 5, wherein the state of light is represented by a setting of on / off combinations. 제 1 항에 있어서, 상기 동작은, (a) 상기 컴퓨터 게임에 의해 실행될 때 컴퓨터 게임의 물체에 의한 이동량에 대해 설정하는 것, (b) 프로세스(process)를 실행하기 위한 변수를 설정하는 것, (c) 음향 또는 진동에 영향을 주는 프로세스로의 변화 속도를 설정하는 것, 또는 (d) 그래픽 물체의 이동에서의 변화 속도를 설정하는 것 중 하나를 포함하는 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법. The method of claim 1, wherein the operation comprises: (a) setting the amount of movement by the object of the computer game when executed by the computer game, (b) setting a variable for executing the process, and (c) setting the rate of change into the process that affects sound or vibration, or (d) setting the rate of change in the movement of the graphical object. Method for interactive interface. 제 2 항에 있어서, 상기 관성 센서, 상기 음향 센서, 또는 믹서로부터의 데이터를 적어도 주기적으로 분석하는 단계;3. The method of claim 2, further comprising: at least periodically analyzing data from the inertial sensor, the acoustic sensor, or a mixer; 상기 데이터의 주기적 분석에 근거하여 상기 기어링에 의해 갱신되는 변화들과 함께 상기 동작을 적어도 주기적으로 재적용하는 단계를 더 포함하는 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법. And reapplying the operation at least periodically with changes updated by the gearing based on the periodic analysis of the data. 제 2 항에 있어서, 상기 기어링이 조정될 때, 상기 조정은, 상기 동작에 영향을 주기 위해 (a) 단계별로, (b) 점차로(gradually) 또는 (c) 평탄하게(smoothly) 적용되는 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법.3. The method according to claim 2, wherein when the gearing is adjusted, the adjustment is applied (a) step by step, (b) gradually or (c) smoothly to affect the operation. And a method for interacting with a computer game system. 제 2 항에 있어서, 상기 관성 센서로부터의 데이터는 상기 입력 장치의 좌표 정보를 식별하도록 분석되고, 상기 좌표 정보는 상기 동작에 적용되는 벡터 데이터로 매핑(mapping)에 의해 변환되는 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법. The method of claim 2, wherein the data from the inertial sensor is analyzed to identify coordinate information of the input device, and the coordinate information is converted by mapping into vector data applied to the operation. A method for interacting with a computer game system. 제 10 항에 있어서, 상기 벡터 데이터는 상기 기어링의 조정들에 반응하여 스케일링(scaling)되는 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법. 11. The method of claim 10, wherein the vector data is scaled in response to adjustments of the gearing. 컴퓨팅 시스템에서 실행되는 컴퓨터 프로그램에 의해 수행될 동작들과 사용자 동작들 사이의 동적 사용자 상호작용을 수행하기 위한 시스템으로서, A system for performing dynamic user interaction between user actions and actions to be performed by a computer program running on a computing system, the system comprising: 상기 시스템은, 상기 컴퓨팅 시스템에 의해 실행될 컴퓨터 프로그램과 인터페이스하기 위한 입력 장치를 포함하며,The system includes an input device for interfacing with a computer program to be executed by the computing system, 상기 입력 장치는, 상기 컴퓨터 프로그램에 의해 적용될 동작으로 매핑됨에 따라 상기 입력 장치의 이동 데이터 사이의 스케일링된 값을 설립하기 위한 기어링 제어를 가지고,The input device has gearing control for establishing a scaled value between movement data of the input device as mapped to an operation to be applied by the computer program, 상기 기어링은, 상기 컴퓨터 프로그램이 실행되는 동안 조정되는 것을 특징으로 하는, 동적 사용자 상호작용을 수행하기 위한 시스템.And the gearing is adjusted while the computer program is running. 제 12 항에 있어서, 상기 기어링은, 상기 컴퓨터 프로그램과의 상호작용 전에 설정될 수 있거나, 상기 상호작용 동안 설정될 수 있거나, 또는 상기 상호작용 후에 설정될 수 있는 것을 특징으로 하는, 동적 사용자 상호작용을 수행하기 위한 시스템.13. The dynamic user interaction of claim 12, wherein the gearing can be set prior to the interaction with the computer program, can be set during the interaction, or can be set after the interaction. System for performing the operation. 제 12 항에 있어서, 상기 입력 장치는, 발광 다이오드들, 관성 센서, 음향 장치, 또는 입력들의 믹서 중 적어도 하나를 포함하는 제어기 또는 핸드-헬드 물 체(hand-held object)인 것을 특징으로 하는, 동적 사용자 상호작용을 수행하기 위한 시스템.13. The device of claim 12, wherein the input device is a controller or hand-held object comprising at least one of light emitting diodes, an inertial sensor, an acoustic device, or a mixer of inputs. System for performing dynamic user interaction. 제 14 항에 있어서, 음향 장치는, 상기 컴퓨팅 시스템이 상기 동작을 유발하게 하는 음향 또는 초음파 신호들을 전달하기 위한 스피커(speaker)를 포함하는 것을 특징으로 하는, 동적 사용자 상호작용을 수행하기 위한 시스템.15. The system of claim 14, wherein the acoustic device includes a speaker for conveying acoustic or ultrasonic signals causing the computing system to cause the operation. 제 14 항에 있어서, 상기 제어기는, 상기 컴퓨터 프로그램에 의한 동작을 유발하도록 상기 컴퓨팅 시스템과 통신하기 위해 사용자로부터의 입력을 수신하기 위한 마이크로폰(microphone)을 포함하는 것을 특징으로 하는, 동적 사용자 상호작용을 수행하기 위한 시스템.15. The dynamic user interaction of claim 14, wherein the controller comprises a microphone for receiving input from a user to communicate with the computing system to cause operation by the computer program. System for performing the operation. 제 14 항에 있어서, 상기 관성 센서로부터의 관성 데이터는 상기 입력 장치의 좌표 정보를 식별하도록 분석되고, 상기 좌표 정보는 상기 동작으로 적용되는 벡터 데이터로 상기 매핑에 의해 변환되는 것을 특징으로 하는, 동적 사용자 상호작용을 수행하기 위한 시스템.15. The dynamic according to claim 14, wherein the inertial data from the inertial sensor is analyzed to identify coordinate information of the input device, and the coordinate information is converted by the mapping into vector data applied in the operation. System for performing user interaction. 제 12 항에 있어서, 상기 기어링은, 상기 컴퓨터 프로그램의 물체와의 상호작용 전에 설정될 수 있거나, 상기 상호작용 동안 설정될 수 있거나, 또는 상기 상호작용 후에 설정될 수 있는 것을 특징으로 하는, 동적 사용자 상호작용을 수행하 기 위한 시스템.13. The dynamic user of claim 12 wherein the gearing may be set before an interaction with an object of the computer program, may be set during the interaction, or may be set after the interaction. System for performing interactions. 제 12 항에 있어서, 상기 컴퓨터 프로그램은 상호작용 어플리케이션(interactive application)이고, 상기 상호작용 어플리케이션은 비디오 게임, 프로그램, 인터넷 프로그램, 또는 인터페이싱 제어 프로그램(interfacing control program) 중 하나인 것을 특징으로 하는, 동적 사용자 상호작용을 수행하기 위한 시스템.13. The method of claim 12, wherein the computer program is an interactive application, the interactive application being one of a video game, a program, an internet program, or an interfacing control program. System for performing user interaction. 제 1항에 있어서,The method of claim 1, 상기 동작이 실행되는 동안 상기 기어링을 조정하는 단계는, 시간 구간, 상기 입력 장치의 회전 각도 및 상기 입력 장치의 버튼 눌림 중 적어도 어느 하나에 따라 상기 기어링을 조정하는 것을 특징으로 하는, 컴퓨터 게임 시스템과 상호작용 인터페이스하기 위한 방법.And adjusting the gearing while the operation is performed, adjusting the gearing according to at least one of a time interval, a rotation angle of the input device, and a button press of the input device. Method for interactive interface. 제 12항에 있어서,The method of claim 12, 상기 기어링은, 시간 구간, 상기 입력 장치의 회전 각도 및 상기 입력 장치의 버튼 눌림 중 적어도 어느 하나에 따라 상기 컴퓨터 프로그램이 실행되는 동안 조정되는 것을 특징으로 하는 동적 사용자 상호작용을 수행하기 위한 시스템.And the gearing is adjusted during execution of the computer program according to at least one of a time interval, a rotation angle of the input device and a button press of the input device.
KR1020087029707A 2006-05-04 2007-05-04 Methods and apparatuses for applying gearing effects to an input based on one or more of visual, acoustic, inertial, and mixed data Active KR101060779B1 (en)

Applications Claiming Priority (21)

Application Number Priority Date Filing Date Title
US11/381,724 2006-05-04
US11/381,725 2006-05-04
US11/381,728 2006-05-04
US11/381,727 2006-05-04
US11/381,729 2006-05-04
US11/381,727 US7697700B2 (en) 2006-05-04 2006-05-04 Noise removal for electronic device with far field microphone on console
US11/381,721 US8947347B2 (en) 2003-08-27 2006-05-04 Controlling actions in a video game unit
US11/381,724 US8073157B2 (en) 2003-08-27 2006-05-04 Methods and apparatus for targeted sound detection and characterization
US11/381,725 US7783061B2 (en) 2003-08-27 2006-05-04 Methods and apparatus for the targeted sound detection
US11/381,729 US7809145B2 (en) 2006-05-04 2006-05-04 Ultra small microphone array
US11/381,721 2006-05-04
US11/381,728 US7545926B2 (en) 2006-05-04 2006-05-04 Echo and noise cancellation
US11/382,036 2006-05-06
US11/382,036 US9474968B2 (en) 2002-07-27 2006-05-06 Method and system for applying gearing effects to visual tracking
US11/382,038 2006-05-06
US11/382,038 US7352358B2 (en) 2002-07-27 2006-05-06 Method and system for applying gearing effects to acoustical tracking
US11/382,041 US7352359B2 (en) 2002-07-27 2006-05-07 Method and system for applying gearing effects to inertial tracking
US11/382,041 2006-05-07
US11/382,040 US7391409B2 (en) 2002-07-27 2006-05-07 Method and system for applying gearing effects to multi-channel mixed input
US11/382,040 2006-05-07
PCT/US2007/010852 WO2007130582A2 (en) 2006-05-04 2007-05-04 Computer imput device having gearing effects

Publications (2)

Publication Number Publication Date
KR20090025228A KR20090025228A (en) 2009-03-10
KR101060779B1 true KR101060779B1 (en) 2011-08-30

Family

ID=38668336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087029707A Active KR101060779B1 (en) 2006-05-04 2007-05-04 Methods and apparatuses for applying gearing effects to an input based on one or more of visual, acoustic, inertial, and mixed data

Country Status (4)

Country Link
EP (1) EP2013865A4 (en)
JP (3) JP4567805B2 (en)
KR (1) KR101060779B1 (en)
WO (1) WO2007130582A2 (en)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8888593B2 (en) * 2005-10-26 2014-11-18 Sony Computer Entertainment Inc. Directional input for a video game
US8678896B2 (en) 2007-06-14 2014-03-25 Harmonix Music Systems, Inc. Systems and methods for asynchronous band interaction in a rhythm action game
US7625284B2 (en) 2007-06-14 2009-12-01 Harmonix Music Systems, Inc. Systems and methods for indicating input actions in a rhythm-action game
US8663013B2 (en) 2008-07-08 2014-03-04 Harmonix Music Systems, Inc. Systems and methods for simulating a rock band experience
EP2356545B1 (en) * 2008-10-27 2016-09-14 Sony Interactive Entertainment Inc. Spherical ended controller with configurable modes
US9898675B2 (en) * 2009-05-01 2018-02-20 Microsoft Technology Licensing, Llc User movement tracking feedback to improve tracking
US8465366B2 (en) 2009-05-29 2013-06-18 Harmonix Music Systems, Inc. Biasing a musical performance input to a part
US8449360B2 (en) 2009-05-29 2013-05-28 Harmonix Music Systems, Inc. Displaying song lyrics and vocal cues
KR20100138725A (en) 2009-06-25 2010-12-31 삼성전자주식회사 Virtual World Processing Unit and Methods
US9981193B2 (en) 2009-10-27 2018-05-29 Harmonix Music Systems, Inc. Movement based recognition and evaluation
US8702485B2 (en) 2010-06-11 2014-04-22 Harmonix Music Systems, Inc. Dance game and tutorial
US10357714B2 (en) 2009-10-27 2019-07-23 Harmonix Music Systems, Inc. Gesture-based user interface for navigating a menu
WO2011070596A1 (en) * 2009-12-09 2011-06-16 Danilo Pasquariello Control device for console-based videogames
US8636572B2 (en) 2010-03-16 2014-01-28 Harmonix Music Systems, Inc. Simulating musical instruments
US9358456B1 (en) 2010-06-11 2016-06-07 Harmonix Music Systems, Inc. Dance competition game
US8562403B2 (en) 2010-06-11 2013-10-22 Harmonix Music Systems, Inc. Prompting a player of a dance game
KR101441289B1 (en) * 2010-08-27 2014-09-29 에스케이플래닛 주식회사 Method and apparatus for creating digital contents considering input sensitivity of mobile device
US9024166B2 (en) 2010-09-09 2015-05-05 Harmonix Music Systems, Inc. Preventing subtractive track separation
US20120218395A1 (en) * 2011-02-25 2012-08-30 Microsoft Corporation User interface presentation and interactions
JP6041466B2 (en) * 2011-06-01 2016-12-07 任天堂株式会社 Information processing program, information processing apparatus, information processing system, and information processing method
US8884949B1 (en) 2011-06-06 2014-11-11 Thibault Lambert Method and system for real time rendering of objects from a low resolution depth camera
US20130080976A1 (en) * 2011-09-28 2013-03-28 Microsoft Corporation Motion controlled list scrolling
JP6177147B2 (en) * 2014-01-21 2017-08-09 株式会社ソニー・インタラクティブエンタテインメント Information processing apparatus and information processing method
JP6193135B2 (en) 2014-01-21 2017-09-06 株式会社ソニー・インタラクティブエンタテインメント Information processing apparatus, information processing system, and information processing method
JP6177146B2 (en) * 2014-01-21 2017-08-09 株式会社ソニー・インタラクティブエンタテインメント Information processing apparatus and information processing method
JP6177145B2 (en) * 2014-01-21 2017-08-09 株式会社ソニー・インタラクティブエンタテインメント Information processing apparatus and information processing method
CN105917385A (en) 2014-01-21 2016-08-31 索尼互动娱乐股份有限公司 Information processing device and information processing method
JP6027554B2 (en) 2014-01-21 2016-11-16 株式会社ソニー・インタラクティブエンタテインメント Information processing apparatus, information processing system, block system, and information processing method
KR102459716B1 (en) * 2014-07-30 2022-10-28 모비디어스 리미티드 Low power computational imaging
EP3234741A4 (en) * 2014-12-18 2018-08-22 Facebook, Inc. Method, system and device for navigating in a virtual reality environment
US20180133596A1 (en) * 2015-04-15 2018-05-17 Thomason Licensing Configuring translation of three dimensional movement
IT201700020955A1 (en) * 2017-02-24 2018-08-24 Xplored S R L METHOD AND APPARATUS FOR CHECKING VIDEO GAMES
TWI700614B (en) 2017-04-21 2020-08-01 宏達國際電子股份有限公司 Operating method of tracking system, controller, tracking system, and non-transitory computer readable storage medium
US10653957B2 (en) * 2017-12-06 2020-05-19 Universal City Studios Llc Interactive video game system
EP3650988A1 (en) * 2018-11-09 2020-05-13 iXperienz GmbH & Co. KG Input device and method for inputting information, as well as a method for generating a virtual pointer
US10773157B1 (en) 2019-07-26 2020-09-15 Arkade, Inc. Interactive computing devices and accessories
US10893127B1 (en) * 2019-07-26 2021-01-12 Arkade, Inc. System and method for communicating interactive data between heterogeneous devices
US10946272B2 (en) 2019-07-26 2021-03-16 Arkade, Inc. PC blaster game console
CN114225379A (en) * 2021-12-20 2022-03-25 努比亚技术有限公司 Game scene vibration regulation and control method, equipment and computer readable storage medium

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07284166A (en) * 1993-03-12 1995-10-27 Mitsubishi Electric Corp Remote control device
SE504846C2 (en) * 1994-09-28 1997-05-12 Jan G Faeger Control equipment with a movable control means
US5633657A (en) * 1994-10-11 1997-05-27 Falcon; Fernando D. Mouse driver arrangement for providing advanced scrolling capabilities to a conventional mouse
US6400374B2 (en) * 1996-09-18 2002-06-04 Eyematic Interfaces, Inc. Video superposition system and method
JPH10177451A (en) * 1996-12-16 1998-06-30 Fujitsu Ltd Instruction input device
US6720949B1 (en) * 1997-08-22 2004-04-13 Timothy R. Pryor Man machine interfaces and applications
US6203432B1 (en) * 1999-05-11 2001-03-20 Madcatz, Inc. System for adjusting the response characteristic of an electronic game input device
JP3847058B2 (en) * 1999-10-04 2006-11-15 任天堂株式会社 GAME SYSTEM AND GAME INFORMATION STORAGE MEDIUM USED FOR THE SAME
JP3403685B2 (en) * 2000-01-14 2003-05-06 コナミ株式会社 GAME SYSTEM AND COMPUTER-READABLE STORAGE MEDIUM
US20020085097A1 (en) * 2000-12-22 2002-07-04 Colmenarez Antonio J. Computer vision-based wireless pointing system
JP3611807B2 (en) * 2001-07-19 2005-01-19 コナミ株式会社 Video game apparatus, pseudo camera viewpoint movement control method and program in video game
JP4123878B2 (en) * 2001-09-17 2008-07-23 富士ゼロックス株式会社 Photoelectric conversion unit, position direction measuring apparatus, and position direction measuring method
JP4028708B2 (en) * 2001-10-19 2007-12-26 株式会社コナミデジタルエンタテインメント GAME DEVICE AND GAME SYSTEM
JP5109221B2 (en) * 2002-06-27 2012-12-26 新世代株式会社 Information processing device equipped with an input system using a stroboscope
JP3511518B1 (en) * 2003-03-07 2004-03-29 任天堂株式会社 GAME DEVICE, GAME PROGRAM, AND INFORMATION STORAGE MEDIUM
US20040212589A1 (en) * 2003-04-24 2004-10-28 Hall Deirdre M. System and method for fusing and displaying multiple degree of freedom positional input data from multiple input sources
CN1816792A (en) * 2003-07-02 2006-08-09 新世代株式会社 Information processing device, information processing system, operating article, information processing method, information processing program, and game system
JP2005046422A (en) * 2003-07-30 2005-02-24 Samii Kk Game machine controller
JP4779070B2 (en) * 2004-05-11 2011-09-21 新世代株式会社 Entertainment device and operation method thereof

Also Published As

Publication number Publication date
EP2013865A2 (en) 2009-01-14
EP2013865A4 (en) 2010-11-03
JP4598117B2 (en) 2010-12-15
JP2009266241A (en) 2009-11-12
WO2007130582A3 (en) 2008-12-04
WO2007130582A2 (en) 2007-11-15
JP2009112829A (en) 2009-05-28
JP2009535167A (en) 2009-10-01
JP4567805B2 (en) 2010-10-20
JP5277081B2 (en) 2013-08-28
KR20090025228A (en) 2009-03-10

Similar Documents

Publication Publication Date Title
KR101060779B1 (en) Methods and apparatuses for applying gearing effects to an input based on one or more of visual, acoustic, inertial, and mixed data
US10406433B2 (en) Method and system for applying gearing effects to visual tracking
US7352358B2 (en) Method and system for applying gearing effects to acoustical tracking
US7391409B2 (en) Method and system for applying gearing effects to multi-channel mixed input
US7352359B2 (en) Method and system for applying gearing effects to inertial tracking
CN101484933B (en) The applying gearing effects method and apparatus to input is carried out based on one or more visions, audition, inertia and mixing data
US10369466B2 (en) Combiner method for altering game gearing
EP1937380B1 (en) Wireless video game controller and method for operating a wireless video game controller
US8562433B2 (en) Illuminating controller having an inertial sensor for communicating with a gaming system
US9682320B2 (en) Inertially trackable hand-held controller
US8019121B2 (en) Method and system for processing intensity from input devices for interfacing with a computer program
US20080001951A1 (en) System and method for providing affective characteristics to computer generated avatar during gameplay
EP2111901B1 (en) Obtaining input for controlling execution of a game program

Legal Events

Date Code Title Description
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

FPAY Annual fee payment

Payment date: 20140806

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

FPAY Annual fee payment

Payment date: 20150806

Year of fee payment: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

FPAY Annual fee payment

Payment date: 20160810

Year of fee payment: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

FPAY Annual fee payment

Payment date: 20170811

Year of fee payment: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

FPAY Annual fee payment

Payment date: 20180809

Year of fee payment: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 10

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 11

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 12

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 13

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 14

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 15

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 15