Motion determining apparatus and storage medium having motion determining program stored thereon
14 claims: 3 independent, 11 dependent
- 1少なくとも2軸方向の加速度を検出する加速度センサを備えた入力装置の動きを判別する動き判別装置であって、 前記加速度センサから出力される加速度データを取得するデータ取得手段と、 前記加速度データの2軸方向成分に基づいてそれぞれ座標軸が定義され、重力加速度を含む加速度が前記加速度センサに作用していない状態の加速度データの値を原点とする2次元座標系において、所定期間の最初に取得された加速度データが示す始点と当該所定期間の最後に取得された加速度データが示す終点とを比較して、所定方向を回転軸とした前記入力装置本体における回転動作を判別する回転動作判別手段と、 前記回転動作判別手段によって判別された回転動作を少なくとも含む動きデータを出力する出力手段とを備える、動き判別装置。
- 2前記回転動作判別手段は、前記2次元座標系において、前記原点から前記始点に向かうベクトルと前記原点から前記終点に向かうベクトルとが成す角度を算出する角度算出手段を含み、 前記回転動作判別手段は、前記角度に基づいて、前記回転動作を判別する、請求項1に記載の動き判別装置。
- 3前記回転動作判別手段は、前記角度が第1の閾値を超えているとき、一方方向へ前記入力装置が回転しながら移動したと判定し、前記角度が第2の閾値未満のとき、前記回転軸に対して他方方向へ前記入力装置が回転しながら移動したと判定する回転方向判定手段を、さらに含み、 前記出力手段は、前記回転方向判定手段によって判別された回転方向を含む動きデータを出力する、請求項2に記載の動き判別装置。
- 4前記回転動作判別手段は、前記角度の大きさに基づいて、前記入力装置本体に対する回転角度を判定する回転角度判定手段を、さらに含み、 前記出力手段は、前記回転角度判定手段によって判別された回転角度を含む動きデータを出力する、請求項2に記載の動き判別装置。
- 5前記動き判別装置は、前記データ取得手段が逐次取得する前記加速度データを記憶する記憶手段を、さらに備え、 前記回転動作判別手段は、前記2次元座標系において、前記記憶手段に記憶された加速度データのうち、前記所定期間の最初に取得された加速度データが示す座標点を前記始点とし、前記所定期間の最後に取得された加速度データが示す座標点を前記終点とする、請求項1乃至請求項4のいずれかに記載の動き判別装置。
- 6前記加速度センサは、前記入力装置に対して互いに直交する3軸方向の加速度を検出し、 前記回転動作判別手段は、前記3軸方向に含まれる第1軸方向の加速度が所定値を超えている期間を前記所定期間とし、 前記2次元座標系は、前記3軸方向に含まれる他の第2軸および第3軸方向成分に基づいてそれぞれ座標軸が定義され、 前記回転動作判別手段は、前記所定期間の最初および最後に取得されて前記記憶手段に記憶された他の前記第2軸および第3軸方向の加速度データを用いて、前記回転動作を判別する、請求項5に記載の動き判別装置。
- 7前記加速度センサは、前記入力装置をユーザが把持して振ったときに生じる遠心力成分を少なくとも含む加速度を検出して前記加速度データを出力し、 前記回転動作判別手段は、前記2次元座標系において、前記データ取得手段によって取得された加速度データのうち、前記遠心力成分の加速度が閾値を超えている期間の開始時点に取得した加速度データが示す座標点を前記始点とし、当該期間の終了時点に取得した加速度データが示す座標点を前記終点とする、請求項1に記載の動き判別装置。
- 8少なくとも2軸方向の加速度を検出する加速度センサを備えた入力装置の動きを判別する動き判別装置のコンピュータで実行される動き判別プログラムであって、 前記コンピュータに、 前記加速度センサから出力される加速度データを取得するデータ取得ステップと、 前記加速度データの2軸方向成分に基づいてそれぞれ座標軸が定義され、重力加速度を含む加速度が前記加速度センサに作用していない状態の加速度データの値を原点とする2次元座標系において、所定期間の最初に取得された加速度データが示す始点と当該所定期間の最後に取得された加速度データが示す終点とを比較して、所定方向を回転軸とした前記入力装置本体における回転動作を判別する回転動作判別ステップと、 前記回転動作判別ステップで判別された回転動作を少なくとも含む動きデータを出力する出力ステップとを実行させる、動き判別プログラム。
- 9前記回転動作判別ステップは、前記2次元座標系において、前記原点から前記始点に向かうベクトルと前記原点から前記終点に向かうベクトルとが成す角度を算出する角度算出ステップを含み、 前記回転動作判別ステップでは、前記角度に基づいて、前記回転動作が判別される、請求項8に記載の動き判別プログラム。
- 10前記回転動作判別ステップは、前記角度が第1の閾値を超えているとき、一方方向へ前記入力装置が回転しながら移動したと判定し、前記角度が第2の閾値未満のとき、前記回転軸に対して他方方向へ前記入力装置が回転しながら移動したと判定する回転方向判定ステップを、さらに含み、 前記出力ステップでは、前記回転方向判定ステップで判別された回転方向を含む動きデータが出力される、請求項9に記載の動き判別プログラム。
- 11前記回転動作判別ステップは、前記角度の大きさに基づいて、前記入力装置本体に対する回転角度を判定する回転角度判定ステップを、さらに含み、 前記出力ステップでは、前記回転角度判定ステップで判別された回転角度を含む動きデータが出力される、請求項9に記載の動き判別プログラム。
- 12前記動き判別プログラムは、前記データ取得ステップで逐次取得する前記加速度データをメモリに記憶する記憶制御ステップを、さらに前記コンピュータに実行させ、 前記回転動作判別ステップでは、前記2次元座標系において、メモリに記憶された加速度データのうち、前記所定期間の最初に取得された加速度データが示す座標点が前記始点とされ、前記所定期間の最後に取得された加速度データが示す座標点が前記終点とされる、請求項8乃至請求項11のいずれかに記載の動き判別プログラム。
- 13前記加速度センサは、前記入力装置に対して互いに直交する3軸方向の加速度を検出し、 前記回転動作判別ステップでは、前記3軸方向に含まれる第1軸方向の加速度が所定値を超えている期間が前記所定期間とされ、 前記2次元座標系は、前記3軸方向に含まれる他の第2軸および第3軸方向成分に基づいてそれぞれ座標軸が定義され、 前記回転動作判別ステップでは、前記所定期間の最初および最後に取得されてメモリに記憶された他の前記第2軸および第3軸方向の加速度データを用いて、前記回転動作が判別される、請求項12に記載の動き判別プログラム。
- 14前記加速度センサは、前記入力装置をユーザが把持して振ったときに生じる遠心力成分を少なくとも含む加速度を検出して前記加速度データを出力し、 前記回転動作判別ステップでは、前記2次元座標系において、前記データ取得ステップで取得された加速度データのうち、前記遠心力成分の加速度が閾値を超えている期間の開始時点に取得した加速度データが示す座標点が前記始点とされ、当該期間の終了時点に取得した加速度データが示す座標点が前記終点とされる、請求項8に記載の動き判別プログラム。
Independent claims14
126 paragraphs, as filed
The present invention relates to a motion discriminating device and a motion discriminating program, and more specifically, to a motion discriminating device and a motion discriminating program that discriminates rotation applied to an input device main body provided with an acceleration sensor.
Conventionally, a device has been developed in which a user operates an input device provided with an acceleration sensor and uses the output from the acceleration sensor to determine the movement of the input device. For example, a game device in which a game controller imitating a glove is provided with a 3-axis acceleration sensor and the output from the acceleration sensor is used to enjoy a game is disclosed (see, for example, Patent Document 1).
The controller (glove) disclosed in Patent Document 1 includes a 3-axis accelerometer having a sensor X, a sensor Y, and a sensor Z. Then, when a large value suddenly enters the sensor Y, the game device traces back the output waveform obtained from the sensor Y and sets the time point around the value 0 as the time point t0. Then, the time point when a value of around 0 is obtained after a sudden small value is obtained in the output waveform is defined as the time point t1. On the other hand, the acceleration detected during the period from time point t0 to t1 is extracted from the output waveforms of the sensor X and the sensor Z, respectively, and the type of punch (for example, straight, hook, upper, etc.) is determined using the output waveform of each component. Judging. Specifically, the game device determines that the player has released a straight punch when the output waveform from the sensor X shows a slightly positive value and there is no change in the output waveform from the sensor Z. Further, the game device determines that the player has released a hook punch when the output waveform of the sensor X shows a negative value at the start of operation and then shows a positive value, and there is no change in the output waveform from the sensor Z. To do. Further, the game device determines that the player has released the upper punch when the output waveform from the sensor X shows an irregular shape and the output waveform from the sensor Z shows a large negative value and then a positive value. To do.<patcit num="1"><text>Japanese Unexamined Patent Publication No. 2002-153673</text></patcit>
<p> However, in the game apparatus disclosed in Patent Document 1, the type of punch is determined in association with the output waveforms of each of the sensor X and the sensor Z, but the waveforms of the respective components are determined independently. In addition, it is not assumed that the outputs of both sensors, such as the direction of the globe (controller) changing during the detection period, affect each other. Therefore, when it is necessary to determine the movement by combining the outputs from the plurality of sensors, the movement cannot be normally determined only by making the determination independently for each sensor. For example, it is not possible to determine a movement that rotates (twists) the glove around a predetermined rotation axis. Further, it is not possible to determine a combination of a plurality of movements such as rotating (twisting) the glove while the player is punching. That is, the types of controller operations that can be input by the player are limited to relatively monotonous movements.</p><p> Therefore, an object of the present invention is to provide a motion discriminating device and a motion discriminating program capable of discriminating a rotational motion applied to the input device main body in an operation input using an input device provided with an acceleration sensor. Is.</p>
<p> In order to achieve the above object, the present invention has adopted the following configuration. The reference numerals, step numbers, and the like in parentheses indicate the correspondence with the embodiments described later in order to help the understanding of the present invention, and do not limit the scope of the present invention at all.</p><p> The first invention is a motion discriminator (3) that discriminates the motion of an input device (7) including an acceleration sensor (701) that detects acceleration in at least two axial directions (X and Y axis directions). The motion discriminating device includes data acquisition means (S61, S64, S77, S92 executed by CPU30; hereinafter, only step numbers are shown), rotational motion discriminating means (S101, S102), and output means (S102, S106). To be equipped. The data acquisition means acquires acceleration data (Da) output from the acceleration sensor. The rotation motion discriminating means discriminates the rotation motion in the input device main body with the predetermined direction as the rotation axis (Z axis) through the processing calculation. In the above processing calculation, the coordinate axes (X-axis and Y-axis) are defined based on the biaxial components of the acceleration data, and the value of the acceleration data in the state where the acceleration including the gravitational acceleration does not act on the acceleration sensor is used as the origin. In the two-dimensional coordinate system (XY coordinate system), the start point (Ps) indicated by the acceleration data acquired at the beginning of the predetermined period and the end point (Pe) indicated by the acceleration data acquired at the end of the predetermined period are compared. Including. The output means outputs motion data (Dj) including at least the rotation motion determined by the rotation motion determination means.</p><p> In the second invention, in the first invention, the rotation motion discriminating means includes the angle calculating means (S101). The angle calculation means calculates the angle (θ) formed by the vector from the origin to the start point and the vector from the origin to the end point in the two-dimensional coordinate system. The rotation motion discriminating means discriminates the rotation motion based on the angle.</p><p> In the third invention, in the second invention, the rotation motion determining means further includes the rotation direction determining means (S102). The rotation direction determining means determines that the input device has moved while rotating in one direction when the angle exceeds the first threshold (120 °), and when the angle is less than the second threshold (70 °). , It is determined that the input device has moved while rotating in the opposite direction with respect to the rotation axis. The output means outputs motion data including the rotation direction (positive or negative of S) determined by the rotation direction determination means.</p><p> In the fourth invention, in the second invention, the rotation motion determining means further includes the rotation angle determining means (S102). The rotation angle determining means determines the rotation angle (the magnitude of S) with respect to the input device main body based on the magnitude of the angle. The output means outputs motion data including the rotation angle determined by the rotation angle determination means.</p><p> According to a fifth aspect of the present invention, in any one of the first to fourth inventions, the motion discriminating device further includes a storage means (33). The storage means stores the acceleration data sequentially acquired by the data acquisition means. In the two-dimensional coordinate system, the rotation motion discriminating means starts from the coordinate point indicated by the acceleration data acquired at the beginning of a predetermined period among the acceleration data stored in the storage means, and the acceleration acquired at the end of the predetermined period. The end point is the coordinate point indicated by the data.</p><p> In the sixth aspect of the invention, in the fifth aspect of the invention, the acceleration sensor detects accelerations in three axial directions (X, Y, Z axis directions) orthogonal to each other with respect to the input device. The rotation motion discriminating means sets a period in which the acceleration in the first axis direction (Z-axis direction) included in the three-axis directions exceeds a predetermined value as a predetermined period (Yes in S62). In the two-dimensional coordinate system, the coordinate axes are defined based on the other second axis and third axis direction (X and Y axis directions) components included in the three axis directions, respectively. The rotational motion discriminating means discriminates the rotational motion by using the acceleration data in the second axis and the third axis directions acquired at the beginning and the end of the predetermined period and stored in the storage means.</p><p> According to the seventh aspect of the invention, in the first aspect of the invention, the acceleration sensor detects acceleration including at least a centrifugal force component generated when the user grips and shakes the input device, and outputs acceleration data. In the two-dimensional coordinate system, the rotation motion discriminating means starts from the coordinate point indicated by the acceleration data acquired at the start of the period in which the acceleration of the centrifugal force component exceeds the threshold value among the acceleration data acquired by the data acquisition means. The end point is the coordinate point indicated by the acceleration data acquired at the end of the period.</p><p> The eighth invention is a motion discriminant program executed by a computer (30) of a motion discriminator that discriminates the motion of an input device including an acceleration sensor that detects acceleration in at least two axial directions. The motion discriminating program causes the computer to execute the data acquisition step, the rotation motion discriminating step, and the output step. The data acquisition step acquires acceleration data output from the acceleration sensor. In the rotation motion determination step, coordinate axes are defined based on the biaxial component of the acceleration data, and in a two-dimensional coordinate system whose origin is the value of the acceleration data in a state where the acceleration including the gravitational acceleration does not act on the acceleration sensor. , The start point indicated by the acceleration data acquired at the beginning of the predetermined period and the end point indicated by the acceleration data acquired at the end of the predetermined period are compared to determine the rotational operation in the input device main body with the predetermined direction as the rotation axis. To do. The output step outputs motion data including at least the rotation motion determined in the rotation motion determination step.</p><p> In the ninth invention, in the eighth invention, the rotation motion determination step includes an angle calculation step. The angle calculation step calculates the angle formed by the vector from the origin to the start point and the vector from the origin to the end point in the two-dimensional coordinate system. In the rotation motion determination step, the rotation motion is determined based on the angle.</p><p> A tenth aspect of the present invention further includes, in the ninth aspect of the invention, a rotation direction determination step. The rotation direction determination step determines that the input device has moved while rotating in one direction when the angle exceeds the first threshold, and when the angle is less than the second threshold, the other direction with respect to the rotation axis. It is determined that the input device has moved while rotating. In the output step, motion data including the rotation direction determined in the rotation direction determination step is output.</p><p> According to the eleventh invention, in the ninth invention, the rotation motion determination step further includes a rotation angle determination step. The rotation angle determination step determines the rotation angle with respect to the input device main body based on the magnitude of the angle. In the output step, motion data including the rotation angle determined in the rotation angle determination step is output.</p><p> A twelfth invention, in any one of the eighth to eleventh inventions, causes the motion determination program to further execute a memory control step on a computer. The storage control step stores the acceleration data sequentially acquired in the data acquisition step in the memory (33). In the rotation motion determination step, among the acceleration data stored in the memory in the two-dimensional coordinate system, the coordinate point indicated by the acceleration data acquired at the beginning of the predetermined period is set as the starting point, and the acceleration acquired at the end of the predetermined period is set as the starting point. The coordinate point indicated by the data is the end point.</p><p> A thirteenth invention, in the twelfth invention, the acceleration sensor detects acceleration in three axial directions orthogonal to each other with respect to the input device. In the rotation motion determination step, a period in which the acceleration in the first axial direction included in the three axial directions exceeds a predetermined value is set as a predetermined period. In the two-dimensional coordinate system, the coordinate axes are defined based on the other second axis and third axis direction components included in the three axis directions, respectively. In the rotation motion determination step, the rotation motion is discriminated by using the other acceleration data in the second and third axis directions acquired at the beginning and the end of the predetermined period and stored in the memory.</p><p> According to the fourteenth invention, in the eighth invention, the acceleration sensor detects acceleration including at least a centrifugal force component generated when the user grips and shakes the input device, and outputs acceleration data. In the rotation motion determination step, in the two-dimensional coordinate system, among the acceleration data acquired in the data acquisition step, the coordinate point indicated by the acceleration data acquired at the start of the period in which the acceleration of the centrifugal force component exceeds the threshold is the starting point. The coordinate point indicated by the acceleration data acquired at the end of the period is set as the end point.</p>
<p> According to the first invention, when the user rotates the input device with a predetermined direction as the rotation axis, the rotation operation can be accurately determined. Therefore, since the rotation operation applied to the input device can be used as the operation input, there are a wide variety of operations on the input device that can be input. Further, in the determination of the rotational motion, it is sufficient that some acceleration acts on the input device while changing according to the rotational motion, and changes such as gravitational acceleration and acceleration caused by the user shaking the input device are used. Can be determined.</p><p> According to the second invention, if the angle formed by the vector from the origin to the start point and the vector from the origin to the end point is used in the two-dimensional coordinate system, the tendency of the acceleration that changes according to the rotation motion can be easily determined. can do.</p><p> According to the third invention, the direction of the rotation operation to the input device can be determined for the operation in which a plurality of movements such as the user swinging while rotating the input device are combined. Therefore, since a complex operation including a rotation operation added to the input device can be used as an operation input, the types of operations that can be input are further increased.</p><p> According to the fourth invention, since the user can determine the rotation angle of rotating the input device, the type of operation that can be input can be determined by using the rotation angle applied to the input device as the operation input. It will be more diverse.</p><p> According to the fifth invention, if the acceleration data acquired during a period of a predetermined period or longer is sequentially stored, the acceleration data indicating the start point and the end point can be easily extracted.</p><p> According to the sixth invention, of the three axes orthogonal to each other, the acceleration data of the remaining two axes during the period when the value of the first axis exceeds a predetermined value is used for determination. Therefore, by setting the acceleration when the user swings the input device to affect the first axis direction, the period during which the input device is swung can be determined, so that the period from the start to the end of the swing can be determined. It is possible to determine the operation in which the user rotates the input device. In addition, the direction of the rotation operation to the input device is determined for the operation in which a plurality of movements such as the user swinging while rotating the input device are combined. Therefore, since the complex operation of rotating the input device while swinging it can be used as the operation input, the types of operations that can be input are further increased.</p><p> According to the seventh invention, when the swing start time is determined by using the acceleration data obtained at the beginning and the end of the state in which the acceleration generated when the user swings the input device exceeds a predetermined value, respectively. It is possible to make a determination using the acceleration data obtained at the time of the end of the swing and the end of the swing, and it is possible to determine the operation of the user rotating the input device from the start of the swing to the end of the swing.</p><p> According to the motion discriminating program of the present invention, the same effect as that of the motion discriminating device described above can be obtained.</p>
A motion discriminating device according to an embodiment of the present invention will be described with reference to FIG. Hereinafter, in order to make the description concrete, a game system 1 using the motion discriminating device will be described as an example. Note that FIG. 1 is an external view for explaining the game system 1. Hereinafter, the game system 1 will be described by taking as an example a stationary game device corresponding to the motion discriminating device of the present invention.
In FIG. 1, the game system 1 is a stationary game device (hereinafter referred to as a monitor) connected to a display (hereinafter referred to as a monitor) 2 provided with a speaker 2a such as a home television receiver via a connection cord. It is composed of 3) 3 and a controller 7 that gives operation information to the game device 3. The receiving unit 6 is connected to the game device 3 via the connection terminal. The receiving unit 6 receives the transmission data wirelessly transmitted from the controller 7, and the controller 7 and the game device 3 are connected by wireless communication. Further, an optical disk 4 which is an example of an information storage medium used interchangeably with the game device 3 is attached to and detached from the game device 3. On the upper main surface of the game device 3, a power ON / OFF switch for the game device 3, a reset switch for game processing, and an OPEN switch for opening the lid on the upper part of the game device 3 are provided. Here, when the player presses the OPEN switch, the lid is opened and the optical disk 4 can be attached / detached.
Further, an external memory card 5 equipped with a backup memory or the like for fixedly storing save data or the like is detachably attached to the game device 3 as needed. The game device 3 executes a game program or the like stored in the optical disk 4, and displays the result as a game image on the monitor 2. Further, the game device 3 can also reproduce the game state executed in the past by using the save data stored in the external memory card 5 and display the game image on the monitor 2. Then, the player of the game device 3 can enjoy the progress of the game by operating the controller 7 while viewing the game image displayed on the monitor 2.
The controller 7 wirelessly transmits transmission data from the communication unit 75 (described later) provided therein to the game device 3 to which the reception unit 6 is connected by using, for example, Bluetooth (Bluetooth; registered trademark) technology. The controller 7 is an operation means for operating a player object that mainly appears in the game space displayed on the monitor 2. The controller 7 is provided with operation units such as a plurality of operation buttons, keys, and sticks. Further, as will be clarified later, the controller 7 includes an imaging information calculation unit 74 that captures an image viewed from the controller 7. Further, as an example of the image pickup target of the image pickup information calculation unit 74, two LED modules (hereinafter referred to as markers) 8L and 8R are installed near the display screen of the monitor 2. These markers 8L and 8R each output infrared light toward the front of the monitor 2. In this embodiment, since the image pickup information by the image pickup information calculation unit 74 is not used, it is not necessary to install the markers 8L and 8R.
Next, the configuration of the game device 3 will be described with reference to FIG. Note that FIG. 2 is a functional block diagram of the game device 3.
In FIG. 2, the game device 3 includes, for example, a risk (RISC) CPU (central processing unit) 30 that executes various programs. The CPU 30 executes a boot program stored in a boot ROM (not shown), initializes a memory such as the main memory 33, executes a game program stored in the optical disk 4, and responds to the game program. It is intended to perform game processing and the like. The game program stored in the optical disk 4 includes the motion discriminating program of the present invention, and the CPU 30 also performs motion discriminating processing for discriminating the motion of the controller 7 in the game processing. The CPU 30 has a GPU (Graphics Processing Unit) 32, a main memory 33, a DSP (Digital Signal Processor) 34, and an ARAM (Audio) via a memory controller 31. RAM) 35 is connected. Further, the controller I / F (interface) 36, the video I / F37, the external memory I / F38, the audio I / F39, and the disk I / F41 are connected to the memory controller 31 via a predetermined bus, respectively. A receiver unit 6, a monitor 2, an external memory card 5, a speaker 2a, and a disk drive 40 are connected.
The GPU 32 performs image processing based on the instructions of the CPU 30, and is composed of, for example, a semiconductor chip that performs calculation processing necessary for displaying 3D graphics. The GPU 32 performs image processing using a memory dedicated to image processing (not shown) or a part of the storage area of the main memory 33. The GPU 32 uses these to generate game image data and movie images to be displayed on the monitor 2, and outputs them to the monitor 2 via the memory controller 31 and the video I / F 37 as appropriate.
The main memory 33 is a storage area used by the CPU 30, and appropriately stores a game program or the like required for processing by the CPU 30. For example, the main memory 33 stores a game program, various data, and the like read from the optical disk 4 by the CPU 30. The game program and various data 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 when the game program is executed, and an ARAM 35 for storing the sound data or the like is connected to the DSP 34. The ARAM35 is used when the DSP34 performs a predetermined process (for example, storing a pre-read game program or sound data). The DSP 34 reads the sound data stored in the ARAM 35 and outputs the sound data to the speaker 2a provided in the monitor 2 via the memory controller 31 and the audio I / F 39.
The memory controller 31 controls data transfer in an integrated manner, and various I / Fs described above are connected to the memory controller 31. The controller I / F 36 is composed of, for example, four controllers I / F 36a to 36d, and connects an external device that can be fitted and the game device 3 in a communicable manner via a connector that they have. For example, the receiving unit 6 is fitted with the connector and connected to the game device 3 via the controller I / F36. As described above, 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. Monitor 2 is connected to the video I / F37. An external memory card 5 is connected to the external memory I / F 38, and the backup memory or the like provided in the external memory card 5 can be accessed. The speaker 2a built into the monitor 2 is connected to the audio I / F 39, and the sound data read from the ARAM 35 by the DSP 34 and the sound data directly output from the disk drive 40 are connected so as to be output from the speaker 2a. The disk drive 40 is connected to the disk I / F 41. The disk drive 40 reads the data stored in the optical disc 4 arranged at the predetermined reading position and outputs the data to the bus or the audio I / F 39 of the game device 3.
A controller 7 which is an example of the input device of the present invention will be described with reference to FIGS. 3 and 4. Note that FIG. 3 is a perspective view seen from the rear of the upper surface of the controller 7. FIG. 4 is a perspective view of the controller 7 as viewed from the rear of the lower surface.
In FIGS. 3 and 4, the controller 7 has a housing 71 formed by, for example, plastic molding, and the housing 71 is provided with a plurality of operation units 72. The housing 71 has a substantially rectangular parallelepiped shape with its front-rear direction as the longitudinal direction, and has a size that can be gripped by one hand of an adult or a child as a whole.
A cross key 72a is provided on the center front side of the upper surface of the housing 71. The cross key 72a is a cross-shaped four-way push switch, and operating portions corresponding to the four directions (front-back, left-right) indicated by arrows are arranged on the protruding pieces of the cross at 90 ° intervals. When the player presses any of the operation parts of the cross key 72a, either the front, back, left, or right direction is selected. For example, by operating the cross key 72a, the player can instruct the moving direction of the player character or the like appearing in the virtual game world, or can instruct the moving direction of the cursor.
The cross key 72a is an operation unit that outputs an operation signal in response to the above-mentioned direction input operation of the player, but an operation unit of another mode may be used. For example, a composite switch in which a push switch having a ring-shaped operation portion in four directions and a center switch provided at the center thereof may be provided in place of the cross key 72a may be provided. Further, an operation unit that outputs an operation signal according to the tilting direction by tilting the tiltable stick protruding from the upper surface of the housing 71 may be provided instead of the cross key 72a. Further, an operation unit that outputs an operation signal according to the slide direction by sliding the horizontally movable disk-shaped member may be provided instead of the cross key 72a. Further, a touch pad may be provided instead of the cross key 72a. Further, for the switches indicating at least four directions (front, back, left, and right), an operation unit that outputs an operation signal according to the switch pressed by the player may be provided instead of the cross key 72a.
A plurality of operation buttons 72b to 72g are provided on the rear surface side of the cross key 72a on the upper surface of the housing 71. The operation buttons 72b to 72g are operation units that output operation signals assigned to the respective operation buttons 72b to 72g when the player presses the button head. For example, the operation buttons 72b to 72d are assigned functions as an X button, a Y button, a B button, and the like. In addition, the operation buttons 72e to 72g are assigned functions as a select switch, a menu switch, a start switch, and the like. The functions of these operation buttons 72b to 72g are assigned according to the game program executed by the game device 3, but detailed description thereof will be omitted because they are not directly related to the description of the present invention. In the arrangement example shown in FIG. 3, the operation buttons 72b to 72d are arranged side by side along the center front-rear direction of the upper surface of the housing 71. The operation buttons 72e to 72g are arranged side by side between the operation buttons 72b and 72d along the left-right direction on the upper surface of the housing 71. The operation button 72f is a type of button whose upper surface is embedded in the upper surface of the housing 71 so that the player does not accidentally press it.
In addition, an operation button 72h is provided on the front side of the cross key 72a on the upper surface of the housing 71. The operation button 72h is a power switch that remotely turns on / off the power of the game device 3 main unit. The operation button 72h is also a type of button whose upper surface is embedded in the upper surface of the housing 71 so that the player does not accidentally press it.
In addition, a plurality of LED 702s are provided on the rear surface side of the operation button 72c on the upper surface of the housing 71. Here, the controller 7 is provided with a controller type (number) in order to distinguish it from other controllers 7. For example, the LED 702 is used to notify the player of the controller type currently set in the controller 7. Specifically, when transmitting data from the controller 7 to the receiving unit 6, the LED corresponding to the type of the plurality of LEDs 702 is lit according to the controller type.
On the other hand, a recess is formed on the lower surface of the housing 71. As will be clarified later, the recess on the lower surface of the housing 71 is formed at a position where the index finger and the middle finger of the player are located when the player grips the controller 7. An operation button 72i is provided on the inclined surface on the rear surface side of the recess. The operation button 72i is an operation unit that functions as, for example, an A button, and is used for a trigger switch in a shooting game, an operation for drawing a player object to a predetermined object, and the like.
Further, on the front surface of the housing 71, an image pickup device 743 forming a part of the image pickup information calculation unit 74 is provided. Here, the image pickup information calculation unit 74 is a system for analyzing the image data captured by the controller 7, determining a place having high brightness in the image data, and detecting the position of the center of gravity and the size of the place. Since the sampling cycle is up to 200 frames / sec, even relatively high-speed movement of the controller 7 can be tracked and analyzed. A connector 73 is provided on the rear surface of the housing 70. The connector 73 is, for example, a 32-pin edge connector, and is used for fitting and connecting to, for example, a connection cable. Since the information from the imaging information calculation unit 74 is not used in the present invention, further description thereof will be omitted here.
Here, in order to make the explanation concrete, the coordinate system set for the controller 7 is defined. As shown in FIGS. 3 and 4, XYZ axes that are orthogonal to each other are defined for controller 7. Specifically, the longitudinal direction of the housing 71, which is the front-rear direction of the controller 7, is the Z-axis, and the front surface of the controller 7 (the surface on which the image pickup information calculation unit 74 is provided) is the Z-axis positive direction. Further, the vertical direction of the controller 7 is defined as the Y axis, and the direction of the upper surface of the housing 71 (the surface provided with the cross key 72a or the like) is defined as the positive direction of the Y axis. Further, the left-right direction of the controller 7 is defined as the X-axis, and the direction of the left side surface of the housing 71 (the side surface not represented by FIG. 3 but represented by FIG. 4) is defined as the X-axis positive direction.
Next, the internal structure of the controller 7 will be described with reference to FIG. Note that FIG. 5A is a perspective view showing a state in which the upper housing (a part of the housing 71) of the controller 7 is removed. FIG. 5B is a perspective view showing a state in which the lower housing (a part of the housing 71) of the controller 7 is removed. Here, the substrate 700 shown in FIG. 5B is a perspective view seen from the back surface of the substrate 700 shown in FIG. 5A.
In FIG. 5 (a), the board 700 is fixed inside the housing 71, and the operation buttons 72a to 72h, the acceleration sensor 701, the LED702, the crystal oscillator 703, and the wireless module are mounted on the upper main surface of the board 700. 753, antenna 754, etc. are provided. Then, these are connected to the microcomputer 751 (see FIG. 6) by a wiring (not shown) formed on the substrate 700 or the like. The acceleration sensor 701 detects and outputs acceleration that can be used to calculate inclination, vibration, etc. in the three-dimensional space in which the controller 7 is arranged.
More specifically, as shown in FIG. 6, the controller 7 preferably includes a 3-axis accelerometer 701. The three-axis accelerometer 701 linearly accelerates in three directions: the vertical direction (Y-axis shown in FIG. 3), the horizontal direction (X-axis shown in FIG. 3), and the front-back direction (Z-axis shown in FIG. 3). Is detected. Further, in another embodiment, depending on the type of control signal used for game processing, a two-axis acceleration that detects only linear acceleration along each of the X-axis and the Y-axis (or other paired axes). Detection means may be used. For example, this 3-axis or 2-axis accelerometer 701 is available from Analog Devices, Inc. It may be of the type available from Inc.) or STMicroelectronics NV. The accelerometer 701 is preferably a capacitance type (capacitive coupling type) based on the technology of MEMS (Micro Electro Mechanical Systems) that has been microprocessed in silicon. However, a 3-axis or 2-axis accelerometer 701 may be provided using existing accelerometer technology (eg, piezoelectric or piezoelectric resistance) or other suitable technology developed in the future.
As is known to those skilled in the art, an acceleration detecting means such as that used in the acceleration sensor 701 can detect only acceleration (linear acceleration) along a straight line corresponding to each axis of the acceleration sensor. That is, the direct output from the accelerometer 701 is a signal indicating linear acceleration (static or dynamic) along each of its two or three axes. Therefore, the acceleration sensor 701 cannot directly detect physical characteristics such as movement, rotation, rotational movement, angular displacement, inclination, position, or posture along a non-linear (for example, arcuate) path.
However, those skilled in the art will appreciate that further information about the controller 7 can be inferred or calculated (determined) by performing additional processing on the acceleration signal output from the accelerometer 701. It will be easy to understand from the explanation. For example, when static acceleration (gravitational acceleration) is detected, the output from the acceleration sensor 701 is used to calculate the inclination of the target (controller 7) with respect to the gravity vector by calculation using the inclination angle and the detected acceleration. It can be determined. In this way, by using the acceleration sensor 701 in combination with the microcomputer 751 (or other processor), the tilt, attitude, or position of the controller 7 can be determined. Similarly, a variety of controllers 7 by processing the acceleration signals generated by the accelerometer 701 when the controller 7 with the accelerometer 701 is dynamically accelerated and moved by the user, for example as described below. Can calculate movement and / or position. In another embodiment, the acceleration sensor 701 is a built-in signal processor or the like for performing desired processing on the acceleration signal output from the built-in acceleration detection means before outputting the signal to the microcomputer 42. It may be provided with a dedicated processing device of the above type. For example, if the accelerometer is for detecting static acceleration (eg, gravitational acceleration), the built-in or dedicated processing device will use the detected accelerometer as the corresponding tilt angle (or other). It may be converted into a preferred parameter).
In addition, the controller 7 functions as a wireless controller by the communication unit 75 having the wireless module 753 and the antenna 754. The crystal oscillator 703 generates the basic clock of the microcomputer 751 described later.
On the other hand, in FIG. 5B, the imaging information calculation unit 74 is provided at the front end edge on the lower main surface of the substrate 700. The image pickup information calculation unit 74 is composed of an infrared filter 741, a lens 742, an image sensor 743, and an image processing circuit 744 in this order from the front of the controller 7, and each is attached to the lower main surface of the substrate 700. Further, the connector 73 is attached to the rear end edge on the lower main surface of the substrate 700. The operation button 72i is mounted on the lower main surface of the board 700 behind the image pickup information calculation unit 74, and the battery 705 is housed further behind it. A vibrator 704 is mounted on the lower main surface of the substrate 700 between the battery 705 and the connector 73. The vibrator 704 may be, for example, a vibration motor or a solenoid. Since vibration is generated in the controller 7 by operating the vibrator 704, the vibration is transmitted to the hand of the player holding it, and a so-called vibration-compatible game can be realized.
Next, the internal configuration of the controller 7 will be described with reference to FIG. Note that FIG. 6 is a block diagram showing the configuration of the controller 7.
The image pickup information calculation unit 74 includes an infrared filter 741, a lens 742, an image sensor 743, and an image processing circuit 744. The infrared filter 741 allows only infrared rays to pass from light incident from the front of the controller 7. The lens 742 collects infrared rays transmitted through the infrared filter 741 and emits them to the image sensor 743. The image sensor 743 is a solid-state image sensor such as a CMOS sensor or a CCD, and captures infrared rays focused by the lens 742. Therefore, the image sensor 743 captures only the infrared rays that have passed through the infrared filter 741 to generate image data. The image data generated by the image sensor 743 is processed by the image processing circuit 744. Specifically, the image processing circuit 744 processes the image data obtained from the image sensor 743 to detect the high-luminance portion, and the communication unit 75 transmits the processing result data indicating the result of detecting the position coordinates and the area thereof. Output to. The image pickup information calculation unit 74 is fixed to the housing 71 of the controller 7, and the image pickup direction can be changed by changing the direction of the housing 71 itself.
As described above, the acceleration sensor 701 detects and outputs acceleration in each of the three axis components of the controller 7 in the vertical direction (Y-axis direction), the horizontal direction (X-axis direction), and the front-rear direction (Z-axis direction). It is a sensor that does. The data indicating the acceleration of the three-axis components detected by the acceleration sensor 701 is output to the communication unit 75, respectively. The movement of the controller 7 can be determined based on the acceleration data output from the acceleration sensor 701. As the acceleration sensor 701, an acceleration sensor that detects acceleration for any two axes may be used according to the data required for a specific application.
The communication unit 75 includes a Micro Computer (microcomputer) 751, a memory 752, a wireless module 753, and an antenna 754. The microcomputer 751 controls the wireless module 753 that wirelessly transmits transmission data while using the memory 752 as a storage area during processing.
Operation signals (key data) from the operation unit 72 provided on the controller 7, acceleration signals in the three-axis directions (acceleration data in the X, Y, and Z-axis directions) from the acceleration sensor 701, and imaging information calculation unit 74. The processing result data is output to the microcomputer 751. The microcomputer 751 temporarily stores each input data (key data, X, Y, and Z-axis direction acceleration data, processing result data) in the memory 752 as transmission data to be transmitted to the receiving unit 6. Here, wireless transmission from the communication unit 75 to the receiving unit 6 is performed at predetermined intervals, but the game processing is generally performed in units of 1/60 seconds, so it is shorter than that. It is necessary to perform transmission in a cycle. Specifically, the processing unit of the game is 16.7 ms (1/60 seconds), and the transmission interval of the communication unit 75 composed of Bluetooth (registered trademark) is 5 ms. When the transmission timing to the receiving unit 6 arrives, the microcomputer 751 outputs the transmission data stored in the memory 752 as a series of operation information, and outputs the transmission data to the wireless module 753. And the wireless module 753 is, for example, Bluetooth (Bluetooth; Using the technology of (registered trademark), operation information is radiated from the antenna 754 as its radio signal using a carrier wave of a predetermined frequency. That is, the key data from the operation unit 72 provided in the controller 7, the X, Y, and Z-axis direction acceleration data from the acceleration sensor 701, and the processing result data from the imaging information calculation unit 74 are transmitted from the controller 7. .. Then, the receiving unit 6 of the game device 3 receives the radio signal, and the game device 3 demolishes or decodes the radio signal to perform a series of operation information (key data, X, Y, and Z-axis acceleration data). , And processing result data). Then, the CPU 30 of the game device 3 performs game processing based on the acquired operation information and the game program. When the communication unit 75 is configured by using the technology of Bluetooth (registered trademark), the communication unit 75 can also have a function of receiving transmission data wirelessly transmitted from another device.
Next, before explaining the specific processing performed by the game device 3, the outline of the game performed by the game device 3 will be described. As shown in FIG. 7, the controller 7 has a size that can be grasped by one hand of an adult or a child as a whole. Then, in order to play a game using the controller 7 in the game system 1, the player holds the controller 7 with one hand (for example, the right hand) so that the front surface of the controller 7 faces the front direction of the player. For example, the player attaches the thumb to the left side of the controller 7, the palm to the upper surface of the controller 7, the index finger, the middle finger, the ring finger, and the little finger to the lower surface of the controller 7, and the front surface of the controller 7 is exposed in the front direction of the player. Then, hold the controller 7 as if you were holding a tennis racket.
The player swings the arm holding the controller 7 from right to left when viewed from the player according to the game image represented by the monitor 2 (hereinafter, referred to as "left swing"), or the controller 7 By swinging the arm holding the player from left to right when viewed from the player (hereinafter referred to as "right swing"), operation information (specifically, X, Y, and Z) is transmitted from the controller 7. Axial acceleration data) is given to the game controller 3. In addition to the above-mentioned left and right swings, the player swings left and right while swinging the controller 7 from bottom to top, swings left and right while swinging controller 7 from top to bottom, and controller 7. By swinging left or right while twisting to the right or left, various X, Y, and Z axis direction acceleration data can be given to the game device 3 from the controller 7.
As shown in FIG. 8, a tennis game or the like is represented on the monitor 2 according to the X, Y, and Z-axis direction acceleration data received from the controller 7. Specifically, the tennis court set in the virtual game space is displayed on the monitor 2 as a three-dimensional game image. Then, in the virtual game space, a player character PC operated by the player, an opponent character EC which is an opponent player of the player character PC, a ball character BC indicating a tennis ball moving on the tennis court, and the like are arranged on the monitor 2. Be expressed. Hereinafter, in order to make the explanation concrete, a game program expressing a tennis game is stored in the optical disk 4, and a motion discrimination process for the CPU 30 to discriminate the motion of the controller 7 in the tennis game process will be described.
The player character PC has a tennis racket and is arranged on the tennis court set in the virtual game space. Then, in response to the action of the player swinging the controller 7, the player character PC also expresses an animation of swinging the tennis racket. Then, when the player character PC hits back the incoming ball character BC with a tennis racket, the ball character BC hit by the tennis racket flies toward the court on the opponent character EC side. In other words, when the player grasps and shakes the controller 7, the player character PC also expresses the action of swinging the tennis racket, as if the player is swinging the tennis racket and playing tennis. You can experience a virtual sports game.
For example, when the player character PC represents a right-handed tennis player, the player grasps the controller 7 and swings to the left, so that the player character PC swings the tennis racket with the forehand. On the other hand, when the player grasps the controller 7 and "swings to the right", the player character PC swings the tennis racket with the backhand. That is, the player character PC swings the tennis racket in the same direction according to the direction in which the player swings the controller 7.
Further, the direction and speed at which the ball character BC hit by the tennis racket swung by the player character PC changes according to the timing and speed at which the player swings the controller 7. Further, when the player swings left or right while swinging up / down the controller 7, the trajectory height of the ball character BC changes. Further, when the player swings the controller 7 while twisting it to the right or left, the ball character BC with so-called topspin or underspin can be returned to the opponent character EC. As will become clear later, these movements can be distinguished by the X, Y, and Z-axis acceleration data output from the controller 7, and tennis that reflects the various movements that the player has added to the controller 7. Can express the game.
First, a method of determining whether or not the controller 7 has been shaken will be described. First, when the Z-axis direction acceleration data shows a value in the Z-axis positive direction exceeding the threshold value, the game device 3 determines that the player has swung the controller 7. For example, when the controller 7 is stationary, the accelerometer 701 has a gravitational acceleration of 9.8 m / s.<sup>2</sup>Acceleration exceeding is not detected. On the other hand, when the player grips the controller 7 and swings his arm as described above, the front end of the controller 7 moves in an arcuate trajectory, so that the Z-axis is positive due to the influence of centrifugal force (see FIG. 3). ) Acceleration is detected. In this embodiment, a threshold value equal to or higher than the gravitational acceleration is set, and when the Z-axis direction acceleration data indicates an acceleration exceeding the threshold value, it is determined that the player is swinging the controller 7.
Next, with reference to FIG. 9, a method of determining the direction in which the controller 7 is being swung will be described based on the acceleration data in the X and Y axis directions when it is determined that the controller 7 is being swung. Note that FIGS. 9 (a) to 9 (d) are examples of graphs in which the positive / negative and magnitude of the acceleration indicated by the acceleration data in the X and Y axis directions are the X and Y axes, respectively. Then, the accelerations indicated by the X and Y-axis direction acceleration data obtained at the same time for each income time (for example, every 5 ms) are plotted in the XY coordinate system in order. In FIGS. 9 (a) to 9 (d), the accelerations indicated by the acceleration data in the X and Y-axis directions obtained at the same time are shown as points P, respectively, and are shown by connecting them with arrows in the order in which the data were obtained. Further, in FIGS. 9 (a) to 9 (d), the origin (X, Y) = (0,0) is the value of the acceleration data in the state where no acceleration including the gravitational acceleration is added to the acceleration sensor 701. The magnitude of gravitational acceleration is indicated as "1" (corresponding to the position indicated by the broken line).
When the controller 7 is gripped and shaken, the start of the swing is accelerated and the end of the swing is decelerated. Therefore, in the controller 7, after the acceleration in the same direction as the swinging direction is generated at the beginning of the swing, the magnitude of the acceleration gradually decreases, and the acceleration is accelerated in the direction opposite to the swinging direction at the end of the swing. Occurs. On the other hand, in general, the acceleration vector (or the positive / negative of the acceleration) output from the acceleration sensor 701 is a vector that is the exact opposite of the acceleration direction of the controller 7. Therefore, the acceleration sensor 701 detects the acceleration in the direction opposite to the direction in which the controller 7 is swinging at the beginning of the swing, and then gradually decreases in the magnitude of the acceleration in the same direction as the direction in which the controller 7 is swinging. Detects acceleration.
For example, when the top surface of the controller 7 is turned upward and accelerated horizontally by swinging left (that is, the acceleration direction of the controller 7 is the positive direction of the X axis), the acceleration vector obtained from the acceleration sensor 701 is a vector in the negative direction of the X axis. Will be obtained. Therefore, if the acceleration indicated by the acceleration data in the X and Y-axis directions obtained at the same time during shaking is plotted in the XY coordinate system, the plot starts from the negative direction in the X-axis when the controller 7 starts swinging. Then, since the end of swing of the controller 7 is deceleration, it is plotted in the positive direction of the X-axis. Further, since the gravitational acceleration is always acting on the acceleration sensor 701, the acceleration of magnitude "1" is detected in the vertical direction (here, the negative direction of the Y axis). Therefore, when the upper surface of the controller 7 is swung horizontally to the left, the acceleration in the X-axis direction gradually changes from the negative X-axis direction to the positive X-axis direction (X + direction), and the acceleration in the Y-axis direction becomes "-. The points P that became constant at "1" are plotted in the XY coordinate system in order (Fig. 9 (a)).
Also, when the upper surface of the controller 7 is accelerated horizontally by swinging left toward the left 90 ° direction when viewed from the player (that is, the acceleration direction of the controller 7 is the positive direction of the Y axis), it is used as an acceleration vector obtained from the acceleration sensor 701. Will give a vector in the negative direction of the Y axis. Therefore, if the acceleration indicated by the acceleration data in the X and Y-axis directions obtained at the same time during shaking is plotted in the XY coordinate system, the plot starts from the negative direction in the Y-axis when the controller 7 starts swinging. Then, since the end of the swing of the controller 7 is deceleration, it is plotted in the positive direction of the Y axis. Further, since the acceleration sensor 701 is constantly subjected to gravitational acceleration, the acceleration of magnitude "1" is detected in the vertical direction (here, the positive direction of the X-axis). Therefore, when the upper surface of the controller 7 is swung horizontally to the left 90 ° when viewed from the player, the acceleration in the X-axis direction is constant at "+1" and the acceleration in the Y-axis direction is from the Y-axis negative direction to the Y-axis. The points P that sequentially change in the positive direction (Y + direction) are plotted in the XY coordinate system in order (Fig. 9 (b)).
In addition, when the top surface of the controller 7 is directed downward and accelerated horizontally by swinging left (that is, the acceleration direction of the controller 7 is the negative direction of the X axis), the acceleration vector obtained from the acceleration sensor 701 is a vector in the positive direction of the X axis. Will be obtained. Therefore, if the acceleration indicated by the acceleration data in the X and Y-axis directions obtained at the same time during shaking is plotted in the XY coordinate system, the plot starts from the positive direction of the X-axis when the controller 7 starts swinging. Then, since the end of the swing of the controller 7 is deceleration, it is plotted in the negative direction of the X-axis. Further, since the acceleration sensor 701 is constantly subjected to gravitational acceleration, the acceleration of magnitude "1" is detected in the vertical direction (here, the positive direction of the Y axis). Therefore, when the upper surface of the controller 7 is swung horizontally to the left, the acceleration in the X-axis direction gradually changes from the positive X-axis direction to the negative X-axis direction (X-direction), and the acceleration in the Y-axis direction becomes ". The points P that became constant at "+1" are plotted in the XY coordinate system in order (Fig. 9 (c)).
Furthermore, when the upper surface of the controller 7 is accelerated horizontally by swinging left toward the right 90 ° direction when viewed from the player (that is, the acceleration direction of the controller 7 is the negative direction of the Y axis), it is used as an acceleration vector obtained from the acceleration sensor 701. Will give a vector in the positive direction of the Y axis. Therefore, if the acceleration indicated by the acceleration data in the X and Y-axis directions obtained at the same time during shaking is plotted in the XY coordinate system, the plot starts from the positive direction of the Y-axis when the controller 7 starts swinging. Then, since the end of the swing of the controller 7 is deceleration, it is plotted in the negative direction of the Y axis. Further, since the gravitational acceleration is always acting on the acceleration sensor 701, the acceleration of magnitude "1" is detected in the vertical direction (here, the negative direction of the X-axis). Therefore, when the upper surface of the controller 7 is swung horizontally to the left 90 ° to the right when viewed from the player, the acceleration in the X-axis direction is constant at "-1" and the acceleration in the Y-axis direction is from the Y-axis positive direction to the Y-axis. Points P that sequentially change in the negative direction (Y-direction) are plotted in the XY coordinate system in order (Fig. 9 (d)).
As described above, when the player grips the controller 7 and swings to the left, the tendency of the acceleration obtained from the acceleration data in the X and Y axis directions differs depending on the direction in which the player grips the controller 7. However, as is clear from FIGS. 9 (a) to 9 (d), when the player swings the controller 7 to the left, all the points P move clockwise around the origin of the XY coordinate system. .. On the other hand, when the player swings the controller 7 to the right, it is clear that the acceleration tends to be opposite to that of the left swing, and all the points P move counterclockwise around the origin of the XY coordinate system. That is, if the orbital direction in which the plot point P changes is calculated with reference to the origin of the XY coordinate system, it is possible to determine the direction in which the player is swinging the controller 7 (the moving direction of the controller 7). The relationship between the orbital direction in which the plot point P changes and the direction in which the controller 7 is swung changes depending on the setting of the coordinate axis, the characteristics of the accelerometer, the setting of the XY coordinate system, etc. You can adjust the relationship. Specifically, the direction of transition of the acceleration data with respect to the direction of the gravitational acceleration is based on the direction of the gravitational acceleration based on the obtained acceleration data (the direction of the dashed arrow shown in FIGS. 9 (a) to 9 (d)). By analyzing, the direction in which the controller 7 is being swung can be accurately determined.
However, in reality, the transition of the point P plotted in the XY coordinate system is a complicated curve as shown in FIG. 10 due to the influence of the backswing (swinging) and the twist performed before the player swings the controller 7. I often draw. For example, Fig. 10 shows an example of a left-handed transition, but after a counterclockwise transition (point P1 to point P3; transition L) appears at the beginning of the swing, a clockwise transition (point P3 to point) Since P10; transition R) appears, if the swing direction is determined at the time of transition L, it will be determined to be clockwise. Transition L is a data group in which the magnitude of acceleration is relatively small, because the swing strength of the backswing is weak. In addition, the transition is close to the radial direction from the origin, which is due to the controller 7 being swung in a direction different from that of swinging to the right or swinging to the left. Therefore, it can be said that the data group in which the magnitude of the acceleration is relatively small and the transition from the origin to the radial direction is low in reliability for determining the swing direction. Therefore, it can be said that the swing direction can be accurately determined by using the transition R, which is a data group in which the magnitude of acceleration is relatively large and the transition is close to the orbital direction centered on the origin. In other words, in order to determine the swing direction, the higher the magnitude of the acceleration, the higher the reliability, and the closer to the circumferential direction around the origin, the higher the reliability.
The above reliability is expressed by the area of a triangle connecting two consecutive acceleration data in time series and the origin. For example, consider the area A45 of a triangle surrounded by a straight line connecting the points P4 and P5 and the origin, which are adjacent in time series, as shown in FIG. In this case, if a triangle is formed using points P having a relatively large acceleration magnitude, the area A45 becomes large. Further, if a triangle is formed by using the point P that changes in the circumferential direction around the origin, the area A45 becomes large. That is, it can be seen that the above reliability can be expressed by the size of the area A45.
FIG. 12 shows the area A13 of the area where the triangle formed by the two adjacent points and the origin are accumulated at the points P1 to P3 that are continuous in time series shown in FIG. 10, and the points P3 to P6. It is a figure which shows the area A36 (the area A13 overlaps a part of the area A36) of the area which accumulated the triangle formed by each of two adjacent points and the origin. As shown in FIG. 12, the area A13 is the cumulative area of the triangle calculated using the points P1 to P3 showing the counterclockwise transition with respect to the origin. On the other hand, the area A36 is the cumulative area of the triangle calculated using the points P3 to P6 showing the clockwise transition with respect to the origin. As is clear from FIG. 12, the area A13 is much smaller than the area A36. In this embodiment, the area of the clockwise triangle and the area of the counterclockwise triangle are accumulated in chronological order, and when one of the accumulated areas exceeds the threshold value, it is included in the triangle forming the excess accumulated area. The swing direction is determined based on whether the transition of the point P is clockwise or counterclockwise. As a result, it is possible to determine an accurate swing direction while eliminating the influence of unreliable data. Here, it is considered that a more correct swing direction can be determined by analyzing all points P from the start to the end of the swing, but in this embodiment, the swing direction is determined at an early stage in the middle of the swing motion. In order to make a judgment, a judgment is made based on the threshold value.
Next, the determination of the speed at which the player swings the controller 7 will be described. When the player shakes the controller 7 faster, the period from acceleration to deceleration becomes relatively short. On the other hand, when the player shakes the controller 7 slowly, the period from acceleration to deceleration becomes relatively long. That is, when the player swings the controller 7 with the same swing width, the faster the player swings the controller 7, the wider the interval of the points P plotted in the XY coordinate system (hereinafter, may be referred to as a data interval). Therefore, the speed at which the player swings the controller 7 can be calculated by determining the intervals between the points P that are continuous in time series. In this embodiment, all the points P from the start to the end of the swing are analyzed, and among the intervals of the points P that are continuous in time series, the one with the widest interval is extracted and the swing speed is calculated.
Next, with reference to FIGS. 13 to 15, a method of determining the direction in which the controller 7 is twisted based on the acceleration data in the X and Y axis directions when the controller 7 is being shaken will be described. Note that FIG. 13 is a perspective view for explaining the twisting direction of the controller 7. 14 (a) to 14 (c) are examples of graphs showing the acceleration values indicated by the X and Y axis acceleration data according to the twist applied to the controller 7. FIG. 15 is a graph showing an example of the spin parameter S calculated according to the angle θ of FIGS. 14 (a) to 14 (c). Note that FIGS. 14 (a) to 14 (c) are shown by connecting points P in the order in which they were obtained, as in FIG. 9, and no acceleration including gravitational acceleration is applied to the acceleration sensor 701. The value of the acceleration data of is the origin (X, Y) = (0, 0).
In FIG. 13, when the player grips the controller 7 and swings left or right, he / she can further apply a left twist or right twist to the controller 7 about the Z axis. Here, the "left twist" indicates that the controller 7 is rotated counterclockwise around the Z axis when viewed from the player. Further, "right twist" indicates that the controller 7 is rotated clockwise around the Z axis when viewed from the player. The results of these twist determinations are reflected in the spins (topspin and backspin) applied to the ball character BC.
Here, in order to determine the twisted angle of the controller 7 when the controller 7 is swinging, it is necessary to analyze the acceleration data in the X and Y axis directions from the start of the swing to the end of the swing. In this embodiment, the points Ps (that is, the starting point to plot first in the XY coordinate system) indicating the X and Y axis acceleration data obtained at the beginning of the swing and the points indicating the X and Y axis acceleration data obtained at the end of the swing Using Pe (that is, the end point to plot last in the XY coordinate system), the controller 7 determines the twisted angle.
For example, FIG. 14 (a) shows the X and X obtained from the beginning to the end of the swing when the controller 7 is swung horizontally to the left with the top surface facing up (that is, "no twist"). An example of acceleration data in the Y-axis direction is shown. Then, the angle θ formed between the straight line connecting the start point Ps and the origin and the straight line connecting the end point Pe and the origin (hereinafter referred to as the angle θ from the start point Ps to the end point Pe) is calculated, and the angle θ is set to the angle θ. Set the corresponding spin parameter S. In this case, since the direction of gravity acting on the controller 7 is constant, a medium angle θ can be obtained. Here, the angle θ can be obtained by calculating the absolute value of the angle formed by the vector from the origin of the XY coordinate system toward the start point Ps and the vector from the origin toward the end point Pe.
Fig. 14 (b) shows the acceleration data in the X and Y-axis directions obtained from the start to the end of the swing when the controller 7 is swung horizontally to the left while applying a "left twist" with the top surface facing up. An example is shown. In this case, since the direction of gravity acting on the controller 7 changes clockwise according to the twist, the angle θ from the start point Ps to the end point Pe obtained by left twist is larger than the angle θ obtained by no twist. Becomes larger.
Fig. 14 (c) shows the acceleration data in the X and Y-axis directions obtained from the start to the end of the swing when the controller 7 is swung horizontally to the left while applying a "right twist" with the top surface facing up. An example is shown. In this case, since the direction of gravity acting on the controller 7 changes counterclockwise according to the twist, the angle θ from the start point Ps to the end point Pe obtained by right twist is larger than the angle θ obtained by no twist. Becomes smaller.
In this way, by paying attention to the angle θ from the start point Ps to the end point Pe, it is possible to determine the twist direction and the twist angle applied to the controller 7 while swinging. For example, when the controller 7 is "swinged to the left", if the angle θ is larger than the threshold value, it can be determined to be "left twist", and if the angle θ is smaller than the threshold value, it can be determined to be "right twist". When the controller 7 is "swinged to the right", these tendencies appear in reverse. That is, when the controller 7 is "swinged to the right", if the angle θ is larger than the threshold value, it can be determined as "right twist", and if the angle θ is smaller than the threshold value, it can be determined as "left twist". That is, a controller whose rotation axis is the Z-axis orthogonal to the X-axis and the Y-axis, using the start point Ps and the end point Pe that the X-axis direction acceleration data and the Y-axis direction acceleration data indicate as coordinate points in the XY coordinate system. It is possible to discriminate the rotation operation of 7.
In addition, the amount of rotation in which the player twists the controller 7 is determined according to the difference in the size of the angle θ with respect to the size of the angle θ (FIG. 14 (a)) obtained by no twist. Can be done. In this embodiment, using a predetermined conversion table, the angle θ used for twist recognition is replaced with the spin parameter S according to the magnitude of the angle θ, and the subsequent game processing is performed. The spin parameter S is a floating point number of -1.0 to 1.0, which is determined according to the magnitude of the angle θ, for example. Then, in the game processing, the maximum effect of backspin is given when S = -1.0, and the maximum effect of topspin is given when S = 1.0.
For example, as shown in FIG. 15, when the angle θ30 °, the spin parameter S = -1.0 is converted. When 30 ° <angle θ 70 °, the spin parameter S = -1.0 to 0.0 is linearly changed for conversion. When 70 ° <angle θ 120 °, it is converted to the spin parameter S = 0.0. When 120 ° <angle θ 160 °, the spin parameter S = 0.0 to 1.0 is linearly changed for conversion. When 160 ° <angle θ, it is converted to spin parameter S = 1.0. By adjusting these conversion tables, it is possible to adjust the effect of reflecting the twist on the controller 7 in the game processing.
Next, a method of determining the state in which the controller 7 is swung up or down will be described with reference to FIGS. 16 and 17. 16 (a) to 16 (c) are diagrams for explaining the relationship between the vertically tilted state of the controller 7 and their coordinate axes. FIG. 17 is a graph showing an example of the vertical angle UD calculated according to the acceleration data in the Z-axis direction.
In this embodiment, it is determined whether the controller 7 is swung up or down based on the vertical direction of the controller 7 before the start of swinging. For example, when the front surface of the controller 7 is directed downward from the horizontal by a predetermined angle or more before the player starts swinging the controller 7, it is determined that the player swings the controller 7 up and swings. On the other hand, when the front surface of the controller 7 is directed upward from the horizontal by a predetermined angle or more before the player starts swinging the controller 7, it is determined that the player swings the controller 7 down and swings.
Specifically, when it is determined that the controller 7 is swinging, the vertical direction of the controller 7 before the start of swinging is determined based on the Z-axis direction acceleration data obtained for several frames immediately before that. .. For example, as shown in FIG. 16A, if the controller 7 is horizontal before the player starts swinging the controller 7, the gravitational acceleration acts in the negative direction of the Y-axis, so that the gravity is included in the Z-axis acceleration data. The effect of acceleration does not appear. On the other hand, as shown in FIG. 16 (b), when the front surface of the controller 7 is turned from the horizontal to the upward direction before the player starts swinging the controller 7, the gravitational acceleration is in the negative Y-axis direction and the negative Z-axis direction. Since it acts, the Z-axis direction acceleration data shows the Z-axis negative acceleration due to the influence of the gravity acceleration. Further, as shown in FIG. 16 (c), when the front surface of the controller 7 is turned from the horizontal to the downward direction before the player starts swinging the controller 7, the gravitational acceleration is in the negative direction of the Y axis and the positive direction of the Z axis. Since it acts, the Z-axis direction acceleration data shows the Z-axis positive direction acceleration due to the influence of the gravity acceleration. That is, if the Z-axis direction acceleration data before the player starts swinging the controller 7 is analyzed, the vertical direction before the player starts swinging the controller 7 can be determined.
In this embodiment, the obtained Z-axis direction acceleration data is stored in the main memory 33, and when it is determined that the controller 7 is being shaken, the Z-axis direction obtained for the immediately preceding 30 frames is obtained. The average value Zave of the acceleration data is converted to the vertical angle UD of the controller 7, and the subsequent game processing is performed.
For example, as shown in FIG. 17, when the average value Zave -0.2G, the vertical angle is converted to UD = 60 °. When -0.2G <mean value Zave 1.0G, the conversion is performed by changing linearly between the vertical angle UD = 60 ° to -60 °. When 1.0G <mean value Zave, convert to vertical angle UD = -60 °. Here, the balance of the vertical angle UD converted with respect to the mean value Zave is closer to the Z-axis positive direction, but this is because the Z-axis direction acceleration data always swings in the Z-axis positive direction at the beginning of swinging. This is because the effect was taken into consideration. By adjusting these conversion tables, it is possible to adjust the effect of reflecting the Z-axis direction acceleration data obtained before the start of swinging of the controller 7 in the game processing.
Next, the details of the game processing performed in the game system 1 will be described. First, with reference to FIG. 18, the main data used in the game processing will be described. Note that FIG. 18 is a diagram showing main data stored in the main memory 33 of the game device 3.
As shown in FIG. 18, in the main memory 33, acceleration data Da, vertical angle data Db, counterclockwise cumulative area data Dc, clockwise cumulative area data Dd, first ball trajectory data De, second ball trajectory data Df, The first dummy ball data Dg, the second dummy ball data Dh, the ball character data Di, the start point-end point angle data Dj, the spin parameter Dk, the maximum plot interval data Dl, the count data Dm, the image data Dn, etc. are stored. In addition to the data included in the information shown in FIG. 18, the main memory 33 contains data related to the player character PC and opponent character EC appearing in the game (position data, etc.) and data related to the virtual game space (topography data, etc.). Etc., data necessary for game processing is stored.
Acceleration data Da is acceleration data included in a series of operation information transmitted from the controller 7 as transmission data, and the obtained acceleration data is used for a predetermined frame (for example, one frame (1/60) which is a game processing interval). Stores 30 frames) for seconds). The acceleration data Da includes the X-axis direction acceleration data Da1, the Y-axis direction acceleration data Da2, and the Z-axis direction acceleration data Da3, which are detected by the acceleration sensor 701 separately for the three axis components of the X, Y, and Z axes, respectively. Is done. The receiving unit 6 provided in the game device 3 receives the acceleration data Da included in the operation information transmitted from the controller 7 at predetermined intervals, for example, every 5 ms, and stores the acceleration data Da in a buffer (not shown) provided in the receiving unit 6. After that, it is read out every frame, which is the game processing interval, and stored in the main memory 33.
The vertical angle data Db is data indicating the vertical angle UD (see FIGS. 16 and 17) calculated according to the Z-axis direction acceleration data Da3 obtained from the controller 7 before the start of swinging. The counterclockwise cumulative area data Dc is data obtained by accumulating the area of a triangle (see FIG. 12) formed by using acceleration data that moves counterclockwise with respect to the origin in the XY coordinate system. The clockwise cumulative area data Dd is data obtained by accumulating the area (see FIG. 12) of a triangle formed by using the acceleration data that moves clockwise with respect to the origin in the XY coordinate system.
The first ball trajectory data De is data obtained by calculating the trajectory (first ball trajectory TR1) in which the ball character BC moves in the virtual game space based on the data at the initial stage in the motion recognition process described later. The second ball trajectory data Df is data obtained by calculating the trajectory (second ball trajectory TR2) in which the ball character BC moves in the virtual game space based on the data obtained during the entire period of the motion recognition process. The first dummy ball position data Dg includes the first dummy ball velocity data Dg1 and the first dummy ball position data Dg2, and the velocity and position of the first dummy ball to be moved along the trajectory indicated by the first ball trajectory data De. It is velocity vector data and position coordinate data with respect to the virtual game space which shows. The second dummy ball position data Dh includes the second dummy ball velocity data Dh1 and the second dummy ball position data Dh2, and the velocity and position of the second dummy ball to be moved along the trajectory indicated by the second ball trajectory data Df. It is velocity vector data and position coordinate data with respect to the virtual game space which shows. The ball character data Di includes the ball character velocity data Di1 and the ball character position data Di2, and is velocity vector data and position coordinate data with respect to the virtual game space indicating the current velocity and position of the ball character BC.
The start point-end point angle data Dj is data indicating the angle θ (see FIG. 14) from the start point Ps to the end point Pe in the above XY coordinate system. The spin parameter Dk is data indicating the spin parameter S (see FIG. 15) obtained by replacing the angle θ. Maximum plot interval data Dl is the data interval that maximizes the continuous interval in time series when plotted in the XY coordinate system based on the X and Y axis acceleration data obtained during the entire period of the motion recognition process. It is the data to show. The count data Dm is data indicating a count value used in the flowchart described later.
The image data Dn includes the player character image data Dn1 and the ball image data Dn2, and is data for arranging the player character PC and the ball character BC in the virtual game world to generate a game image.
Next, the details of the game processing performed in the game device 3 will be described with reference to FIGS. 19 to 26. Note that FIG. 19 is a flowchart showing the flow of game processing executed in the game device 3. FIG. 20 is a subroutine showing the detailed operation of the initial motion recognition process of step 51 in FIG. FIG. 21 is a subroutine showing the detailed operation of the animation start process of step 52 in FIG. FIG. 22 is a subroutine showing the detailed operation of the first behavior processing of step 53 in FIG. FIG. 23 is a subroutine showing the detailed operation of the second behavior processing of step 54 in FIG. FIG. 24 is a diagram showing the timing at which the motion recognition process, the animation process, and the ball behavior process are performed, respectively. FIG. 25 is a diagram showing an example of ball behavior determined according to the spin parameter S. FIG. 26 is a diagram showing an example of the first ball trajectory TR1 and the second ball trajectory TR2. In the flowcharts shown in FIGS. 19 to 23, among the game processes, the game processes performed based on the game operation by the player shaking the controller 7 will be described, and other game processes not directly related to the present invention will be described. Omits a detailed description. Further, in FIGS. 19 to 23, each step executed by the CPU 30 is abbreviated as S.
When the power of the game device 3 is turned on, the CPU 30 of the game device 3 executes a boot program stored in a boot ROM (not shown), thereby initializing each unit such as the main memory 33. Then, the game program stored in the optical disk 4 is read into the main memory 33, and the CPU 30 starts executing the game program. The flowcharts shown in FIGS. 12 to 15 are flowcharts showing game processing performed after the above processing is completed.
In FIG. 19, the CPU 30 performs initial motion recognition processing (step 51), animation start processing (step 52), first behavior processing (step 53), and second behavior processing (step 54) in this order. The detailed operation contents will be described later. Then, the CPU 30 determines whether or not to end the game (step 55). The conditions for ending the game include, for example, the condition that the game is over (for example, the end of the tennis game played by the player character) is satisfied, the player performs an operation to end the game, and the like. is there. When the game is not finished, the CPU 30 returns to step 51 and repeats the process, and when the game is finished, the CPU 30 ends the process according to the flowchart.
The operation of the initial motion recognition process in step 51 will be described with reference to FIG. 20. First, the CPU 30 acquires acceleration data included in the operation information received from the controller 7 (step 61), and proceeds to the next step. Then, the CPU 30 stores the acquired acceleration data as acceleration data Da in the main memory 33. Here, the acceleration data acquired in step 61 includes the X, Y, and Z-axis direction acceleration data detected by the acceleration sensor 701 divided into three axis components of the X, Y, and Z axes, respectively. .. Here, the communication unit 75 transmits operation information to the game device 3 at predetermined time intervals (for example, 5 ms intervals), and at least acceleration data is stored in a buffer (not shown) provided in the receiving unit 6. Then, the CPU 30 acquires the acceleration data stored in the buffer for each frame, which is a game processing unit, and stores it in the main memory 33.
Next, the CPU 30 uses the acquired acceleration data to determine whether or not the controller 7 has been shaken by the player (step 62). Specifically, the CPU 30 determines that the player has shaken the controller 7 when the Z-axis direction acceleration data acquired in step 61 indicates a value in the Z-axis positive direction that exceeds the threshold value. Then, when the controller 7 is shaken, the CPU 30 proceeds to the next step 63. On the other hand, when the controller 7 is not shaken, the CPU 30 returns to the above step 61 and repeats the process.
In step 63, the CPU 30 determines the vertical direction of the controller 7 before the start of swinging, and proceeds to the next step. Specifically, the CPU 30 calculates the average value Zave of the Z-axis direction acceleration data Da3 for the past several frames (for example, 30 frames) stored in the main memory 33. Then, the CPU 30 converts the average value Zave into a vertical angle UD (see FIG. 17), and stores the data indicating the vertical angle UD as the vertical angle data Db.
Next, the CPU 30 acquires the acceleration data included in the operation information received from the controller 7 by the same processing as in step 61 (step 64), and whether or not the Z-axis direction data of the acquired acceleration data is equal to or less than the threshold value. It is determined whether or not the player has finished swinging the controller 7 based on (step 65). Then, if the operation of shaking the controller 7 continues, the CPU 30 proceeds to the next step 66. On the other hand, when the operation of shaking the controller 7 is completed, the CPU 30 returns to the above step 51 and repeats the process.
In step 66, the CPU 30 accumulates the triangular area formed with the origin in the XY coordinate system based on the acceleration data earned in step 64, and proceeds to the next step. Specifically, as explained with reference to FIG. 12, when the acceleration data earned in step 64 is moving counterclockwise with respect to the origin of the XY coordinate system, the CPU 30 is a triangle formed appropriately. The area of is accumulated and stored in the counterclockwise cumulative area data Dc. On the other hand, when the acceleration data earned in step 64 above changes clockwise with respect to the origin of the XY coordinate system, the CPU 30 accumulates and stores the area of the appropriately formed triangle in the clockwise cumulative area data Dd. To do.
Next, the CPU 30 determines the interval (data interval) plotted in the XY coordinate system based on the acceleration data earned in step 64 above (step 67), and proceeds to the next step. Specifically, when the obtained data interval is wider than the data interval currently stored in the maximum plot interval data Dl, the CPU 30 updates the maximum plot interval data Dl to the obtained data interval. On the other hand, if the obtained data interval is the same as or narrower than the data interval currently stored in the maximum plot interval data Dl, the CPU 30 proceeds to the next step as it is.
Next, the CPU 30 determines whether or not either the cumulative area indicated by the counterclockwise cumulative area data Dc or the cumulative area indicated by the clockwise cumulative area data Dd exceeds the threshold value (step 68). Then, when any one of the cumulative areas exceeds the threshold value, the CPU 30 ends the process by the subroutine and proceeds to the process in step 52. On the other hand, when the cumulative area does not exceed the threshold value, the CPU 30 returns to step 64 and repeats the process.
The operation of the animation start processing in step 52 described above will be described with reference to FIG. 21. After the process of step 68, the CPU 30 determines the direction swung with respect to the controller 7 (step 71), and proceeds to the next step. For example, in step 68, when it is determined that the cumulative area indicated by the counterclockwise cumulative area data Dc exceeds the threshold value, the player assumes that the acceleration data is moving counterclockwise around the origin of the above-mentioned XY coordinate system. It is determined that the controller 7 is "clockwise" (see Fig. 7). On the other hand, in step 68, when it is determined that the cumulative area indicated by the clockwise cumulative area data Dd exceeds the threshold value, the player considers that the acceleration data is moving clockwise around the origin of the above-mentioned XY coordinate system. It is determined that the controller 7 is "swinged to the left" (see Fig. 7).
As is clear from the processing in steps 68 and 71, in step 71, when either the cumulative area indicated by the counterclockwise cumulative area data Dc or the cumulative area indicated by the clockwise cumulative area data Dd exceeds the threshold value. It is not a process that is executed when the player finishes swinging the controller 7. As shown in FIG. 24, the process of recognizing the operation from the start of swinging the controller 7 to the end of swinging the controller 7 (motion recognition process) is performed from time T1 to T4. On the other hand, the process of expressing the animation of the player character PC swinging the tennis racket (animation process) is performed after the time T2, and is started from the middle of the motion recognition process. That is, the swing direction with respect to the controller 7 is determined in the middle stage from the start of swinging the controller 7 to the end of swinging, and is reflected in the game image. Here, the initial motion recognition process in step 51 is a process performed at times T1 to T2 among the motion recognition processes.
The relationship between the distinction of the cumulative area exceeding the threshold value and the direction in which the controller 7 is swung changes depending on the setting of the coordinate axis in the controller 7, the characteristics of the acceleration sensor, the setting of the XY coordinate system, etc. The relationship may be adjusted according to the setting. Specifically, if the relationship between the distinction between the cumulative areas exceeding the threshold and the swing direction is analyzed with reference to the direction of gravitational acceleration based on the obtained acceleration data, the direction in which the controller 7 is swinging can be accurately determined. Can be determined.
Next, the CPU 30 determines that the player character PC hits the ball character BC back (step 72), and determines whether or not the player character PC misses the ball (step 73). Here, in the steps executed so far, the player character PC has not started the operation of swinging the racket. However, the CPU 30 arrives from the data of the current position of the player character PC and the predicted position after that, the current position of the ball character BC and the predicted trajectory after that, the direction in which the player character PC swings the tennis racket, and the like. It is possible to predict and determine the hit that hits the ball character BC by this swing. Then, when the player character PC is predicted to miss the swing, the CPU 30 starts a process of displaying the animation of the player character PC missed on the monitor 2 (step 76), and proceeds to step 55 to perform the process. On the other hand, when the player character PC is predicted to hit back the ball character BC, the CPU 30 proceeds to the next step 74.
In step 74, the CPU 30 calculates the time t from the present time until the player character PC hits the ball character BC, starts counting, and updates the count data Dn. Then, the CPU 30 starts a process of displaying an animation in which the player character PC hits the ball character BC on the monitor 2 (step 75), and proceeds to the next step. The animation to hit back is expressed by a swing according to the vertical angle UD. That is, an animation is expressed in which the player character PC swings up or down the tennis racket in the vertical direction indicated by the vertical angle UD.
Next, the CPU 30 acquires acceleration data included in the operation information received from the controller 7 (step 77), and determines whether or not the player has finished swinging the controller 7 based on the acquired acceleration data. (Step 78). Then, if the operation of shaking the controller 7 continues, the CPU 30 proceeds to the next step 79. On the other hand, when the operation of shaking the controller 7 is completed, the CPU 30 proceeds to the next step 101. Since the acceleration data acquisition process in step 77 is the same as in step 61 described above, detailed description thereof will be omitted. Further, the swing determination method in step 78 is the same as in step 62 described above except that the acceleration data acquired in step 77 is used, and thus detailed description thereof will be omitted.
In step 79, the CPU 30 determines the interval (data interval) plotted in the XY coordinate system based on the acceleration data earned in step 77. The data interval determination process in step 79 is the same as in step 67 except that the acceleration data acquired in step 77 is used, and thus detailed description thereof will be omitted. Next, the CPU 30 determines whether or not the count value of the current count data Dn has reached the time t (step 80). Then, when the current count value has not reached the time t, the CPU 30 updates the count value of the count data Dn (step 81), returns to the above step 77, and repeats the process. On the other hand, when the current count value reaches the time t, the CPU 30 ends the process by the subroutine and proceeds to the process in step 53.
The operation of the first behavior processing in step 53 will be described with reference to FIG. 22. After the process of step 80, the CPU 30 calculates the initial velocity, direction, and position of hitting the ball character BC, displays the ball character BC at the position (step 91), and proceeds to the next step. Specifically, the CPU 30 indicates the speed and direction of the ball character BC by a speed vector (vx, vy, vz), and stores data indicating the speed vector in the ball character speed data Di1. Here, the magnitude of the velocity vector (vx, vy, vz) is set by a fixed value. The direction of the velocity vector (vx, vy, vz) is based on the direction in which the player swings the controller 7, the relationship between the timing when the player starts swinging the controller 7 and the timing when the ball character BC arrives, the vertical angle UD, and the like. Set. Specifically, the left-right direction in which the ball character BC is hit back is the left-right direction in which the player character PC swings the tennis racket (that is, the swing direction of the controller 7) and the timing of hitting the ball character BC (that is, the start of swinging the controller 7). Timing). Further, the vertical direction in which the ball character BC is hit back is determined in the vertical direction in which the player character PC swings the tennis racket (that is, the vertical angle UD). For example, when the vertical angle UD is a positive angle, the ball character BC is swung down, so the velocity vector of the ball character BC is set in a low direction according to the numerical value of the vertical angle UD. Further, when the vertical angle UD is a negative angle, the ball character BC is swung up, so the velocity vector of the ball character BC is set in a high direction according to the numerical value of the vertical angle UD. Further, the CPU 30 indicates the position where the ball character BC is hit by the tennis racket of the player character PC by the position coordinates (x, y, z) in the virtual game space, and the data indicating the position coordinates is converted into the ball character position data Di2. Store.
Next, the CPU 30 acquires the acceleration data included in the operation information received from the controller 7 (step 92). Then, the CPU 30 determines the interval (data interval) plotted in the XY coordinate system based on the acceleration data earned in step 92 (step 93), and proceeds to the next step. Since the acceleration data acquisition process in step 92 is the same as in step 61 described above, detailed description thereof will be omitted. Further, the data interval determination process in step 93 is the same as in step 67 except that the acceleration data acquired in step 92 is used, and thus detailed description thereof will be omitted.
Next, the CPU30 performs the first ball trajectory TR1 based on the velocity vector (vx, vy, vz) and the position coordinates (x, y, z) stored in the current ball character velocity data Di1 and the ball character position data Di2. Is calculated, the ball character BC is moved along the first ball trajectory TR1 and displayed on the monitor 2 (step 94). CPU30 pseudo-or strictly defines real-world physics (eg gravity, air resistance, wind effects) in virtual game space, velocity vectors (vx, vy, vz), position coordinates (x). , Y, z), spin parameter S (here, S = 0.0), and the first ball trajectory TR1 is calculated based on the physical law and stored in the first ball trajectory data De. Then, the velocity vector (vx, vy, vz) and the position coordinates (x, y, z) of the ball character BC are newly calculated so as to move along the first ball trajectory TR1. Then, the CPU30 stores the new velocity vector (vx, vy, vz) and the position coordinates (x, y, z) in the ball character velocity data Di1 and the ball character position data Di2, and stores the position coordinates (x, y, z). The ball character BC is displayed on monitor 2 in z). Then, the CPU 30 advances the process to the next step.
Next, the CPU 30 determines whether or not the player has finished swinging the controller 7 based on the acceleration data acquired in step 92 (step 95). Then, when the operation of shaking the controller 7 continues, the CPU 30 returns to the above step 92 and repeats the process. On the other hand, when the operation of shaking the controller 7 is completed, the CPU 30 proceeds to the next step 54. Since the swing determination method in step 95 is the same as step 62 described above except that the acceleration data acquired in step 92 is used, detailed description thereof will be omitted.
As is clear from the processes of steps 91 to 95, the first behavior process is a process from when the ball character BC is hit until the player finishes swinging the controller 7. As shown in FIG. 24, the process of expressing the behavior of the ball character BC being hit back (ball behavior process) is performed after time T3, and is started from the middle of the motion recognition process. That is, the appearance of the ball character BC being hit back is reflected in the game image based on the operation information (acceleration data) determined in the middle stage from the start of swinging the controller 7 to the end of swinging. Here, the animation start process in step 52 is a process performed at times T2 to T3 among the animation processes. Further, the first behavior processing in step 53 is a processing performed at times T3 to T4 among the ball behavior processing. Further, the second behavior processing described later is a processing for expressing the behavior in which the ball character BC is hit back after the player finishes swinging the controller 7, and is a processing performed after the time T4 in the ball behavior processing.
The operation of the second behavior processing in the above step 54 will be described with reference to FIG. 23. After the process of step 95, the CPU 30 calculates the angle θ from the start point Ps to the end point Pe (see FIG. 14) and stores it in the start point-end point angle data Dj (step 101). Next, the CPU 30 converts the angle θ into the spin parameter S (see FIG. 15) and stores it in the spin parameter Dk (step 102). Then, the CPU30 calculates the velocity vector (v2x, v2y, v2z) of the second dummy ball based on the data interval stored in the maximum plot interval data Dl, and stores it in the second dummy ball velocity data Dh1 ( Step 103), the process proceeds to the next step.
Here, the velocity vector (v2x, v2y, v2z) of the second dummy ball goes back to the time when the player character PC hits the ball character BC with the tennis racket (time T3 shown in FIG. 24), and the above data interval (that is, that is). The velocity vector of the ball character BC is recalculated by adding the influence of (the velocity at which the controller 7 is swung). Therefore, the magnitude of the velocity vector (v2x, v2y, v2z) is set according to the above data interval. Specifically, when the data interval is relatively wide, the magnitude of the velocity vector is set relatively large, and when the data interval is relatively narrow, the magnitude of the velocity vector is set relatively narrow. .. Then, the direction of the velocity vector (v2x, v2y, v2z) is set in the same manner as in step 91 above.
Next, the CPU 30 performs a process of adjusting the animation in which the player character PC started in step 75 hits the ball character BC and displays it on the monitor 2 (step 104), and proceeds to the next step. This is because in step 75 (time T2 shown in FIG. 24), only the left-right and up-down directions and the timing at which the player swings the controller 7 are known, so the animation based only on that information is started. ing. However, in step 104 (time T4 shown in FIG. 24), the twist angle applied to the controller 7 by the player and the speed at which the controller 7 is swung are further known, so that the animation based on more information can be reproduced. That is, from step 104, the animation started from step 75 is adjusted to an animation that reflects the swing that adds topspin and backspin found from the twist angle and the swing speed that is found from the data interval. Display on monitor 2.
Next, the CPU 30 refers to the ball character position data Di2 and determines whether or not the ball character BC has reached a predetermined space in the virtual game space (step 105). Here, the predetermined space is, for example, a space on the opponent's court set in the virtual game space or a space outside (out) the tennis court. Then, when the ball character BC has not reached the predetermined space, the CPU 30 proceeds to the next step 106. On the other hand, when the ball character BC has reached a predetermined space, the CPU 30 proceeds to the next step 109.
In step 106, the CPU 30 calculates the first ball trajectory TR1 and the second ball trajectory TR2, and performs a process of interpolating the trajectory of the ball character BC from the first ball trajectory TR1 to the second ball trajectory TR2. Then, the CPU 30 moves the ball character BC along the interpolated trajectory to update the ball character speed data Di1 and the ball character position data Di2, and displays the ball character BC on the monitor 2 (step 107). The process proceeds to the next step 108.
The second ball trajectory TR2 and the interpolation process will be described with reference to FIGS. 25 and 26. The first ball trajectory TR1 calculated in step 94 is the trajectory of the ball character BC calculated only by the information recognized in the initial motion recognition process (horizontal and vertical swing directions of the controller 7, swing timing). On the other hand, the second ball trajectory TR2 is the trajectory of the ball character BC calculated by adding the information (twist angle to the controller 7 and the swing speed) that can be recognized by the entire motion recognition process.
The second ball trajectory TR2, like the first ball trajectory TR1, defines the physical laws of the real world in the virtual game space, and defines the velocity vector (v2x, v2y, v2z), position coordinates (x2, y2, z2), and spin. It is calculated based on the parameter S and the relevant physical law and stored in the second ball trajectory data Df. The CPU30 uses the position coordinates (x2, y2, z2) and the velocity vector (v2x, v2y, v2z) obtained in step 103 to determine the position where the ball character BC is hit by the tennis racket of the player character PC. The second ball trajectory TR2 is calculated by adding the influence of the spin parameter S to the trajectory calculated in the same manner as the one-ball trajectory TR1.
As shown in FIG. 25, when the player "swings left" while applying a "left twist" to the controller 7, or the player "swings right" while applying a "right twist" to the controller 7, the spin parameter S> 0.0. "Topspin" is expressed. On the other hand, when the player "swings to the left" while adding a "right twist" to the controller 7, or the player "swings to the right" while adding a "left twist" to the controller 7, the spin parameter S <0.0 and "backspin". Is expressed. When the spin parameter S indicates topspin (S> 0.0), the CPU30 changes the trajectory so that it plummets in the vertical direction. In addition, when the spin parameter S indicates backspin (S <0.0), the CPU30 bends in the horizontal direction according to the swing direction so that the flight distance increases in the vertical direction (to the right in "left swing"). Turn, change the trajectory so that "turn right" turns left). Then, when the spin parameter S indicates no spin (S = 0.0), the CPU 30 does not add a change due to the spin parameter S to the orbit.
As shown in FIGS. 24 and 26, the second ball trajectory TR2 is calculated at the time T4 when the controller 7 finishes swinging, so that the ball character BC displayed on the monitor 2 is already along the first ball trajectory TR1. (Thick line between times T3 and T4 in Fig. 26). On the other hand, since the trajectory that reflects all the data obtained by the player swinging the controller 7 is the second ball trajectory TR2, the trajectory of the ball character BC is changed from the first ball trajectory TR1 to the second ball trajectory TR2. It is desirable to move it. Therefore, in order to move the ball character BC along the second ball trajectory TR2 without giving the player a sense of discomfort, the first ball trajectory TR1 to the second ball trajectory TR2 must be smoothly connected (FIG. 26). Thick line between times T4 and T5). In this embodiment, in the process of connecting from the first ball trajectory TR1 to the second ball trajectory TR2 (time T4 to T5 shown in FIG. 16), dummy balls that are not displayed are flown along each trajectory, and the dummy ball positions are formed. The position where the space is interpolated is the position of the ball character BC.
The CPU30 sets the dummy ball to fly along the first ball trajectory TR1 as the first dummy ball B1, and sets the first dummy ball velocity (v1x, v1y, v1z) and the first dummy ball position (x1, y1, z1) to the first. It is used as the ball parameter of the dummy ball. In addition, the CPU30 sets the dummy ball to fly along the second ball trajectory TR2 as the second dummy ball B2, and sets the second dummy ball velocity (v2x, v2y, v2z) and the second dummy ball position (x2, y2, z2). It is used as the ball parameter of the second dummy ball. Then, the interpolation time Ti is set as the time required for interpolation (time T5-T4 shown in FIG. 26).
First, at time T4, the CPU 30 sets the ball character speed (vx, vy, vz) and the ball character position (x, y, z) stored in the ball character data Di to the first dummy ball speed (v1x, v1y), respectively. , V1z) and the first dummy ball position (x1, y1, z1) are stored in the first dummy ball data Dg. On the other hand, based on the second dummy ball data Dh, the second dummy ball B2 is moved along the second ball trajectory TR2 to a position corresponding to the time T4, and the second dummy ball data Dh is updated.
At time Tn between times T4 and T5, CPU30 updates the ball parameters of the first dummy ball B1 and the second dummy ball B2 by physical calculation, and follows the first ball trajectory TR1 and the second ball trajectory TR2, respectively. And move it frame by frame. Then, the CPU 30 calculates the position and speed for interpolating those dummy balls using the following mathematical formulas, and updates the ball character speed data Di1 and the ball character position data Di2 (between times T4 and T5 in FIG. 26). Thick line). ratio = (Tn-T4) ÷ Ti x = x2 x ratio + x1 x (1.0 --ratio) y = y2 x ratio + y1 x (1.0 --ratio) z = z2 x ratio + z1 x (1.0 --ratio) vx = v2x × ratio + v1x × (1.0 --ratio) vy = v2y × ratio + v1y × (1.0 --ratio) vz = v2z × ratio + v1z × (1.0 --ratio) In this way, the ball character velocity data Di1 and ball character position data Di2 between times T4 and T5 are the first dummy ball B1 and the second dummy for each elapsed time. The speed and position of each ball B2 are weighted at a predetermined ratio and averaged to obtain the value.
After time T5, the CPU 30 discards the first dummy ball B1 and the second dummy ball B2. Then, the CPU 30 sets the second ball trajectory TR2 based on the velocity vector (vx, vy, vz) and the position coordinates (x, y, z) stored in the current ball character velocity data Di1 and the ball character position data Di2. Calculate, move the ball character BC along the second ball trajectory TR2, update the ball character velocity data Di1 and the ball character position data Di2, and display the ball character BC on the monitor 2 (after time T5 in FIG. 26). Thick line).
Returning to FIG. 23, in step 108, the CPU 30 determines whether the ball character BC is hit back by the opponent character EC or the ball character BC is out (directly goes out of the court). Then, when the ball character BC is not hit back to the opponent character EC and is not out, the CPU 30 returns to step 106 and repeats the process. On the other hand, in CPU30, the ball character BC was hit back by the opponent character EC. If it is out, the process by the subroutine is terminated and the process proceeds to step 55.
On the other hand, in step 105, when the ball character BC has reached a predetermined space, the CPU 30 moves the ball character BC along the first ball trajectory TR1 and displays it on the monitor 2 (step 109). Proceed to the next step. The CPU30 calculates the first ball trajectory TR1 based on the velocity vector (vx, vy, vz) and the position coordinates (x, y, z) stored in the current ball character velocity data Di1 and the ball character position data Di2. , The ball character BC is moved along the first ball trajectory TR1 and displayed on the monitor 2. Since this step 109 is the same process as step 94, further description thereof will be omitted.
Next, the CPU 30 determines whether the ball character BC is hit back by the opponent character EC or the ball character BC is out (directly out of the court) (step 110). Then, when the ball character BC is not hit back to the opponent character EC and is not out, the CPU 30 returns to the above step 109 and repeats the process. On the other hand, in CPU30, the ball character BC was hit back by the opponent character EC. If it is out, the process by the subroutine is terminated and the process proceeds to step 55.
As described above, in the game device 3 according to the above embodiment, if the player holds the controller 7 with one hand so that the front surface of the controller 7 faces the front direction of the player, the direction in which the controller 7 is swung. It is possible to accurately determine movements such as (moving direction of controller 7) and twisting direction (rotation direction with the Z axis of controller 7 as the rotation axis). Further, the player may grip and shake the upper surface of the controller 7 in any direction. Therefore, the degree of freedom in the direction in which the player holds the controller 7 (the posture of the controller 7) is very high. In addition, it is possible to determine the rotational movement applied to the controller 7 main body, and it is also possible to determine a combination of a plurality of movements such that the player swings while rotating the controller 7. Then, since the rotation operation added to the controller 7 can be used as an operation input, there are a wide variety of operations of the controller 7 that can be input.
In the above-mentioned processing procedure, the calculation of the first ball trajectory TR1 and the second ball trajectory TR2 is performed for each frame (that is, in steps 94, 106, and 109 in the processing loop). However, the orbit may be calculated by another procedure. For example, the first ball trajectory TR1 and the second ball trajectory TR2 calculated once may be stored in the memory, and the trajectory data stored appropriately may be used. In this case, if the first ball trajectory TR1 and / or the second ball trajectory TR2 is calculated before the processing loop (for example, after step 91 and after step 103), it is necessary to calculate the trajectory for each frame. It disappears.
Further, in the above description, an example of playing a tennis game using the 3-axis acceleration data output from the controller 7 has been described, but it can also be used for other game processing. Needless to say, for example, it can be applied to a game in which a player character swings some object (table tennis, badminton, baseball, sword slashing, etc.). Further, in the above description, an example in which a motion discriminating device for discriminating the motion of the controller 7 is applied to the game system 1 has been described, but information processing of a general personal computer or the like operated by an input device equipped with an acceleration sensor has been described. It can also be applied to devices. For example, the data displayed by the information processing device may move, the page on which the information processing device displays information may be changed, or a figure may be drawn according to the determined movement of the input device. Various processes can be performed based on the discrimination result by the motion discriminator. Further, the motion discriminating device may create motion data indicating the motion of the input device according to the motion of the discriminated input device and output the motion data to another device.
Further, the acceleration sensor 701 provided in the controller 7 is preferably described by using a 3-axis acceleration sensor that detects and outputs linear accelerations by dividing them into 3-axis components that are orthogonal to each other, but at least the 2-axis components that are orthogonal to each other. An acceleration sensor that detects each of the above may be used. For example, even if an acceleration sensor is used that detects and outputs acceleration, tilt, vibration, etc. in the three-dimensional space where the controller 7 is placed by dividing them into two axis components of the X and Y axes (see FIGS. 3 and 4). , The left-right swing direction and the twist direction can be determined as described above. In this case, it is not possible to determine the start and end of the swing, which was determined using the acceleration of the Z-axis component in the above explanation, but the centrifugal force component generated by the left-right swing obtained from the acceleration component with respect to the X and Y axes is used. The start and end of swing may be determined, or the start and end of swing may be determined using another sensor different from the acceleration sensor 701. In addition, a game rule is set such that when the player swings the controller 7, any of the operation buttons 72 is pressed, and the start and end of the swing are set according to the period during which any of the operation buttons 72 is pressed. It does not matter if it is judged.
Further, in the above description, the mode in which the controller 7 and the game device 3 are connected by wireless communication is used, but the controller 7 and the game device 3 may be electrically connected via a cable. In this case, the cable connected to the controller 7 is connected to the connection terminal of the game device 3.
Further, as a receiving means for receiving the transmission data wirelessly transmitted from the controller 7, the receiving unit 6 connected to the connection terminal of the game device 3 has been described, but the receiving module provided inside the main body of the game device 3 has been described. The receiving means may be configured according to the above. In this case, the transmission data received by the receiving module is output to the CPU 30 via a predetermined bus.
Further, the shape of the controller 7 described above and the shape, number, installation position, etc. of the operation units 72 provided therein are merely examples, and even if they have other shapes, numbers, and installation positions, the present invention is used. Needless to say, the invention can be realized. Further, the position of the imaging information calculation unit 74 in the controller 7 (the light incident port of the imaging information calculation unit 74) does not have to be the front surface of the housing 71, and if light can be taken in from the outside of the housing 71, it may be on another surface. It may be provided.
The motion discriminating device and the motion discriminating program according to the present invention can discriminate the rotational motion applied to the input device main body, and the motion of the input device such as a game device or a game program operated according to the motion of the game controller It is useful as a device or program for discriminating.
<figref num="1">External view for explaining the game system 1 according to the embodiment of the present invention.</figref><figref num="2">Functional block diagram of the game device 3 in FIG.</figref><figref num="3">A perspective view of the controller 7 in FIG. 3 as viewed from the rear of the upper surface.</figref><figref num="4">A perspective view of the controller 7 in FIG. 3 as viewed from the rear of the lower surface.</figref><figref num="5">A perspective view showing a state in which the upper housing of the controller 7 in FIG. 3 is removed.</figref><figref num="6">Block diagram showing the configuration of controller 7 in FIG.</figref><figref num="7">Illustrated diagram outlining the state when operating the game using the controller 7 in Fig. 3.</figref><figref num="8">The figure which shows an example of the tennis game image represented on the monitor 2 according to the X, Y, and Z axis direction acceleration data received from the controller 7 of FIG.</figref><figref num="9">An example of a graph in which the positive and negative and magnitude of the acceleration indicated by the acceleration data in the X and Y axes are the X and Y axes, respectively.</figref><figref num="10">In the graph shown in Fig. 9, an example of transition by swinging to the left</figref><figref num="11">A diagram showing the area A45 of a triangle surrounded by a straight line connecting the points P4 and P5 and the origin, which are adjacent in time series as shown in FIG.</figref><figref num="12">The figure which shows the area A13 which accumulated the triangle formed by the point P1 to P3 and the origin which are continuous in time series shown in FIG. 10, and the area A36 which accumulated the triangle formed by the point P3 to P6 and the origin.</figref><figref num="13">A perspective view for explaining the twisting direction of the controller 7 in FIG.</figref><figref num="14">An example of a graph showing the acceleration values shown by the X and Y axis acceleration data according to the twist applied to the controller 7.</figref><figref num="15">A graph showing an example of the spin parameter S calculated according to the angle θ in FIGS. 14 (a) to 14 (c).</figref><figref num="16">A diagram for explaining the relationship between the vertically tilted state of the controller 7 and their coordinate axes.</figref><figref num="17">Graph showing an example of vertical angle UD calculated according to Z-axis acceleration data</figref><figref num="18">The figure which shows the main data stored in the main memory 33 of a game apparatus 3.</figref><figref num="19">A flowchart showing the flow of game processing executed in the game device 3.</figref><figref num="20">A subroutine showing the detailed operation of the initial motion recognition process in step 51 in FIG.</figref><figref num="21">A subroutine showing the detailed operation of the animation start process in step 52 in FIG.</figref><figref num="22">Subroutine showing the detailed operation of the first behavior processing in step 53 in FIG.</figref><figref num="23">Subroutine showing the detailed operation of the second behavior processing of step 54 in FIG.</figref><figref num="24">The figure which shows the timing when the motion recognition processing, the animation processing, and the ball behavior processing are performed respectively.</figref><figref num="25">The figure which shows an example of the ball behavior determined according to a spin parameter S</figref><figref num="26">The figure which shows an example of the 1st ball trajectory TR1 and the 2nd ball trajectory TR2</figref>
Code description
1 ... Game system 2 ... Monitor 2a ... Speaker 3 ... Game device 30 ... CPU31 ... Memory controller 32 ... GPU33 ... Main memory 34 ... DSP35 ... ARAM36 ... Controller I / F37 ... Video I / F38 ... External memory I / F39 ... Audio I / F40 ... Disk drive 41 ... Disk I / F4 ... Optical disk 5.. External memory card 6 ... Receive unit 7 ... Controller 71 ... Housing 72 ... Operation unit 73 ... Connector 74 ... Imaging information calculation unit 741 ... Infrared filter 742 ... Lens 743 ... Imaging element 744 ... Image processing circuit 75 ... Communication unit 751 ... Microcomputer 752 ... Memory 753 ... Wireless module 754 ... Antenna 700 ... Board 701 ... Acceleration Sensor 702 ... LED703 ... Crystal transducer 704 ... Vibrator 705 ... Battery 8 ... Marker
26 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| JP2003126548A | Cites | Japan |
| JP1199284A | Cites | Japan |
| JP6190144A | Cites | Japan |
| JP200343063A | Cites | Japan |
| JP2002153673A | Cites | Japan |
| JP2001170358A | Cites | Japan |
| JP2003334379A | Cites | Japan |
| JP650758A | Cites | Japan |
| JP728591A | Cites | Japan |
| JP200184411A | Cites | Japan |
| JP2007167533A | Cites | Japan |
8 members in 3 offices
Members8
| Document | Office | Kind | |
|---|---|---|---|
| EP1832322A2 | European Patent Office (EPO) | A2 | |
| US2007213127A1 | United States of America | A1 | |
| JP2007243827A | Japan | A | |
| US7424388B2 | United States of America | B2 | |
| JP4151982B2This record | Japan | B2 | |
| US2009005166A1 | United States of America | A1 | |
| EP1832322A3 | European Patent Office (EPO) | A3 | |
| US7774155B2 | United States of America | B2 |
34 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of completion of termEXPY | EXPY | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Report on accelerated examinationJAPANESE INTERMEDIATE CODE: A971005A975 | A975 | |
| Explanation of circumstances concerning accelerated examinationJAPANESE INTERMEDIATE CODE: A871A871 | A871 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 4151982
- Application
- 66450
Titles2
- Japanese
- 動き判別装置および動き判別プログラム
- English
- Motion discriminator and motion discriminator
Classification
- CPC, 4
- A63F13/428
- A63F13/211
- A63F2300/6045
- A63F2300/105
- IPC, 10
- A63F13 211
- A63F13 20
- A63F13 428
- G01P15 18
- G06F3 01
- G06F3 033
- G06F3 0346
- G06F13 00
- H04Q9 00
- A63F13 06
