EP1832321B1 - Appareil de determination de movement et support d'enregistrement pour la détermination de movement - Google Patents
Appareil de determination de movement et support d'enregistrement pour la détermination de movement Download PDFInfo
- Publication number
- EP1832321B1 EP1832321B1 EP06008516.4A EP06008516A EP1832321B1 EP 1832321 B1 EP1832321 B1 EP 1832321B1 EP 06008516 A EP06008516 A EP 06008516A EP 1832321 B1 EP1832321 B1 EP 1832321B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- acceleration
- motion
- data
- acceleration data
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000033001 locomotion Effects 0.000 title claims description 183
- 230000001133 acceleration Effects 0.000 claims description 418
- 230000004087 circulation Effects 0.000 claims description 93
- 230000015654 memory Effects 0.000 claims description 47
- 230000005484 gravity Effects 0.000 claims description 43
- 238000004364 calculation method Methods 0.000 claims description 31
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 152
- 238000003384 imaging method Methods 0.000 description 29
- 230000006399 behavior Effects 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 9
- 239000000758 substrate Substances 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 210000003811 finger Anatomy 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005293 physical law Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 239000010453 quartz Substances 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 240000006829 Ficus sundaica Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010137 moulding (plastic) Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
- A63F13/428—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/211—Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
- A63F13/573—Simulating 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/812—Ball games, e.g. soccer or baseball
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
Definitions
- the present invention relates to a motion determining apparatus and a storage medium having a motion determining program stored thereon, and more particularly to a motion determining apparatus for determining a motion of an input device including an acceleration sensor and a storage medium having a motion determining program for determining the same stored thereon.
- Patent document 1 discloses a game apparatus including a game controller which is formed like a boxing glove and has a triaxial acceleration sensor. With the game apparatus, a user can enjoy a game using an output from the triaxial acceleration sensor.
- the controller (glove) disclosed by patent document 1 includes a triaxial acceleration sensor having a sensor X, a sensor Y and a sensor Z.
- the game apparatus traces back an output waveform obtained from the sensor Y and sets a time around value 0 as time t0.
- a time at which value 0 or the vicinity thereof is obtained after the output waveform shows a drastically small value is set as time t1.
- An acceleration detected between time t0 and time t1 is extracted from an output waveform from each of the sensors X and Z.
- the game apparatus determines the type of the punch (for example, straight, hook, uppercut, etc.).
- the game apparatus determines that the player has given a straight punch. In the case where the output waveform from the sensor X shows a negative value at the start of operation and then shows a positive value and the waveform from the sensor Z does not change, the game apparatus determines that the player has given a hook. In the case where the waveform from the sensor X is infinite and the waveform from the sensor Z shows a large negative value and then shows a positive value, the game apparatus determines that the player has given an uppercut.
- the game apparatus disclosed by patent document 1 determines the type of the punch in association with the waveform from each of the sensors X and Z, using the motion of each sensor in an acceleration detection direction as the reference for motion determination.
- the determination on the type of the punch depends on the direction (posture) of the glove (controller). Accordingly, when the direction of the glove worn by the player is changed, the game apparatus cannot make an accurate determination. For example, when the player wears the glove upside down or with right and left reversed, an identical punch given by the player cannot be determined as being identical. Namely, the determination on the type of the punch is significantly influenced by the posture of the glove.
- a game controller generally has a shape which does not look different even when held upside down by the player's hand.
- US 4 839 838 discloses a three-dimensional input apparatus wherein the output of accelerometers is converted into acceleration, velocity and position values and corrected for the influence of gravity. Velocities and positions are determined by integrating the accelerometer signals.
- EP 1103 883 A2 discloses input mode selection on a palm top computer wherein tilting in clockwise and in counter-clockwise direction is sensed by accelerometer signals.
- JP H10 240437 A discloses a pen-type input device generating a time series of acceleration signals and rotational velocity signals to calculate handwriting using gravity coordinates.
- an object of the present invention is to provide a motion determining apparatus capable of determining a motion of an input device including an acceleration sensor while realizing a high degree of freedom in terms of the posture of the input device, and a storage medium having a motion determining program capable of the same stored thereon.
- the present invention has the following features to attain the object mentioned above.
- the reference numerals, step numbers and the like in parentheses in this section of the specification indicate the correspondence with the embodiment described later for easier understanding of the present invention, and do not limit the present invention in any way.
- a first aspect is directed to a motion determining apparatus (3) for determining a motion of an input device (7) including an acceleration sensor (701) for detecting an acceleration in each of at least two axial directions (X- and Y-axis directions).
- the motion determining apparatus comprises data obtaining means (S61, S64, S77 and S92 executed by the CPU 30; hereinafter only the step numbers will be indicated), motion direction determination means (S71, S101, S102, S103), and output means (S75, S76, S91, S94, S104, S106, S109).
- the data obtaining means obtains acceleration data (Da) which is output from the acceleration sensor.
- the motion direction determination means determines a motion direction of the input device with respect to a direction of an acceleration of gravity acting upon the input device, based on a shift of the acceleration data ( FIG. 9A through FIG. 9D , FIG. 10 through FIG. 12 , FIG. 14A through FIG. 14C ) obtained by the data obtaining means.
- the output means outputs motion data (Dc, Dd, Dj, Dl) including at least the motion direction determined by the motion direction determination means.
- the motion direction determination means includes circulation direction determination means (S66, S71).
- the circulation direction determination means determines a circulation direction (clockwise, counterclockwise) in which the acceleration data shifts in a time series manner around an origin of a two-dimensional coordinate system (X-Y coordinate system) as a shifting axis, wherein coordinate axes (X axis, Y axis) of the two-dimensional coordinate system are defined based on components of the two axial directions of the acceleration data and the origin represents a value of the acceleration data in the state where no acceleration including the acceleration of gravity acts upon the acceleration sensor ( FIG. 9A through FIG. 9D , FIG. 10 through FIG. 12 ).
- the motion direction determination means determines a moving direction of the input device (leftward swing, rightward swing) based on the circulation direction determined by the circulation direction determination means.
- the output means outputs the motion data including at least the moving direction determined by the motion direction determination means.
- the circulation direction determination means determines the circulation direction using a calculation, by which acceleration data having a relatively larger distance from the origin of the two-dimensional coordinate system is given a higher degree of contribution to the determination of the circulation direction and acceleration data shifting in a circulation direction in a time series manner around the origin as the shifting axis (shift R in FIG. 12 ) is given a higher degree of contribution to the determination of the circulation direction.
- the circulation direction determination means calculates a first accumulated area (area A13 in FIG. 12 ) by sequentially accumulating areas of triangles in a time series manner, wherein each of the triangles is defined by, as apexes, the origin and coordinate points represented by two pieces of acceleration data which are continuous in a time series manner in the two-dimensional coordinate system and shift in one of two circulation directions; calculates a second accumulated area (area A36 in FIG.
- each of the triangles is defined by, as apexes, the origin and coordinate points represented by two pieces of acceleration data which are continuous in a time series manner in the two-dimensional coordinate system and shift in the other circulation direction which is opposite to the one circulation direction; and when either one of the first accumulated area and the second accumulated area exceeds a threshold value, determines that the acceleration data shifts in a time series manner in the circulation direction corresponding to the exceeding accumulated area.
- the motion determining apparatus further comprises storage means (33).
- the storage means stores the acceleration data sequentially obtained by the data obtaining means.
- the circulation direction determination means determines the circulation direction in which acceleration data obtained within a predetermined period, among the acceleration data stored in the storage means, shifts in a time series manner in the two-dimensional coordinate system.
- the acceleration sensor detects an acceleration of the input device in each of three axial directions (X-, Y- and Z-axis directions) perpendicular to one another.
- the circulation direction determination means sets a time period in which acceleration data in a first axial direction (Z-axis direction) of the three axial directions exceeds a predetermined value as a predetermined period (Yes in S62).
- the two-dimensional coordinate system has the coordinate axes defined based on components of a second axial direction and a third axial direction (X- and Y-axis directions) of the three axial directions.
- the circulation direction determination means determines the circulation direction in which acceleration data in the second axial direction and the third axial direction obtained and stored in the storage means in the predetermined period shifts in a time series manner.
- the motion determining apparatus further comprises inclination determination means (S63, FIG. 16 , FIG. 17 ).
- the inclination determination means determines an inclination state (UD) of the input device immediately before the predetermined period based on the acceleration data (Zave) in the first axial direction stored in the storage means before the predetermined period.
- the motion direction determination means further includes angle calculation means (S101) and rotation direction determination means (S102).
- the angle calculation means calculates an angle ( ⁇ ) defined by a vector from the origin toward a coordinate point in the two-dimensional coordinate system represented by the first acceleration data obtained in the predetermined period (start point Ps), among the acceleration data stored in the storage means, and a vector from the origin toward a coordinate point in the two-dimensional coordinate system represented by the last acceleration data obtained in the predetermined period (end point Pe), among the acceleration data stored in the storage means.
- the rotation direction determination means determines that the input device has been rotated in one of two directions around a direction (Z-axis direction) perpendicular both to the two axial directions as a rotation axis.
- a first threshold value 120°
- the rotation direction determination means determines that the input device has been rotated in one of two directions around a direction (Z-axis direction) perpendicular both to the two axial directions as a rotation axis.
- a second threshold value 70°
- the output means outputs the motion data further including the rotation direction (S) determined by the rotation direction determination means.
- the motion direction determination means includes shifting direction determination means (S71).
- the shifting direction determination means determines a shifting direction in which the acceleration data shifts in a time series manner in a two-dimensional coordinate system with respect to the direction of the acceleration of gravity acting upon the input device, wherein coordinate axes of the two-dimensional coordinate system are defined based on components of the two axial directions of the acceleration data.
- the motion direction determination means determines a moving direction of the input device with respect to the direction of the acceleration of gravity acting upon the input device based on the moving direction determined by the shifting direction determination means.
- the output means outputs the motion data including at least the moving direction determined by the motion direction determination means.
- the acceleration sensor detects an acceleration including at least a centrifugal component generated when the input device is swung by a user to output the acceleration data.
- the motion direction determination means determines the motion direction of the input device using acceleration data obtained in a time period in which an acceleration of the centrifugal component exceeds a threshold value, among the acceleration data obtained by the data obtaining means.
- An eleventh aspect is directed to a storage medium having stored thereon a motion determining program executable by a computer (30) of a motion determining apparatus for determining a motion of an input device including an acceleration sensor for detecting an acceleration in each of at least two axial directions.
- the motion determining program causes the computer to execute a data obtaining step, a motion direction determination step, and an output step.
- the data obtaining step obtains acceleration data which is output from the acceleration sensor.
- the motion direction determination step determines a motion direction of the input device with respect to a direction of an acceleration of gravity acting upon the input device, based on a shift of the acceleration data obtained in the data obtaining step.
- the output step outputs motion data including at least the motion direction determined in the motion direction determination step.
- the motion direction determination step comprises a circulation direction determination step.
- the circulation direction determination determines a circulation direction in which the acceleration data shifts in a time series manner around an origin of a two-dimensional coordinate system as a shifting axis, wherein coordinate axes of the two-dimensional coordinate system are defined based on components of the two axial directions of the acceleration data and the origin represents a value of the acceleration data in the state where no acceleration including the acceleration of gravity acts upon the acceleration sensor.
- a moving direction of the input device is determined based on the circulation direction determined in the circulation direction determination step.
- the output step the motion data including at least the moving direction determined in the motion direction determination step is output.
- the circulation direction is determined using a calculation, by which acceleration data having a relatively larger distance from the origin of the two-dimensional coordinate system is given a higher degree of contribution to the determination of the circulation direction and acceleration data shifting in a circulation direction in a time series manner around the origin the origin as the shifting axis is given a higher degree of contribution to the determination of the circulation direction.
- a first accumulated area is calculated by sequentially accumulating areas of triangles in a time series manner, wherein each of the triangles is defined by, as apexes, the origin and coordinate points represented by two pieces of acceleration data which are continuous in a time series manner in the two-dimensional coordinate system and shift in one of two circulation directions;
- a second accumulated area is calculated by sequentially accumulating areas of triangles in a time series manner, wherein each of the triangles is defined by, as apexes, the origin and coordinate points represented by two pieces of acceleration data which are continuous in a time series manner in the two-dimensional coordinate system and shift in the other circulation direction which is opposite to the one circulation direction; and when either one of the first accumulated area and the second accumulated area exceeds a threshold value, it is determined that the acceleration data shifts in a time series manner in the circulation direction corresponding to the exceeding accumulated area.
- the motion detection program further causes the computer to execute a storage control step.
- the storage control step stores the acceleration data, sequentially obtained in the data obtaining step, in a memory (33) .
- the circulation direction determination step the circulation direction in which acceleration data obtained within a predetermined period, among the acceleration data stored in the memory, shifts in a time series manner in the two-dimensional coordinate system is determined.
- the acceleration sensor detects an acceleration of the input device in each of three axial directions perpendicular to one another.
- a time period in which acceleration data in a first axial direction of the three axial directions exceeds a predetermined value is set as a predetermined period.
- the two-dimensional coordinate system has the coordinate axes defined based on components of a second axial direction and a third axial direction of the three axial directions .
- the circulation direction in which acceleration data in the second axial direction and the third axial direction obtained and stored in the memory in the predetermined period shifts in a time series manner is determined.
- the motion determining program further causes the computer to execute an inclination determination step.
- the inclination determination step determines an inclination state of the input device immediately before the predetermined period based on the acceleration data in the first axial direction stored in the memory before the predetermined period.
- the motion direction determination step further includes an angle calculation step and a rotation direction determination step.
- the angle calculation step calculates an angle defined by a vector from the origin toward a coordinate point in the two-dimensional coordinate system represented by the first acceleration data obtained in the predetermined period, among the acceleration data stored in the memory, and a vector from the origin toward a coordinate point in the two-dimensional coordinate system represented by the last acceleration data obtained in the predetermined period, among the acceleration data stored in the memory.
- the rotation direction determination step determines that the input device has been rotated in one of two directions around a direction perpendicular both to the two axial directions as a rotation axis.
- the rotation direction determination step determines that the input device has been rotated in the other of the two directions around the rotation axis, In the output step, the motion data further including the rotation direction determined in the rotation direction determination step is output.
- the motion direction determination step includes a shifting direction determination step.
- the shifting direction determination step determines a shifting direction in which the acceleration data shifts in a time series manner in a two-dimensional coordinate system with respect to the direction of the acceleration of gravity acting upon the input device, wherein coordinate axes of the two-dimensional coordinate system are defined based on components of the two axial directions of the acceleration data.
- a moving direction of the input device with respect to the direction of the acceleration of gravity acting upon the input device is determined based on the moving direction determined in the shifting direction determination step.
- the motion data including at least the moving direction determined in the motion direction determination step is output.
- the acceleration sensor detects an acceleration including at least a centrifugal component generated when the input device is swung by a user to output the acceleration data.
- the motion direction of the input device is determined using acceleration data obtained in a time period in which an acceleration of the centrifugal component exceeds a threshold value, among the acceleration data obtained in the data obtaining step.
- a motion direction with respect to the direction of the acceleration of gravity acting upon the input device is determined. Therefore, the motion direction of the input device can be accurately detected, and the degree of freedom in terms of the direction of the input device (posture of the input device) held by the user is significantly increased.
- a circulation direction in which the acceleration data shifts in a two-dimensional coordinate system showing the acceleration data in a time series manner is determined.
- a moving direction of the input device with respect to the direction of the acceleration of gravity can be accurately determined without being influence by the direction of the input device (posture of the input device) held by the user.
- the moving direction can be used as an operation input.
- acceleration data is subjected to an evaluation such that the acceleration data having a higher reliability is given a higher degree of contribution to the determination of the circulation direction. As a result, the precision of the determined circulation direction is improved.
- areas of triangles each of which is defined by the origin of the two-dimensional coordinate system and acceleration data shifting in a forward circulation direction or a reverse circulation direction, are evaluated. As a result, the reliability of the determination on the circulation direction can be appropriately determined.
- acceleration data obtained in a predetermined period is used for the determination. Therefore, the effect of noise, which is not necessary for the determination, is reduced and the precision of the determined circulation direction is improved.
- the acceleration data in the second and third axial directions in a period in which the acceleration data in the first axial direction shows a value exceeding a predetermined value is used for the determination. Accordingly, the period in which the input device is swung can be determined by a setting such that the acceleration obtained when the user swings the input device has an influence on the first axial direction. As a result, a moving direction in which the user swings the input device from the start until the end of the swing can be determined.
- the inclining direction of the input device before the user start swinging the input device can be determined. Therefore, both the moving direction and the inclining direction can be used as an operation input.
- the rotation direction of the input device can be determined in addition to the moving direction thereof. Therefore, both the moving direction and the rotation direction can be used as an operation input.
- the shifting direction of the acceleration data in a two-dimensional coordinate system showing the acceleration data in a time series manner is determined with respect to the direction of the acceleration of gravity obtained by the acceleration data.
- the moving direction of the input device with respect to the direction of the acceleration of gravity can be accurately determined without being influenced by the direction of the input device (posture of the input device) held by the user.
- acceleration data obtained when the acceleration data generated when the user swings the input device exceeds a predetermined value is used for the determination. Therefore, the motion direction can be determined using acceleration data obtained from the start until the end of the swing. As a result, for example, a moving direction in which the user swings the input device from the start until the end of the swing can be determined.
- a storage medium having a motion determining program according to the present invention stored thereon provides the same effects as those of the above-described motion determining apparatus.
- FIG. 1 is an external view illustrating the game system 1.
- the game system 1 includes an installation type game apparatus corresponding to a motion determining apparatus according to the present invention.
- the game system 1 includes an installation type game apparatus (hereinafter, referred to simply as a "game apparatus") 3, which is connected to a display (hereinafter, referred to as a "monitor") 2 including a speaker 2a of a home-use TV receiver or the like via a connection cord, and a controller 7 for giving operation information to the game apparatus 3.
- the game apparatus 3 is connected to a receiving unit 6 via a connection terminal.
- the receiving unit 6 receives transmission data which is wirelessly transmitted from the controller 7.
- the controller 7 and the game apparatus 3 are connected to each other by wireless communication.
- an optical disc 4 as an example of an exchangeable information storage medium is detachably mounted.
- the game apparatus 3 includes a power ON/OFF switch, a game processing reset switch, and an OPEN switch for opening a top lid of the game apparatus 3 on a top main surface of the game apparatus 3.
- a power ON/OFF switch for opening a top lid of the game apparatus 3 on a top main surface of the game apparatus 3.
- OPEN switch for opening a top lid of the game apparatus 3 on a top main surface of the game apparatus 3.
- an external memory card 5 is detachably mounted when necessary.
- the external memory card 5 has a backup memory or the like mounted thereon for fixedly storing saved data or the like.
- the game apparatus 3 executes a game program or the like stored on the optical disc 4 and displays the result on the monitor 2 as a game image.
- the game apparatus 3 can also reproduce a state of a game played in the past using saved data stored on the memory card 5 and display the game image on the monitor 2.
- a player playing with the game apparatus 3 can enjoy the game by operating the controller 7 while watching the game image displayed on the monitor 2.
- the controller 7 wirelessly transmits the transmission data from a communication section 75 included therein (described later) to the game apparatus 3 connected to the receiving unit 6, using the technology of, for example, Bluetooth (registered trademark).
- the controller 7 is operation means for mainly operating a player object appearing in a game space displayed on the monitor 2.
- the controller 7 includes an operation section having a plurality of operation buttons, a key, a stick and the like.
- the controller 7 also includes an imaging information calculation section 74 for taking an image viewed from the controller 7.
- an imaging subject of the imaging information calculation section 74 two LED modules (hereinafter, referred to as "markers") 8L and 8R are provided in the vicinity of a display screen of the monitor 2.
- the markers 8L and 8R each output infrared light forward from the monitor 2.
- imaging information by the imaging information calculation section 74 is not used, and therefore the markers 8L and 8R are not absolutely necessary.
- FIG. 2 is a functional block diagram of the game apparatus 3.
- the game apparatus 3 includes, for example, a RISC CPU (central processing unit) 30 for executing various types of programs.
- the CPU 30 executes a start program stored in a boot ROM (not shown) to, for example, initialize memories including a main memory 33, and then executes a game program stored on the optical disc 4 to perform game processing or the like in accordance with the game program.
- the game program stored on the optical disc 4 includes a motion determining program according to the present invention.
- the CPU 30 also performs motion determining processing for determining a motion of the controller 7 as a part of the game processing.
- the CPU 30 is connected to a GPU (Graphics Processing Unit) 32, the main memory 33, a DSP (Digital Signal Processor) 34, and an ARAM (Audio RAM) 35 via a memory controller 31.
- the memory controller 31 is connected to a controller I/F (interface) 36, a video I/F 37, an external memory I/F 38, an audio I/F 39, and a disc I/F 41 via a predetermined bus.
- the controller I/F 36, the video I/F 37, the external memory I/F 38, the audio I/F 39 and the disc I/F 41 are respectively connected to a receiving unit 6, the monitor 2, the external memory card 5, the speaker 2a and a disc drive 40.
- the GPU 32 performs image processing based on an instruction from the CPU 30.
- the GPU 32 includes, for example, a semiconductor chip for performing calculation processing necessary for displaying 3D graphics.
- the GPU 32 performs the image processing using a memory dedicated for image processing (not shown) and a part of the storage area of the main memory 33.
- the GPU 32 generates game image data and a movie to be displayed on the monitor 2 using such memories, and outputs the generated data or movie to the monitor 2 via the memory controller 31 and the video I/F 37 as necessary.
- the main memory 33 is a storage area used by the CPU 30, and stores a game program or the like necessary for processing performed by the CPU 30 as necessary.
- the main memory 33 stores a game program read from the optical disc 4 by the CPU 30, various types of data or the like.
- the game program, the various types of data or the like stored in the main memory 33 are executed by the CPU 30.
- the DSP 34 processes sound data or the like generated by the CPU 30 during the execution of the game program.
- the DSP 34 is connected to the ARAM 35 for storing the sound data or the like.
- the ARAM 35 is used when the DSP 34 performs predetermined processing (for example, storage of the game program or sound data already read) .
- the DSP 34 reads the sound data stored in the ARAM 35 and outputs the sound data to the speaker 2a included in the monitor 2 via the memory controller 31 and the audio I/F 39.
- the memory controller 31 comprehensively controls data transfer, and is connected to the various I/Fs described above.
- the controller I/F 36 includes, for example, four controllers I/F 36a through 36d, and communicably connects the game apparatus 3 to an external device which is engageable via connectors of the controller I/F 36a through 36d.
- the receiving unit 6 is engaged with such a connector and is connected to the game apparatus 3 via the controller I/F 36.
- the receiving unit 6 receives the transmission data from the controller 7 and outputs the transmission data to the CPU 30 via the controller I/F 36.
- the video I/F 37 is connected to the monitor 2.
- the external memory I/F 38 is connected to the external memory card 5 and is accessible to a backup memory or the like provided in the external card 5.
- the audio I/F 39 is connected to the speaker 2a built in the monitor 2, and is connected such that the sound data read by the DSP 34 from the ARAM 35 or sound data directly output from the disc drive 40 is output from the speaker 2a.
- the disc I/F 41 is connected to the disc drive 40.
- the disc drive 40 reads data stored at a predetermined reading position of the optical disc 4 and outputs the data to a bus of the game apparatus 3 or the audio I/F 39.
- FIG. 3 is an isometric view of the controller 7 seen from the top rear side thereof.
- FIG. 4 is an isometric view of the controller 7 seen from the bottom rear side thereof.
- the controller 7 includes a housing 71 formed by plastic molding or the like.
- the housing 71 has a plurality of operation sections 72.
- the housing 71 has a generally parallelepiped shape extending in a longitudinal direction from front to rear. The overall size of the housing 71 is small enough to be held by one hand of an adult or even a child.
- a cross key 72a is provided at the center of a front part of a top surface of the housing 71.
- the cross key 72a is a cross-shaped four-direction push switch.
- the cross key 72a includes operation portions corresponding to the four directions represented by the arrows (front, rear, right and left), which are respectively located on cross-shaped projecting portions arranged at an interval of 90 degrees.
- the player selects one of the front, rear, right and left directions by pressing one of the operation portions of the cross key 72a.
- the player can, for example, instruct a direction in which a player character or the like appearing in a virtual game world is to move or a direction in which the cursor is to move.
- the cross key 72a is an operation section for outputting an operation signal in accordance with the above-described direction input operation performed by the player, but such an operation section may be provided in another form.
- the cross key 72a may be replaced with a composite switch including a push switch including ring-shaped four-direction operation section and a center switch provided at the center thereof.
- the cross key 72a may be replaced with an operation section which includes an inclinable stick projecting from the top surface of the housing 71 and outputs an operation signal in accordance with the inclining direction of the stick.
- the cross key 72a may be replaced with an operation section which includes a disc-shaped member horizontally slidable and outputs an operation signal in accordance with the sliding direction of the disc-shaped member.
- the cross key 72a may be replaced with a touch pad. Still alternatively, the cross key 72a may be replaced with an operation section which includes switches representing at least four directions (front, rear, right and left) and outputs an operation signal in accordance with the switch pressed by the player.
- a plurality of operation buttons 72b through 72g are provided.
- the operation buttons 72b through 72g are each an operation section for outputting a respective operation signal when the player presses a head thereof.
- the operation buttons 72b through 72d are assigned functions of an X button, a Y button and a B button.
- the operation buttons 72e through 72g are assigned functions of a select switch, a menu switch and a start switch, for example.
- the operation buttons 72b through 72g are assigned various functions in accordance with the game program executed by the game apparatus 3, but this will not be described in detail because the functions are not directly relevant to the present invention. In an exemplary arrangement shown in FIG.
- the operation buttons 72b through 72d are arranged in a line at the center in the front-rear direction on the top surface of the housing 71.
- the operation buttons 72e through 72g are arranged in a line in the left-right direction between the operation buttons 72b and 72d.
- the operation button 72f has a top surface thereof buried in the top surface of the housing 71, so as not to be inadvertently pressed by the player.
- an operation button 72h is provided forward to the cross key 72a on the top surface of the housing 71.
- the operation button 72h is a power switch for remote-controlling the power of the game apparatus 3 to be on or off.
- the operation button 72h also has a top surface thereof buried in the top surface of the housing 71, so as not to be inadvertently pressed by the player.
- a plurality of LEDs 702 are provided.
- the controller 7 is assigned a controller type (number) so as to be distinguishable from the other controllers 7.
- the LEDs 702 are used for informing the player of the controller type which is currently set to controller 7 that he/she is using. Specifically, when the controller 7 transmits the transmission data to the receiving unit 6, one of the plurality of LEDs corresponding to the controller type is lit up.
- a recessed portion is formed on a bottom surface of the housing 71. As described later in detail, the recessed portion is formed at a position at which an index finger or middle finger of the player is located when the player holds the controller 7.
- an operation button 72i is provided on a rear slope surface of the recessed portion.
- the operation button 72i is an operation section acting as, for example, an A button.
- the operation button 72i is used, for example, as a trigger switch in a shooting game, or for attracting attention of a player object to a predetermined object.
- the imaging information calculation section 74 is a system for analyzing image data taken by the controller 7 and detecting the position of the center of gravity, the size and the like of an area having a high brightness in the image data.
- the imaging information calculation section 74 has, for example, a maximum sampling period of about 200 frames/sec., and therefore can trace and analyze even a relatively fast motion of the controller 7.
- a connector 73 is provided on a rear surface of the housing 71.
- the connector 73 is, for example, a 32-pin edge connector, and is used for engaging and connecting the controller 7 with a connection cable.
- the present invention does not use information from the imaging information calculation section 74, and thus the imaging information calculation section 74 will not be described in further detail.
- a coordinate system which is set for the controller 7 will be defined.
- X-, Y- and Z-axis directions perpendicular to one another are defined for the controller 7.
- the longitudinal direction of the housing 71 i.e., the front-rear direction of the controller 7
- a direction toward the front surface of the controller 7 is set as a positive Z-axis direction.
- the up-to-down direction of the controller 7 is set as a Y-axis direction.
- a direction toward the top surface of the controller housing 71 (the surface having the cross key 72a and the like) is set as a positive Y-axis direction.
- the left-right direction of the controller 7 is set as an X-axis direction.
- a direction toward a left surface of the housing 71 (the surface which is not shown in FIG. 3 but is shown in FIG. 4 ) is set as a positive X-axis direction.
- FIG. 5A is an isometric view illustrating a state where an upper casing (a part of the housing 71) of the controller 7 is removed.
- FIG. 5B is an isometric view illustrating a state where a lower casing (a part of the housing 71) of the controller 7 is removed.
- FIG. 5B shows a reverse side of a substrate 700 shown in FIG. 5A .
- the substrate 700 is fixed inside the housing 71.
- the operation buttons 72a through 72h, an acceleration sensor 701, the LEDs 702, a quartz oscillator 703, a wireless module 753, an antenna 754 and the like are provided on a top main surface of the substrate 700.
- These elements are connected to a microcomputer 751 (see FIG. 6 ) via lines (not shown) formed on the substrate 700 and the like.
- the acceleration sensor 701 detects and outputs acceleration, which can be used to calculate inclination, oscillation and the like in a three-dimensional space in which the controller 7 is located.
- the controller 7 preferably includes a three-axis, linear acceleration sensor 701 that detects linear acceleration in three directions, i.e., the up/down direction (Y-axis shown in FIG. 3 ), the left/right direction (X-axis shown in FIG. 3 ), and the forward/backward direction (Z-axis shown in FIG. 3 ).
- a two axis linear accelerometer that only detects linear acceleration along each of the X-axis and Y-axis (or other pair of axes) may be used in another embodiment depending on the type of control signals desired.
- the three-axis or two-axis linear accelerometer 701 may be of the type available from Analog Devices, Inc.
- the acceleration sensor 701 is an electrostatic capacitance or capacitance-coupling type that is based on silicon micro-machined MEMS (microelectromechanical systems) technology.
- MEMS microelectromechanical systems
- any other suitable accelerometer technology e.g., piezoelectric type or piezoresistance type
- any other suitable accelerometer technology e.g., piezoelectric type or piezoresistance type
- now existing or later developed may be used to provide the three-axis or two- axis linear acceleration sensor 701.
- linear accelerometers as used in acceleration sensor 701 are only capable of detecting acceleration along a straight line corresponding to each axis of the acceleration sensor.
- the direct output of the acceleration sensor 701 is limited to signals indicative of linear acceleration (static or dynamic) along each of the two or three axes thereof.
- the acceleration sensor 701 cannot directly detect movement along a non-linear (e.g. arcuate) path, rotation, rotational movement, angular displacement, tilt, position, attitude or any other physical characteristic.
- the linear acceleration output of the acceleration sensor 701 can be used to determine tilt of the object relative to the gravity vector by correlating tilt angles with detected linear acceleration.
- the acceleration sensor 701 can be used in combination with the micro-computer 751 (or another processor) to determine tilt, attitude or position of the controller 7.
- various movements and/or positions of the controller 7 can be calculated through processing of the linear acceleration signals generated by the acceleration sensor 701 when the controller 7 containing the acceleration sensor 701 is subjected to dynamic accelerations by, for example, the hand of a user, as will be explained in detail below.
- the acceleration sensor 701 may include an embedded signal processor or other type of dedicated processor for per forming any desired processing of the acceleration signals output from the accelerometers therein prior to outputting signals to micro-computer 751.
- the embedded or dedicated processor could convert the detected acceleration signal to a corresponding tilt angle (or other desired parameter) when the acceleration sensor is intended to detect static acceleration (i.e., gravity).
- the communication section 75 including the wireless module 753 and the antenna 754 allows the controller 7 to act as a wireless controller.
- the quartz oscillator 703 generates a reference clock of the microcomputer 751 described later.
- the image information calculation section 74 includes an infrared filter 741, a lens 742, the imaging element 743 and an image processing circuit 744 located in this order from the front surface of the controller 7 . These elements are attached to the bottom main surface of the substrate 700.
- the connector 73 is attached.
- the operation button 72i is attached on the bottom main surface of the substrate 700 rearward to the image information calculation section 74, and cells 705 are accommodated rearward to the operation button 72i.
- a vibrator 704 is attached on the bottom main surface of the substrate 700 between the cells 705 and the connector 73.
- the vibrator 704 may be, for example, a vibration motor or a solenoid.
- the controller 7 is vibrated by an actuation of the vibrator 704, and the vibration is conveyed to the player holding the controller 7.
- a so-called vibration-responsive game is realized.
- FIG. 6 is a block diagram showing the structure of the controller 7.
- the imaging information calculation section 74 includes the infrared filter 741, the lens 742, the imaging element 743 and the image processing circuit 744.
- the infrared filter 741 allows only infrared light to pass therethrough, among light incident on the front surface of the controller 7.
- the lens 742 collects the infrared light which has passed through the infrared filter 741 and outputs the infrared light to the imaging element 743.
- the imaging element 743 is a solid-state imaging device such as, for example, a CMOS sensor or a CCD.
- the imaging element 743 takes an image of the infrared light collected by the lens 742.
- the imaging element 743 takes an image of only the infrared light which has passed through the infrared filter 741 and generates image data.
- the image data generated by the imaging element 743 is processed by the image processing circuit 744.
- the image processing circuit 744 processes the image data obtained from the imaging element 743, detects an area thereof having a high brightness, and outputs processing result data representing the detected coordinate position and size of the area to the communication section 75.
- the imaging information calculation section 74 is fixed to the housing 71 of the controller 7.
- the imaging direction of the imaging information calculation section 74 can be changed by changing the direction of the housing 71.
- the acceleration sensor 701 detects and outputs the acceleration in the form of components of three axial directions of the controller 7, i.e., the components of the up-down direction (Y-axis direction), the left-right direction (X-axis direction), and the front-rear direction (the Z-axis direction) of the controller 7.
- Data representing the acceleration as the components of the three axial directions detected by the acceleration sensor 701 is output to the communication section 75.
- a motion of the controller 7 can be determined.
- a sensor for detecting an acceleration in two of the three axial directions may be used depending on the data needed for a particular application.
- the communication section 75 includes the microcomputer 751, a memory 752, the wireless module 753 and the antenna 754.
- the microcomputer 751 controls the wireless module 753 for transmitting the transmission data while using the memory 752 as a storage area during processing.
- Data from the controller 7 including an operation signal (key data) from the operation section 72, acceleration signals in the three axial directions (X-axis, Y-axis and Z-axis direction acceleration data) from the acceleration sensor 701, and the processing result data from the imaging information calculation section 74 are output to the microcomputer 751.
- the microcomputer 751 temporarily stores the input data (key data, X-axis, Y-axis and Z-axis direction acceleration data, and the processing result data) in the memory 752 as the transmission data which is to be transmitted to the receiving unit 6.
- the wireless transmission from the communication section 75 to the receiving unit 6 is performed at a predetermined time interval. Since game processing is generally performed at a cycle of 1/60 sec., the wireless transmission needs to be performed at a cycle of a shorter time period.
- the game processing unit is 16.7 ms (1/60 sec.), and the transmission interval of the communication section 75 structured using the Bluetooth (registered trademark) technology is 5 ms.
- the microcomputer 751 outputs the transmission data stored in the memory 752 as a series of operation information to the wireless module 753.
- the wireless module 753 uses, for example, the Bluetooth (registered trademark) technology to radiate the operation information from the antenna 754 as a carrier wave signal of a predetermined frequency.
- the key data from the operation section 72, the X-axis, Y-axis and Z-axis direction acceleration data from the acceleration sensor 701, and the processing result data from the imaging information calculation section 74 are transmitted from the controller 7.
- the receiving unit 6 of the game apparatus 3 receives the carrier wave signal, and the game apparatus 3 demodulates or decodes the carrier wave signal to obtain the series of operation information (the key data, the X-axis, Y-axis and Z-axis direction acceleration data, and the processing result data). Based on the obtained operation information and the game program, the CPU 30 of the game apparatus 3 performs the game processing.
- the communication section 75 is structured using the Bluetooth (registered trademark) technology, the communication section 75 can have a function of receiving transmission data which is wirelessly transmitted from other devices.
- the entire controller 7 is small enough to be held by one hand of an adult or even a child.
- the player holds the controller 7 with one hand (for example, right hand) such that the front surface of the controller 7 is directed forward.
- the player holds the controller 7 with his/her thumb on the left surface thereof, with his/her palm on the top surface thereof, and with his/her index finger, middle finger, third finger and fourth finger on the bottom surface thereof, such that the front surface thereof is directed forward, i.e., away from himself /herself .
- the player holds the controller 7 as if he/she was holding a tennis racket.
- the player swings his/her arm holding the controller 7 from his/her right to left (hereinafter, such a motion will be referred to as a "leftward swing” or swings his/her arm holding the controller 7 from his/her left to right (hereinafter, such a motion will be referred to as a "rightward swing”) based on the game image displayed on the monitor 2.
- the player gives operation information (specifically, X-axis, Y-axis and Z-axis direction acceleration data) to the game apparatus 3 from the controller 7.
- the player can, for example, perform a leftward swing or a rightward swing while swinging up the controller 7, swinging down the controller 7, or twisting the controller 7 left or right.
- the player can give various types of X-axis, Y-axis and Z-axis direction acceleration data to the game apparatus 3 from the controller 7.
- a tennis game or the like is displayed on the monitor 2 in accordance with the X-axis, Y-axis and Z-axis direction acceleration data received from the controller 7.
- a tennis court set in a virtual game space is displayed on the monitor 2 as a three-dimensional game image.
- a player character PC to be operated by the player an opponent character EC acting as an opponent to the player character PC, a ball character BC representing a tennis ball moving on the tennis court, and the like are located.
- Such characters are displayed on the monitor 2.
- motion determining processing according to the present invention will be described. In order to give a specific description, it is assumed that a game program for the tennis game is stored on the optical disc 4 and that the CPU 30 performs the motion determining processing for determining a motion of the controller 7 during the tennis game.
- the player character PC holds a tennis racket and is located on the tennis court which is set in the virtual game space.
- an animation of the player character PC of swinging the tennis racket is displayed.
- the player character PC hits back the ball character BC flying toward the player character PC with the tennis racket
- the ball character BC hit by the tennis racket flies toward the court of the opponent character EC.
- the player character PC is displayed as performing a motion of swinging the tennis racket in a similar manner.
- the player can experience a virtual sports game as if he/she was playing tennis with a tennis racket.
- the player character PC represents a right-handed tennis player
- the player character PC swings the tennis racket forehand.
- the player character PC swings the tennis racket backhand. Namely, the player character PC swings the tennis racket in the same direction as the player swings the controller 7.
- the flying direction or velocity of the ball character BC hit by the tennis racket swung by the player character PC changes.
- the height of the flying trajectory of the ball character BC changes.
- the player character PC can be displayed as hitting back the ball character BC with a so-called topspin or backspin toward the opponent character EC.
- such motions can be distinguished by the X-axis, Y-axis and Z-axis direction acceleration data which is output from the controller 7. In this manner, a tennis game reflecting various motions given by the player to the controller 7 can be represented.
- the game apparatus 3 determines that the player is swinging the controller 7. For example, when the controller 7 is in a still state, the acceleration sensor 701 never detects an acceleration exceeding the acceleration of gravity of 9.8 m/s 2 . When the player holding the controller 7 swings his/her arm as described above, the front edge of the controller 7 moves in an arc-shaped trajectory. Therefore, the acceleration in the positive Z-axis direction (see FIG. 3 ) is detected by the influence of the centrifugal force.
- a threshold value equal to or greater than the acceleration of gravity is set, and when the Z-axis direction acceleration data represents an acceleration exceeding the threshold value, it is determined that the player is swinging the controller 7.
- FIG. 9A through FIG. 9D are exemplary graphs, X and Y axes of which each represent whether an acceleration represented by each of the X- and Y-axis direction acceleration data is positive or negative as well as the magnitude of such an acceleration.
- the accelerations represented by the X- and Y-axis direction acceleration data simultaneously obtained at a predetermined time interval are sequentially plotted in the X-Y coordinate system.
- a predetermined time interval for example, every 5 ms
- points P represent the accelerations represented by the X- and Y-axis direction acceleration data simultaneously obtained.
- the arrow beside the points P represents the order in which the data is obtained.
- the numerical value "1" represents the magnitude of the acceleration of gravity.
- the controller 7 When the player swings the controller 7, the controller 7 is accelerated at the start of the swing and decelerated at the end of the swing. Accordingly, at the start of the swing, the controller 7 is provided with an acceleration in the same direction as the swing. Then, the magnitude of the acceleration gradually decreases. At the end of the swing, the controller 7 is provided with an acceleration in the opposite direction to the swing.
- an acceleration vector (or information on whether the acceleration is positive or negative) which is output from the acceleration sensor 701 is exactly opposite to the acceleration direction of the controller 7. Accordingly, at the start of the swing, the acceleration sensor 701 detects an acceleration in the opposite direction to the swing. Then, the magnitude of the acceleration gradually decreases. At the end of the swing, the acceleration sensor 701 detects an acceleration in the same direction as the swing.
- the acceleration sensor 701 when the controller 7 is accelerated in a horizontal leftward swing with the top surface thereof directed upward (i.e., when the acceleration direction of the controller 7 is the positive X-axis direction), the acceleration sensor 701 provides an acceleration vector in a negative X-axis direction.
- the accelerations show a negative value in the X-axis direction at the start of the swing because the controller 7 is accelerated.
- the accelerations are plotted in the positive X-axis direction because the controller 7 is decelerated.
- the acceleration sensor 701 is constantly acted upon by the acceleration of gravity.
- the acceleration sensor 701 detects an acceleration of magnitude "1" in a vertical direction (in this case, in a negative Y-axis direction). Accordingly, when the player performs a horizontal leftward swing of the controller 7 with the top surface thereof directed upward, points P are sequentially plotted from a negative value to a positive value in the X-axis direction (in the X+ direction) with the value in the Y-axis direction fixed at "-1" (see FIG. 9A ).
- the acceleration sensor 701 When the controller 7 is accelerated in a horizontal leftward swing with the top surface thereof directed at 90 degrees leftward with respect to the player (i.e., when the acceleration direction of the controller 7 is the positive Y-axis direction), the acceleration sensor 701 provides an acceleration vector in the negative Y-axis direction.
- the accelerations In the X-Y coordinate system in which the accelerations represented by the X- and Y-axis direction data simultaneously obtained during the swing are plotted, the accelerations show a negative value in the Y-axis direction at the start of the swing because the controller 7 is accelerated.
- the accelerations Toward the end of the swing, the accelerations are plotted in the positive Y-axis direction because the controller 7 is decelerated.
- the acceleration sensor 701 is constantly acted upon by the acceleration of gravity.
- the acceleration sensor 701 detects an acceleration of magnitude "1" in the vertical direction (in this case, in the positive X-axis direction). Accordingly, when the player performs a horizontal leftward swing of the controller 7 with the top surface thereof directed at 90 degrees leftward with respect to the player, points P are sequentially plotted from a negative value to a positive value in the Y-axis direction (in the Y+ direction) with the value in the X-axis direction fixed at "+1" (see FIG. 9B ).
- the acceleration sensor 701 When the controller 7 is accelerated in a horizontal leftward swing with the top surface thereof directed downward (i.e., when the acceleration direction of the controller 7 is the negative X-axis direction), the acceleration sensor 701 provides an acceleration vector in the positive X-axis direction.
- the accelerations shows a positive value in the X-axis direction at the start of the swing because the controller 7 is accelerated.
- the accelerations are plotted in the negative X-axis direction because the controller 7 is decelerated.
- the acceleration sensor 701 is constantly acted upon by the acceleration of gravity.
- the acceleration sensor 701 detects an acceleration of magnitude "1" in the vertical direction (in this case, in the positive Y-axis direction). Accordingly, when the player performs a horizontal leftward swing of the controller 7 with the top surface thereof directed downward, points P are sequentially plotted from a positive value to a negative value in the X-axis direction (in the X- direction) with the value in the Y-axis direction fixed at "+1" (see FIG. 9C ).
- the acceleration sensor 701 When the controller 7 is accelerated in a horizontal leftward swing with the top surface thereof directed at 90 degrees rightward with respect to the player (i.e. , when the acceleration direction of the controller 7 is the negative Y-axis direction), the acceleration sensor 701 provides an acceleration vector in the positive Y-axis direction.
- the accelerations In the X-Y coordinate system in which the accelerations represented by the X- and Y-axis direction data simultaneously obtained during the swing are plotted, the accelerations show a positive value in the Y-axis direction at the start of the swing because the controller 7 is accelerated.
- the accelerations Toward the end of the swing, the accelerations are plotted in the negative Y-axis direction because the controller 7 is decelerated.
- the acceleration sensor 701 is constantly acted upon by the acceleration of gravity.
- the acceleration sensor 701 detects an acceleration of magnitude "1" in the vertical direction (in this case, in the negative X-axis direction). Accordingly, when the player performs a horizontal leftward swing of the controller 7 with the top surface thereof directed at 90 degrees rightward with respect to the player, points P are sequentially plotted from a positive value to a negative value in the Y-axis direction (in the Y- direction) with the value in the X-axis direction fixed at "-1" (see FIG. 9D ).
- the swinging direction of the controller 7 provided by the player (moving direction of the controller 7) can be determined.
- the relationship between the circulation direction of the points P and the swinging direction of the controller 7 varies in accordance with the setting of the coordinate axes, the characteristics of the acceleration sensor, the setting of the X-Y coordinate system and the like, and may be adjusted in accordance with such settings as necessary.
- the swinging direction of the controller 7 can be accurately determined by analyzing the shifting direction of the acceleration data with respect to the direction of acceleration of gravity based on the obtained acceleration data (represented by the dashed arrow in FIG. 9A through FIG. 9D ).
- FIG. 10 shows an example of the plotted points P obtained when the player performs a leftward swing.
- the plotted points P show a counterclockwise shift (points P1 through P3; shift L) and then show a clockwise shift (points P3 through P10; shift R) . If the swinging direction of the controller 7 is determined in the middle of shift L, the swinging direction is determined as rightward.
- Shift L is a data group having a relatively small magnitude of acceleration.
- Shift L is almost radial from the origin of the X-Y coordinate system. This is because the controller 7 is swung in a different direction from the leftward swing or the rightward swing.
- Such a data group having a relatively small magnitude of acceleration and showing a shift which is almost radial from the origin of the X-Y coordinate system is considered to have a low reliability for determining the swinging direction.
- the swinging direction can be accurately determined by using a data group having a relatively large magnitude of acceleration and showing a shift which is close to a circle around the origin of the X-Y coordinate system, for example, shift R. In other words, in order to determine the swinging direction, data having a larger magnitude of acceleration and data showing a shift which is closer to a circle around the origin of the X-Y coordinate system is more reliable.
- the above-described reliability is represented by an area of a triangle defined by two pieces of acceleration data which are continuous in a time series manner and the origin of the X-Y coordinate system.
- a triangle area A45 defined by straight lines connecting points P4 and P5 which are continuous in a time series manner and the origin is used.
- the points P represent a larger magnitude of acceleration
- the triangle area A45 is larger.
- the points P show a shift closer to a circle around the origin, the triangle area A45 is larger.
- the reliability can be represented by the triangle area A45.
- FIG. 12 shows an area A13 of a region relating to points P1 through P3 shown in FIG. 10 which are continuous in a time series manner, and an area A36 of a region relating to points P3 through P6 shown in FIG. 10 which are continuous in a time series manner. More specifically, the region having the area A13 is obtained by accumulating triangles each defined by the origin and two adjacent points among points P1 through P3. The region having the area A36 is obtained by accumulating triangles each defined by the origin and two adjacent points among points P3 through P6. The area A13 overlaps a part of the area A36. As shown in FIG.
- the area A13 is an accumulated area of the triangles calculated using the points P1 through P3 representing a counterclockwise shift with respect to the origin.
- the area A36 is an accumulated area of the triangles calculated using the points P3 through P6 representing a clockwise shift with respect to the origin.
- the area A13 is significantly smaller than the area A36.
- the areas of triangles defined by the points P representing a clockwise shift and the areas of triangles defined by the points P representing a counterclockwise shift are each accumulated in a time series manner.
- the swinging direction of the controller 7 is determined based on whether the points P defining the triangles used for forming the exceeding accumulated value show a clockwise shift or a counterclockwise shift. In this manner, the swinging direction can be accurately determined by while eliminating the influence of the data having a low reliability. It is considered that the swinging direction can be determined more accurately by analyzing all the points P from the start until the end of the swing.
- the threshold value is used in order to determine the swinging direction at an earlier stage of the swinging motion.
- a velocity at which the player swings the controller 7 is determined as follows.
- the time period from the acceleration to the deceleration is relatively short.
- the time period from the acceleration to the deceleration is relatively long.
- the interval between the points P plotted in the X-Y coordinate system (hereinafter, occasionally referred to as a "data interval") is larger as the player swings the controller 7 at a higher velocity.
- the swinging velocity of the controller 7 provided by the player can be calculated by determining the interval between the points P which are continuous in a time series manner. In this embodiment, all the points P from the start until the end of the swing are analyzed, and the points P having the largest interval therebetween, among the intervals between points P which are continuous in a time series manner, are extracted. Thus, the swinging velocity is calculated.
- FIG. 13 is an isometric view of the controller 7 illustrating the twisting directions thereof.
- FIG. 14A through FIG. 14C are graphs each illustrating an example of values of acceleration represented by each of the X- and Y-axis direction acceleration data in accordance with the twist given to the controller 7.
- FIG. 15 is a graph illustrating an example of spin parameter S calculated in accordance with the angle ⁇ shown in FIG. 14A through FIG. 14C .
- FIG. 14A through FIG. 14C as in FIG. 9A through FIG.
- the player when performing a leftward swing or a rightward swing of the controller 7, the player can provide the controller 7 with a "leftward twist” or a “rightward twist” around the Z-axis.
- the "leftward twist” refers to rotating the controller 7 counterclockwise with respect to the player around the Z axis
- the "rightward twist” refers to rotating the controller 7 clockwise with respect to the player around the Z axis.
- the result of a determination on the twist is reflected on a spin (a topspin or a backspin) given to the ball character BC.
- the twisting angle of the controller 7 is determined using a point Ps representing the X- and Y-axis direction acceleration data obtained at the start of the swing (the first point plotted in the X-Y coordinate system; start point) and a point Pe representing the X- and Y-axis direction acceleration data obtained at the end of the swing (the last point plotted in the X-Y coordinate system; end point).
- FIG. 14A shows an example of the X- and Y-axis direction acceleration data obtained from the start until the end of the swing when the player performs a horizontal leftward swing with the top surface of the controller 7 being kept upward (i.e., with no twist).
- An angle ⁇ defined by a straight line connecting the start point Ps and the origin of the X-Y coordinate system and a straight line connecting the end point Pe and the origin (hereinafter, referred to as an "angle ⁇ from the start point Ps to the end point Pe") is calculated, and a spin parameter S in accordance with the angle ⁇ is set. Since the direction of gravity acting upon the controller 7 is constant, an intermediate angle ⁇ is obtained.
- the angle ⁇ is obtained by calculating an absolute value of an angle defined by a vector extending from the origin of the X-Y coordinate system to the start point Ps and a vector extending from the origin to the end point Pe.
- FIG. 14B shows an example of the X- and Y-axis direction acceleration data obtained from the start until the end of the swing when the player performs a horizontal leftward swing while giving a leftward twist to the controller 7 from the state where the top surface of the controller 7 is directed upward. Since the direction of gravity acting upon the controller 7 changes clockwise in accordance with the twist, the angle ⁇ from the start Ps to the end point Pe obtained by the leftward twist is larger than the angle ⁇ obtained with no twist.
- FIG. 14C shows an example of the X- and Y-axis direction acceleration data obtained from the start until the end of the swing when the player performs a horizontal leftward swing while giving a rightward twist to the controller 7 from the state where the top surface of the controller 7 is directed upward. Since the direction of gravity acting upon the controller 7 changes counterclockwise in accordance with the twist, the angle ⁇ from the start Ps to the end point Pe obtained by the rightward twist is smaller than the angle ⁇ obtained with no twist.
- the direction or angle of a twist provided to the controller 7 during the swing can be determined using the angle ⁇ from the start point Ps to the end point Pe.
- the controller 7 is determined to be given a "leftward twist" when the angle ⁇ is larger than a threshold value and is determined to be given a "rightward twist” when the angle ⁇ is smaller than the threshold value.
- the direction of the twist is determined oppositely.
- the controller 7 is determined to be given a "rightward twist" when the angle ⁇ is larger than the threshold value and is determined to be given a "leftward twist” when the angle ⁇ is smaller than the threshold value.
- the start point Ps and the end point Pe represented by the X- and Y-axis direction acceleration data as coordinate points on the X-Y coordinate system
- a rotation motion of the controller 7 around the Z axis, perpendicular to the X and Y axes, as the rotation axis can be determined.
- an amount by which the player twists the controller 7 can be determined.
- a predetermined conversion table is used to convert the angle ⁇ used for determining the twisting direction or the twisting angle into a spin parameter S in accordance with the value of the angle ⁇ .
- the angle ⁇ is converted into a spin parameter S linearly changing in the range of -1.0 to 0.0.
- the angle ⁇ is 70° ⁇ ⁇ ⁇ 120°
- the angle ⁇ is 120° ⁇ ⁇ ⁇ 160°
- the angle ⁇ is converted into a spin parameter S linearly changing in the range of 0.0 to 0.1.
- the angle ⁇ 160° ⁇ ⁇
- FIG. 16A through FIG. 16C illustrate the relationship between the state where the controller 7 is inclined upward or downward and the coordinate axes in such a state.
- FIG. 17 is a graph illustrating an example of up-down angle UD calculated in accordance with Z-axis direction acceleration data.
- the controller 7 it is determined whether the controller 7 is being swung up or down based on the up-down direction of the controller 7 before the controller 7 is swung. For example, when the player inclines the front surface of the controller 7 downward at equal to or greater than a predetermined angle from the horizontal state before starting the swing, it is determined that the controller 7 is being swung up. When the player inclines the front surface of the controller 7 upward at equal to or greater than the predetermined angle from the horizontal state before starting the swing, it is determined that the controller 7 is being swung down.
- the up-down direction of the controller 7 before the swing is determined based on the Z-axis direction acceleration data obtained during several frames immediately therebefore.
- the Z-axis direction acceleration data does not reflect the influence of the acceleration of gravity.
- FIG. 16B when the front surface of the controller 7 is inclined upward with respect to the horizontal state before the player starts swinging the controller 7, the acceleration of gravity acts in the negative Y-axis direction and a negative Z-axis direction.
- the Z-axis direction acceleration data shows an acceleration in the negative Z-axis direction by the influence of the acceleration of gravity.
- the acceleration of gravity acts in the negative Y-axis direction and the positive Z-axis direction. Therefore, the Z-axis direction acceleration data shows an acceleration in the positive Z-axis direction by the influence of the acceleration of gravity. Accordingly, the up-down direction of the controller 7 before the player starts swinging the controller 7 can be determined by analyzing the Z-axis direction acceleration data obtained before the player starts swinging the controller 7.
- the obtained Z-axis direction acceleration data is stored in the main memory 33.
- an average value Zave of the Z-axis direction acceleration data obtained in 30 immediately previous frames is converted into an up-down angle UD of the controller 7.
- the subsequent game processing is executed.
- the average value Zave is converted into an up-down angle UD linearly changing in the range of 60° to -60°.
- the up-down angle UD into which the average value Zave is converted is eccentric toward the positive Z-axis direction. The reason is as follows. Since the Z-axis direction acceleration data is always eccentric to the positive Z-axis direction at the start of the swing.
- the up-down angle UD is made eccentric to the positive Z-axis direction.
- FIG. 18 shows main data stored in the main memory 33 of the game apparatus 3.
- the main memory 33 includes stored therein acceleration data Da, up-down angle data Db, counterclockwise accumulated area data Dc, clockwise accumulated area data Dd, first ball trajectory data De, second ball trajectory data Df, first dummy ball data Dg, second dummy ball data Dh, ball character data Di, start point-end point angle data Dj, spin parameter data Dk, maximum inter-plot interval data Dl, count data Dm, image data Dn and the like .
- the main memory 33 also includes stored therein data on the player character PC, the opponent character EC and the like appearing in the game (position data, etc.), data on the virtual game space (topography data, etc.) and other data necessary for the game processing.
- the acceleration data Da is included in a series of operation information which is transmitted from the controller 7 as transmission data.
- a predetermined number of frames (for example, 30 frames for one frame (1/60 sec.) as a game processing interval) of the obtained acceleration data Da is stored.
- the acceleration data Da includes X-axis direction acceleration data Da1, Y-axis direction acceleration data Da2, and Z-axis direction acceleration data Da3 detected by the acceleration sensor 701 as components of the X-, Y- and Z-axis directions.
- the receiving unit 6 included in the game apparatus 3 receives the acceleration data Da included in the operation information transmitted from the controller 7 at a predetermined time interval (for example, every 5 ms) and accumulates the acceleration data Da in a buffer (not shown) in the receiving unit 6. Then, the acceleration data Da is read a unit of one frame as the game processing interval, and stored in the main memory 33.
- the up-down angle data Db represents an up-down angle UD (see FIG. 16A through FIG. 16C and FIG. 17 ) calculated based on the Z-axis direction acceleration data Da3 obtained from the controller 7 before the controller 7 is swung.
- the counterclockwise accumulated area data Dc represents the accumulated areas of the triangles (see FIG. 12 ) formed using the acceleration data showing a counterclockwise shift with respect to the origin of the X-Y coordinate system.
- the clockwise accumulated area data Dd represents the accumulated areas of the triangles (see FIG. 12 ) formed using the acceleration data showing a clockwise shift with respect to the origin of the X-Y coordinate system.
- the first ball trajectory data De represents a trajectory of the ball character BC moving in the virtual game space based on data obtained on an initial stage of motion recognition processing described later (such a trajectory will be referred to as a "first ball trajectory TR1") .
- the second ball trajectory data Df represents a trajectory of the ball character BC moving in the virtual game space based on data obtained throughout the motion recognition processing described later (such a trajectory will be referred to as a "second ball trajectory TR2”) .
- the first dummy ball data Dg includes first dummy ball velocity data Dg1 and first dummy ball position data Dg2.
- the first dummy ball velocity data Dg1 is velocity vector data which represents the velocity of a first dummy ball moving along the trajectory represented by the first ball trajectory data De in the virtual game space.
- the first dummy ball position data Dg2 is coordinate position data which represents the position of the first dummy ball moving along the trajectory represented by the first ball trajectory data De in the virtual game space.
- the second dummy ball data Dh includes first dummy ball velocity data Dh1 and second dummy ball position data Dh2.
- the second dummy ball velocity data Dh1 is velocity vector data which represents the velocity of a second dummy ball moving along the trajectory represented by the second ball trajectory data Df in the virtual game space.
- the second dummy ball position data Dh2 is coordinate position data which represents the position of the second dummy ball moving along the trajectory represented by the second ball trajectory data Df in the virtual game space.
- the ball character data Di includes ball character velocity data Di1 and ball character position data Di2.
- the ball character velocity data Di1 is velocity vector data which represents a current velocity of the ball character BC in the virtual game space.
- the ball character position data Di2 is coordinate position data which represents a current position of the ball character BC in the virtual game space.
- the start point-end point angle data Dj represents an angle ⁇ from the start point Ps to the end point Pe in the X-Y coordinate system (see FIG. 14A through FIG. 14C ).
- the spin parameter data Dk represents a spin parameter S (see FIG. 15 ) obtained by converting the angle ⁇ .
- the maximum inter-plot interval data Dl represents a maximum data interval among the intervals between points plotted in a time series manner in the X-Y coordinate system based on the X- and Y-axis direction acceleration data obtained throughout the motion recognition processing.
- the count data Dm represents a counted value used for a flowchart described later.
- the image data Dn includes player character image data Dn1, ball image data Dn2 and the like, and used for generating a game image by locating the player character PC and the ball character BC in the virtual game space.
- FIG. 19 is a flowchart illustrating a flow of the game processing executed by the game apparatus 3.
- FIG. 20 shows a sub-routine of a detailed operation of initial motion recognition processing instep 51 shown in FIG. 19 .
- FIG. 21 shows a sub-routine of a detailed operation of animation start processing in step 52 shown in FIG. 19 .
- FIG. 22 shows a sub-routine of a detailed operation of first behavior processing in step 53 shown in FIG. 19 .
- FIG. 23 shows a sub-routine of a detailed operation of second behavior processing in step 54 shown in FIG. 19 .
- FIG. 24 shows timing of motion recognition processing, animation processing, and ball behavior processing.
- FIG. 20 shows a sub-routine of a detailed operation of initial motion recognition processing instep 51 shown in FIG. 19 .
- FIG. 21 shows a sub-routine of a detailed operation of animation start processing in step 52 shown in FIG. 19 .
- FIG. 22 shows a sub-routine of a detailed operation of first behavior processing in
- FIG. 25 shows exemplary behaviors determined in accordance with the spin parameter S.
- FIG. 26 shows an example of the first ball trajectory TR1 and the second ball trajectory TR2.
- FIG. 19 through FIG. 23 each of steps performed by the CPU 30 will be represented with "S". @@
- the CPU 30 of the game apparatus 3 executes a start program stored in a boot ROM (not shown) to initialize the elements including the main memory 33.
- the game program stored on the optical disc 4 is read to the main memory 33, and thus the CPU 30 starts executing the game program.
- the flowcharts shown in FIG. 19 through FIG. 23 illustrate the game processing executed after the above-described processing is completed.
- the CPU 30 sequentially executes the initial motion recognition processing (step 51), the animation start processing (step 52), the first behavior processing (step 53), and the second behavior processing (step 54). The details of these processing will be described later.
- the CPU 30 determines whether or not to terminate the game (step 55). The game can be terminated, for example, when a condition for terminating the game is fulfilled (e.g., the tennis game played by the player character PC is over) or when the player performs an operation for terminating the game.
- the CPU 30 returns to step 51 and repeats the processing.
- the CPU 30 terminates the processing illustrated in the flowchart in FIG. 19 .
- the CPU 30 obtains acceleration data included in the operation information received from the controller 7 (step 61), and advances the processing to the next step.
- the CPU 30 stores the obtained acceleration data in the main memory 33 as acceleration data Da.
- the acceleration data Da obtained in step 61 includes X-, Y-, and Z-axis direction acceleration data Da1, Da2 and Da3 detected by the acceleration sensor 701 as components of three axial directions (X-, Y- and Z-axis directions).
- the communication section 75 transmits the operation information to the game apparatus 3 at a predetermined time interval (for example, every 5 ms), and thus at least the acceleration data is accumulated in the buffer (not shown) in the receiving unit 6.
- the CPU 30 obtains the acceleration data by a unit of one frame, which is a game processing unit, and stores the acceleration data in the main memory 33.
- the CPU 30 determines whether or not the controller 7 is being swung by the player using the obtained acceleration data (step 62). Specifically, when the Z-axis direction acceleration data Da3 obtained in step 61 represents a positive Z-axis direction value exceeding a threshold value, the CPU 30 determines that the player is swinging the controller 7. In this case, the CPU 30 advances the processing to the next step. When the player is not swinging the controller 7, the CPU 30 returns to step 61 and repeats the above-described processing.
- step 63 the CPU 30 determines the up-down direction of the controller 7 before the swing, and advances the processing to the next step. Specifically, the CPU 30 calculates an average value Zave of the Z-axis direction acceleration data Da3 in several immediately previous frames (for example, 30 frames) stored in the main memory 33. Then, the CPU 30 converts the average Zave into the up-down angle UD (see FIG. 17 ) and stores data representing the up-down angle UD as the up-down angle data Db.
- the CPU 30 obtains the acceleration data included in the operation information received from the controller 7 by substantially the same processing as step 61 (step 64), and determines whether or not the player has finished the motion of swinging the controller 7 based on whether or not the obtained Z-axis direction acceleration data Da3 represents a value equal to or less than the threshold value (step 65).
- the CPU 30 advances the processing to step 66.
- the CPU 30 returns to step 51 and repeats the above-described processing.
- step 66 the CPU 30 accumulates the areas of the triangles defined by the accelerated data Da obtained in step 64 and the origin of the X-Y coordinate system, and advances the processing to the next step. Specifically, as described above with reference to FIG. 12 , when the acceleration data Da obtained in step 64 shows a counterclockwise shift with respect to the origin, the CPU 30 accumulates the area of the resultant triangle on the counterclockwise accumulated area data Dc as necessary and stores the obtained data. When the acceleration data Da obtained in step 64 shows a clockwise shift with respect to the origin, the CPU 30 accumulates the area of the resultant triangle on the clockwise accumulated area data Dd as necessary and stores the obtained data .
- the CPU determines an interval between points plotted in the X-Y coordinate system (data interval) based on the acceleration data Da obtained'in step 64 (step 67), and advances the processing to the next step. Specifically, when the obtained data interval is larger than the data interval included in the current maximum inter-plot interval data Dl, the CPU 30 updates the maximum inter-plot interval data Dl to the obtained data interval. When the obtained data interval is equal to or smaller than the data interval included in the current maximum inter-plot interval data Dl, the CPU 30 advances the processing to the next step without updating.
- the CPU 30 determines whether or not either one of the accumulated area represented by the counterclockwise accumulated area data Dc and the accumulated area represented by the clockwise accumulated area data Dd has exceeded a threshold value (step 68). When either one of the areas has exceeded the threshold value, the CPU 30 terminates the processing of this sub-routine and advances the processing to step 52 in FIG. 19 . When neither area has exceeded the threshold value, the CPU 30 returns to step 64 and repeats the above-described processing.
- step 68 the CPU 30 determines the swinging direction of the controller 7 (step 71), and advances the processing to the next step. For example, when it is determined in step 68 that the accumulated area represented by the counterclockwise accumulated area data Dc has exceeded the threshold value, this means that the acceleration data shows a counterclockwise shift with respect to the origin of the X-Y coordinate system. Thus, it is determined that the player is performing a "rightward swing” (see FIG. 7 ). When it is determined in step 68 that the accumulated area represented by the clockwise accumulated area data Dd has exceeded the threshold value, this means that the acceleration data shows a clockwise shift with respect to the origin of the X-Y coordinate system. Thus, it is determined that the player is performing a "leftward swing” (see FIG. 7 ).
- step 71 is executed when either one of the counterclockwise accumulated area data Dc and the clockwise accumulated area data Dd has exceeded the threshold value.
- the processing in step 71 is not executed when the player finishes the motion of swinging the controller 7.
- processing of recognizing the motion from the start until the end of the swing of the controller 7 by the player is executed from time T1 to time T4.
- Processing of displaying an animation of the player character PC swinging the tennis racket starts at time T2, i.e., in the middle of the motion recognition processing.
- the swinging direction of the controller 7 is determined at a point after the player starts swinging the controller 7 but before the player finishes swinging the controller 7, and is reflected on the game image.
- the initial motion recognition processing in step 51 is executed from time T1 to time T2 as a part of the motion recognition processing.
- the relationship between (i) the swinging direction of the controller 7 and (ii) which of the counterclockwise accumulated area and the clockwise accumulated area has exceeded the threshold value varies in accordance with the setting of the coordinate axes for the controller 7, the characteristics of the acceleration sensor, the setting of the X-Y coordinate system and the like. Such a relationship may be adjusted in accordance with such settings as necessary.
- the swinging direction of the controller 7 can be accurately determined by analyzing the relationship between (i) the swinging direction of the controller 7 and (ii) which of the counterclockwise accumulated area and the clockwise accumulated area has exceeded the threshold value, with respect to the direction of acceleration of gravity based on the obtained acceleration data.
- the CPU 30 determines the swing with which the player character PC will make in order to hit back the ball character BC (step 72), and determines whether or not the player character PC will miss the shot (step 73).
- the player character PC has not started the motion of swinging the racket.
- the CPU 30 can estimate and determine whether or not the player character PC will be able to hit back the ball character BC flying toward the player character PC with a current swing, based on data on a current position and an estimated future position of the player character PC, a current position and an estimated future trajectory of the ball character BC, the swinging direction of the tennis racket by the player character PC and the like.
- the CPU 30 starts processing of displaying an animation of the player character PC missing the shot on the monitor (step 76), and advances the processing to step 55 in FIG. 19 .
- the CPU 30 advances the processing to step 74.
- step 74 the CPU 30 counts a time period t from the current time until the player character PC hits back the ball character BC, and starts counting to update the count data Dn.
- the CPU 30 starts processing of displaying an animation of the player character PC hitting back the ball character BC on the monitor (step 75), and advances the processing to the next step.
- the animation of the player character PC hitting back the ball character BC is provided with a swing in accordance with the up-down angle UD. Namely, an animation of the player character PC swinging up or swinging down the racket in the up-down direction represented by the up-down angle UD is displayed.
- the CPU 30 obtains the acceleration data included in the operation information received from the controller 7 (step 77), and determines whether or not the player has finished the motion of swinging the controller 7 based on the acceleration data (step 78). When the player is still swinging the controller 7, the CPU 30 advances the processing to step 79. When the player has finished the motion of swinging the controller 7, the CPU 30 advances the processing to step 101 (see FIG. 23 ).
- the processing of obtaining the acceleration data in step 77 is substantially the same as that in step 61 and will not be described in detail.
- the method for determining whether or not the player has finished the motion of swinging the controller 7 in step 78 is substantially the same as that in step 62 except that the acceleration data obtained in step 77 is used, and will not be described in detail.
- step 79 the CPU 30 determines an interval between points plotted in the X-Y coordinate system (data interval) based on the acceleration data obtained in step 77.
- the processing of determining the data interval in step 79 is substantially the same as that in step 67 except that the acceleration data obtained in step 77 is used, and will not be described in detail.
- the CPU 30 determines whether or not the current counted value of the count data Dn has reached the time t (step 80) . When the current counted value of the count data Dn has not reached the time t, the CPU 30 updates the current counted value in the count data Dn (step 81). Then, the CPU 30 returns to step 77 and repeats the above-described processing. When the current counted value of the count data Dn has reached the time t, the CPU 30 terminates the processing in this sub-routine and advances the processing to step 53 in FIG. 19 .
- the CPU 30 calculates the initial velocity, direction and position at which the ball character BC is hit back, displays the ball character BC at the calculated position (step 91), and advances the processing to the next step. Specifically, the CPU 30 represents the velocity and direction of the ball character BC by a velocity vector (vx, vy, vz) and stores data representing the velocity vector in the ball character velocity data Di1. The magnitude of the velocity vector (vx, vy, vz) is set to a fixed value.
- the direction of the velocity vector (vx, vy, vz) is set based on the swinging direction of the controller 7 by the player, the relationship between the timing when the player starts swinging the controller 7 and the timing when the ball character BC arrives at the player, the up-down angle UD and the like.
- the left-right direction in which the ball character BC is hit back is determined by the left-right direction in which the player character PC swings the tennis racket (i.e., the swinging direction of the controller 7) and the timing at which the player character PC hits the ball character BC (i.e., the time at which the player starts swinging the controller 7).
- the up-down direction in which the ball character BC is hit back is determined by the up-down direction in which the player character PC swings the tennis racket (i.e., the up-down angle UD).
- the up-down angle UD has a positive value
- the player swings down the controller 7. Therefore, the velocity vector of the ball character BC is set to a low value in correspondence to the value of the up-down angle UD.
- the up-down angle UD has a negative value
- the CPU 30 indicates the position at which the ball character BC is hit by the tennis racket of the player character PC with a coordinate position (x, y, z) in the virtual game space, and stores the data representing the coordinate position in the ball character position data Di2.
- the CPU 30 obtains the acceleration data included in the operation information received from the controller 7 (step 92).
- the CPU 30 determines an interval between points plotted in the X-Y coordinate system (data interval) based on the acceleration data Da obtained in step 92 (step 93), and advances the processing to the next step.
- the processing of obtaining the acceleration data in step 92 is substantially the same as that in step 61 and will not be described in detail.
- the processing of determining the data interval in step 93 is substantially the same as that in step 67 except that the acceleration data obtained in step 92 is used, and will not be described in detail.
- the CPU 30 calculates the first ball trajectory TR1 based on the velocity vector (vx, vy, vz) and the coordinate position (x, y, z) stored in the current ball character velocity data Di1 and ball character position data Di2. Then, the CPU 30 displays the ball character BC while moving the ball character BC along the first ball trajectory TR1 (step 94). More specifically, the CPU 30 defines the physical laws of the real world (for example, gravity, air resistance, influence of wind) in the virtual game space virtually or strictly.
- the CPU 30 stores the newly calculated velocity vector (vx, vy, vz) and coordinate position (x, y, z) in the ball character velocity data Di1 and the ball character position data Di2, and displays the ball character BC at the coordinate position (x, y, z) on the monitor 2. Then, the CPU 30 advances the processing to the next step.
- the CPU 30 determines whether or not the player has finished the motion of swinging the controller 7 based on the acceleration data obtained in step 92 (step 95). When the player is still swinging the controller 7, the CPU 30 returns to step 92 and repeats the above-described processing. When the player has finished the motion of swinging the controller 7, the CPU 30 advances the processing to step 54 in FIG. 19 .
- the method for determining whether or not the player has finished the motion of swinging the controller 7 in step 95 is substantially the same as that in step 62 except that the acceleration data obtained in step 92 is used, and will not be described in detail.
- the first behavior processing is executed from the time when the ball character BC is hit until the time when the player finishes swinging the controller 7.
- processing of representing a behavior of the ball character BC being hit back starts at time T3, i.e., in the middle of the motion recognition processing. Namely, the manner in which the ball character BC is hit back is reflected on the game image based on the operation information (acceleration data) obtained at a point after the player starts swinging the controller 7 but before the player finishes swinging the controller 7.
- the animation start processing in step 52 is executed from time T2 to time T3 as a part of the animation processing.
- the first behavior processing in step 53 is executed from time T3 to time T4 as a part of the ball behavior processing.
- the second behavior processing described below represents a behavior of the ball character BC being hit after the player finishes swinging the controller 7, and starts at time T4 as a part of the behavior processing.
- step 95 the CPU 30 calculates the angle ⁇ from the start point Ps to the end point Pe (see FIG. 14A through FIG. 14C ) and stores the angle ⁇ in the start point-end point angle data Dj (step 101).
- step 101 the CPU 30 converts the angle ⁇ into a spin parameter S (see FIG. 15 ), and stores the spin parameter S in the spin parameter data Dk (step 102).
- the CPU 30 calculates the velocity vector (v2x, v2y, v2z) of the second dummy ball, stores the velocity vector in the second dummy ball velocity data Dh1 (step 103), and advances the processing to the next step.
- the velocity vector (v2x, v2y, v2z) of the second dummy ball As the velocity vector (v2x, v2y, v2z) of the second dummy ball, the velocity vector of the ball character BC back at the time when the player character PC hit the ball character BC with the tennis racket (time T3 shown in FIG. 24 ) is re-calculated in consideration of the influence of the data interval (i.e., the swinging velocity of the controller 7). Accordingly, the magnitude of the velocity vector (v2x, v2y, v2z) is set in accordance with the data interval. Specifically, when the data interval is relatively large, the velocity vector is set to be relatively large, whereas when the data interval is relatively small, the velocity vector is set to be relatively small. The direction of the velocity vector (v2x, v2y, v2z) is set in substantially the same manner as step 91.
- step 75 the CPU 30 performs the processing of adjusting the animation of the player character PC hitting back the ball character BC, which is started in step 75, displays the animation on the monitor 2 (step 104), and advances the processing to the next step.
- step 75 time T2 shown in FIG. 24
- step 104 time T4 shown in FIG. 24
- the twisting angle given to the controller 7 by the player and the swinging velocity of the controller 7 are also known. Therefore, an animation also based on such additional information can be represented.
- step 104 a topspin or a backspin found from the twisting angle and the swinging velocity found from the data interval are reflected on the animation started in step 75 and displayed on the monitor 2.
- the CPU 30 refers to the ball character position data Di2 to determine whether or not the ball character BC has reached a predetermined space in the virtual game space (step 105).
- the "predetermined space” refers to, for example, a space above the opponent's court or a space outside the tennis court set in the virtual game space.
- the CPU 30 advances the processing to step 106.
- the CPU 30 advances the processing to step 109.
- step 106 the CPU 30 calculates the first ball trajectory TR1 and the second ball trajectory TR2, and performs processing of interpolating the trajectory of the ball character BC from the first ball trajectory TR1 to the second ball trajectory TR2.
- the CPU 30 moves the ball character BC along the post-interpolation trajectory to update the ball character velocity data Di1 and the ball character position data Di2, and displays the ball character BC on the monitor 2 (step 107). Then, the CPU 30 advances the processing to step 108.
- the first ball trajectory TR1 of the ball character BC calculated in step 94 is obtained only based on the information recognized in the initial motion recognition processing (the left-right and up-down directions and the timing at which the controller 7 is swung) .
- the second ball trajectory TR2 of the ball character BC is calculated further based on information obtained throughout the motion recognition processing (the twisting angle and the swinging velocity of the controller 7).
- the second ball trajectory TR2 is calculated as follows, like the first ball trajectory TR1.
- the CPU 30 defines the physical laws of the real world in the virtual game space.
- the CPU 30 calculates the second ball trajectory TR2 based on the velocity vector (v2x, v2y, v2z), the coordinate position (x2, y2, z2), the spin parameter S, and the physical laws, and stores the second ball trajectory TR2 in the second ball trajectory data Df.
- the CPU 30 calculates the second ball trajectory TR2 by adding the influence of the spin parameter S to a trajectory calculated in substantially the same manner as the first ball trajectory TR1 using the coordinate position (x2, y2, z2) at which the ball character BC is hit by the tennis racket of the player character PC and the velocity vector (v2x, v2y, v2z) obtained in step 103.
- the spin parameter S is S > 0.0, which represents a topspin.
- the spin parameter S is S ⁇ 0.0, which represents a backspin.
- the CPU 30 changes the trajectory so as to rapidly go down in the up-down direction.
- the CPU 30 changes the trajectory such that the flying distance of the ball character BC increases in the up-down direction and the ball character BC curves in the left-right direction in accordance with the swinging direction (such that the ball character BC curves rightward in the case of a "leftward swing” and curves leftward in the case of a "rightward swing”).
- the CPU 30 does not change the trajectory as an influence of the spin.
- the second ball trajectory TR2 is calculated at time T4 when the player finishes swinging the controller 7.
- the ball character BC displayed on the monitor 2 is already moving along the first ball trajectory TR1 (thick line in FIG. 26 between time T3 and time T4).
- the trajectory reflecting all the data obtained by the player swinging the controller 7 is the second ball trajectory TR2. Therefore, it is desirable to modify the trajectory of the ball character BC from the first ball trajectory TR1 to the second ball trajectory TR2 such that the ball character BC moves along the second ball trajectory TR2.
- the CPU 30 sets a dummy ball flown along the first ball trajectory TR1 as a first dummy ball B1.
- a first dummy ball velocity (v1x, v1y, v1z) and a first dummy ball position (x1, y1, z1) are provided as the parameters of the first dummy ball B1.
- the CPU 30 sets a dummy ball flown along the second ball trajectory TR2 as a second dummy ball B2.
- a second dummy ball velocity (v2x, v2y, v2z) and a second dummy ball position (x2, y2, z2) are provided as the parameters of the second dummy ball B2.
- An interpolation time period Ti is set as a time period required for the interpolation (time T5 to time T6 shown in FIG. 26 ).
- the CPU 30 stores the ball character velocity (vx, vy, vz) and the ball character position (x, y, z), stored in the ball character data Di, in the first dummy ball data Dg as the first dummy ball velocity (v1x, v1y, v1z) and the first dummy ball position (x1, y1, z1). Based on the second dummy ball data Dh, the CPU 30 moves the second dummy ball B2 along the second dummy ball trajectory TR2 to a position corresponding to the time T4 and updates the second dummy ball data Dh.
- the CPU 30 updates the parameters of the first dummy ball B1 and the second dummy ball B2 by physical calculations, and moves the first dummy ball B1 and the second dummy ball B2 frame by frame along the first dummy ball trajectory TR1 and the second dummy ball trajectory TR2 respectively.
- the CPU 30 uses the following equations to calculate the position and velocity at which the dummy balls are to be interpolated and thus update the ball character velocity data Di1 and the ball character position data Di2 (thick line between time T4 and time T5 shown in FIG. 26 ).
- the ball character velocity data Di1 and the ball character position data Di2 between time T4 and time T5 are obtained by weighting the velocity and position of the first dummy ball B1 and the second dummy ball B2, obtained at a predetermined time interval, at a predetermined ratio and averaging the resultant velocity and position.
- the CPU 30 abandons the first dummy ball B1 and the second dummy ball B2.
- the CPU 30 calculates the second ball trajectory TR2 based on the velocity vector (vx, vy, vz) and the coordinate position (x, y, z) stored in the current ball character velocity data Di1 and ball character position data Di2.
- the CUP 30 moves the ball character BC along the second ball trajectory TR2 to update the ball character velocity data Di1 and the ball character position data Di2, and displays the ball character BC on the monitor 2.
- step 108 the CPU 30 determines whether or not the ball character BC either has been hit back toward the opponent character EC or has become out (directly gone out of the court).
- the CPU 30 returns to step 106 and repeats the above-described processing.
- the CPU 30 terminates the processing of this sub-routine and advances the processing to step 55 in FIG. 19 .
- the CPU 30 displays the ball character BC while moving the ball character BC along the first ball trajectory TR1 (step 109), and advances the processing to the next step. More specifically, the CPU 30 calculates the first ball trajectory TR1 based on the velocity vector (vx, vy, vz) and the coordinate position (x, y, z) stored in the current ball character velocity data Di1 and ball character position data Di2. The CPU 30 displays the ball character BC while moving the ball character BC along the first ball trajectory TR1.
- the processing in step 109 is substantially the same as step 94, and will not be described in detail.
- the CPU 30 determines whether or not the ball character BC either has been hit back toward the opponent character EC or has become out (directly gone out of the court) (step 110). When the ball character BC has not been hit back toward the opponent character EC or has not become out, the CPU 30 returns to step 109 and repeats the above-described processing. When the ball character BC either has been hit back toward the opponent character EC or has become out, the CPU 30 terminates the processing of this sub-routine and advances the processing to step 55 in FIG. 19 .
- the game apparatus 3 in this embodiment can accurately determine motions of the controller 7 including the swinging direction of the controller 7 (moving direction of the controller 7) and the twisting direction of the controller 7 (rotation direction of the controller 7 around the Z axis as the rotation axis) as long as the player holds the controller 7 with one hand such that the front surface of the controller 7 is directed forward (i.e., away from the player).
- the player may swing the controller 7 with the top surface in any direction. Therefore, the degree of freedom in terms of the direction of the controller 7 held by the player (posture of the controller 7) is significantly increased.
- a rotation motion given to the controller 7 can be determined, a composite motion including a plurality of motions can be determined, for example, a motion of the controller 7 being swung while being rotated by the player. Since such a rotation motion given to the controller 7 can be used as operation information, the variety of types of operations which can be input is widened.
- the first ball trajectory TR1 and the second ball trajectory TR2 are calculated frame by frame (i.e., calculated with the processing loop of each of steps 94, 106 and 109).
- the trajectories may be calculated in other manners.
- the first ball trajectory TR1 and the second ball trajectory TR2 once calculated may be stored in a memory and the stored data may be used as necessary.
- the first ball trajectory TR1 and/or the second ball trajectory TR2 may be calculated before the processing loop (for example, after step 91, after step 103). In this case, it is not necessary to calculate the trajectories by frame.
- the acceleration data in three axial directions output from the controller 7 is used to play a tennis game.
- the acceleration data may be used for other types of game processing.
- the present invention is applicable to a game in which the player character swings some type of object (ping pong, badminton, baseball, cutting something withasword, etc.).
- a motion determining apparatus for determining a motion of the controller 7 is included in the game system 1.
- the present invention is applicable to an information processing apparatus such as a general personal computer operated by an input device including an acceleration sensor. Based on a determination result of a motion determining apparatus, various processing can be executed.
- data displayed by the information processing apparatus may be moved, the page of information displayed by the information processing apparatus may be changed, or graphics are drawn.
- the motion determining apparatus may create motion data representing a motion of the input device in accordance with the determined motion of the input device and output the motion data to another apparatus.
- the acceleration sensor 701 of the controller 7 is a triaxial acceleration sensor for detecting and outputting accelerations as components of three axial directions perpendicular to one another.
- the present invention is realized by an acceleration sensor for detecting an acceleration in at least two axial directions perpendicular to each other.
- the above-described left-right swinging direction or twisting direction can be determined using an acceleration sensor for detecting and out putting acceleration in a three-dimensional space in which the controller 7 is located, as components of two axial directions, i.e., X-axis and Y-axis directions (see FIG. 3 and FIG. 4 ).
- the start and the end of the swing cannot be determined using the Z-axis direction acceleration, unlike the above embodiment.
- the start and the end of the swing may be determined using a centrifugal component which is generated by a left-right swing obtained by the X-axis and Y-axis direction accelerations, or using a sensor different from the acceleration sensor 701.
- a game rule that one of the operations buttons 72 should be pressed when the player swings the controller 7 may be provided, so that the start and the end of the swing can be determined in accordance with the time period in which such a button is being pressed.
- the controller 7 and the game apparatus 3 are connected to each other by wireless communication.
- the controller 7 and the game apparatus 3 may be electrically connected to each other via a cable.
- the cable connected to the controller 7 is connected to a connection terminal of the game apparatus 3.
- the receiving unit 6 connected to the connection terminal of the game apparatus 3 is used as receiving means for receiving transmission data which is wirelessly transmitted from the controller 7.
- the receiving means may be a receiving module built in the game apparatus 3. In this case, the transmission data received by the receiving module is output to the CPU 30 via a predetermined bus.
- the shape of the controller 7, and the shape, number, position or the like of the operation section 72 provided in the controller 7 are merely exemplary, and may be altered without departing from the scope of the present invention.
- the position of the imaging information calculation section 74 in the controller 7 does not need to be on the front surface of the housing 71, and may be on another surface as long as light can enter from the outside of the housing 71.
- a motion determining apparatus and a storage medium having a motion determining program stored thereon are capable of determining a motion of an input device while realizing a high degree of freedom in terms of the posture of the input device, and are useful as an apparatus or a program for determining a motion of an input device, such as a game apparatus or a game program operable in accordance with the motion of a game controller.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Position Input By Displaying (AREA)
- User Interface Of Digital Computer (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
- Image Analysis (AREA)
- Closed-Circuit Television Systems (AREA)
Claims (14)
- Un appareil de détermination de mouvement (3) pour la détermination d'un mouvement d'un dispositif d'entrée (7) comprenant un capteur d'accélération (701) pour la détection d'une accélération dans chacune de deux directions axiales, l'appareil de détermination de mouvement comprenant :un moyen d'obtention de données (30, S61, S64) pour l'obtention d'une série temporelle de données d'accélération consécutives (Da) qui est délivrée en sortie du capteur d'accélération ;un moyen de détermination de sens de mouvement (30, S51, S66, S71) pour la détermination d'un sens de mouvement du dispositif d'entrée par rapport à une direction d'une accélération de la gravité agissant sur le dispositif d'entrée, le moyen de détermination de sens de mouvement comprenant un moyen de détermination de sens de circulation pour la détermination d'un sens de circulation dans lequel circule la série temporelle des données d'accélération consécutives autour de l'origine d'un système de coordonnées en deux dimensions comme axe de circulation, les axes de coordonnées étant définis sur la base de composantes des deux directions axiales des données d'accélération et l'origine représentant une valeur des données d'accélération dans l'état où aucune accélération, y compris l'accélération de la gravité, n'agit sur le capteur d'accélération, le sens de circulation étant soit dans le sens des aiguilles d'une montre soit dans le sens contraire des aiguilles d'une montre, et le moyen de détermination de sens de mouvement déterminant un sens de mouvement du dispositif d'entrée sur la base du sens de circulation déterminé par le moyen de détermination de sens de circulation ; etun moyen de sortie (30) pour délivrer en sortie des données de mouvement (Dc, Dd, Dj, Dl) incluant au moins le sens de mouvement déterminé par le moyen de détermination de sens de mouvement,dans lequel le capteur d'accélération détecte une accélération incluant au moins une composante centrifuge générée lorsque le dispositif d'entrée est basculé par un utilisateur pour délivrer en sortie les données d'accélération ; etle moyen de détermination de sens de mouvement détermine la sens du mouvement du dispositif d'entrée à l'aide des données d'accélération obtenues dans une période temporelle pendant laquelle une accélération de la composante centrifuge dépasse une valeur de seuil, parmi les données d'accélération obtenues par le moyen d'obtention de données, le sens de mouvement étant soit un basculement vers la gauche soit un basculement vers la droite.
- Un appareil de détermination de mouvement selon la revendication 1, dans lequel le moyen de détermination de sens de circulation détermine le sens de circulation à l'aide d'un calcul par lequel on attribue, aux données d'accélération présentant une distance relativement plus grande par rapport à l'origine du système de coordonnées en deux dimensions, un degré supérieur de contribution à la détermination du sens de circulation, et on attribue, aux données d'accélération circulant dans un sens de circulation de la manière en série temporelle autour de l'origine comme axe de circulation, un degré supérieur de contribution à la détermination du sens de circulation.
- Un appareil de détermination de mouvement selon la revendication 2, dans lequel le moyen de détermination de sens de circulation :calcule une première surface cumulée par cumul séquentiel de surfaces de triangles d'une manière en série temporelle, chacun des triangles étant défini par, en tant que sommets, l'origine et les points de coordonnées représentés par deux éléments de données d'accélération qui sont consécutives en une manière en série temporelle dans le système de coordonnées en deux dimensions et circulent dans l'un des deux sens de circulation ;calcule une seconde surface cumulée par cumul séquentiel des surfaces de triangles d'une manière en série temporelle, chacun des triangles étant défini par, en tant que sommets, l'origine et des points de coordonnées représentés par deux éléments de données d'accélération qui sont consécutives en une manière en série temporelle dans le système de coordonnées en deux dimensions et circulent dans l'autre sens de circulation qui est opposée audit un sens de circulation ; etlorsque l'une ou l'autre de la première surface cumulée et de la seconde surface cumulée dépasse une valeur de seuil, détermine que les données d'accélération circulent d'une manière en série temporelle dans le sens de circulation correspondant à la surface cumulée qui dépasse le seuil.
- Un appareil de détermination de mouvement selon la revendication 1, comprenant en outre un moyen de stockage (33) pour le stockage des données d'accélération obtenues séquentiellement par le moyen d'obtention de données,
dans lequel le moyen de détermination de sens de circulation détermine le sens de circulation dans lequel les données d'accélération obtenues dans l'intervalle d'une période prédéterminée, parmi les données d'accélération stockées dans le moyen de stockage, circulent d'une manière en série temporelle dans le système de coordonnées en deux dimensions. - Un appareil de détermination de mouvement selon la revendication 4, dans lequel :le capteur d'accélération détecte une accélération du dispositif d'entrée dans chacune de trois directions axiales perpendiculaires entre elles ;le moyen de détermination de sens de circulation paramètre en tant que période prédéterminée une période temporelle durant laquelle les données d'accélération dans une première direction axiale des trois directions axiales dépassent une valeur prédéterminée, ;le système de coordonnées à deux dimensions a ses axes de coordonnées qui sont définis sur la base de composantes d'une seconde direction axiale et d'une troisième direction axiale des trois directions axiales ; etle moyen de détermination de sens de circulation détermine le sens de circulation dans lequel les données d'accélération dans la seconde direction axiale et la troisième direction axiale, obtenues et stockées dans le moyen de stockage durant la période prédéterminée, circulent d'une manière en série temporelle.
- Un appareil de détermination de mouvement selon la revendication 5, comprenant en outre un moyen de détermination d'inclinaison (30, S63) pour la détermination d'un état d'inclinaison (UD) du dispositif d'entrée immédiatement avant la période prédéterminée, sur la base des données d'accélération (Zave) dans la première direction stockées dans le moyen de stockage avant la période prédéterminée.
- Un appareil de détermination de mouvement selon la revendication 4, dans lequel le moyen de détermination de sens de mouvement comprend en outre :un moyen de calcul d'angle (30, S101) pour le calcul d'un angle défini par un vecteur allant de l'origine à un point de coordonnée dans le système de coordonnées à deux dimensions représenté par les premières données d'accélération obtenues pendant la période prédéterminée, parmi les données d'accélération stockées dans le moyen de stockage, et un vecteur allant de l'origine à un point de coordonnée dans le système de coordonnées à deux dimensions représenté par les dernières données d'accélération obtenues pendant la période prédéterminée, parmi les données d'accélération stockées dans le moyen de stockage ; etun moyen de détermination de sens de rotation (30, S102) pour, lorsque l'angle dépasse une première valeur de seuil, déterminer que le dispositif d'entrée a été tourné dans l'une de deux sens autour d'une direction perpendiculaire aux deux directions axiales comme axe de rotation et, lorsque l'angle est inférieur à une seconde valeur de seuil, déterminer que le dispositif d'entrée a été tourné dans l'autre des deux sens autour de l'axe de rotation ; etdans lequel le moyen de délivrance délivre en sortie les données de mouvement comprenant en outre le sens de rotation déterminée par le moyen de détermination de sens de rotation.
- Un support de stockage sur lequel est stocké un programme de détermination de mouvement exécutable par un calculateur (30) d'un appareil de détermination de mouvement (3) pour la détermination d'un mouvement d'un dispositif d'entrée (7) comprenant un capteur d'accélération (701) pour la détection d'une accélération dans chacune de deux directions axiales, le programme de détermination de mouvement faisant en sorte que le calculateur exécute :une étape d'obtention de données (S61, S64) pour l'obtention d'une série temporelle de données d'accélération consécutives (Da) qui est délivrée en sortie du capteur d'accélération ;une étape de détermination de sens de mouvement (S51, S66, S71) pour la détermination d'un sens de mouvement du dispositif d'entrée par rapport à une direction d'une accélération de la gravité agissant sur le dispositif d'entrée, l'étape de détermination de sens de mouvement comprenant une étape de détermination de sens de circulation pour la détermination d'un sens de circulation dans lequel circule la série temporelle des données d'accélération consécutives autour de l'origine d'un système de coordonnées en deux dimensions comme axe de circulation, les axes de coordonnées étant définis sur la base de composantes des deux directions axiales des données d'accélération et l'origine représentant une valeur des données d'accélération dans l'état où aucune accélération, y compris l'accélération de la gravité, n'agit sur le capteur d'accélération, le sens de circulation étant soit dans le sens des aiguilles d'une montre soit dans le sens contraire des aiguilles d'une montre, et l'étape de détermination de sens de mouvement déterminant un sens de mouvement du dispositif d'entrée sur la base du sens de circulation déterminé à l'étape de détermination de sens de circulation ; etune étape de sortie pour délivrer en sortie des données de mouvement incluant au moins le sens de mouvement déterminé à l'étape de détermination de sens de mouvement,dans lequel le capteur d'accélération détecte une accélération incluant au moins une composante centrifuge générée lorsque le dispositif d'entrée est basculé par un utilisateur pour délivrer en sortie les données d'accélération ; etl'étape de détermination de sens de mouvement détermine la sens du mouvement du dispositif d'entrée à l'aide des données d'accélération obtenues dans une période temporelle pendant laquelle une accélération de la composante centrifuge dépasse une valeur de seuil, parmi les données d'accélération obtenues à l'étape d'obtention de données, le sens de mouvement étant soit un basculement vers la gauche soit un basculement vers la droite.
- Un support de stockage sur lequel est stocké le programme de détermination de mouvement selon la revendication 8, dans lequel, à l'étape de détermination de sens de circulation, le sens de circulation est déterminé à l'aide d'un calcul par lequel on attribue, aux données d'accélération présentant une distance relativement plus grande par rapport à l'origine du système de coordonnées en deux dimensions, un degré supérieur de contribution à la détermination du sens de circulation, et on attribue, aux données d'accélération circulant dans un sens de circulation de la manière en série temporelle autour de l'origine comme axe de circulation, un degré supérieur de contribution à la détermination du sens de circulation.
- Un support de stockage sur lequel est stocké le programme de détermination de mouvement selon la revendication 9, dans lequel, à l'étape de détermination de sens de circulation,
on calcule une première surface cumulée par cumul séquentiel de surfaces de triangles d'une manière en série temporelle, chacun des triangles étant défini par, en tant que sommets, l'origine et les points de coordonnées représentés par deux éléments de données d'accélération qui sont consécutives en une manière en série temporelle dans le système de coordonnées en deux dimensions et circulent dans l'un des deux sens de circulation ;
on calcule une seconde surface cumulée par cumul séquentiel des surfaces de triangles d'une manière en série temporelle, chacun des triangles étant défini par, en tant que sommets, l'origine et des points de coordonnées représentés par deux éléments de données d'accélération qui sont consécutives en une manière en série temporelle dans le système de coordonnées en deux dimensions et circulent dans l'autre sens de circulation qui est opposée audit un sens de circulation ; et
lorsque l'une ou l'autre de la première surface cumulée et de la seconde surface cumulée dépasse une valeur de seuil, on détermine que les données d'accélération circulent d'une manière en série temporelle dans le sens de circulation correspondant à la surface cumulée qui dépasse le seuil. - Un support de stockage sur lequel est stocké le programme de détermination de mouvement selon la revendication 9, dans lequel :le programme de détermination de mouvement fait en outre en sorte que le calculateur exécute une étape de contrôle de stockage pour le stockage dans une mémoire des données d'accélération obtenues séquentiellement à l'étape d'obtention de données ; età l'étape de détermination de sens de circulation, on détermine le sens de circulation dans lequel les données d'accélération obtenues pendant une période prédéterminée parmi les données d'accélération stockées dans la mémoire circulent d'une manière en série temporelle dans le système de coordonnées en deux dimensions.
- Un support de stockage sur lequel est stocké le programme de détermination de mouvement selon la revendication 11, dans lequel :le capteur d'accélération détecte une accélération du dispositif d'entrée dans chacune de trois directions axiales perpendiculaires entre elles ;à l'étape de détermination de sens de circulation, une période temporelle durant laquelle les données d'accélération dans une première direction axiale des trois directions axiales dépassent une valeur prédéterminée est paramétrée en tant que période prédéterminée ;le système de coordonnées à deux dimensions a ses axes de coordonnées qui sont définis sur la base de composantes d'une seconde direction axiale et d'une troisième direction axiale des trois directions axiales ; età l'étape de détermination de sens de circulation, on détermine le sens de circulation dans lequel les données d'accélération dans la seconde direction axiale et la troisième direction axiale, obtenues et stockées dans la mémoire de stockage durant la période prédéterminée, circulent d'une manière en série temporelle.
- Un support de stockage sur lequel est stocké le programme de détermination de mouvement selon la revendication 12, dans lequel le programme de détermination de mouvement fait en outre en sorte que le calculateur exécute une étape de détermination d'inclinaison pour la détermination d'un état d'inclinaison du dispositif d'entrée immédiatement avant la période prédéterminée, sur la base des données d'accélération dans la première direction stockées dans la mémoire avant la période prédéterminée.
- Un support de stockage sur lequel est stocké le programme de détermination de mouvement selon la revendication 11, dans lequel l'étape de détermination de mouvement comprend en outre :une étape de calcul d'angle pour le calcul d'un angle défini par un vecteur allant de l'origine à un point de coordonnée dans le système de coordonnées à deux dimensions représenté par les premières données d'accélération obtenues pendant la période prédéterminée, parmi les données d'accélération stockées dans la mémoire, et un vecteur allant de l'origine à un point de coordonnée dans le système de coordonnées à deux dimensions représenté par les dernières données d'accélération obtenues pendant la période prédéterminée, parmi les données d'accélération stockées dans la mémoire ; etune étape de détermination de sens de rotation qui détermine, lorsque l'angle dépasse une première valeur de seuil, que le dispositif d'entrée a été tourné dans l'une de deux sens autour d'une direction perpendiculaire aux deux directions axiales comme axe de rotation et, lorsque l'angle est inférieur à une seconde valeur de seuil, détermine que le dispositif d'entrée a été tourné dans l'autre des deux sens autour de l'axe de rotation ; etdans lequel, à l'étape de délivrance, les données de mouvement comprenant en outre le sens de rotation déterminée à l'étape de détermination de sens de rotation sont délivrées en sortie.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11150991.5A EP2324896B1 (fr) | 2006-03-08 | 2006-04-25 | Appareil de determination de movement et support d'enregistrement pour la détermination de movement |
EP11150823.0A EP2324895B1 (fr) | 2006-03-08 | 2006-04-25 | Appareil de determination de movement et support d'enregistrement pour la détermination de movement |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006063110A JP4202366B2 (ja) | 2006-03-08 | 2006-03-08 | 動き判別装置および動き判別プログラム |
Related Child Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP11150991.5A Division-Into EP2324896B1 (fr) | 2006-03-08 | 2006-04-25 | Appareil de determination de movement et support d'enregistrement pour la détermination de movement |
EP11150991.5A Division EP2324896B1 (fr) | 2006-03-08 | 2006-04-25 | Appareil de determination de movement et support d'enregistrement pour la détermination de movement |
EP11150823.0A Division-Into EP2324895B1 (fr) | 2006-03-08 | 2006-04-25 | Appareil de determination de movement et support d'enregistrement pour la détermination de movement |
EP11150823.0A Division EP2324895B1 (fr) | 2006-03-08 | 2006-04-25 | Appareil de determination de movement et support d'enregistrement pour la détermination de movement |
Publications (3)
Publication Number | Publication Date |
---|---|
EP1832321A2 EP1832321A2 (fr) | 2007-09-12 |
EP1832321A3 EP1832321A3 (fr) | 2010-07-21 |
EP1832321B1 true EP1832321B1 (fr) | 2020-10-07 |
Family
ID=36938997
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP11150823.0A Active EP2324895B1 (fr) | 2006-03-08 | 2006-04-25 | Appareil de determination de movement et support d'enregistrement pour la détermination de movement |
EP06008516.4A Active EP1832321B1 (fr) | 2006-03-08 | 2006-04-25 | Appareil de determination de movement et support d'enregistrement pour la détermination de movement |
EP11150991.5A Active EP2324896B1 (fr) | 2006-03-08 | 2006-04-25 | Appareil de determination de movement et support d'enregistrement pour la détermination de movement |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP11150823.0A Active EP2324895B1 (fr) | 2006-03-08 | 2006-04-25 | Appareil de determination de movement et support d'enregistrement pour la détermination de movement |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP11150991.5A Active EP2324896B1 (fr) | 2006-03-08 | 2006-04-25 | Appareil de determination de movement et support d'enregistrement pour la détermination de movement |
Country Status (3)
Country | Link |
---|---|
US (1) | US7872638B2 (fr) |
EP (3) | EP2324895B1 (fr) |
JP (1) | JP4202366B2 (fr) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9229540B2 (en) | 2004-01-30 | 2016-01-05 | Electronic Scripting Products, Inc. | Deriving input from six degrees of freedom interfaces |
US7961909B2 (en) | 2006-03-08 | 2011-06-14 | Electronic Scripting Products, Inc. | Computer interface employing a manipulated object with absolute pose detection component and a display |
JP4388878B2 (ja) * | 2004-10-19 | 2009-12-24 | 任天堂株式会社 | 入力処理プログラムおよび入力処理装置 |
JP4151982B2 (ja) * | 2006-03-10 | 2008-09-17 | 任天堂株式会社 | 動き判別装置および動き判別プログラム |
JP4330593B2 (ja) * | 2006-03-13 | 2009-09-16 | 任天堂株式会社 | ゲーム装置およびゲームプログラム |
JP2007300974A (ja) * | 2006-05-08 | 2007-11-22 | Nintendo Co Ltd | プログラム、情報記憶媒体及び画像生成システム |
JP5089079B2 (ja) * | 2006-05-08 | 2012-12-05 | 任天堂株式会社 | プログラム、情報記憶媒体及び画像生成システム |
JP5030482B2 (ja) * | 2006-06-20 | 2012-09-19 | 任天堂株式会社 | ゲームプログラムおよびゲーム装置 |
JP2008136694A (ja) * | 2006-12-01 | 2008-06-19 | Namco Bandai Games Inc | プログラム、情報記憶媒体及びゲーム装置 |
JP5420824B2 (ja) * | 2007-03-30 | 2014-02-19 | 任天堂株式会社 | ゲーム装置およびゲームプログラム |
JP5286267B2 (ja) * | 2007-08-03 | 2013-09-11 | 株式会社キャメロット | ゲーム装置、ゲームプログラム及びオブジェクトの操作方法 |
US8221290B2 (en) * | 2007-08-17 | 2012-07-17 | Adidas International Marketing B.V. | Sports electronic training system with electronic gaming features, and applications thereof |
US8360904B2 (en) * | 2007-08-17 | 2013-01-29 | Adidas International Marketing Bv | Sports electronic training system with sport ball, and applications thereof |
US8702430B2 (en) | 2007-08-17 | 2014-04-22 | Adidas International Marketing B.V. | Sports electronic training system, and applications thereof |
JP2009267643A (ja) | 2008-04-23 | 2009-11-12 | Smk Corp | リモートコントロール送信機 |
US8996332B2 (en) | 2008-06-24 | 2015-03-31 | Dp Technologies, Inc. | Program setting adjustments based on activity identification |
US8370106B2 (en) * | 2008-07-07 | 2013-02-05 | Keynetik, Inc. | Spatially aware inference logic |
KR101185589B1 (ko) * | 2008-11-14 | 2012-09-24 | (주)마이크로인피니티 | 움직임 감지를 통한 사용자 명령 입력 방법 및 디바이스 |
JP5433215B2 (ja) * | 2008-11-21 | 2014-03-05 | 株式会社コナミデジタルエンタテインメント | ゲーム装置、ゲーム装置の制御方法及びプログラム |
JP5334595B2 (ja) * | 2009-01-09 | 2013-11-06 | 任天堂株式会社 | ゲーム装置およびゲームプログラム |
US8517835B2 (en) * | 2009-02-20 | 2013-08-27 | Activision Publishing, Inc. | Video game and peripheral for same |
JP5048721B2 (ja) * | 2009-07-07 | 2012-10-17 | 株式会社コナミデジタルエンタテインメント | ゲーム装置、ゲーム装置の制御方法及びプログラム |
US9690386B2 (en) * | 2009-07-14 | 2017-06-27 | Cm Hk Limited | Method and apparatus for performing motion recognition using motion sensor fusion, and associated computer program product |
KR101021356B1 (ko) * | 2009-08-05 | 2011-03-14 | 주식회사 엔씨소프트 | 게임 캐릭터의 움직임 제어장치 및 그 방법 |
US20110093888A1 (en) * | 2009-10-21 | 2011-04-21 | John Araki | User selection interface for interactive digital television |
US9101831B2 (en) * | 2009-11-24 | 2015-08-11 | Activision Publishing, Inc. | Video game and peripheral for same |
GB2492017B (en) * | 2010-04-06 | 2017-02-22 | Newhula Com Inc | Virtual exerciser device |
JP2012141930A (ja) * | 2011-01-06 | 2012-07-26 | Sony Corp | 情報処理装置、情報処理システム及び情報処理方法 |
KR20120124874A (ko) * | 2011-05-06 | 2012-11-14 | 삼성전자주식회사 | 그립 방향에 독립적인 움직임 감지를 위한 방법 및 장치 |
US9588582B2 (en) | 2013-09-17 | 2017-03-07 | Medibotics Llc | Motion recognition clothing (TM) with two different sets of tubes spanning a body joint |
US9958228B2 (en) | 2013-04-01 | 2018-05-01 | Yardarm Technologies, Inc. | Telematics sensors and camera activation in connection with firearm activity |
WO2016100360A1 (fr) * | 2014-12-15 | 2016-06-23 | Yardarm Technologies, Inc. | Procédé et système d'identification de l'utilisateur d'une arme à feu grâce à une signature unique mesurée par télémétrie de détection d'armes à feu |
US11577159B2 (en) | 2016-05-26 | 2023-02-14 | Electronic Scripting Products Inc. | Realistic virtual/augmented/mixed reality viewing and interactions |
US11625898B2 (en) | 2016-10-11 | 2023-04-11 | Valve Corporation | Holding and releasing virtual objects |
US10307669B2 (en) | 2016-10-11 | 2019-06-04 | Valve Corporation | Electronic controller with finger sensing and an adjustable hand retainer |
US10987573B2 (en) | 2016-10-11 | 2021-04-27 | Valve Corporation | Virtual reality hand gesture generation |
US10888773B2 (en) | 2016-10-11 | 2021-01-12 | Valve Corporation | Force sensing resistor (FSR) with polyimide substrate, systems, and methods thereof |
US11185763B2 (en) | 2016-10-11 | 2021-11-30 | Valve Corporation | Holding and releasing virtual objects |
JP6541079B2 (ja) * | 2017-02-14 | 2019-07-10 | 株式会社コナミアミューズメント | ゲームシステム、及びそれに用いられるコンピュータプログラム |
WO2018237256A1 (fr) | 2017-06-22 | 2018-12-27 | Centurion VR, LLC | Simulation de réalité virtuelle |
JP7358408B2 (ja) * | 2018-06-20 | 2023-10-10 | バルブ コーポレーション | 仮想物体の保持および解放 |
JP7383647B2 (ja) * | 2018-06-20 | 2023-11-20 | バルブ コーポレーション | 仮想物体の保持および解放 |
US10780349B2 (en) * | 2018-11-03 | 2020-09-22 | Facebook Technologies, Llc | Virtual reality collision interpretation |
US10950055B2 (en) * | 2018-11-03 | 2021-03-16 | Facebook Technologies, Llc | Video game controlled by player motion tracking |
JP7441252B2 (ja) * | 2022-02-08 | 2024-02-29 | 任天堂株式会社 | 情報処理システム、情報処理プログラム、情報処理装置、および情報処理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240437A (ja) * | 1997-02-27 | 1998-09-11 | Ricoh Co Ltd | ペン型入力システム |
EP1103883A2 (fr) * | 1999-11-29 | 2001-05-30 | Xerox Corporation | Sélection du mode d'entrée de données sur un ordinateur de poche |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US78086A (en) * | 1868-05-19 | Improvement in hobse eay-ea | ||
US36673A (en) * | 1862-10-14 | Improvement in stump-extractors | ||
US43154A (en) * | 1864-06-14 | Improved liquor-flask | ||
US4787051A (en) * | 1986-05-16 | 1988-11-22 | Tektronix, Inc. | Inertial mouse system |
US4839838A (en) | 1987-03-30 | 1989-06-13 | Labiche Mitchell | Spatial input apparatus |
US4759219A (en) * | 1987-05-15 | 1988-07-26 | Swingspeed, Inc. | Swing parameter measurement system |
JPH0644005A (ja) | 1992-01-24 | 1994-02-18 | Seiko Instr Inc | 座標入力装置 |
JP3218716B2 (ja) * | 1992-07-31 | 2001-10-15 | ソニー株式会社 | 入力装置、及び入力システム |
JP3086827B2 (ja) * | 1992-12-28 | 2000-09-11 | 株式会社セガ・エンタープライゼス | コントロールキー装置 |
JPH0728591A (ja) * | 1993-05-13 | 1995-01-31 | Toshiba Corp | 空間操作マウスシステム及び空間動作パターン入力方法 |
US5598187A (en) | 1993-05-13 | 1997-01-28 | Kabushiki Kaisha Toshiba | Spatial motion pattern input system and input method |
US5574479A (en) | 1994-01-07 | 1996-11-12 | Selectech, Ltd. | Optical system for determining the roll orientation of a remote unit relative to a base unit |
US5615132A (en) | 1994-01-21 | 1997-03-25 | Crossbow Technology, Inc. | Method and apparatus for determining position and orientation of a moveable object using accelerometers |
GB2289756B (en) | 1994-05-26 | 1998-11-11 | Alps Electric Co Ltd | Space coordinates detecting device and input apparatus using same |
US5528936A (en) * | 1994-07-25 | 1996-06-25 | Falk; John E. | Optoelectronic spatial acceleration sensor |
US5835077A (en) * | 1995-01-13 | 1998-11-10 | Remec, Inc., | Computer control device |
US5757360A (en) * | 1995-05-03 | 1998-05-26 | Mitsubishi Electric Information Technology Center America, Inc. | Hand held computer control device |
JP3917808B2 (ja) | 1995-09-07 | 2007-05-23 | 株式会社バンダイナムコゲームス | シューティングゲーム装置及びその制御方法 |
JPH09215808A (ja) * | 1995-12-07 | 1997-08-19 | Hokuriku Electric Ind Co Ltd | スイング型運動用具の練習装置及びスイング型運動用具 |
JP4120017B2 (ja) * | 1997-01-30 | 2008-07-16 | 株式会社セガ | 入力装置およびゲーム処理装置、その方法 |
JPH1199284A (ja) * | 1997-09-30 | 1999-04-13 | Sony Corp | コントローラ |
JPH11114230A (ja) | 1997-10-09 | 1999-04-27 | Taisei Corp | スキー疑似体験装置 |
JPH11352143A (ja) * | 1998-04-06 | 1999-12-24 | Matsushita Electric Ind Co Ltd | 加速度センサ |
US6709351B2 (en) | 1998-09-10 | 2004-03-23 | Takeshi Hori | Sports game system |
JP3847058B2 (ja) * | 1999-10-04 | 2006-11-15 | 任天堂株式会社 | ゲームシステム及びそれに用いられるゲーム情報記憶媒体 |
JP2001104636A (ja) | 1999-10-04 | 2001-04-17 | Shinsedai Kk | 体感ボールゲーム装置 |
US6522331B1 (en) | 2000-02-01 | 2003-02-18 | Stormfront Studios, Inc. | Character animation using directed acyclic graphs |
US7061469B2 (en) * | 2000-02-24 | 2006-06-13 | Innalabs Technologies, Inc. | Method of data input into a computer |
US7292223B2 (en) * | 2000-02-24 | 2007-11-06 | Innalabs Technologies, Inc. | Location tracking device |
US20010030667A1 (en) | 2000-04-10 | 2001-10-18 | Kelts Brett R. | Interactive display interface for information objects |
JP2001306245A (ja) | 2000-04-26 | 2001-11-02 | Fujitsu Ltd | ポインティング装置及びポインタ移動方法 |
JP4027031B2 (ja) * | 2000-11-16 | 2007-12-26 | 株式会社コナミデジタルエンタテインメント | 対戦式3dビデオゲーム装置 |
FI110549B (fi) | 2001-06-29 | 2003-02-14 | Nokia Corp | Menetelmä ja järjestely liikkeen määrittämiseksi |
JP4855603B2 (ja) * | 2001-08-01 | 2012-01-18 | 富士通コンポーネント株式会社 | 加速度検出装置 |
JP4801854B2 (ja) | 2001-08-03 | 2011-10-26 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体、および、ゲーム装置 |
US7335105B2 (en) * | 2001-08-20 | 2008-02-26 | Ssd Company Limited | Soccer game apparatus |
JP4775989B2 (ja) | 2001-08-23 | 2011-09-21 | 株式会社バンダイナムコゲームス | 画像生成システム、プログラム及び情報記憶媒体 |
KR100464316B1 (ko) | 2001-09-27 | 2005-01-03 | 삼성전자주식회사 | 고분자 필름을 이용한 포인팅 장치, 그 장치의 생산 방법,그 장치를 위한 포인팅 정보 검출 장치 및 방법 |
JP4028708B2 (ja) * | 2001-10-19 | 2007-12-26 | 株式会社コナミデジタルエンタテインメント | ゲーム装置及びゲームシステム |
JP3818140B2 (ja) * | 2001-12-04 | 2006-09-06 | 株式会社デンソー | 乗員保護用の車両傾斜角検出装置 |
US6982697B2 (en) | 2002-02-07 | 2006-01-03 | Microsoft Corporation | System and process for selecting objects in a ubiquitous computing environment |
US7466307B2 (en) | 2002-04-11 | 2008-12-16 | Synaptics Incorporated | Closed-loop sensor on a solid-state object position detector |
JP3902508B2 (ja) * | 2002-05-20 | 2007-04-11 | 任天堂株式会社 | ゲームシステムおよびゲームプログラム |
US7034804B2 (en) | 2002-06-04 | 2006-04-25 | Inventec Appliances Corp. | Computer pointing device employing a magnetic field source and magnetic field sensors |
US7391409B2 (en) | 2002-07-27 | 2008-06-24 | Sony Computer Entertainment America Inc. | Method and system for applying gearing effects to multi-channel mixed input |
US6992654B2 (en) | 2002-08-21 | 2006-01-31 | Electronic Arts Inc. | System and method for providing user input to character animation |
JP3553563B1 (ja) | 2003-01-10 | 2004-08-11 | コナミ株式会社 | ゲームシステム、ゲーム装置、ゲーム方法、ならびに、プログラム |
JP3927921B2 (ja) | 2003-05-19 | 2007-06-13 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体及びゲーム装置 |
US7288028B2 (en) | 2003-09-26 | 2007-10-30 | Microsoft Corporation | Method and apparatus for quickly joining an online game being played by a friend |
US7489299B2 (en) * | 2003-10-23 | 2009-02-10 | Hillcrest Laboratories, Inc. | User interface devices and methods employing accelerometers |
US20050134555A1 (en) | 2003-12-19 | 2005-06-23 | Kye Systems Corp. | Pointing device for detecting hand-movement |
US7365737B2 (en) | 2004-03-23 | 2008-04-29 | Fujitsu Limited | Non-uniform gesture precision |
KR101192514B1 (ko) | 2004-04-30 | 2012-10-17 | 힐크레스트 래보래토리스, 인크. | 틸트 보상과 향상된 사용성을 갖는 3d 포인팅 장치 |
CN102566751B (zh) * | 2004-04-30 | 2016-08-03 | 希尔克瑞斯特实验室公司 | 自由空间定位装置和方法 |
WO2006014810A2 (fr) | 2004-07-29 | 2006-02-09 | Kevin Ferguson | Systeme de mesure de mouvement humain |
JP2006063110A (ja) | 2004-08-24 | 2006-03-09 | Asahi Denka Kogyo Kk | 成型品用樹脂組成物 |
JP3770499B1 (ja) | 2004-11-02 | 2006-04-26 | 任天堂株式会社 | ゲーム装置及びゲームプログラム |
TW200620069A (en) | 2004-12-03 | 2006-06-16 | Ortek Technology Inc | Mouse combined with a function of network telephone |
JP2006319950A (ja) | 2005-04-13 | 2006-11-24 | Hitachi Ltd | 映像表示装置 |
JP4029102B2 (ja) * | 2005-12-26 | 2008-01-09 | 株式会社コナミデジタルエンタテインメント | ビデオゲームプログラム、ビデオゲーム装置及びビデオゲーム制御方法 |
JP4330593B2 (ja) | 2006-03-13 | 2009-09-16 | 任天堂株式会社 | ゲーム装置およびゲームプログラム |
-
2006
- 2006-03-08 JP JP2006063110A patent/JP4202366B2/ja active Active
- 2006-04-18 US US11/405,503 patent/US7872638B2/en active Active
- 2006-04-25 EP EP11150823.0A patent/EP2324895B1/fr active Active
- 2006-04-25 EP EP06008516.4A patent/EP1832321B1/fr active Active
- 2006-04-25 EP EP11150991.5A patent/EP2324896B1/fr active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240437A (ja) * | 1997-02-27 | 1998-09-11 | Ricoh Co Ltd | ペン型入力システム |
EP1103883A2 (fr) * | 1999-11-29 | 2001-05-30 | Xerox Corporation | Sélection du mode d'entrée de données sur un ordinateur de poche |
Also Published As
Publication number | Publication date |
---|---|
JP2007241655A (ja) | 2007-09-20 |
EP2324896A3 (fr) | 2012-09-12 |
EP2324896A2 (fr) | 2011-05-25 |
JP4202366B2 (ja) | 2008-12-24 |
US20070211025A1 (en) | 2007-09-13 |
US7872638B2 (en) | 2011-01-18 |
EP1832321A2 (fr) | 2007-09-12 |
EP1832321A3 (fr) | 2010-07-21 |
EP2324895B1 (fr) | 2016-03-23 |
EP2324896B1 (fr) | 2019-10-09 |
EP2324895A1 (fr) | 2011-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1832321B1 (fr) | Appareil de determination de movement et support d'enregistrement pour la détermination de movement | |
US7424388B2 (en) | Motion determining apparatus and storage medium having motion determining program stored thereon | |
US7854656B2 (en) | Game apparatus and storage medium having game program stored thereon | |
US8721442B2 (en) | Recording medium recording game program and game apparatus | |
US8419539B2 (en) | Game apparatus and recording medium recording game program for displaying a motion matching a player's intention when moving an input device | |
EP2302487B1 (fr) | Support d'enregistrement avec un programme de traitement d'informations et appareil de traitement d'informations pour détecter la direction de balancement d'un dispositif d'entrée | |
US7716008B2 (en) | Acceleration data processing program, and storage medium, and acceleration data processing apparatus for use with the same | |
US8182343B2 (en) | Game apparatus and storage medium storing game program | |
US8568232B2 (en) | Storage medium having game program stored thereon and game apparatus | |
US8246457B2 (en) | Storage medium having game program stored thereon and game apparatus | |
US20120010733A1 (en) | Storage medium having game program stored thereon and game apparatus | |
US7980951B2 (en) | Storage medium having game program stored thereon and game apparatus | |
JP4789984B2 (ja) | ゲーム装置、ゲームプログラム、ゲームシステム、およびゲーム処理方法 | |
JP5074343B2 (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 HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA HR MK YU |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
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 HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA HR MK YU |
|
17P | Request for examination filed |
Effective date: 20110117 |
|
AKX | Designation fees paid |
Designated state(s): DE FR GB |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: NINTENDO CO., LTD. |
|
17Q | First examination report despatched |
Effective date: 20120703 |
|
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: 602006059716 Country of ref document: DE Free format text: PREVIOUS MAIN CLASS: A63F0013060000 Ipc: A63F0013428000 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: A63F 13/428 20140101AFI20200526BHEP Ipc: A63F 13/573 20140101ALI20200526BHEP Ipc: A63F 13/211 20140101ALI20200526BHEP Ipc: G06F 3/0346 20130101ALI20200526BHEP Ipc: A63F 13/812 20140101ALI20200526BHEP |
|
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 |
|
INTG | Intention to grant announced |
Effective date: 20200703 |
|
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): DE FR GB |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602006059716 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602006059716 Country of ref document: DE |
|
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: 20210708 |
|
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: GB Payment date: 20240307 Year of fee payment: 19 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20240308 Year of fee payment: 19 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20240227 Year of fee payment: 19 |