EP2141570A2 - Support de stockage pour programme de traitement d'informations, appareil de traitement d'informations et procédé de traitement d'informations - Google Patents

Support de stockage pour programme de traitement d'informations, appareil de traitement d'informations et procédé de traitement d'informations Download PDF

Info

Publication number
EP2141570A2
EP2141570A2 EP09162614A EP09162614A EP2141570A2 EP 2141570 A2 EP2141570 A2 EP 2141570A2 EP 09162614 A EP09162614 A EP 09162614A EP 09162614 A EP09162614 A EP 09162614A EP 2141570 A2 EP2141570 A2 EP 2141570A2
Authority
EP
European Patent Office
Prior art keywords
gyro
magnitude
basis
motion
controlling
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.)
Granted
Application number
EP09162614A
Other languages
German (de)
English (en)
Other versions
EP2141570B1 (fr
EP2141570A3 (fr
Inventor
Shinya Hiratake
Takayuki Shimamura
Yoshikazu Yamashita
Masahiro Nakamura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Publication of EP2141570A2 publication Critical patent/EP2141570A2/fr
Publication of EP2141570A3 publication Critical patent/EP2141570A3/fr
Application granted granted Critical
Publication of EP2141570B1 publication Critical patent/EP2141570B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/573Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using trajectories of game objects, e.g. of a golf ball according to the point of impact
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/816Athletics, e.g. track-and-field sports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/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/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/812Ball games, e.g. soccer or baseball
    • 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/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • A63F2300/646Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car for calculating the trajectory of an object
    • 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/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8005Athletics
    • 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/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8011Ball

Definitions

  • This invention relates to a storage medium storing an information processing program, an information processing apparatus, and an information processing method. More specifically, the present invention relates to a storage medium storing an information processing program, an information processing apparatus and an information processing method for controlling motions of an object in a virtual space on the basis of a status signal output from a detecting means for detecting a status including at least a position and an attitude of an input device.
  • An input controlling device of a game apparatus of the related art has a multi-axis acceleration sensor and a multi-axis gyro sensor.
  • outputs from the multi-axis gyro sensor are used in order to produce orientation data relative to turning (twisting) a sword, orientation data relative to turning the sword forward and backward, and right and left.
  • outputs from the multi-axis acceleration sensor are used in order to produce data of swinging a sword, such as data relative to strong and weak, and data relative to movements in forward and backward, right and left, and up and down directions.
  • an attitude of the input controlling device is calculated by utilizing angular velocity information of a rotational movement obtained from the multi-axis gyro sensor.
  • a detail of method of calculating an attitude of the input controlling device is not described.
  • method of accumulating angular velocity information is generally employed.
  • the information obtained from the multi-axis gyro sensor was only used for calculating an attitude of the input controlling device, never giving versatility, such as throwing (moving) an object existing in a virtual space.
  • a multi-axis acceleration sensor is required to be separately provided, making the input controlling device itself expensive.
  • Another object of the present invention is to provide a storage medium storing an information processing program, an information processing apparatus and an information processing method which are able to execute various processing on the basis of a gyro signal.
  • the present invention employs following features in order to solve the above-described problems. It should be noted that reference numerals and the supplements inside the parentheses show one example of a corresponding relationship with the embodiments described later for easy understanding of the present invention, and do not limit the present invention.
  • a first invention is a storage medium storing an information processing program, and the information processing program causes a computer of an information processing apparatus controlling a motion of an object within a virtual space on the basis of a status signal output from a detecting means for detecting a status including at least one of a position and an attitude of an input device to function as a first motion controlling means for controlling the object such that it performs a first motion within the virtual space on the basis of the status signal, a condition determining means for determining whether or not information relative to a magnitude of the status signal satisfies a predetermined condition, and a second motion controlling means for controlling the object such that it performs a second motion different from the first motion within the virtual space on the basis of the status signal in a case that the condition determining means determines that the information relative to a magnitude of the status signal satisfies a predetermined condition.
  • an information processing program is executed by a computer (40, 42, etc.) of an information processing apparatus (12) controlling a motion of an object within a virtual space (104) on the basis of a status signal output from a detecting means (24, 92) for detecting a status including at least one of a position and an attitude of an input device (22).
  • a first motion controlling means (40, S5, S15) controls the object such that it performs a first motion within the virtual space on the basis of the status signal.
  • a condition determining means (40, S21, S63, S73) determines whether or not information relative to a magnitude of the status signal satisfies a predetermined condition.
  • a second motion controlling means (40, S29) controls the object such that it performs a second motion different from the first motion within the virtual space on the basis of the status signal in a case that the condition determining means determines that information relative to a magnitude of the status signal satisfies a predetermined condition.
  • an object is caused to perform different motions on the basis of a magnitude of a status signal, so that it is possible to execute various processing based on a status signal relative to a position and an attitude of the controller.
  • a second invention is according to the first invention, and the detecting means includes a gyro sensor, and the status signal is a gyro signal.
  • the detecting means includes a gyro sensor, and a status including at least a position and an attitude of the input device is detected on the basis of a gyro signal of the gyro sensor.
  • a position and an attitude of the input device are detected by utilizing a general-purpose sensor, such as a gyro sensor, allowing a movement of the object in the virtual space to be controlled by detecting a position and an attitude of the input device with a simple configuration,.
  • a general-purpose sensor such as a gyro sensor
  • a third invention is according to the second invention, and the condition determining means includes a gyro magnitude calculating means for calculating a magnitude of the gyro signal and a first gyro magnitude determining means for determining whether or not the magnitude of the gyro signal calculated by the gyro magnitude calculating means is above a first predetermined value, and the second motion controlling means controls the object such that it performs the second motion in a case that the first gyro magnitude determining means determines that the magnitude of the gyro signal is above the first predetermined value.
  • the condition determining means includes a gyro magnitude calculating means (40, S5) and a first gyro magnitude determining means (40, S73).
  • the gyro magnitude calculating means calculates a magnitude of the gyro signal.
  • the first gyro magnitude determining means determines whether or not the magnitude of the gyro signal calculated by the gyro magnitude calculating means is above a first predetermined value.
  • the second motion controlling means controls a movement of the object according to the attitude determined based on the gyro signal, for example, such that it performs the second motion in a case that the first gyro magnitude determining means determines that the magnitude of the gyro signal is above the first predetermined value ("YES" in S73).
  • a movement of the object within the three-dimensional virtual space can be controlled on the basis of the gyro signal.
  • a fourth invention is according to the third invention, and the second motion controlling means includes a movement controlling means for controlling a moving velocity and a moving direction of the object on the basis of the gyro signal in a case that it is determined that the magnitude of the gyro signal is above the first predetermined value.
  • a movement controlling means controls a moving velocity and a moving direction of an object on the basis of the gyro signal in a case that it is determined that the magnitude of the gyro signal is above the first predetermined value. For example, an initial velocity and a direction of the object are decided, and then, the object is moved according to a general calculation of physics.
  • the fourth invention it is possible to control the movement of the object on the basis of the gyro signal.
  • a fifth invention is according to the third invention, and the input device further includes an acceleration sensor, the information processing program causes the computer to further function as an acceleration calculating means for calculating an acceleration signal corresponding to an acceleration occurring to the input device on the basis of an output from the acceleration sensor, the second motion controlling means includes a moving velocity controlling means for controlling a moving velocity of the object on the basis of the acceleration signal calculated by the acceleration calculating means in a case that it is determined that the magnitude of the gyro signal is above the first predetermined value, a moving direction controlling means for controlling a moving direction of the object on the basis of the gyro signal in a case that it is determined that the magnitude of the gyro signal is above the first predetermined value.
  • the input device further comprises an acceleration sensor (74).
  • the information processing program causes the computer to further function as an acceleration calculating means (40).
  • the acceleration calculating means calculates an acceleration signal corresponding to an acceleration occurring to the input device on the basis of an output from the acceleration sensor.
  • a moving velocity controlling means (40, S103) controls a moving velocity of the object on the basis of the acceleration signal calculated by the acceleration calculating means in a case that it is determined that the magnitude of the gyro signal is above the first predetermined value ("YES" in S73). For example, an initial velocity of the object is calculated.
  • a moving direction controlling means (40, S85) controls a moving direction of the object on the basis of the gyro signal in a case that it is determined that the magnitude of the gyro signal is above a first predetermined value ("YES" in S73). For example, a direction of the initial velocity of the object, that is, a moving direction at a start of the movement is calculated.
  • a moving velocity of the object is controlled on the basis of the acceleration calculated based on an output from the acceleration sensor provided to the controller, and a moving direction of the object is controlled on the basis of the gyro signal, so that it is possible to execute more various processing than when only the gyro signal is used.
  • a sixth invention is according to the third invention, and the information processing program causes the computer to further function as a gyro magnitude storing means for sequentially storing magnitude data corresponding to the magnitude of the gyro signal in a storing means, an extreme calculating means for calculating, on the basis of magnitudes of a plurality of gyro signals indicated by the magnitude data stored in the storing means, an extreme of the magnitudes of the gyro signals, a second gyro magnitude determining means for determining whether or not the extreme of the magnitude of the gyro signal calculated by the extreme calculating means is above a second predetermined value, and the second motion controlling means controls the object such that it performs the second motion within the virtual space on the basis of the gyro signal in a case that the second gyro magnitude determining means determines that the extreme is above the second predetermined value.
  • the information processing program causes the computer to further function as a gyro magnitude storing means (40, 502, S5, S13), an extreme calculating means (40, S57-S71), and a second gyro magnitude determining means (40, S73).
  • the gyro magnitude storing means sequentially stores magnitude data (502b) corresponding to the magnitude of the gyro signal in a storing means.
  • the extreme calculating means calculates on the basis of magnitudes of a plurality of gyro signals indicated by the magnitude data stored in the storing means, an extreme of the magnitudes of the gyro signals.
  • the second gyro magnitude determining means determines whether or not the extreme of the magnitude of the gyro signal calculated by the extreme calculating means is above a second predetermined value.
  • the second motion controlling means controls the object such that it performs the second motion within the virtual space on the basis of the gyro signal in a case that the second gyro magnitude determining means determines that the extreme is above the second predetermined value ("YES" in S73).
  • the object in a case that an extreme of the magnitude of the gyro signal is above the second predetermined value, the object is moved by the second motion controlling means, preventing a malfunction due to an erroneous detection from occurring.
  • a seventh invention is according to the third invention, and the information processing apparatus is a game apparatus for controlling a motion of the object within the virtual space.
  • the information processing apparatus is a game apparatus (12) for controlling a motion of the object within the virtual space.
  • the seventh invention it is possible to cause the object of the game in the virtual space to perform various processing on the basis of the gyro signal.
  • An eighth invention is according to the seventh invention, wherein the second motion controlling means includes a movement controlling means for controlling a moving velocity and a moving direction of the object on the basis of the gyro signal in a case that it is determined that the magnitude of the gyro signal is above the first predetermined value.
  • the eighth invention also, similar to the fourth invention, it is possible to control the movement of the object on the basis of the gyro signal.
  • a ninth invention is according to the seventh invention, and the input device further comprises an acceleration sensor, the information processing program causes the computer to further function as an acceleration calculating means for calculating an acceleration signal corresponding to an acceleration occurring to the input device on the basis of an output from the acceleration sensor, and the second motion controlling means includes a moving velocity controlling means for controlling a moving velocity of the object on the basis of the acceleration signal calculated by the acceleration calculating means in a case that it is determined that the magnitude of the gyro signal is above the first predetermined value, and a moving direction controlling means for controlling a moving direction of the object on the basis of the gyro signal in a case that the magnitude of the gyro signal is above the first predetermined value.
  • the ninth invention also, similar to the fifth invention, it is possible to execute more various processing than when only the gyro signal is used.
  • a tenth invention is according to the seventh invention, and the information processing program causes the computer to further function as a gyro magnitude storing means for sequentially storing magnitude data corresponding to the magnitude of the gyro signal in a storing means, an extreme calculating means for calculating, on the basis of magnitudes of a plurality of gyro signals indicated by the magnitude data stored in the storing means, an extreme of the magnitudes of the gyro signals, a second gyro magnitude determining means for determining whether or not the extreme of the magnitude of the gyro signal calculated by the extreme calculating means is above a second predetermined value, and the second motion controlling means controls the object such that it performs the second motion within the virtual space on the basis of the gyro signal in a case that the second gyro magnitude determining means determines that the extreme is above the second predetermined value.
  • the tenth invention also, similar to the sixth invention, it is possible to prevent malfunction due to an erroneous detection from occurring.
  • An eleventh invention is according to the first invention, and the first motion controlling means includes an arrangement controlling means for arranging the object within the virtual space according to at least any one of a position and an orientation which are decided on the basis of the status signal.
  • an arrangement controlling means (40, S17) arranges the object within the virtual space according to at least any one of a position and an orientation which are decided on the basis of the status signal.
  • the eleventh invention it is possible to arrange the object corresponding to positions and attitudes of the input device.
  • the arranging positions of the object are also changed depending on the change in positions and attitudes of the input device. That is, the motion of the object is controlled.
  • a twelfth invention is an information processing apparatus controlling a motion of an object within a virtual space on the basis of a status signal output from a detecting means for detecting a status including at least one of a position and an attitude of an input device, comprises a first motion controlling means for controlling the object such that it performs a first motion within the virtual space on the basis of the status signal, a condition determining means for determining whether or not information relative to a magnitude of the status signal satisfies a predetermined condition, and a second motion controlling means for controlling the object such that it performs a second motion different from the first motion within the virtual space on the basis of the status signal in a case that the condition determining means determines that the information relative to a magnitude of the status signal satisfies a predetermined condition.
  • the twelfth invention also, similar to the first invention, it is possible to execute various processing on the basis of a status signal relative to a position and an attitude of the input device.
  • a thirteenth invention is an information processing method of an information processing apparatus for controlling a motion of an object within a virtual space on the basis of a status signal output from a detecting means for detecting a status including at least one of a position and an attitude of an input device including steps of:(a) controlling the object such that it performs a first motion within the virtual space on the basis of the status signal, (b) determining whether or not information relative to a magnitude of the status signal satisfies a predetermined condition, and (c) controlling the object such that it performs a second motion different from the first motion within the virtual space on the basis of the status signal in a case that the step (b) determines that the information relative to a magnitude of the status signal satisfies a predetermined condition.
  • the thirteenth invention also, similar to the first invention, it is possible to execute various processing on the basis of a status signal relative to a position and an attitude of the input device.
  • a game system 10 of one embodiment of the present invention includes a video game apparatus (hereinafter referred to as a "game apparatus") 12 functioning as an information processing apparatus, and a controller 22.
  • a video game apparatus hereinafter referred to as a "game apparatus"
  • the game apparatus 12 of this embodiment is designed such that it can be connected to four controllers 22 at the maximum.
  • the game apparatus 12 and the respective controllers 22 are connected by a wireless manner.
  • the wireless communication is executed according to a Bluetooth (registered trademark) standard, for example, but may be executed by other standards such as infrared rays, a wireless LAN. In addition, it may be connected by a wire.
  • the controller 22 is connected (coupled) with a gyro unit 24.
  • the game apparatus 12 includes a roughly rectangular parallelepiped housing 14, and the housing 14 is furnished with a disk slot 16 on a front surface.
  • An optical disk 18 as one example of an information storage medium storing game program, etc. is inserted through the disk slot 16 to be loaded into a disk drive 54 (see Figurer 2) within the housing 14.
  • a disk drive 54 see Figurer 2
  • an LED and a light guide plate are arranged such that the LED of the disk slot 16 can light on or off in accordance with various processing.
  • a power button 20a and a reset button 20b are provided at the upper part thereof, and an eject button 20c is provided below them.
  • a connector cover for external memory card 28 is provided between the reset button 20b and the eject button 20c, and in the vicinity of the disk slot 16.
  • a connector for external memory card 62 (see Figurer 2) is provided, through which an external memory card (hereinafter simply referred to as a "memory card") not shown is inserted.
  • the memory card is employed for loading the game program, etc.
  • storing the game data described above may be performed on an internal memory, such as a flash memory 44 (see Figurer 2) inside the game apparatus 12 in place of the memory card.
  • the memory card may be utilized as a backup memory for the internal memory.
  • other applications except for the game may be executed, and in such a case, data of the other applications can be stored in the memory card.
  • a general-purpose SD card can be employed as a memory card, but other general-purpose memory cards, such as memory sticks, a multimedia card (registered trademark) can be employed.
  • the game apparatus 12 has an AV cable connector 58 ( Figurer 2) on the rear surface of the housing 14, and by utilizing the AV cable connector 58, a monitor 34 and a speaker 34a are connected to the game apparatus 12 through an AV cable 32a.
  • the monitor 34 and the speaker 34a typically are a color television receiver, and through the AV cable 32a, a video signal from the game apparatus 12 is input to a video input terminal of the color television, and a sound signal from the game apparatus 12 is input to a sound input terminal.
  • a game image of a three-dimensional (3D) video game for example, is displayed on the screen of the color television (monitor) 34, and stereo game sound, such as a game music, a sound effect, etc.
  • a marker unit 34b including two infrared ray LEDs (markers) 340m and 340n is provided around the monitor 34 (on the top side of the monitor 34, in this embodiment).
  • the marker unit 34b is connected to the game apparatus 12 through a power source cable 32b. Accordingly, the marker unit 34b is supplied with power from the game apparatus 12.
  • the markers 340m and 340n emit lights ahead of the monitor 34.
  • the power of the game apparatus 12 is applied by means of a general AC adapter (not illustrated).
  • the AC adapter is inserted into a standard wall socket for home use, and the game apparatus 12 transforms the house current (commercial power supply) to a low DC voltage signal suitable for driving.
  • a battery may be utilized as a power supply.
  • a user or a player turns the power of the game apparatus 12 on for playing the game (or applications other than the game). Then, the user selects an appropriate optical disk 18 storing a program of a video game (or other applications the player wants to play), and loads the optical disk 18 into the disk drive 54 of the game apparatus 12. In response thereto, the game apparatus 12 starts to execute a video game or other applications on the basis of the program recorded in the optical disk 18.
  • the user operates the controller 22 in order to apply an input to the game apparatus 12. For example, by operating any one of the input means 26, a game or other application is started. Besides the operation of the input means 26, by moving the controller 22 itself, it is possible to move a moving image object (player object) in different directions or change a perspective of the user (camera position) in a 3-dimensional game world.
  • programs of the video game and other applications may be stored (installed) in an internal memory (flash memory 42 (see Figurer 2)) of the game apparatus 12 so as to be executed from the internal memory.
  • programs stored in a storage medium like an optical disk 18 may be installed onto the internal memory, or downloaded programs may be installed onto the internal memory.
  • FIG. 2 is a block diagram showing an electric configuration of the video game system 10 in Figurer 1 embodiment. Although illustration is omitted, the respective components within the housing 14 are mounted on a printed board.
  • the game apparatus 12 has a CPU 40.
  • the CPU 40 functions as a game processor.
  • the CPU 40 is connected with a system LSI 42.
  • the system LSI 42 is connected with an external main memory 46, a ROM/RTC 48, a disk drive 54, and an AV IC 56.
  • the external main memory 46 is utilized as a work area or a buffer area of the CPU 40 by storing programs like a game program, etc., and various data.
  • the ROM/RTC 48 the so-called boot ROM, is incorporated with a program for activating the game apparatus 12, and provided with a time circuit for counting a time.
  • the disk drive 54 reads a program, image data, sound data, etc. from the optical disk 18, and writes them in an internal main memory 42e described later or the external main memory 46 under the control of the CPU 40.
  • the system LSI 42 is provided with an input-output processor 42a, a GPU (Graphics Processor Unit) 42b, a DSP (Digital Signal Processor) 42c, a VRAM 42d and an internal main memory 42e. These are connected with each other by internal buses although illustration is omitted.
  • the input-output processor (I/O processor) 42a executes transmission and reception of data, downloads of data, and so forth. A detailed description is made later as to transmission and reception and download of the data.
  • the GPU 42b is made up of a part of a rendering means, and receives a graphics command (construction command) from the CPU 40 to generate game image data according to the command. Additionally, the CPU 40 applies an image generating program required for generating game image data to the GPU 42b in addition to the graphics command.
  • the GPU 42b is connected with the VRAM 42d as described above.
  • the GPU 42b accesses the VRAM 42d to acquire the data (image data: data such as polygon data, texture data, etc.) required to execute the construction command. Additionally, the CPU 40 writes the image data required for drawing to the VRAM 42d via the GPU 42b.
  • the GPU 42b accesses the VRAM 42d to create game image data for drawing.
  • the DSP 42c functions as an audio processor, and generates audio data corresponding to a sound, a voice, music, or the like by means of the sound data and the sound wave (tone) data which are stored in the internal main memory 42e and the external main memory 46.
  • the game image data and audio data which are generated as described above are read by the AV IC 56, and output to the monitor 34 and the speaker 34a via the AV connector 58. Accordingly, a game screen is displayed on the monitor 34, and a sound (music) necessary for the game is output from the speaker 34a.
  • the input-output processor 42a is connected with a flash memory 44, a wireless communication module 50, a wireless controller module 52, an expansion connector 60 and a connector for external memory card 62.
  • the wireless communication module 50 is connected with an antenna 50a
  • the wireless controller module 52 is connected with an antenna 52a.
  • the input-output processor 42a can communicate with other game apparatuses and various servers to be connected to a network via the wireless communication module 50. It should be noted that it is possible to directly communicate with other game apparatuses without going through the network.
  • the input-output processor 42a periodically accesses the flash memory 44 to detect the presence or absence of data (referred to as transmission data) required to be transmitted to a network, and, in a case that the transmission data is present, transmits it to the network via the wireless communication module 50 and the antenna 50a. Furthermore, the input-output processor 42a receives data (referred to as reception data) transmitted from other game apparatuses via the network, the antenna 50a and the wireless communication module 50, and stores the reception data in the flash memory 44.
  • transmission data data
  • reception data data transmitted from other game apparatuses via the network, the antenna 50a and the wireless communication module 50
  • the input-output processor 42a receives data (download data) downloaded from the download server via the network, the antenna 50a and the wireless communication module 50, and stores the download data in the flash memory 44.
  • the input-output processor 42a receives input data transmitted from the controller 22 via the antenna 52a and the wireless controller module 52, and (temporarily) stores it in the buffer area of the internal main memory 42e or the external main memory 46.
  • the input data is erased from the buffer area after being utilized in the processing by the CPU 40 (game processing, for example).
  • the wireless controller module 52 performs a communication with the controller 22 in accordance with Bluetooth standards.
  • the input-output processor 42a is connected with the expansion connector 60 and the connector for external memory card 62.
  • the expansion connector 60 is a connector for interfaces, such as USB, SCSI, etc., and can be connected with medium such as an external storage, and peripheral devices such as another controller different from the controller 22.
  • the expansion connector 60 is connected with a cable LAN adaptor, and can utilize the cable LAN in place of the wireless communication module 50.
  • the connector for external memory card 62 can be connected with an external storage like a memory card.
  • the input-output processor 42a accesses the external storage via the expansion connector 60 and the connector for external memory card 62 to store and read the data.
  • the game apparatus 12 (housing 14) is furnished with the power button 20a, the reset button 20b, and the eject button 20c.
  • the power button 20a is connected to the system LSI 42.
  • the system LSI 42 is set to a mode of a normal energized state in which the respective components of the game apparatus 12 are supplied with power through an AC adapter not shown (referred to as "normal mode").
  • the system LSI 42 is set to a mode in which only a part of the components of the game apparatus 12 is supplied with power, and the power consumption is reduced to minimum (hereinafter referred to as a "standby mode").
  • the system LSI 42 issues an instruction to stop supplying the power to the components except for the input-output processor 42a, the flash memory 44, the external main memory 46, the ROM/RTC 48, the wireless communication module 50, and the wireless controller module 52. Accordingly, in this embodiment, in the standby mode, the CPU 40 never performs the application.
  • a fan is provided for excluding heat of the IC, such as the CPU 40, the system LSI 42, etc. to outside. In the standby mode, the fan is also stopped.
  • switching between the normal mode and the standby mode can be performed by turning on and off the power switch 26h of the controller 22 by remote control. If the remote control is not performed, setting is made such that the power supply to the wireless controller module 52a is not performed in the standby mode.
  • the reset button 20b is also connected to the system LSI 42. When the reset button 20b is pushed, the system LSI 42 restarts the activation program of the game apparatus 12.
  • the eject button 20c is connected to the disk drive 54. When the eject button 20c is pushed, the optical disk 18 is removed from the disk drive 54.
  • Figure 3(A) to Figure 3(E) show one example of an external appearance of the controller 22.
  • Figure 3(A) shows a leading end surface of the controller 22
  • Figure 3(B) shows a top surface of the controller 22
  • Figure 3(C) shows a right surface of the controller 22
  • Figure 3(D) shows a bottom surface of the controller 22
  • Figure 3(E) shows a trailing end of the controller 22.
  • the controller 22 has a housing 22a formed by plastic molding, for example.
  • the housing 22a is formed into an approximately rectangular parallelepiped shape and has a size small enough to be held by one hand of a user.
  • the housing 22a (controller 22) is provided with the input means (a plurality of buttons or switches) 26.
  • the input means a plurality of buttons or switches
  • FIG. 3(B) on a top surface of the housing 22a, there are provided a cross key 26a, a 1 button 26b, a 2 button 26c, an A button 26d, a - button 26e, a HOME button 26f, a + button 26g and a power switch 26h.
  • an inclined surface is formed on a bottom surface of the housing 22a, and a B-trigger switch 26i is formed on the inclined surface.
  • the cross key 26a is a four directional push switch, including four directions of front (or upper), back (or lower), right and left operation parts. By operating any one of the operation parts, it is possible to instruct a moving direction of a character or an object (player character or player object) that is operable by a player, instruct the moving direction of a cursor, or merely instruct the direction.
  • the 1 button 26b and the 2 button 26c are respectively push button switches. They are used for a game operation, such as adjusting a viewpoint position and a viewpoint direction in displaying the 3D game image, i.e. a position and an image angle of a virtual camera. Alternatively, the 1 button 26b and the 2 button 26c can be used for the same operation as that of the A-button 26d and the B-trigger switch 26i or an auxiliary operation.
  • the A-button switch 26d is the push button switch, and is used for causing the player character or the player object to take an action other than a directional instruction, specifically arbitrary actions such as hitting (punching), throwing, grasping (acquiring), riding, and jumping, etc.
  • a directional instruction specifically arbitrary actions such as hitting (punching), throwing, grasping (acquiring), riding, and jumping, etc.
  • an action game it is possible to give an instruction to jump, punch, move a weapon, and so forth.
  • RPG roll playing game
  • simulation RPG it is possible to instruct to acquire an item, select and determine the weapon and command, and so forth.
  • the A-button switch 26d is used to instruct a decision of an icon or a button image instructed by a pointer (instruction image) on the game screen. For example, when the icon or the button image is decided, an instruction or a command set in advance corresponding thereto can be input.
  • the - button 26e, the HOME button 26f, the + button 26g, and the power supply switch 26h are also push button switches.
  • the - button 26e is used for selecting a game mode.
  • the HOME button 26f is used for displaying a game menu (menu screen).
  • the + button 26g is used for starting (resuming) or pausing the game.
  • the power supply switch 26h is used for turning on/off a power supply of the game apparatus 12 by remote control.
  • the power supply switch for turning on/off the controller 22 itself is not provided, and the controller 22 is set at on-state by operating any one of the switches or buttons of the input means 26 of the controller 22, and when not operated for a certain period of time (30 seconds, for example) or more, the controller 22 is automatically set at off-state.
  • the B-trigger switch 26i is also the push button switch, and is mainly used for inputting a trigger such as shooting, and designating a position selected by the controller 22. In a case that the B-trigger switch 26i is continued to be pushed, it is possible to make movements and parameters of the player object constant. In a fixed case, the B-trigger switch 26i functions in the same way as a normal B-button, and is used for canceling the action and the command determined by the A-button 26d.
  • an external expansion connector 22b is provided on a trailing end surface of the housing 22a, and as shown in Figurer 3(B), an indicator 22c is provided on the top surface and on the side of the trailing end surface of the housing 22a.
  • the external expansion connector 22b is utilized for connecting another expansion controller not shown other than the controller 22.
  • the indicator 22c is made up of four LEDs, for example.
  • the indicator 22c can show identification information (controller number) of the controller 22 by lighting any one of the four LEDs and according to the lighted LED, and show the remaining amount of the battery of the controller 22 depending on the number of LEDs to be emitted.
  • the controller 22 has an imaged information arithmetic section 80 (see Figurer 4), and as shown in Figurer 3(A), a light incident opening 22d of the imaged information arithmetic section 80 is provided on the leading end surface of the housing 22a.
  • the controller 22 has a speaker 86 (see Figurer 4), and the speaker 86 is provided inside the housing 22a at the position corresponding to a sound release hole 22e between the 1 button 26b and the HOME button 26f on the top surface of the housing 22a as shown in Figurer 3(B).
  • Figurer 4(A) is an illustrative view showing a state that the gyro unit 24 is connected to the controller 22 as shown in Figure 1 .
  • the gyro unit 24 is connected to the trailing end surface of the controller 22 (on the side of the indicator 22c).
  • the gyro unit 24 has a housing 24a formed by plastics molding similar to the controller 22.
  • the housing 24a is a substantially cubic shape, and has an attachment plug 24b to be connected to the external expansion connector 22b of the controller 22 on the side for connection to the controller 22.
  • an external expansion connector 24c is provided on the opposite side to the side where the attachment plug 24b is provided.
  • FIG. 5 is a block diagram showing an electric configuration of the controller 22 and the gyro unit 24.
  • the controller 22 includes a processor 70, and the processor 70 is connected with the external expansion connector 22b, the input means 26, a memory 72, an acceleration sensor 74, a wireless module 76, the imaged information arithmetic section 80, an LED 82 (the indicator 22c), an vibrator 84, a speaker 86, and a power supply circuit 88 by an internal bus (not shown).
  • an antenna 78 is connected to the wireless module 76.
  • the indicator 22c is made up of the four LEDs 82 as described above.
  • the processor 70 is in charge of an overall control of the controller 22, and transmits (inputs) information (input information) input by the input means 26, the acceleration sensor 74, and the imaged information arithmetic section 80 as input data to the game apparatus 12 via the wireless module 76 and the antenna 78. At this time, the processor 70 uses the memory 72 as a working area or a buffer area. An operation signal (operation data) from the aforementioned input means 26 (26a to 26i) is input to the processor 70, and the processor 70 stores the operation data once in the memory 72.
  • the acceleration sensor 74 detects each acceleration of the controller 22 in directions of three axes of vertical direction (z-axial direction), lateral direction (y-axial direction), and forward and rearward directions (x-axial direction).
  • the acceleration sensor 74 is typically an acceleration sensor of an electrostatic capacity type, but the acceleration sensor of other type may also be used.
  • the acceleration sensor 74 detects the accelerations (ax, ay, and az) in each direction of x-axis, y-axis, z-axis for each first predetermined time, and inputs the data of the acceleration (acceleration data) thus detected to the processor 70.
  • the acceleration sensor 74 detects the acceleration in each direction of the axes in a range from -2.0g to 2.0g (g indicates a gravitational acceleration. The same thing can be said hereafter.)
  • the processor 70 detects the acceleration data given from the acceleration sensor 74 for each second predetermined time, and stores it in the memory 72 once.
  • the processor 70 creates input data including at least one of the operation data, acceleration data, marker coordinate data as described later and angular velocity data as described later, and transmits the input data thus created to the game apparatus 12 for each third predetermined time (5 msec, for example).
  • the acceleration sensor 74 is provided inside the housing 22a on the circuit board in the vicinity of where the cross key 26a is arranged.
  • the wireless module 76 modulates a carrier of a predetermined frequency by the input data, by using a technique of Bluetooth, for example, and emits its weak radio wave signal from the antenna 78. Namely, the input data is modulated to the weak radio wave signal by the wireless module 76 and transmitted from the antenna 78 (controller 22). The weak radio wave signal thus transmitted is received by the wireless controller module 52 provided to the aforementioned game apparatus 12. The weak radio wave thus received is subjected to demodulating and decoding processing. This makes it possible for the game apparatus 12 (CPU 40) to acquire the input data from the controller 22. Then, the CPU 40 performs processing of the application (game processing), following the acquired input data and the application program (game program).
  • the controller 22 is provided with the imaged information arithmetic section 80.
  • the imaged information arithmetic section 80 is made up of an infrared rays filter 80a, a lens 80b, an imager 80c, and an image processing circuit 80d.
  • the infrared rays filter 80a passes only infrared rays from the light incident from the front of the controller 22.
  • the markers 340m and 340n placed near (around) the display screen of the monitor 34 are infrared LEDs for outputting infrared lights ahead of the monitor 34. Accordingly, by providing the infrared rays filter 80a, it is possible to image the image of the markers 340m and 340n more accurately.
  • the lens 80b condenses the infrared rays passing thorough the infrared rays filter 80a to emit them to the imager 80c.
  • the imager 80c is a solid imager, such as a CMOS sensor and a CCD, for example, and images the infrared rays condensed by the lens 80b. Accordingly, the imager 80c images only the infrared rays passing through the infrared rays filter 80a to generate image data.
  • the image imaged by the imager 80c is called an "imaged image”.
  • the image data generated by the imager 80c is processed by the image processing circuit 80d.
  • the image processing circuit 80d calculates a position of an object to be imaged (markers 340m and 340n) within the imaged image, and outputs each coordinate value indicative of the position to the processor 70 as imaged data (marker coordinate data to be described later) for each fourth predetermined time. It should be noted that a description of the process in the image processing circuit 80d is made later.
  • controller 22 is connected with the gyro unit 24.
  • the separable attachment plug 24b is connected to the external expansion connector 22b.
  • the separable attachment plug 24b is connected with the microcomputer 90 with a signal line.
  • the microcomputer 90 is connected with the gyro sensor 92, and connected with the external expansion connector 24c with a signal line.
  • the gyro sensor 92 detects angular velocities about three axes of vertical direction (about a z-axial direction), lateral direction (about a y-axial direction), and forward and rearward directions (about an x-axial direction) of the controller 22.
  • a rotation about the Z axis is represented by a yaw angle
  • a rotation about the Y axis is represented by a pitch angle
  • a rotation about the X axis is represented by a roll angle.
  • the gyro sensor 74 can employ a typically piezoelectric vibration type, but may employ other types.
  • the gyro sensor 92 detects an angular velocity ( ⁇ x, ⁇ y, ⁇ z) in relation to each of the X axis, the Y axis, and the Z axis every fourth predetermined time, and inputs the detected angular velocities to the microcomputer 90.
  • the angular velocities are converted from analog signals to digital data when input to the microcomputer 90.
  • the gyro sensor 92 used in this embodiment can measure an angular velocity relative to each axis in the range from 0 to 1500 dps (degree percent second).
  • the range from 900 to 1500 dps is a range of measure relative to the yaw angle
  • the range from 0 to 1500 dps is a range of measure relative to the pitch angle and the roll angle.
  • the microcomputer 90 detects an angular velocity applied from the gyro sensor 92 every fifth predetermined time, and temporarily stores angular velocity data corresponding to the angular velocity in a memory (not illustrated) included in the microcomputer 90. Then, the microcomputer 90 transmits the angular velocity data temporarily stored in the memory to the controller 22 (processor 70) every sixth predetermined time.
  • the microcomputer 90 temporarily stores the angular velocity data in the memory, and transmits the same in batches to a certain degree to the processor 70, but may directly transmit the angular velocity data to the processor 70 without temporarily storing the same in the memory.
  • Figurer 6 is an illustrative view summarizing a state when a player plays a game by utilizing the controller 22. It should be noted that the same is true for a case that another application is executed as well as a game playing. As shown in Figurer 6, when playing the game by means of the controller 22 in the video game system 10, the player holds the controller 22 with one hand. Strictly speaking, the player holds the controller 22 in a state that the front end surface (the side of the incident light opening 22d of the light imaged by the imaged information arithmetic section 80) of the controller 22 is oriented to the markers 340m and 340n.
  • the markers 340m and 340n are placed in parallel with the horizontal direction of the screen of the monitor 34. In this state, the player performs a game operation by changing a position on the screen indicated by the controller 22, and changing a distance between the controller 22 and each of the markers 340m and 340n.
  • Figurer 7 is a view showing viewing angles between the respective markers 340m and 340n, and the controller 22.
  • each of the markers 340m and 340n emits infrared ray within a range of a viewing angle ⁇ 1.
  • the imager 80c of the imaged information arithmetic section 80 can receive incident light within the range of the viewing angle ⁇ 2 taking the line of sight of the controller 22 as a center.
  • the viewing angle ⁇ 1 of each of the markers 340m and 340n is 34° (half-value angle) while the viewing angle ⁇ 2 of the imager 80c is 41°.
  • the player holds the controller 22 such that the imager 80c is directed and positioned so as to receive the infrared rays from the markers 340m and 340n. More specifically, the player holds the controller 22 such that at least one of the markers 340m and 340n exists in the viewing angle ⁇ 2 of the imager 80c, and the controller 22 exists in at least one of the viewing angles ⁇ 1 of the marker 340m or 340n. In this state, the controller 22 can detect at least one of the markers 340m and 340n. The player can perform a game operation by changing the position and the attitude of the controller 22 in the range satisfying the state.
  • an image of each of the markers 340m and 340n is imaged by the imaged information arithmetic section 80. That is, the imaged image obtained by the imager 80c includes an image (object image) of each of the markers 340m and 340n as an object to be imaged.
  • Figurer 8 is an illustrative view showing one example of the imaged image including the object images.
  • the image processing circuit 80d calculates coordinates (marker coordinates) indicative of the position of each of the markers 340m and 340n in the imaged image by utilizing the image data of the imaged image including the object images.
  • the image processing circuit 80d Since the object image appears as a high-intensity part in the image data of the imaged image, the image processing circuit 80d first detects the high-intensity part as a candidate of the object image. Next, the image processing circuit 80d determines whether or not the high-intensity part is the object image on the basis of the size of the detected high-intensity part.
  • the imaged image may include images other than the object image due to sunlight through a window and light of a fluorescent lamp in the room as well as the images 340m' and 340n' corresponding to the two markers 340m and 340n as an object image.
  • the determination processing whether or not the high-intensity part is an object image is executed for discriminating the images 340m' and 340n' as an object image from the images other than them, and accurately detecting the object image. More specifically, in the determination process, it is determined whether or not the detected high-intensity part is within the size of the preset predetermined range. Then, if the high-intensity part is within the size of the predetermined range, it is determined that the high-intensity part represents the object image. On the contrary, if the high-intensity part is not within the size of the predetermined range, it is determined that the high-intensity part represents the images other than the object image.
  • the image processing circuit 80d calculates the position of the high-intensity part. More specifically, the barycenter position of the high-intensity part is calculated.
  • the coordinates of the barycenter position is called a "marker coordinate”.
  • the barycenter position can be calculated with more detailed scale than the resolution of the imager 80c.
  • the resolution of the imaged image imaged by the imager 80c shall be 126 ⁇ 96, and the barycenter position shall be calculated with the scale of 1024 ⁇ 768. That is, the marker coordinate is represented by the integer from (0, 0) to (1024, 768).
  • the position in the imaged image shall be represented by a coordinate system (XY coordinate system) taking the upper left of the imaged image as an origin point, the downward direction as an Y-axis positive direction, and the right direction as an X-axis positive direction.
  • XY coordinate system a coordinate system taking the upper left of the imaged image as an origin point, the downward direction as an Y-axis positive direction, and the right direction as an X-axis positive direction.
  • the image processing circuit 80d outputs data indicative of the calculated two marker coordinates.
  • the data of the output marker coordinates (marker coordinate data) is included in the input data by the processor 70 as described above, and transmitted to the game apparatus 12.
  • the game apparatus 12 detects the marker coordinate data from the received input data to thereby calculate an instructed position (instructed coordinate) by the controller 22 on the screen of the monitor 34 and a distances from the controller 22 to each of the markers 340m and 340n on the basis of the marker coordinate data. More specifically, from the position of the mid point of the two marker coordinates, a position to which the controller 22 faces, that is, an instructed position is calculated. The distance between the object images in the imaged image is changed depending on the distance between the controller 22 and each of the markers 340m and 340n, and therefore, the game apparatus 12 can grasp the distance between the controller 22 and each of the markers 340m and 340n by calculating the distance between the two marker coordinates.
  • the virtual game is to compete scores by moving a moving object such as a flying disk in a virtual space in accordance with an operation by a player, and making a non player object such as a dog catch the moving object.
  • a moving object such as a flying disk
  • a non player object such as a dog catch the moving object.
  • the non player object can catch the moving object or cannot catch it, or the score is changed depending on the position where the moving object is caught.
  • the score is not added.
  • Figurer 9 is an illustrative view showing one example of a game screen 100 of the above-described virtual game.
  • a dog (non player object) 102 is shown at substantially the center, and this non player object 102 holds the flying disk (moving object) 104 in its mouth.
  • a display area 106 of dotted frame is placed for displaying a message of informing a player or a player object (see Figure 10 ) of receiving the moving object 104.
  • a target object 108 having an arrow shape being a target for which the moving object 104 is thrown (moved) is shown.
  • a total score is shown at the right lower part of the game screen 100.
  • a predetermined button (A button 26d, for example) is pushed (turned on) with an instruction image such as a mouse pointer not shown moved over the display area 106 by an operation of the controller 22, a player object 110 (see Figure 10 ) described later receives the moving object 104 from the non player object 102.
  • the reason why the moving object 104 is received from the non player object 102 is for inducing the player holding the controller 22 connected with the gyro unit 24 to be opposed to the monitor 34, and inducing a position and a direction (attitude) of the controller 22 in the actual space when a throwing action of the moving object 104 is started to take a desired position and a desired orientation.
  • the position and the attitude of the controller 22 at this time are decided as a reference position and a reference attitude, and from then on, the position of the moving object 104 within the three-dimensional virtual space is calculated on the basis of the amount of displacement from the reference position, and the orientation of the moving object 104 within the three-dimensional virtual space is calculated on the basis of alteration from the reference orientation until an operation of receiving the moving object 104 from the non player object 102 is executed next.
  • a message for inducing a player before performing a throwing action of the flying disk (moving object) 104 to oppose to the target object 108, i.e., the monitor 34 (marker unit 34b) is displayed, and in response to the player clicking it, the moving object 104 is received. More specifically, the player is induced to turn the light incident opening 22d of the controller 22 that he or she holds to the monitor 34 (marker unit 34b).
  • the person twists his or her body to the left direction while in a case of throwing the flying disk with the left hand, the person twists his or her body to the right direction.
  • the top surface of the controller 22 corresponds to the top surface of the moving object 104
  • the attitude (inclination) of the controller 22 is represented as an orientation (inclination) of the moving object 104.
  • Figure 10 is an illustrative view showing an example of another game screen 150.
  • the player object 110 is shown at the lower center of the screen.
  • the player object 110 is in a state that it twists its body to the left in order to throw the moving object 104.
  • illustration is omitted, the player holding the controller 22 connected with the gyro unit 24 performs an operation in the same manner.
  • the target object 108 is shown ahead of the player object 110 and at substantially the center of the game screen 150.
  • the non player object 102 is in a state of waiting the start of the movement of the moving object 104 on the right of the player object 110 in order to follow the moving object 104.
  • Figure 11 is an illustrative view showing an example of another game screen 200.
  • Figure 11 shows the game screen 200 representing a scene directly after the player object 110 throws the moving object 104.
  • the player object 110 is displayed at substantially the lower center, and the target object 108 is displayed so as to be covered with the player object 110.
  • the non player object 102 is displayed on the right of the player object 110, and in a state that it starts to follow the moving object 104.
  • the moving object 104 and the player object 110 are overlapped with each other, and the player object 110 is shown above (toward the player), the moving object 104 cannot be viewed. Accordingly, by representing the player object 110 translucently or with the outline of the dotted line only, the moving object 104 may be displayed to be viewed, for example.
  • the moving object 104 moves (flies)
  • various forces such as gravity set within the virtual space, lift caused by rotations of the moving object 104, air resistance caused by tilts of the moving object 104, etc. work, and therefore, the position and the orientation (inclination) of the moving object 104 are calculated for each interval.
  • the initial velocity to the moving direction of the moving object 104 and the initial velocity of the rotation thereof are detected on the basis of the accelerations detected by the controller 22. The detail is described later.
  • Figure 12 is an illustrative view showing an example of still another game screen 250.
  • Figure 12 shows a scene that the moving obj ect 104 thrown by the player obj ect 110 moves close to the target object 108, and the non player object 102 tries to catch the moving object 104. More specifically, on the game screen 250 shown in Figure 12 , the target object 108 is shown at substantially the center, and the moving object 104 is shown at the diagonally downward right from it. In addition, at the lower side of the target object 108, the non player object 102 is shown.
  • Figure 13 is an illustrative view showing an example of another game screen 300.
  • Figure 13 shows a scene directly after the non player object 102 catches the moving object 104 which the player object 110 has thrown. More specifically, on the game screen 300 shown in Figure 13 , the target object 108 is shown to the left from the center, and the non player object 102 holding the moving object 104 in its mouse is shown to the right from the center. Furthermore, at substantially the center of the game screen 300, a marker 112 indicating the position where the non player object 102 catches the moving object 104 is shown.
  • Figure 14 is an illustrative view showing an example of a further another game screen 350.
  • Figure 14 shows a scene that a point (score) with respect to the current try is decided. More specifically, the target object 108 is displayed at substantially the center of the game screen 350, and a circular scoring area 114 centered about the target object 108 is displayed. The scoring area 114 is segmented to three areas, and a circular area 114a including the target object 108 and donut-shaped areas 114b, 114c centered about it are provided. The score is set to low as the position where the non player object 102 catches the moving object 104 is far away from the target object 108.
  • 100 points is assigned to the area 114a including the target object 108, 50 points is assigned to the donut-shaped area 114b adjacent to the area 114a, and 10 points is assigned to the donut-shaped area 114c adjacent to the area 114b.
  • the marker 112 is shown within the area 114a, this shows that the current point (score) is 100 points.
  • the game playing is to be ended.
  • the total scores with respect to these tries by the predetermined number of times is competed with that of another player, or is compared with the player's own total score until the last time.
  • Figure 15 is an illustrative view showing a memory map of the internal main memory 42e or the external main memory 46 shown in Figure 2 .
  • the main memory (42e, 46) includes a program memory area 500 and a data memory area 502.
  • the concrete contents of the data memory area 502 is shown in Figure 16 .
  • the program memory area 500 stores a game program, and the game program is made up of a game main processing program 500a, an image generating program 500b, an image displaying program 500c, an angular velocity detecting program 500d, an acceleration detecting program 500e, a disk position deciding program 500f, a disk orientation deciding program 500g, a disk throwing determining program 500h, a throwing simulation program 500i, a throwing executing program 500j, a course simulation program 500k, a movement executing program 500m, etc.
  • the game main processing program 500a is a program for processing a main routine of the virtual game of this embodiment.
  • the image generating program 500b is a program for generating a game image to display a game screen (100, 150, 200, 250, 300, 350, etc.) on the monitor 34 by using image data 502a (see Figure 16 ) described later.
  • the image displaying program 500c is a program for displaying the game image generated according to the image generating program 500b on the monitor 34 as a game screen (100, 150, 200, 250, 300, 350, etc.).
  • the angular velocity detecting program 500d is a program for detecting angular velocity data relative to an angular velocity detected by the gyro sensor 92. As described above, the angular velocity data is included in the input data from the controller 22, and thus, the CPU 40 detects the angular velocity data included in the input data from the controller 22 according to the angular velocity detecting program 500d.
  • the acceleration detecting program 500e is a program for detecting acceleration data relative to an acceleration detected by the acceleration sensor 74. As described above, the acceleration data is included in the input data from the controller 22, and thus, the CPU 40 detects the acceleration data included in the input data from the controller 22 according to the acceleration detecting program 500e.
  • the disk position deciding program 500f is a program for deciding a position of the moving object 104 within the three-dimensional virtual space. Before the player object 110 throws the moving object 104, the position of the moving object 104 is decided together with the motion of the hand and arm of the player object 110 depending on the angular velocity (yaw angle and pitch angle) detected according to the angular velocity detecting program 500d by taking the position of the moving object 104 when the moving object 104 is received from the non player object 102 as a reference.
  • the disk orientation deciding program 500g is a program for deciding an orientation of the moving object 104 within the three-dimensional virtual space. Before the player object 110 throws the moving object 104, the orientation of the moving object 104 depending on the angular velocity detected by the angular velocity detecting program 500d is decided. Furthermore, after the player object 110 throws the moving object 104, an orientation corresponding to the position of the moving object 104 changed according to the above-described calculation of physics is decided. Thus, the orientation of the moving object 104, that is, the tilt of the top surface of the moving object 104 is also calculated for each frame (frame is a screen updating rate: 1/60 (seconds)).
  • the moving object 104 is a flying disk, and a rotational force about the axis perpendicular to the flying disk is only applied, and thus, the orientation of the moving object 104 after it is thrown is scarcely changed. However, if the moving object 104 falls onto the ground or is caught by the non player object 102, the orientation is changed.
  • the moving object 104 sets a central point near the breast of the player object 110, and moves on a sphere with a radius R decided depending on the length of the arm of the player object 110, the size of the moving object 104, etc. That is, the line segment (length R) connecting the central point of the sphere and the moving object 104 (central point thereof) is changed depending on the angular velocity (yaw angle and pitch angle) to be detected by the gyro sensor 92.
  • the line segment connecting the reference position and the center of the sphere is the line segment as a reference, and the angle formed with this line segment of the reference is decided on the basis of the yaw angle and the pitch angle.
  • an angle ⁇ in a vertical direction is decided on the basis of the pitch angle of the angular velocity detected by the gyro sensor 92.
  • an angle ⁇ in a horizontal direction is decided on the basis of the yaw angle of the angular velocity detected by the gyro sensor 92.
  • each of the angle ⁇ and the angle ⁇ is an angle formed with the line segment of the reference.
  • angles of 45° up and down in relation to the horizontal direction are maximum values by taking the central point of the sphere as a center. This is because a case that the moving object 104 cannot move to the target object 108 is ruled out before the moving object 104 is thrown, and an unconventional image in which the moving object 104 is stuck to the head or the leg of the player object 110 is prevented to be displayed.
  • angles of 120° from left to right in relation to the moving direction of the moving object 104 are maximum values by taking the central point of the sphere as a center. This is the values decided in view of angles at which the person twists his or her body when the person actually throws a flying disk.
  • Figure 17(A) and Figure 17(B) shows one example of the drawing when seeing, from rear (back surface) of the player object 110, the player object 110 holding the moving object 104 in the right hand twisting its upper body to the left.
  • Figure 18(A) shows a drawing (top view) when seeing the player object 110 from above, and it shows that the player object 110 twists the upper body to the left similar to Figure 17(A) and Figure 17(B) .
  • the position and the orientation of the moving obj ect 104 are decided on the basis of the initial velocity to the moving direction of the moving object 104 calculated when the moving object 104 is thrown, the gravity, the air resistance, and the lift. That is, the general calculation of physics is performed.
  • the moving direction of the moving object 104 is decided by the orientation (inclination) of the moving object 104 which is decided by the roll angle and the pitch angle of the controller 22 when it is determined that the player object 110 throws the moving object 104.
  • the orientation of the moving object 104 means the inclination with respect to the moving direction in the right and left directions and forward and backward directions.
  • the orientation of the moving object is explained in detail. Before the player object 110 holds the moving object 104 and throws it, the orientation of the moving object 104 is changed according to the movement of the arm of the player object 110.
  • the position of the moving object 104 is also changed according to the movement of the arm of the player object 110.
  • the player object 110 moves the arm holding the moving object 104 up and down, for example, the surface of the moving object 104 with respect to the horizontal plane is inclined according thereto.
  • the orientation of the moving object 104 when the player object 110 receives the moving object 104 from the non player object 102 shall be the state that the top surface and the horizontal plane are parallel with each other, and by taking this state as a reference orientation, the orientation of the moving object 104 is changed according to the pitch angle. That is, when the arm of the player object 110 moves along the sphere with the radius R, the player object 110 remains to catch the moving object 104, so that the orientation of the moving object 104 is changed according to this movement.
  • the player object 110 moves the arm up
  • the top surface of the moving object 104 is changed in orientation such that it turns to the side of the head of the player object 110
  • the player object 110 moves the arm down
  • the bottom surface of the moving object 104 is changed in orientation such that it turns to the side of the foot of the player object 110. That is, the player object 110 moves the arm up and down according to the pitch angle, and this changes the orientation of the moving object 104.
  • Figure 18(B) is a drawing (side view) when seeing the player object 110 shown in Figure 17(A) and Figure 17(B) from a side.
  • an initial velocity v a to the moving direction of the moving object 104 shown in Figure 19(A) is calculated (decided) on the basis of the acceleration detected by the acceleration sensor 74 of the controller 22 when it is determined that the player object 110 throws the moving object 104. More specifically, as shown in Figure 17(A), Figure 17(B) and Figure 18(A) , the moving direction is decided to be a tangential direction on the sphere with the radius R taking the part of the breast of the player object 110 as a center, and the magnitude of the moving velocity is decided to be square of the magnitude of the resultant vector combining the three-axis acceleration vectors (ax, ay, az).
  • the initial velocity of the moving object 104 is decided on the basis of the acceleration detected by the acceleration sensor 74 of the controller 22, but it is not restricted thereto. This can be decided on the basis of the angular velocity detected by the gyro sensor 92.
  • the initial velocity is calculated by multiplying the magnitude of the resultant vector between the vector of the angular velocity in the yaw angle direction and the vector obtained by multiplying the angular velocity in the pitch angle direction by 0.65 times, by a predetermined coefficient.
  • the initial velocity is calculated by multiplying the magnitude of the resultant vector among the vector of the angular velocity in the yaw angle direction, the vector obtained by multiplying the magnitude of the angular velocity in the pitch angle direction by 0.65 times, and the vector obtained by multiplying the angular velocity in the role angle direction by 0.3 times, by a predetermined coefficient.
  • the predetermined coefficient is a numerical value for making the numerical value of the magnitude (2.6 - 4.5) of the resultant vector calculated by any one of the above-described processes fall within the numerical values (0.01625m/f - 0.0235m/f) useable for the game processing.
  • m means a meter
  • f means a frame.
  • the initial velocity v b of the rotational velocity of the moving object 104 shown in Figure 19(A) is calculated (set) to a value (k(k ⁇ 1) times, for example) in proportion to the initial velocity v a toward the moving direction of the moving object 104.
  • the rotation direction of the moving object 104 is a right direction (clockwise)
  • the player object 110 twists the body to the right and then throws the moving object 104 it is a left direction (counterclockwise).
  • the moving object 104 starts to move, keeping the orientation (inclination) of the moving object 104 directly before it is thrown. That is, the direction of the top surface of the moving object 104 is decided.
  • the gravity is a force based on the gravitational acceleration set within the three-dimensional virtual space, and works in a vertically below as to the moving object 104.
  • the lift which is a force occurring by rotating the moving object 104 and for making the moving object 104 float up, is in parallel with the rotation axis of the moving object 104, and works in a direction from the bottom surface of the moving object 104 to the top surface thereof. Accordingly, in a case that the moving object 104 is inclined relative to the moving direction, the moving object 104 moves so as to turn to the inclined side.
  • the disk throwing determining program 500h is a program for determining whether or not the flying disk, that is, the moving object 104 is to be thrown.
  • the angular velocity data detected according to the angular velocity detecting program 500d is data relative to a predetermined number of angular velocities (20, for example), and an extreme is detected on the basis of the predetermined number of angular velocities, and if the extreme is less than a predetermined value (threshold value), it is determined that there is an operation of throwing the moving object 104. However, if the extreme cannot be detected on the basis of the predetermined number of angular velocities or if the detected extreme is equal to or more than the threshold value, it is determined there is no operation of throwing the moving object 104.
  • the reason why the extreme of the change of the angular velocity is required to determine whether or not the moving object 104 is to be thrown is that the player object 110 (player) twists the body to right or left as described above once when throwing the moving object 104.
  • whether or not the moving object 104 is thrown is determined when an extreme is calculated by using the predetermined number of angular velocities, and if the calculated extreme is below the predetermined threshold value, but it is not restricted thereto. For example, if the angular velocity is below the predetermined threshold value, it may be determined that the moving object 104 is thrown. In such a case, the angular velocity is not required to be stored by the predetermined number.
  • the throwing simulation program 500i is a program for simulating the moving course of the moving object 104 when it is determined that the player object 110 throws the moving object 104.
  • the position of the moving object 104 (three-dimensional coordinate) for each frame is evaluated by calculation of physics as described above.
  • the orientation of the moving object 104 corresponding to the position evaluated by the calculation of physics is decided. This is because the non player object 102 is moved so as to follow the moving object 104.
  • the throwing executing program 500j is a program for calculating the moving course of the moving object 104 in a case that it is determined the player object 110 throws the moving object 104, and movingly displaying the moving object 104 according thereto.
  • This throwing executing program 500j is substantially the same as the throwing simulation program 500i, but it draws the moving object 104 at the orientation decided for each frame at the three-dimensional position calculated for each frame. Accordingly, a scene in which the moving object 104 moves (flies) is displayed on the monitor 34 as a game screen.
  • the course simulation program 500k is a program for simulating the route that the non player object 102 moves.
  • the non player object 102 moves so as to follow the moving object 104.
  • the route is decided in the following manner.
  • the non player object 102 moves a distance to a certain extent so as to substantially go straight ahead the target object 108, and then moves to follow the current position of the moving object 104.
  • an arbitrary Bezier curve connecting two points of the current position of the moving object 104 and a position where the moving object 104 falls calculated according to the throwing simulation program 500i is calculated.
  • a position (three-dimensional coordinate) for each frame is calculated so as to move the non player object 102 on the calculated Bezier curve.
  • the movement executing program 500m is a program for updating the three-dimensional position such that the non player object 102 moves on the route calculated according to the course simulation program 500k, and drawing the non player object 102 at the updated three-dimensional position.
  • the course calculated according to the course simulation program 500k is evenly divided by the number of frames just before the moving object 104 falls onto the ground to thereby decide a three-dimensional position for each frame.
  • the movement executing program 500m generates a game image such that the non player object 102 catches the moving object 104 at a position where the non player object 102 and the moving object 104 are overlapped with each other.
  • the dog as a non player object 102 catches the flying disk as a moving object 104 in the mouth, the non player object 102 and the moving object 104 are overlapped with each other just before the moving object 104 falls onto the ground as described above.
  • the moving object 104 in order to represent the try being unsuccessful, in a case that the position where the moving object 104 falls is outside the scoring area 114, even if the non player object 102 follows close to the moving object 104, the moving object 104 does not catch it. However, this is one example, and even in such a case, the non player object 102 may catch the moving object 104.
  • the game program also includes a sound output program, a backup program, etc.
  • the sound output program is a program for outputting sound necessary for the game, such as music (BGM), a voice or an onomatopoeic sound of an object, a sound effect, and the like by utilizing sound (music) data.
  • the backup program is a program for saving (storing) game data (proceeding data, result data) in the memory card.
  • the data memory area 502 stores image data 502a, angular velocity data 502b, acceleration data 502c, non-player object data 502d and moving object data 502e. Furthermore, to the data memory area 502, a timer 502f and a throwing determining flag 502g are provided.
  • the image data 502a is image data for generating a game image, and includes polygon data, texture data, etc.
  • the angular velocity data 502b is angular velocity data detected according to the angular velocity detecting program 500d.
  • data relative to at least predetermined number of angular velocities (20, for example) are temporarily stored in the data memory area 502.
  • three or four angular velocity data are detected for each frame.
  • the acceleration data 502c is acceleration data detected according to the acceleration detecting program 500e.
  • the non-player object data 502d is data relative to the non player object 102, and includes simulation position data 5020 and current position data 5022.
  • the simulation position data 5020 is three-dimensional coordinate data relative to the non player object 102 for each frame calculated according to the course simulation program 500k.
  • the current position data 5022 is three-dimensional coordinate data relative to the current frame of the non player object 102.
  • the moving object data 502e is data relative to the moving object 104, and includes simulation position data 5030, current position data 5032, orientation data 5034 and physical quantity data 5036.
  • the simulation position data 5030 is three-dimensional coordinate data of the moving object 104 for each frame calculated according to the throwing simulation program 500i.
  • the current position data 5032 is three-dimensional coordinate data of the moving object 104 at the current frame.
  • the orientation data 5034 is data relative to the orientation (inclination) of the moving object 106 at the current frame.
  • the physical quantity data 5036 is data relative to gravity, air resistance, lift by rotations and lift by a planar effect which are worked on the moving object 104 at the current frame.
  • the throwing determining flag 502g is a flag for determining whether or not the player object 110 is to throw the moving object 104, and formed by one bit register, for example.
  • a data value "1" is set to the register
  • the throwing determining flag 502g is turned off (not established)
  • a data value "0" is set to the register.
  • the turning on and off the throwing determining flag 502g is executed according to the disk throwing determining program 500h.
  • the throwing determining flag 502g is turned on while if it is determined that the player object 110 does not throw the moving object 104, the throwing determining flag 502g is turned off.
  • data memory area 502 In the data memory area 502, other data such as sound data, score data, etc., are stored, and other timers (counters) and other flags necessary for the game are also provided.
  • the CPU 40 shown in Figure 2 executes entire processing shown in Figure 21 and Figure 22 .
  • the CPU 40 executes initialization processing in a step S1.
  • the CPU 40 generates a game image to display the game screen 100 shown in Figurer 9, clears the angular velocity data 502b and acceleration data 502c, and so forth.
  • a switch on the screen is pushed by the pointing device.
  • the CPU 40 determines whether or not the player moves an instruction image and clicks the display area 106 of the game screen 100 by utilizing the controller 22.
  • the reason why such processing is executed is for that the position and attitude of the controller 22 in the real space are set to a desired position and a desired attitude, and the position and orientation of the moving object 104 in the three-dimensional virtual space are set to a desired position and a desired orientation as described above. That is, the initialization of the position and orientation of the moving object 104 in the three-dimensional virtual space is performed.
  • step S3 If “NO” in the step S3, that is, if the switch on the screen is not turned on by the pointing device, the process returns to the same step S3.
  • step S3 if "YES” in the step S3, that is, if the switch on the screen is turned on with the pointing device, angular velocity data is acquired from the gyro sensor 92 in a step S5. That is, the CPU 40 detects angular velocity data included in the input data from the controller 22.
  • step S7 correction processing with the pointing device is executed.
  • the images of the respective markers 340m and 340n are imaged by the imaged information arithmetic section 80 as described above.
  • the image processing circuit 80d calculates marker coordinates indicating the positions of the images 340m' and 340n' of the markers 340m and 340n in the entire imaged image.
  • the image processing circuit 80d applies the imaged image data and the marker coordinate data to the processor 70. Accordingly, the input data further includes imaged image data.
  • the CPU 40 determines the attitude (status within the three-dimensional virtual space) of the controller 22 that the player holds from the marker coordinates of the images 340m', 340n' and the positional relationship between the images 340m', 340n', and corrects the angular velocity data detected from the gyro sensor 92 if there is a displacement with the attitude of the controller 22 determined on the basis of the angular velocity data from the gyro sensor 92. More specifically, the yaw angle is corrected based on the marker coordinates (positions) of the images 340m', 340n', and the roll angle is corrected from the positional relationship with the images 340m', 340n'.
  • a next step S9 correction processing by the acceleration sensor 74 is executed.
  • the attitude of the controller 22 is determined on the basis of the acceleration data from the acceleration sensor 74, and corrects the angular velocity data detected by the gyro sensor 92 when there is a displacement with the attitude of the controller 22 determined on the basis of the angular velocity data from the gyro sensor 92.
  • the accelerations except for the gravitational acceleration are added.
  • the direction of the acceleration indicated by the acceleration data is more corrected to the direction of the gravitational acceleration.
  • the direction of the acceleration indicated by the acceleration data is less corrected, and if it is far away from the magnitude of gravitational acceleration above a predetermined magnitude, no correction is made.
  • a displacement of the zero point on the basis of the temperature drift of the gyro sensor 92 is corrected.
  • the controller 22 is static on the basis of the acceleration data from the acceleration sensor 74
  • the controller 22 moves by the angular velocity data from the gyro sensor 92
  • a next step S13 the data from the gyro is accumulated in the buffer. That is, the CPU 40 sequentially stores (temporarily stores) the angular velocity data acquired in the step S5 in the data memory area 502.
  • the corrected angular velocity data is stored.
  • the position and orientation of the flying disk, that is, the moving object 104 are decided.
  • the current three-dimensional position is decided (calculated) according to the yaw angle and pitch angle which are indicated by the angular velocity data from the gyro sensor 92 so as to move on the sphere with the radius R by taking the three-dimensional position of the moving object 104 at a time when the moving object 104 is received from the non player object 102 as a reference.
  • the orientation (inclination) of the moving object 104 is also decided according to the roll angle, yaw angle and pitch angle which are indicated by the angular velocity data from the gyro sensor 92. More specifically, the orientation of the moving object 104 when the player object 110 receives the moving object 104 from the non player object 102 is a state that the top surface of the moving object 104 and a horizontal level are parallel with each other. When the arm of the player object 110 moves along the sphere with the radius R according to the pitch angle by taking this state as a reference orientation, the position of the moving object 104 is changed in a state that the player object 110 holds the moving object 104.
  • the orientation is changed such that the top surface of the moving object 104 turns to the head of the player object 110.
  • the player object 110 moves the arm down, the bottom surface of the moving object 104 is changed so as to turn to the foot of the player object 110. That is, moving the arm of the player object 110 up and down according to the pitch angle represents the change in the orientation of the moving object 104. Furthermore, rotating the wrist of the player object 110 according to the roll angle represents the change in the orientation of the moving object 104.
  • step S17 the flying disk, that is, the moving object 104 is drawn.
  • the moving object 104 is arranged (drawn) at the position decided in the step S15 at the decided orientation.
  • step S19 throwing determining processing (see Figure 23 ) described later is executed, and in a step S21, it is determined whether or not the throwing determining flag 502g is turned on. If "NO” in the step S21, that is, if the throwing determining flag 502g is turned off, the process directly returns to the step S5 to update the motion of the player object 110 and the position and orientation of the moving object 104 that the player object 110 holds on the basis of the angular velocity data from the controller 22. On the other hand, if "YES" in the step S21, that is, if the throwing determining flag 502g is turned on, the process proceeds to a step S23 shown in Figure 22 .
  • step S23 throwing simulation processing (see Figure 24 ) described later is executed. That is, a moving course of the moving object 104 after the player object 110 throws the moving object 104 on the basis of the operation by the player is evaluated according to the simulation. Although illustration is omitted, when the throwing simulation processing is started, the timer 502f is reset and started. In a succeeding step S25, a three-dimensional position where the moving object 104 falls or the moving object 104 is caught is acquired, and the time at that time is also acquired.
  • the time means a time from when the player object 110 throws the moving object 104 to a time when it falls onto the ground or it is caught by the non player object 102.
  • step S27 course simulation processing is executed.
  • the non player object 102 catches the moving object 104, that is, if the moving object 104 falls within the judging area, the non player object 102 goes straight ahead the target object 108 to a certain extent, and then moves so as to follow the moving object 104.
  • the CPU 40 decides such a moving course, uniformly divides the decided course with the time (the number of frames) acquired in the step S25, and acquires a three-dimensional position for each frame.
  • the data of the three-dimensional position for each frame is simulation position data 5020.
  • step S29 When the course simulation processing is executed, throwing processing (see Figure 25 ) described later is executed in a step S29. That is, a game image in which the moving object 104 is moved in the three-dimensional virtual space is generated to display the same on the game screen (200, 250, 300, etc.).
  • step S31 dog behavior processing is executed. That is, the CPU 40 moves the non player object 102 according to the simulation position data 5020 acquired in the step S27. Furthermore, the CPU 40 animation-displays the non player object 102 so as to catch the moving object 104 at a timing when the moving object 104 is to be caught.
  • a step S33 it is determined whether the dog catches the flying disk or drops it. That is, it is determined whether the moving object 104 is caught by the non player object 102, or the moving object 104 falls onto the ground without being caught by the non player object 102 and then suspends the movement.
  • the moving velocity v a of the moving object 104 is 0, or when the moving object 104 hits the ground by a predetermined number of times (500 times, for example), it is determined that the moving object 104 falls onto the ground.
  • the hitting determination between the moving object 104 and the ground is performed for each frame.
  • step S33 If “NO” in the step S33, that is, if the dog neither catches nor drops the flying disk, the process directly returns to the step S29.
  • step S33 if "YES” in the step S33, that is, if the dog catches the flying disk or drops the same, a point display is executed in a step S35.
  • the point corresponding to the position where the non player object 102 catches the moving object 104 is displayed, and in a case that the non player object 102 does not catch the moving object 104, 0 point is displayed.
  • a step S37 it is determined whether or not 10 times throwings are made. If “NO” in the step S37, that is, if 10 times throwings have not been performed, it is determined that a next try is performed, and the process returns to the step S3 shown in Figure 21 . On the other hand, if "YES” in the step S37, that is, if 10 times throwings have been performed, the entire process is directly ended.
  • Figure 23 shows a flowchart of the throwing determining processing in the step S 19 shown in Figure 21 .
  • the CPU 40 turns the throwing determining flag 502g off in a step S51.
  • the total number of the angular velocity data 502b within the buffer is set in a variable n, and an initial value "0" is set to a minimum value min.
  • the variable n is the number of angular velocity data 502b stored in the data memory area 502.
  • the minimum value min is a minimum value of the angular velocities of the yaw angle indicated by the angular velocity data 502b.
  • the oldest angular velocity data is read. That is, out of the angular velocity data 502b stored in the data memory area 502, the oldest angular velocity data 502b is read. Then, in a step S57, the angular velocity of the yaw angle indicated by the read angular velocity data 502b is set to the variable data.
  • step S59 it is determined whether or not the flying disk is on the left side. That is, it is determined whether or not the position of the moving object 104 decided in the step S15 is on the left side as seeing the target object 108 from the player object 110. More specifically, it is determined whether or not an angle formed between a vector extending from the center of the player object 110 to the left direction and a vector extending from the center of the player object 110 to the center of the moving object 104 is less than 90 angles.
  • step S59 If “YES” in the step S59, that is, if the flying disk is on the left side, the process directly proceeds to a step S63. On the other hand, if "NO” in the step S59, that is, if the flying disk is on the right side, the sign of the variable data is inverted in a step S61, and the process proceeds to the step S63.
  • the reason why the processing in the step S61 is executed is that the processing after the step S63 is made equal between a case that the flying disk (moving object 104) is on the left side of the player object 110 and a case that it is on the right side thereof.
  • step S69 If “YES” in the step S69, that is, if the variable n is equal to or less than 0, the process returns to the entire process shown in Figure 21 and Figure 22 . On the other hand, if "NO” in the step S69, that is, if the variable n is larger than 0, next (next older) angular velocity data 502b is read in a step S71, and the process returns to the step S57.
  • the step S73 it is determined whether or not the variable data is less than a threshold value.
  • the threshold value here, is a value for determining whether or not the player performs a throwing operation of the moving object 104 by utilizing the controller 22 and is empirically obtained by experiments, or the like. If “NO” in the step S73, that is, if the variable data is equal to or more than the threshold value, it is determined that this is not a throwing operation, and the process proceeds to the step S67. On the other hand, if "YES” in the step S73, that is, if the variable data is less than the threshold value, the throwing determining flag 502g is turned on in a step S75, and the process returns to the entire process.
  • Figure 24 is a flowchart showing the throwing simulation processing in the step S23 shown in Figure 22 .
  • the CPU 40 makes a correction according to the position of the disk in a step S81.
  • the starting time of the movement of the moving object 104 is corrected, or the moving direction is corrected. More specifically, in a case that the moving object 104 is on the back side (opposite to the target object 108) from the immediately lateral position of the player object 110, the starting time of movement is delayed.
  • a first direction of the initial velocity of the moving velocity v a of the moving object 104 is modified such that the moving object 104 starts to move at a preset angle.
  • the initial velocity of the moving velocity v a is set.
  • the direction of the initial velocity of the moving velocity v a is a tangential direction on the sphere with the radius R, and the magnitude is decided by squaring the magnitude of the resultant vector of the accelerations in the three-axis directions indicated by the acceleration data which is detected by the acceleration sensor 74.
  • a direction of the initial surface is set. That is, a first orientation of the moving object 104 is set. This is decided according to the angular velocities as to the roll angle and pitch angle which are detected by the angular velocity sensor 92 as described above.
  • an initial rotational velocity v b is set. As described above, the initial rotational velocity v b is a value proportional to the initial velocity of the moving velocity v a .
  • step S89 physical behavior processing (see Figure 26 ) described later is executed, and in a step S91, a position and an orientation of the flying disk are decided, and in a step S93, it is determined whether or not the flying disk falls.
  • step S91 physical behavior processing
  • step S91 a position and an orientation of the flying disk are decided
  • step S93 it is determined whether or not the flying disk falls.
  • the moving object 104 hits the ground (land).
  • step S93 If “NO” in the step S93, that is, if it is determined the flying disk does not fall, the process returns to the step S89.
  • step S93 it is determined whether or not the flying disk is stopped in a step S95. It is determined whether or not the moving velocity v a of the moving object 104 becomes 0, or whether or not the number of hits of the moving object 104 against the ground is above predetermined number of times (500 times). Here, the number of hits of the moving object 104 against the ground is counted by the counter not shown.
  • step S95 If “NO” in the step S95, that is, if the flying disk is not stopped, the process returns to the step S89. On the other hand, if "YES” in the step S95, that is, if the flying disk is stopped, the process returns to the entire process shown in Figure 21 and Figure 22 .
  • FIG 25 is a flowchart showing the throwing processing in the step S29 shown in Figure 22 .
  • This throwing processing is the same as the throwing simulation processing shown in Figure 24 except for that after the position and orientation of the disk are decided, processing (disk drawing processing (S113)) of actually drawing the disk (moving object 104) is executed, and therefore, a duplicated explanation is omitted.
  • FIG 26 is a flowchart of the physical behavior processing in the step S89 shown in Figure 24 and in the step S 109 in Figure 25 .
  • the CPU 40 when starting the physical behavior processing, the CPU 40 adds gravity in a step S131. That is, gravity vertically below is worked on the moving object 104 in the three-dimensional virtual space.
  • a succeeding step S133 lift by rotations is added. That is, a force proportional to the rotational velocity v b is worked on the moving object 104 in a direction to which the rotation axis of the moving object 104 is rotated and in a direction toward the top surface of the moving object 104.
  • a step S 135 air resistance is added. That is, a force obtained by multiplying a square value of the moving velocity v a by a value proportional to the area of the moving object 104 when seen from the front is worked in an direction opposite to the moving velocity v a of the moving object 104.
  • a lift from the ground is added, and then, the process is returned to the throwing simulation processing shown in Figure 24 or throwing processing shown in Figure 25 . That is, in the step S 137, a force, which is greater as it is horizontal and closer to the ground, is worked on the moving object 104 to a direction normal to the ground (vertical upwards from the ground). For example, lift from the ground is decided depending on the distance between the moving object 104 and the ground and the inclination of the moving object 104. Thus, the lift according to the current position and orientation is added to the moving object 104.
  • the positions, the orientations and the motions of the objects within the three-dimensional virtual space can be controlled according to the attitudes of the controller connected with the gyro unit and its swinging movement, and therefore, it is possible to execute various processing with a simple operation.
  • the gyro sensor unit (gyro sensor) is connected to the controller, the gyro sensor may be included in the controller.
  • a gyro sensor in order to detect the position and attitude of the controller, a gyro sensor is used, but in place of the gyro sensor, a terrestrial magnetism sensor can be used.
  • positions and attitudes of the controller may be detected by a motion capturing system. That is, other sensors, if they are intended for detecting positions and attitudes of the controller, can be adopted.
  • positions and orientations of the moving object are controlled by the positions and attitudes of the controller, but it is no need of being restricted thereto.
  • a position and an orientation of the moving object may be controlled on the basis of a position on the screen which is instructed with the controller (position of an instruction image such as a mouse pointer). This means that by detecting the instructed position with the controller, a position and an orientation of the controller are indirectly detected.
  • the instruction image is moved from the center of the screen to the left direction (or right direction)
  • the player object holding the moving object twists the body to the left direction (or right direction).
  • the arm holding the moving object is moved up and down. That is, the orientation of the moving object is changed.
  • a moving amount (displacement amount) of the instruction image per a given period of time is above a certain value, it may be determined that the moving object is thrown.
  • an infrared rays LED is provided to the controller, an imaged information arithmetic section is provided in the vicinity of (on) the monitor, and the imaged information arithmetic section may be connected to the game apparatus.
  • positions and attitudes of the controller in the actual space positions and orientations of the moving object in the three-dimensional virtual space are controlled, but other objects such as a virtual camera in the three-dimensional virtual space may be controlled.
  • a pan, a tilt, and a roll of the virtual camera are controlled by the attitude of the controller.
  • the shutter of the virtual camera can be turned on. It should be noted that a zoom operation may be controlled instead of a roll operation.
EP09162614.3A 2008-07-03 2009-06-12 Appareil, procédé et support de stockage avec programme pour saisie basée sur position et attitude Active EP2141570B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008174870A JP6029255B2 (ja) 2008-07-03 2008-07-03 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法

Publications (3)

Publication Number Publication Date
EP2141570A2 true EP2141570A2 (fr) 2010-01-06
EP2141570A3 EP2141570A3 (fr) 2012-04-11
EP2141570B1 EP2141570B1 (fr) 2021-10-13

Family

ID=40792725

Family Applications (1)

Application Number Title Priority Date Filing Date
EP09162614.3A Active EP2141570B1 (fr) 2008-07-03 2009-06-12 Appareil, procédé et support de stockage avec programme pour saisie basée sur position et attitude

Country Status (3)

Country Link
US (2) US8529355B2 (fr)
EP (1) EP2141570B1 (fr)
JP (1) JP6029255B2 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102192740A (zh) * 2010-03-05 2011-09-21 精工爱普生株式会社 姿势信息计算装置、姿势信息计算系统及姿势信息计算法
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8077157B2 (en) 2008-03-31 2011-12-13 Intel Corporation Device, system, and method of wireless transfer of files
EP2554225A4 (fr) * 2010-03-30 2014-08-06 Capcom Co Programme et support d'enregistrement sur lequel le programme est enregistré
JP5920861B2 (ja) * 2011-02-08 2016-05-18 株式会社ソニー・インタラクティブエンタテインメント 制御装置、制御方法及びプログラム
JP5758202B2 (ja) 2011-06-02 2015-08-05 任天堂株式会社 画像処理プログラム、画像処理装置、画像処理方法および画像処理システム
US10456686B2 (en) 2012-09-05 2019-10-29 Zynga Inc. Methods and systems for adaptive tuning of game events
US20140132787A1 (en) * 2012-11-14 2014-05-15 Chip Goal Electronics Corporation Motion Detection Device and Motion Detection Method Having Rotation Calibration Function
US9669300B2 (en) * 2013-12-27 2017-06-06 Ballcraft, Llc Motion detection for existing portable devices
US10561944B2 (en) 2014-09-10 2020-02-18 Zynga Inc. Adjusting object adaptive modification or game level difficulty and physical gestures through level definition files
US9675889B2 (en) 2014-09-10 2017-06-13 Zynga Inc. Systems and methods for determining game level attributes based on player skill level prior to game play in the level
US10409457B2 (en) * 2014-10-06 2019-09-10 Zynga Inc. Systems and methods for replenishment of virtual objects based on device orientation
JP7140465B2 (ja) * 2016-06-10 2022-09-21 任天堂株式会社 ゲームプログラム、情報処理装置、情報処理システム、ゲーム処理方法
US10420999B2 (en) * 2017-03-27 2019-09-24 Intel Corporation Sensor-derived object flight performance tracking
US10429949B2 (en) * 2017-06-30 2019-10-01 Htc Corporation User interaction apparatus and method
JP6897447B2 (ja) * 2017-09-19 2021-06-30 住友ゴム工業株式会社 弾性体の挙動の解析装置
WO2021221676A1 (fr) * 2020-04-30 2021-11-04 Hewlett-Packard Development Company, L.P. Trames de référence
CN112169338A (zh) * 2020-10-15 2021-01-05 网易(杭州)网络有限公司 球体运动的控制方法、装置、存储介质及计算机设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000308756A (ja) 1999-04-27 2000-11-07 Taito Corp ゲーム装置の入力制御装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US818096A (en) * 1905-05-15 1906-04-17 Frederick A Keiff Cuspidor.
US4988981B1 (en) * 1987-03-17 1999-05-18 Vpl Newco Inc Computer data entry and manipulation apparatus and method
US5526022A (en) * 1993-01-06 1996-06-11 Virtual I/O, Inc. Sourceless orientation sensor
JP2799126B2 (ja) * 1993-03-26 1998-09-17 株式会社ナムコ ビデオゲーム装置及びゲーム用入力装置
US5579026A (en) * 1993-05-14 1996-11-26 Olympus Optical Co., Ltd. Image display apparatus of head mounted type
JPH08320949A (ja) * 1995-05-24 1996-12-03 Sega Enterp Ltd 画像処理装置及びそれを用いたゲーム装置
US5913727A (en) * 1995-06-02 1999-06-22 Ahdoot; Ned Interactive movement and contact simulation game
US6283857B1 (en) * 1996-09-24 2001-09-04 Nintendo Co., Ltd. Three-dimensional image processing apparatus with enhanced automatic and user point of view control
US6720949B1 (en) * 1997-08-22 2004-04-13 Timothy R. Pryor Man machine interfaces and applications
JP3847058B2 (ja) * 1999-10-04 2006-11-15 任天堂株式会社 ゲームシステム及びそれに用いられるゲーム情報記憶媒体
JP2003175279A (ja) * 2001-12-07 2003-06-24 Konami Co Ltd ビデオゲーム装置及び動きセンサ構造体
US7352358B2 (en) * 2002-07-27 2008-04-01 Sony Computer Entertainment America Inc. Method and system for applying gearing effects to acoustical tracking
US7854655B2 (en) * 2002-07-27 2010-12-21 Sony Computer Entertainment America Inc. Obtaining input for controlling execution of a game program
US7850526B2 (en) * 2002-07-27 2010-12-14 Sony Computer Entertainment America Inc. System for tracking user manipulations within an environment
US20040140962A1 (en) 2003-01-21 2004-07-22 Microsoft Corporation Inertial sensors integration
CN1816792A (zh) * 2003-07-02 2006-08-09 新世代株式会社 信息处理装置、信息处理系统、操作物、信息处理方法、信息处理程序以及游戏系统
JP2006175158A (ja) * 2004-12-24 2006-07-06 Miki Aatsu Internatl Kk コンピュータ式投擲スポーツ模擬装置とそのコンピュータプログラム
WO2006070914A1 (fr) * 2004-12-28 2006-07-06 Ssd Company Limited Appareil d'experience simulee, procede de calcul de consommation d'energie, appareil de detection de mouvement d'accroupissement, appareil d'assistance d'exercice, procede d'animation, appareil de gestion de quantite d'exercise, appareil de mesure d'aptitude athletique, appareil de mesure de capacite de reflexe et systeme a
TWI348639B (en) * 2005-12-16 2011-09-11 Ind Tech Res Inst Motion recognition system and method for controlling electronic device
JP5204381B2 (ja) * 2006-05-01 2013-06-05 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム及びゲーム処理方法
JP4795087B2 (ja) * 2006-04-14 2011-10-19 任天堂株式会社 ゲーム装置およびゲームプログラム
JP2007300974A (ja) * 2006-05-08 2007-11-22 Nintendo Co Ltd プログラム、情報記憶媒体及び画像生成システム
US20080004112A1 (en) * 2006-06-29 2008-01-03 Cosmodog, Ltd. Video Game Control and Interface
JP4700584B2 (ja) * 2006-09-21 2011-06-15 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法及びプログラム
JP5177615B2 (ja) * 2006-12-01 2013-04-03 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000308756A (ja) 1999-04-27 2000-11-07 Taito Corp ゲーム装置の入力制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
CN102192740A (zh) * 2010-03-05 2011-09-21 精工爱普生株式会社 姿势信息计算装置、姿势信息计算系统及姿势信息计算法

Also Published As

Publication number Publication date
US8529355B2 (en) 2013-09-10
EP2141570B1 (fr) 2021-10-13
JP2010012041A (ja) 2010-01-21
EP2141570A3 (fr) 2012-04-11
JP6029255B2 (ja) 2016-11-24
US20130324253A1 (en) 2013-12-05
US8888594B2 (en) 2014-11-18
US20100001952A1 (en) 2010-01-07

Similar Documents

Publication Publication Date Title
EP2141570B1 (fr) Appareil, procédé et support de stockage avec programme pour saisie basée sur position et attitude
US9833705B2 (en) Storage medium storing information processing program, information processing apparatus and information processing method
US9005035B2 (en) Storage medium storing game program, game apparatus, and game controlling method for changing game parameters based on game progress
US8690673B2 (en) Game apparatus, storage medium, game controlling method and game system
EP2308573A1 (fr) Support d'enregistrement stockant le programme de traitement d'informations, appareil de traitement d'informations et procédé de traitement d'informations
EP2390760A2 (fr) Traitement d'informations de données de direction ou de mouvement pour la sélection d'un objet
JP2009011748A (ja) ゲームプログラムおよびゲーム装置
US20120306854A1 (en) Storage medium, image processing apparatus, image processing method, and image processing system
JP5758085B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、及びゲーム処理方法
JP5184036B2 (ja) ゲームプログラムおよびゲーム装置
EP2241961B1 (fr) Support de stockage lisible sur ordinateur pour stocker un programme de traitement d'informations, appareil de traitement d'informations, et procédé pour amener un objet affiché dans un espace virtuel en trois dimensions à se déplacer vers une cible prédéterminée, basé sur le mouvement d'un dispositif d'entrée
US8482519B2 (en) Storage medium storing information processing program, information processing apparatus and information processing method
JP5350612B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法
JP5443041B2 (ja) ゲーム装置及びゲームプログラム
JP5704770B2 (ja) ゲーム装置、ゲームプログラム、ゲームシステム、および、ゲーム処理方法
JP5443042B2 (ja) ゲーム装置及びゲームプログラム
JP5420954B2 (ja) ゲーム装置及びゲームプログラム
US9610497B2 (en) Storage medium, image processing apparatus, image processing method, and image processing system
JP5420955B2 (ja) ゲーム装置及びゲームプログラム
JP5798601B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK TR

RTI1 Title (correction)

Free format text: APPARATUS, METHOD AND STORAGE MEDIUM STORING PROGRAM FOR POSITION AND ATTITUDE BASED INPUT

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 3/038 20060101ALI20120228BHEP

Ipc: G06F 3/033 20060101AFI20120228BHEP

AK Designated contracting states

Kind code of ref document: A3

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA RS

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: NINTENDO CO., LTD.

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 3/038 20060101ALI20120306BHEP

Ipc: G06F 3/033 20060101AFI20120306BHEP

17P Request for examination filed

Effective date: 20121011

17Q First examination report despatched

Effective date: 20130807

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

REG Reference to a national code

Ref country code: DE

Ref legal event code: R079

Ref document number: 602009064085

Country of ref document: DE

Free format text: PREVIOUS MAIN CLASS: G06F0003033000

Ipc: A63F0013980000

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 3/0346 20130101ALI20210419BHEP

Ipc: A63F 13/20 20140101ALI20210419BHEP

Ipc: G06F 3/038 20130101ALI20210419BHEP

Ipc: A63F 13/98 20140101AFI20210419BHEP

INTG Intention to grant announced

Effective date: 20210521

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE PATENT HAS BEEN GRANTED

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602009064085

Country of ref document: DE

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 1437746

Country of ref document: AT

Kind code of ref document: T

Effective date: 20211115

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG9D

REG Reference to a national code

Ref country code: NL

Ref legal event code: MP

Effective date: 20211013

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 1437746

Country of ref document: AT

Kind code of ref document: T

Effective date: 20211013

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20220113

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20220213

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20220214

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20220113

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20220114

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602009064085

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20220714

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20220630

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20220612

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20220630

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20220612

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20220630

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20220630

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230428

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20230510

Year of fee payment: 15

Ref country code: DE

Payment date: 20230502

Year of fee payment: 15

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20230427

Year of fee payment: 15

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20090612

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20211013