JP4789984B2 - GAME DEVICE, GAME PROGRAM, GAME SYSTEM, AND GAME PROCESSING METHOD - Google Patents

GAME DEVICE, GAME PROGRAM, GAME SYSTEM, AND GAME PROCESSING METHOD Download PDF

Info

Publication number
JP4789984B2
JP4789984B2 JP2008195298A JP2008195298A JP4789984B2 JP 4789984 B2 JP4789984 B2 JP 4789984B2 JP 2008195298 A JP2008195298 A JP 2008195298A JP 2008195298 A JP2008195298 A JP 2008195298A JP 4789984 B2 JP4789984 B2 JP 4789984B2
Authority
JP
Japan
Prior art keywords
acceleration
game
controller
data
acceleration data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008195298A
Other languages
Japanese (ja)
Other versions
JP2008269650A (en
Inventor
賢太 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2008195298A priority Critical patent/JP4789984B2/en
Publication of JP2008269650A publication Critical patent/JP2008269650A/en
Application granted granted Critical
Publication of JP4789984B2 publication Critical patent/JP4789984B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Position Input By Displaying (AREA)

Description

本発明は、ゲーム装置、ゲームプログラム、ゲームシステム、およびゲーム処理方法に関し、より特定的には、加速度センサを備えた操作装置の動きを判別するゲーム装置、ゲームプログラムゲームシステム、およびゲーム処理方法に関する。 The present invention relates to a game device , a game program , a game system, and a game processing method , and more specifically, to a game device , a game program game system, and a game processing method that determine the movement of an operation device including an acceleration sensor. .

従来、加速度センサを備えた入力装置をユーザが操作し、当該加速度センサからの出力を利用して当該入力装置の動きを判別する装置が開発されている。例えば、グローブを模したゲームコントローラに3軸加速度センサを備え、当該加速度センサからの出力を利用してゲームを楽しむゲーム装置が開示されている(例えば、特許文献1参照)。   2. Description of the Related Art Conventionally, a device has been developed in which a user operates an input device provided with an acceleration sensor and discriminates the movement of the input device using an output from the acceleration sensor. For example, a game device is disclosed that includes a three-axis acceleration sensor in a game controller simulating a glove and enjoys a game using an output from the acceleration sensor (see, for example, Patent Document 1).

上記特許文献1に開示されたコントローラ(グローブ)は、センサX、センサY、およびセンサZを有する3軸加速度センサを備えている。そして、ゲーム装置は、センサYに対して急激に大きな値が入ってきた場合に、当該センサYから得た出力波形を遡って値0前後の時点を時点t0とする。そして、上記出力波形において急激に小さな値を得てから、その後に値0前後を得た時点を時点t1とする。一方、時点t0〜t1の期間に検出された加速度をセンサXおよびセンサZの出力波形からそれぞれ抽出し、それぞれの成分の出力波形を用いてパンチの種類(例えば、ストレート、フック、アッパー等)を判定している。具体的には、上記ゲーム装置は、センサXからの出力波形が若干正の値を示し、センサZからの出力波形の変化がないとき、プレイヤがストレートパンチを放ったと判定する。また、上記ゲーム装置は、センサXが動作開始時にその出力波形が負の値を示した後に正の値を示し、センサZからの出力波形の変化がないとき、プレイヤがフックパンチを放ったと判定する。さらに、上記ゲーム装置は、センサXからの出力波形が不定形を示し、センサZからの出力波形が大きな負の値を示した後に正の値を示したとき、プレイヤがアッパーパンチを放ったと判定する。
特開2002−153673号公報
The controller (glove) disclosed in Patent Document 1 includes a triaxial acceleration sensor having a sensor X, a sensor Y, and a sensor Z. Then, when a large value suddenly enters the sensor Y, the game device goes back to the output waveform obtained from the sensor Y and sets the time around 0 as time t0. A time point at which a value of about 0 is obtained after a small value is rapidly obtained in the output waveform is defined as a time point t1. On the other hand, the acceleration detected during the period from time t0 to time t1 is extracted from the output waveforms of the sensor X and sensor Z, and the punch type (for example, straight, hook, upper, etc.) is selected using the output waveform of each component. Judgment. Specifically, 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, the game device determines that the player has released a straight punch. The game device determines that the player has released the hook punch when the output waveform of the sensor X shows a negative value when the operation starts and then shows a positive value and there is no change in the output waveform from the sensor Z. To do. Further, the game apparatus determines that the player has released the upper punch when the output waveform from the sensor X shows an indefinite shape and the output waveform from the sensor Z shows a positive value after showing a large negative value. To do.
JP 2002-153673 A

しかしながら、上記特許文献1に開示されたゲーム装置は、センサXおよびセンサZそれぞれの出力波形に対応付けてパンチの種類の判定を行っているので、それぞれのセンサの加速度検出方向に対する動きを動き判別の基準としている。つまり、パンチの種類の判定は、グローブ(コントローラ)の向き(姿勢)に依存する。したがって、プレイヤが装着するグローブの向きが変わると、正常な判定ができない。例えば、プレイヤがグローブを上下反対や左右反対に装着した場合等には、プレイヤが同じパンチを放ったとしても正確な判定ができなくなる。つまり、グローブの姿勢の影響を大きく受ける。さらに、ゲームコントローラは、上下方向の区別なくプレイヤが手に持つことができる形状であることが一般的であり、このようなゲームコントローラに3軸加速度センサを備えた場合、さらに上述した課題が顕著となる。このように、プレイヤが正確な判定を得るためには、コントローラを持つ方向(コントローラの姿勢)に対する自由度が低くなってしまう。   However, since the game apparatus disclosed in Patent Document 1 determines the punch type in association with the output waveforms of the sensor X and the sensor Z, the movement of each sensor in the acceleration detection direction is determined as a motion. As a standard. That is, the determination of the punch type depends on the orientation (posture) of the glove (controller). Therefore, normal determination cannot be made if the orientation of the glove worn by the player changes. For example, when the player wears the glove upside down or left and right, the accurate determination cannot be made even if the player releases the same punch. In other words, it is greatly affected by the posture of the glove. Furthermore, the game controller generally has a shape that the player can hold in his / her hand without any distinction in the vertical direction. When such a game controller is provided with a three-axis acceleration sensor, the above-described problems become more prominent. It becomes. Thus, in order for the player to obtain an accurate determination, the degree of freedom with respect to the direction in which the controller is held (the attitude of the controller) is reduced.

それ故に、本発明の目的は、加速度センサを備えた入力装置を用いた操作入力において、当該入力装置の姿勢に対する自由度の高い操作を実現しながら当該入力装置の動きを判別することができる動き判別装置および動き判別プログラムを提供することである。   Therefore, an object of the present invention is to provide a motion capable of discriminating the movement of an input device while realizing a highly flexible operation with respect to the posture of the input device in an operation input using an input device including an acceleration sensor. It is to provide a discrimination device and a motion discrimination program.

上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。   In order to achieve the above object, the present invention employs the following configuration. Note that the reference numerals in parentheses, step numbers, and the like indicate correspondence with the embodiments described later in order to help understanding of the present invention, and do not limit the scope of the present invention.

第1の発明は、少なくとも2軸方向(XおよびY軸方向)の加速度を検出する加速度センサ(701)を備えた入力装置(7)の動きを判別する動き判別装置(3)である。動き判別装置は、データ取得手段(CPU30が実行するS61、S64、S77、S92;以下、ステップ番号のみを示す)、動き方向判別手段(S71、S101、S102、S103)、および出力手段(S75、S76、S91、S94、S104、S106、S109)を備える。データ取得手段は、加速度センサから出力される加速度データ(Da)を取得する。動き方向判別手段は、データ取得手段によって取得された加速度データの推移(図9〜図12、図14)に基づいて、入力装置に作用する重力加速度の方向を基準としたその入力装置の動き方向を判別する。出力手段は、動き方向判別手段によって判別された動き方向を少なくとも含む動きデータ(Dc、Dd、Dj、Dl)を出力する。   The first invention is a motion discriminating device (3) for discriminating the motion of an input device (7) provided with an acceleration sensor (701) for detecting acceleration in at least two axial directions (X and Y axial directions). The motion discriminating apparatus includes data acquisition means (S61, S64, S77, S92 executed by the CPU 30; only the step numbers are shown below), motion direction discrimination means (S71, S101, S102, S103), and output means (S75, S76, S91, S94, S104, S106, S109). The data acquisition means acquires acceleration data (Da) output from the acceleration sensor. The movement direction discriminating means is based on the transition of the acceleration data acquired by the data acquisition means (FIGS. 9 to 12 and 14), and the movement direction of the input apparatus based on the direction of the gravitational acceleration acting on the input apparatus. Is determined. The output means outputs motion data (Dc, Dd, Dj, Dl) including at least the motion direction determined by the motion direction determination means.

第2の発明は、上記第1の発明において、動き方向判別手段は、推移周回方向判定手段(S66、S71)を含む。推移周回方向判定手段は、加速度データの2軸方向成分に基づいてそれぞれ座標軸(X軸、Y軸)が定義され、重力加速度を含む加速度が加速度センサに作用していない状態の加速度データの値を原点とする2次元座標系(X−Y座標系)において、その原点を軸として加速度データが時系列的に推移する周回方向(右回り、左回り)を判定する(図9〜図12)。動き方向判別手段は、推移周回方向判定手段が判定した周回方向に基づいて、入力装置が移動した方向(左振り、右振り)を判別する。出力手段は、動き方向判別手段によって判別された移動方向を少なくとも含む動きデータを出力する。   In a second aspect based on the first aspect, the movement direction determination means includes transitional circulation direction determination means (S66, S71). The transitional circulation direction determination means has coordinate axes (X axis and Y axis) defined on the basis of the biaxial component of the acceleration data, and the acceleration data value in a state where acceleration including gravitational acceleration does not act on the acceleration sensor. In a two-dimensional coordinate system (XY coordinate system) that is the origin, a turning direction (clockwise, counterclockwise) in which acceleration data changes in time series with the origin as an axis is determined (FIGS. 9 to 12). The movement direction determination unit determines a direction (left swing, right swing) in which the input device has moved based on the circulation direction determined by the transition rotation direction determination unit. The output means outputs motion data including at least the moving direction determined by the motion direction determining means.

第3の発明は、上記第2の発明において、推移周回方向判定手段は、2次元座標系において、原点からの距離が相対的に大きい加速度データに対して周回方向の判定に寄与する度合いを高くし、かつ、原点を軸とする周回方向に時系列的に推移する加速度データ(図12の推移R)に対して周回方向の判定に寄与する度合いを高くする演算を用いて、周回方向を判定する。   According to a third aspect, in the second aspect, the transitional circulation direction determination unit increases the degree of contribution to the determination of the rotation direction with respect to acceleration data having a relatively large distance from the origin in the two-dimensional coordinate system. In addition, the rotation direction is determined using an operation that increases the degree of contribution to the determination of the rotation direction with respect to the acceleration data (transition R in FIG. 12) that changes in time series in the rotation direction with the origin as the axis. To do.

第4の発明は、上記第3の発明において、推移周回方向判定手段は、2次元座標系において、時系列的に連続し、一方の前記周回方向に推移する2つの加速度データがそれぞれ示す座標点と原点とを頂点とする三角形の面積を時系列に沿って順次累積した第1累積面積(図12の面積A13)を演算し、時系列的に連続し、逆方向の前記周回方向に推移する2つの加速度データがそれぞれ示す座標点と原点とを頂点とする三角形の面積を時系列に沿って順次累積した第2累積面積(図12の面積A36)を演算し、その第1累積面積およびその第2累積面積のいずれか一方が閾値を超えたとき、加速度データがその累積面積を得た周回方向に時系列的に推移していると判定する。   According to a fourth aspect of the present invention based on the third aspect, the transitional circulation direction determining means is a coordinate point indicated by two acceleration data that are continuous in time series in the two-dimensional coordinate system and that transition in one of the circumferential directions. The first cumulative area (area A13 in FIG. 12), which is obtained by sequentially accumulating the area of the triangle having the vertex of the point and the origin in the time series, is calculated, continuously in time series, and changes in the revolving direction in the reverse direction. A second cumulative area (area A36 in FIG. 12) obtained by sequentially accumulating the triangular areas having the apexes of the coordinate point and the origin indicated by the two acceleration data in time series is calculated, and the first cumulative area and its When any one of the second cumulative areas exceeds the threshold value, it is determined that the acceleration data changes in a time series in the circulation direction in which the cumulative area is obtained.

第5の発明は、上記第2の発明において、動き判別装置は、記憶手段(33)を、さらに備える。記憶手段は、データ取得手段が逐次取得する加速度データを記憶する。推移周回方向判定手段は、2次元座標系において、記憶手段に記憶された加速度データのうち、所定期間に取得された加速度データが時系列的に推移する周回方向を判定する。   In a fifth aspect based on the second aspect, the motion determination apparatus further comprises a storage means (33). The storage means stores acceleration data sequentially acquired by the data acquisition means. In the two-dimensional coordinate system, the transitional circulation direction determination unit determines a circulation direction in which acceleration data acquired in a predetermined period among the acceleration data stored in the storage unit transitions in time series.

第6の発明は、上記第5の発明において、加速度センサは、入力装置に対して互いに直交する3軸方向(X、Y、Z軸方向)の加速度を検出する。推移周回方向判定手段は、3軸方向に含まれる第1軸方向(Z軸方向)の加速度が所定値を超えている期間を所定期間とする(S62でYes)。2次元座標系は、3軸方向に含まれる他の第2軸および第3軸方向(XおよびY軸方向)成分に基づいてそれぞれ座標軸が定義される。推移周回方向判定手段は、所定期間に取得されて記憶手段に記憶された他の第2軸および第3軸方向の加速度データが時系列的に推移する周回方向を判定する。   In a sixth aspect based on the fifth aspect, the acceleration sensor detects acceleration in three axial directions (X, Y, Z axis directions) orthogonal to the input device. The transitional circulation direction determination means sets a period during 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, coordinate axes are defined based on other second axis and third axis direction (X and Y axis direction) components included in the three axis directions. The transitional circulation direction determination unit determines a circulation direction in which acceleration data in the other second axis and third axis directions acquired in a predetermined period and stored in the storage unit transition in time series.

第7の発明は、上記第6の発明において、動き判別装置は、傾き判別手段(S63、図16、図17)を、さらに備える。傾き判別手段は、所定期間より前に記憶手段に記憶された第1軸方向の加速度データ(Zave)に基づいて、その所定期間直前における入力装置の傾き状態(UD)を判別する。   In a seventh aspect based on the sixth aspect, the motion determination apparatus further includes inclination determination means (S63, FIG. 16, FIG. 17). The inclination determination means determines the inclination state (UD) of the input device immediately before the predetermined period based on the acceleration data (Zave) in the first axis direction stored in the storage means before the predetermined period.

第8の発明は、上記第5の発明において、動き方向判別手段は、角度算出手段(S101)および回転方向判定手段(S102)を、さらに含む。角度算出手段は、2次元座標系において、記憶手段に記憶された加速度データのうち、所定期間の最初に取得された加速度データが示す座標点(始点Ps)に原点から向かうベクトルと、所定期間の最後に取得された加速度データが示す座標点(終点Pe)に原点から向かうベクトルとが成す角度(θ)を算出する。回転方向判定手段は、角度が第1の閾値(120°)を超えているとき、2軸に対して共に直交する方向(Z軸方向)を回転軸として一方方向へ入力装置が回転したと判定し、角度が第2の閾値(70°)未満のとき、回転軸に対して他方方向へ入力装置が回転したと判定する。出力手段は、回転方向判定手段によって判別された回転方向(S)をさらに含む動きデータを出力する。   In an eighth aspect based on the fifth aspect, the movement direction determination means further includes an angle calculation means (S101) and a rotation direction determination means (S102). In the two-dimensional coordinate system, the angle calculation means includes a vector heading from the origin to the coordinate point (start point Ps) indicated by the acceleration data acquired at the beginning of the predetermined period of the acceleration data stored in the storage means, and a predetermined period of time. The angle (θ) formed by the vector from the origin to the coordinate point (end point Pe) indicated by the finally acquired acceleration data is calculated. The rotation direction determination means determines that the input device has rotated in one direction with the direction orthogonal to the two axes (Z-axis direction) as the rotation axis when the angle exceeds the first threshold (120 °). When the angle is less than the second threshold (70 °), it is determined that the input device has rotated in the other direction with respect to the rotation axis. The output means outputs motion data further including the rotation direction (S) determined by the rotation direction determination means.

第9の発明は、上記第1の発明において、動き方向判別手段は、推移方向判定手段(S71)を含む。推移方向判定手段は、加速度データの2軸方向成分に基づいてそれぞれ座標軸が定義される2次元座標系において、入力装置に作用する重力加速度の方向を基準として加速度データが時系列的に推移する方向を判定する。動き方向判別手段は、推移方向判定手段が判定した推移方向に基づいて、入力装置に作用する重力加速度に対するその入力装置の移動方向を判別する。出力手段は、動き方向判別手段によって判別された移動方向を少なくとも含む動きデータを出力する。   In a ninth aspect based on the first aspect, the movement direction determination means includes transition direction determination means (S71). In the two-dimensional coordinate system in which coordinate axes are defined based on two-axis direction components of acceleration data, the transition direction determination means is a direction in which acceleration data transitions in time series with reference to the direction of gravitational acceleration acting on the input device. Determine. The movement direction determination means determines the movement direction of the input device relative to the gravitational acceleration acting on the input device based on the transition direction determined by the transition direction determination means. The output means outputs motion data including at least the moving direction determined by the motion direction determining means.

第10の発明は、上記第1の発明において、加速度センサは、入力装置をユーザが把持して振ったときに生じる遠心力成分を少なくとも含む加速度を検出して加速度データを出力する。動き方向判別手段は、データ取得手段によって取得された加速度データの推移のうち、遠心力成分の加速度が閾値を超えている期間に取得した加速度データを用いて入力装置の動き方向を判別する。   In a tenth aspect based on the first aspect, 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. The movement direction determination unit determines the movement direction of the input device using the acceleration data acquired during the period in which the acceleration of the centrifugal force component exceeds the threshold among the transition of the acceleration data acquired by the data acquisition unit.

第11の発明は、少なくとも2軸方向の加速度を検出する加速度センサを備えた入力装置の動きを判別する動き判別装置のコンピュータ(30)で実行される動き判別プログラムである。動き判別プログラムは、データ取得ステップ、動き方向判別ステップ、および出力ステップを、コンピュータに実行させる。データ取得ステップは、加速度センサから出力される加速度データを取得する。動き方向判別ステップは、データ取得ステップで取得された加速度データの推移に基づいて、入力装置に作用する重力加速度の方向を基準としたその入力装置の動き方向を判別する。出力ステップは、動き方向判別ステップで判別された動き方向を少なくとも含む動きデータを出力する。   An eleventh aspect of the invention is a motion discrimination program executed by a computer (30) of a motion discrimination device that discriminates the motion of an input device that includes an acceleration sensor that detects acceleration in at least two axial directions. The motion determination program causes the computer to execute a data acquisition step, a motion direction determination step, and an output step. In the data acquisition step, acceleration data output from the acceleration sensor is acquired. The movement direction determination step determines the movement direction of the input device based on the direction of the gravitational acceleration acting on the input device based on the transition of the acceleration data acquired in the data acquisition step. The output step outputs motion data including at least the motion direction determined in the motion direction determination step.

第12の発明は、上記第11の発明において、動き方向判別ステップは、推移周回方向判定ステップを含む。推移周回方向判定ステップは、加速度データの2軸方向成分に基づいてそれぞれ座標軸が定義され、重力加速度を含む加速度が加速度センサに作用していない状態の加速度データの値を原点とする2次元座標系において、その原点を軸として加速度データが時系列的に推移する周回方向を判定する。動き方向判別ステップでは、推移周回方向判定ステップで判定した周回方向に基づいて、入力装置が移動した方向が判別される。出力ステップでは、動き方向判別ステップで判別された移動方向を少なくとも含む動きデータを出力する。   In a twelfth aspect based on the eleventh aspect, the movement direction determination step includes a transitional circulation direction determination step. The transitional orbiting direction determination step is a two-dimensional coordinate system in which coordinate axes are defined based on two-axis direction components of acceleration data, and the origin is the value of acceleration data in a state where acceleration including gravitational acceleration does not act on the acceleration sensor. , The turning direction in which the acceleration data changes in time series with the origin as the axis is determined. In the movement direction determination step, the direction in which the input device has moved is determined based on the rotation direction determined in the transition rotation direction determination step. In the output step, motion data including at least the moving direction determined in the motion direction determining step is output.

第13の発明は、上記第12の発明において、推移周回方向判定ステップでは、2次元座標系において、原点からの距離が相対的に大きい加速度データに対して周回方向の判定に寄与する度合いを高くし、かつ、原点を軸とする周回方向に時系列的に推移する加速度データに対して周回方向の判定に寄与する度合いを高くする演算を用いて、周回方向が判定される。   In a thirteenth aspect based on the twelfth aspect, in the transitional circulation direction determination step, the degree of contribution to the determination of the rotation direction with respect to acceleration data having a relatively large distance from the origin in the two-dimensional coordinate system is increased. In addition, the rotation direction is determined using an operation that increases the degree of contribution to the determination of the rotation direction with respect to acceleration data that changes in time series in the rotation direction about the origin.

第14の発明は、上記第13の発明において、推移周回方向判定ステップでは、2次元座標系において、時系列的に連続し、一方の前記周回方向に推移する2つの加速度データがそれぞれ示す座標点と原点とを頂点とする三角形の面積を時系列に沿って順次累積した第1累積面積が演算され、時系列的に連続し、逆方向の前記周回方向に推移する2つの加速度データがそれぞれ示す座標点と原点とを頂点とする三角形の面積を時系列に沿って順次累積した第2累積面積が演算され、その第1累積面積およびその第2累積面積のいずれか一方が閾値を超えたとき、加速度データがその累積面積を得た周回方向に時系列的に推移していると判定される。   In a fourteenth aspect based on the thirteenth aspect, in the transitional circulation direction determining step, coordinate points respectively indicated by two acceleration data that are continuous in time series in the two-dimensional coordinate system and transition in one of the circumferential directions. The first accumulated area is calculated by sequentially accumulating the area of the triangle with the apex and the origin as vertices along the time series, and two acceleration data that are continuous in time series and transition in the reverse direction of rotation are shown respectively. When a second cumulative area is calculated by sequentially accumulating the area of a triangle whose apex is the coordinate point and the origin in time series, and either one of the first cumulative area or the second cumulative area exceeds a threshold value , It is determined that the acceleration data changes in a time series in the circumferential direction in which the accumulated area is obtained.

第15の発明は、上記第12の発明において、動き判別プログラムは、記憶制御ステップを、さらにコンピュータに実行させる。記憶制御ステップは、データ取得ステップで逐次取得する加速度データをメモリ(33)に記憶する。推移周回方向判定ステップでは、2次元座標系において、メモリに記憶された加速度データのうち、所定期間に取得された加速度データの時系列的に推移する周回方向が判定される。   In a fifteenth aspect based on the twelfth aspect, the motion determination program causes the computer to further execute a storage control step. In the storage control step, the acceleration data sequentially acquired in the data acquisition step is stored in the memory (33). In the transitional lap direction determination step, in the two-dimensional coordinate system, among the acceleration data stored in the memory, the lap direction in which the acceleration data acquired in a predetermined period changes in time series is determined.

第16の発明は、上記第15の発明において、加速度センサは、入力装置に対して互いに直交する3軸方向の加速度を検出する。推移周回方向判定ステップでは、3軸方向に含まれる第1軸方向の加速度が所定値を超えている期間を所定期間とされる。2次元座標系は、3軸方向に含まれる他の第2軸および第3軸方向成分に基づいてそれぞれ座標軸が定義される。推移周回方向判定ステップでは、所定期間に取得されてメモリに記憶された他の第2軸および第3軸方向の加速度データの時系列的に推移する周回方向が判定される。   In a sixteenth aspect based on the fifteenth aspect, the acceleration sensor detects acceleration in three axial directions orthogonal to the input device. In the transitional circulation direction determination step, a period in which the acceleration in the first axis direction included in the three axis directions exceeds a predetermined value is set as the predetermined period. In the two-dimensional coordinate system, coordinate axes are defined based on other second axis and third axis direction components included in the three axis directions. In the transitional circulation direction determination step, the circulation direction that changes in time series of the acceleration data in the other second axis and third axis directions acquired in a predetermined period and stored in the memory is determined.

第17の発明は、上記第16の発明において、動き判別プログラムは、傾き判別ステップを、さらにコンピュータに実行させる。傾き判別ステップは、所定期間より前にメモリに記憶された第1軸方向の加速度データに基づいて、その所定期間直前における入力装置の傾き状態を判別する。   In a seventeenth aspect based on the sixteenth aspect, the motion determination program causes the computer to further execute an inclination determination step. In the inclination determination step, the inclination state of the input device immediately before the predetermined period is determined based on the acceleration data in the first axis direction stored in the memory before the predetermined period.

第18の発明は、上記第15の発明において、動き方向判別ステップは、角度算出ステップおよび回転方向判定ステップを、さらに含む。角度算出ステップは、2次元座標系において、メモリに記憶された加速度データのうち、所定期間の最初に取得された加速度データが示す座標点に原点から向かうベクトルと、所定期間の最後に取得された加速度データが示す座標点に原点から向かうベクトルとが成す角度を算出する。回転方向判定ステップは、角度が第1の閾値を超えているとき、2軸に対して共に直交する方向を回転軸として一方方向へ入力装置が回転したと判定し、角度が第2の閾値未満のとき、回転軸に対して他方方向へ入力装置が回転したと判定する。出力ステップでは、回転方向判定ステップで判別された回転方向をさらに含む動きデータが出力される。   In an eighteenth aspect based on the fifteenth aspect, the movement direction determination step further includes an angle calculation step and a rotation direction determination step. In the two-dimensional coordinate system, the angle calculation step includes a vector heading from the origin to the coordinate point indicated by the acceleration data acquired at the beginning of the predetermined period among the acceleration data stored in the memory, and acquired at the end of the predetermined period. An angle formed by a vector from the origin to the coordinate point indicated by the acceleration data is calculated. In the rotation direction determination step, when the angle exceeds the first threshold, it is determined that the input device has rotated in one direction with the direction orthogonal to the two axes as the rotation axis, and the angle is less than the second threshold. At this time, it is determined that the input device has rotated in the other direction with respect to the rotation axis. In the output step, motion data further including the rotation direction determined in the rotation direction determination step is output.

第19の発明は、上記第11の発明において、動き方向判別ステップは、推移方向判定ステップを含む。推移方向判定ステップは、加速度データの2軸方向成分に基づいてそれぞれ座標軸が定義される2次元座標系において、入力装置に作用する重力加速度の方向を基準として加速度データが時系列的に推移する方向を判定する。動き方向判別ステップでは、推移方向判定ステップで判定した推移方向に基づいて、入力装置に作用する重力加速度に対するその入力装置の移動方向が判別される。出力ステップでは、動き方向判別ステップで判別された移動方向を少なくとも含む動きデータが出力される。   In a nineteenth aspect based on the eleventh aspect, the movement direction determination step includes a transition direction determination step. The transition direction determination step is a direction in which acceleration data transitions in time series with reference to the direction of gravitational acceleration acting on the input device in a two-dimensional coordinate system in which coordinate axes are defined based on two-axis direction components of acceleration data. Determine. In the movement direction determination step, the movement direction of the input device relative to the gravitational acceleration acting on the input device is determined based on the transition direction determined in the transition direction determination step. In the output step, motion data including at least the moving direction determined in the motion direction determining step is output.

第20の発明は、上記第11の発明において、加速度センサは、入力装置をユーザが把持して振ったときに生じる遠心力成分を少なくとも含む加速度を検出して加速度データを出力する。動き方向判別ステップでは、データ取得ステップで取得された加速度データの推移のうち、遠心力成分の加速度が閾値を超えている期間に取得した加速度データを用いて入力装置の動き方向が判別される。   In a twentieth aspect based on the eleventh aspect, 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 movement direction determination step, the movement direction of the input device is determined using the acceleration data acquired during the period in which the acceleration of the centrifugal force component exceeds the threshold among the transition of the acceleration data acquired in the data acquisition step.

上記第1の発明によれば、入力装置に作用する重力加速度の方向を基準とした動き方向を判別するため、正確に入力装置の動き方向を判別することができ、ユーザが入力装置を持つ方向(入力装置の姿勢)に対する自由度が非常に高くなる。   According to the first aspect of the invention, since the direction of movement based on the direction of gravitational acceleration acting on the input device is determined, the direction of movement of the input device can be accurately determined, and the direction in which the user has the input device The degree of freedom with respect to (the attitude of the input device) becomes very high.

上記第2の発明によれば、得られた加速度データを時系列的に示す2次元座標系において、それら加速度データが推移する回転方向を判定することによって、ユーザが入力装置を持つ方向(入力装置の姿勢)に影響を受けず、重力加速度に対して入力装置が移動した方向を正確に判別することができ、当該移動方向を操作入力として用いることもできる。   According to the second aspect of the present invention, in the two-dimensional coordinate system showing the obtained acceleration data in time series, the direction in which the user has the input device (input device) is determined by determining the rotation direction in which the acceleration data changes. The direction in which the input device has moved relative to the gravitational acceleration can be accurately determined, and the moving direction can also be used as an operation input.

上記第3の発明によれば、周回方向の判定に関して、信頼度の高い加速度データの寄与度が大きくなる評価を行うことにより、周回方向の判定の精度が向上する。   According to the third aspect of the invention, with respect to the determination of the rotation direction, the evaluation of the determination of the rotation direction is improved by performing the evaluation so that the contribution degree of the highly reliable acceleration data is increased.

上記第4の発明によれば、順方向または逆方向の周回方向へ推移する加速度データと2次元座標系の原点とを結ぶ三角形の面積をそれぞれ評価することによって、周回方向の判定に関する信頼度を適切に判断することができる。   According to the fourth aspect of the present invention, by evaluating the area of the triangle connecting the acceleration data transitioning in the forward or reverse direction and the origin of the two-dimensional coordinate system, respectively, the reliability regarding the determination of the direction of rotation is obtained. Judgment can be made appropriately.

上記第5の発明によれば、所定期間に得られた加速度データを用いて判定することによって、判定には不要となるノイズ等の影響が減り、周回方向の判定精度が向上する。   According to the fifth aspect, the determination using the acceleration data obtained during the predetermined period reduces the influence of noise and the like that are unnecessary for the determination, and improves the determination accuracy in the circulation direction.

上記第6の発明によれば、互いに直交する3軸のうち、第1軸の値が所定値を超える期間における残り2軸の加速度データを用いて判定する。したがって、ユーザが入力装置をスイングしたときの加速度が上記第1軸方向に影響するように設定することによって、入力装置が振られている期間を判定することができるため、振り始めから振り終わりまでにユーザが入力装置を振った移動方向を判定することができる。   According to the sixth aspect of the invention, determination is made using acceleration data of the remaining two axes in a period in which the value of the first axis exceeds the predetermined value among the three axes orthogonal to each other. Accordingly, by setting the acceleration when the user swings the input device to affect the first axis direction, it is possible to determine the period during which the input device is being shaken. The moving direction in which the user shakes the input device can be determined.

上記第7の発明によれば、ユーザが入力装置をスイングする前の入力装置の傾き方向を判定することができるため、移動方向と傾き方向とを操作入力にすることもできる。   According to the seventh aspect, since it is possible to determine the tilt direction of the input device before the user swings the input device, the movement direction and the tilt direction can be used as operation inputs.

上記第8の発明によれば、ユーザが入力装置を回転させ(ひねり)ながら移動させた(振った)とき、入力装置の移動方向に加えて入力装置の回転方向も判定することができ、移動方向と回転方向とを操作入力にすることもできる。   According to the eighth aspect of the invention, when the user moves (swings) the input device while rotating (twisting), the direction of rotation of the input device can be determined in addition to the direction of movement of the input device. The direction and rotation direction can also be used as operation inputs.

上記第9の発明によれば、得られた加速度データを時系列的に示す2次元座標系において、それら加速度データによって得られる重力加速度の方向を基準として、当該加速度データの推移方向を判定することによって、ユーザが入力装置を持つ方向(入力装置の姿勢)に影響を受けず、重力加速度に対して入力装置が移動した方向を正確に判定することができる。   According to the ninth aspect, in the two-dimensional coordinate system showing the obtained acceleration data in time series, the transition direction of the acceleration data is determined with reference to the direction of the gravitational acceleration obtained from the acceleration data. Thus, the direction in which the input device has moved relative to the gravitational acceleration can be accurately determined without being affected by the direction in which the user holds the input device (the posture of the input device).

上記第10の発明によれば、ユーザが入力装置をスイングしたときに生じる加速度が所定値を超えたときに得られた加速度データを用いて判定することによって、振り始めから振り終わりまでのみに得られる加速度データを用いた判定が可能となり、振り始めから振り終わりまでにユーザが入力装置を振った移動方向等を判定することができる。   According to the tenth aspect of the present invention, the determination is made using the acceleration data obtained when the acceleration generated when the user swings the input device exceeds a predetermined value, so that it is obtained only from the start of swing to the end of swing. The determination using the acceleration data obtained can be performed, and the moving direction or the like in which the user swings the input device from the start to the end of the swing can be determined.

本発明の動き判別プログラムによれば、上述した動き判別装置と同様の効果を得ることができる。   According to the motion discrimination program of the present invention, the same effect as that of the motion discrimination device described above can be obtained.

図1を参照して、本発明の一実施形態に係る動き判別装置について説明する。以下、説明を具体的にするために、当該動き判別装置を用いたゲームシステム1を一例として説明する。なお、図1は、当該ゲームシステム1を説明するための外観図である。以下、本発明の動き判別装置に相当する据置型ゲーム装置を一例にして、当該ゲームシステム1について説明する。   With reference to FIG. 1, a motion discriminating apparatus according to an embodiment of the present invention will be described. Hereinafter, in order to make the description more specific, the game system 1 using the motion determination device will be described as an example. FIG. 1 is an external view for explaining the game system 1. Hereinafter, the game system 1 will be described with reference to an example of a stationary game device corresponding to the motion determination device of the present invention.

図1において、当該ゲームシステム1は、家庭用テレビジョン受像機等のスピーカ2aを備えたディスプレイ(以下、モニタと記載する)2に、接続コードを介して接続される据置型ゲーム装置(以下、単にゲーム装置と記載する)3および当該ゲーム装置3に操作情報を与えるコントローラ7によって構成される。ゲーム装置3は、接続端子を介して受信ユニット6が接続される。受信ユニット6は、コントローラ7から無線送信される送信データを受信し、コントローラ7とゲーム装置3とは無線通信によって接続される。また、ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。ゲーム装置3の上部主面には、当該ゲーム装置3の電源ON/OFFスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置3上部の蓋を開くOPENスイッチが設けられている。ここで、プレイヤがOPENスイッチを押下することによって上記蓋が開き、光ディスク4の脱着が可能となる。   In FIG. 1, the game system 1 includes a stationary game apparatus (hereinafter referred to as a monitor) 2 connected to a display (hereinafter referred to as a monitor) 2 having a speaker 2a such as a home television receiver via a connection cord. 3) and a controller 7 that gives operation information to the game apparatus 3. The game apparatus 3 is connected to the receiving unit 6 via a connection terminal. The receiving unit 6 receives transmission data wirelessly transmitted from the controller 7, and the controller 7 and the game apparatus 3 are connected by wireless communication. Further, an optical disk 4 as an example of an information storage medium that can be used interchangeably with the game apparatus 3 is attached to and detached from the game apparatus 3. The upper main surface of the game apparatus 3 is provided with a power ON / OFF switch of the game apparatus 3, a reset switch for game processing, and an OPEN switch for opening the lid on the upper part of the game apparatus 3. Here, when the player presses the OPEN switch, the lid is opened, and the optical disk 4 can be attached and detached.

また、ゲーム装置3には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード5が必要に応じて着脱自在に装着される。ゲーム装置3は、光ディスク4に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ2に表示する。さらに、ゲーム装置3は、外部メモリカード5に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。   Further, an external memory card 5 equipped with a backup memory or the like for storing save data or the like in a fixed manner is detachably attached to the game apparatus 3 as necessary. The game apparatus 3 displays a result as a game image on the monitor 2 by executing a game program or the like stored on the optical disc 4. Furthermore, the game apparatus 3 can 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 apparatus 3 can enjoy the progress of the game by operating the controller 7 while viewing the game image displayed on the monitor 2.

コントローラ7は、その内部に備える通信部75(後述)から受信ユニット6が接続されたゲーム装置3へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて送信データを無線送信する。コントローラ7は、主にモニタ2に表示されるゲーム空間に登場するプレイヤオブジェクトを操作するための操作手段である。コントローラ7は、複数の操作ボタン、キー、およびスティック等の操作部が設けられている。また、後述により明らかとなるが、コントローラ7は、当該コントローラ7から見た画像を撮像する撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール(以下、マーカと記載する)8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって赤外光を出力する。なお、本実施例では、撮像情報演算部74による撮像情報を用いないため、マーカ8Lおよび8Rを設置しなくてもかまわない。   The controller 7 wirelessly transmits transmission data from a communication unit 75 (described later) provided therein to the game apparatus 3 to which the receiving unit 6 is connected, using, for example, Bluetooth (registered trademark) technology. The controller 7 is an operation means for operating a player object appearing in a game space mainly displayed on the monitor 2. The controller 7 is provided with an operation unit such as a plurality of operation buttons, keys, and sticks. Further, as will be apparent from the description below, the controller 7 includes an imaging information calculation unit 74 that captures an image viewed from the controller 7. In addition, as an example of an imaging target of the imaging 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 imaging information by the imaging information calculation unit 74 is not used, the markers 8L and 8R need not be installed.

次に、図2を参照して、ゲーム装置3の構成について説明する。なお、図2は、ゲーム装置3の機能ブロック図である。   Next, the configuration of the game apparatus 3 will be described with reference to FIG. FIG. 2 is a functional block diagram of the game apparatus 3.

図2において、ゲーム装置3は、各種プログラムを実行する例えばリスク(RISC)CPU(セントラルプロセッシングユニット)30を備える。CPU30は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ33等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。なお、光ディスク4に記憶されているゲームプログラムが本発明の動き判別プログラムを含んでおり、CPU30は、上記ゲーム処理の中でコントローラ7の動きを判別するための動き判別処理も行っている。CPU30には、メモリコントローラ31を介して、GPU(Graphics Processing Unit)32、メインメモリ33、DSP(Digital Signal Processor)34、およびARAM(Audio RAM)35が接続される。また、メモリコントローラ31には、所定のバスを介して、コントローラI/F(インターフェース)36、ビデオI/F37、外部メモリI/F38、オーディオI/F39、およびディスクI/F41が接続され、それぞれ受信ユニット6、モニタ2、外部メモリカード5、スピーカ2a、およびディスクドライブ40が接続されている。   In FIG. 2, the game apparatus 3 includes, for example, a risk (RISC) CPU (Central Processing Unit) 30 that executes various programs. The CPU 30 executes a startup program stored in a boot ROM (not shown), initializes a memory such as the main memory 33, and the like, then executes a game program stored in the optical disc 4, and according to the game program Game processing and the like. Note that the game program stored on the optical disc 4 includes the motion determination program of the present invention, and the CPU 30 also performs a motion determination process for determining the movement of the controller 7 in the game process. A GPU (Graphics Processing Unit) 32, a main memory 33, a DSP (Digital Signal Processor) 34, and an ARAM (Audio RAM) 35 are connected to the CPU 30 via a memory controller 31. The memory controller 31 is connected to a controller I / F (interface) 36, a video I / F 37, an external memory I / F 38, an audio I / F 39, and a disk I / F 41 via a predetermined bus. The receiving unit 6, the monitor 2, the external memory card 5, the speaker 2a, and the disk drive 40 are connected.

GPU32は、CPU30の命令に基づいて画像処理を行うものあり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU32は、図示しない画像処理専用のメモリやメインメモリ33の一部の記憶領域を用いて画像処理を行う。GPU32は、これらを用いてモニタ2に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ31およびビデオI/F37を介してモニタ2に出力する。   The GPU 32 performs image processing based on an instruction from the CPU 30, and is configured by a semiconductor chip that performs calculation processing necessary for displaying 3D graphics, for example. The GPU 32 performs image processing using a memory dedicated to image processing (not shown) and a partial storage area of the main memory 33. The GPU 32 generates game image data and movie video to be displayed on the monitor 2 using these, and outputs them to the monitor 2 through the memory controller 31 and the video I / F 37 as appropriate.

メインメモリ33は、CPU30で使用される記憶領域であって、CPU30の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ33は、CPU30によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ33に記憶されたゲームプログラムや各種データ等がCPU30によって実行される。   The main memory 33 is a storage area used by the CPU 30 and stores game programs and the like necessary for the processing of the CPU 30 as appropriate. For example, the main memory 33 stores a game program read from the optical disc 4 by the CPU 30 and various data. The game program and various data stored in the main memory 33 are executed by the CPU 30.

DSP34は、ゲームプログラム実行時にCPU30において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM35が接続される。ARAM35は、DSP34が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP34は、ARAM35に記憶されたサウンドデータを読み出し、メモリコントローラ31およびオーディオI/F39を介してモニタ2に備えるスピーカ2aに出力させる。   The DSP 34 processes sound data generated by the CPU 30 when the game program is executed, and is connected to an ARAM 35 for storing the sound data. The ARAM 35 is used when the DSP 34 performs a predetermined process (for example, storage of 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 2 a included in the monitor 2 via the memory controller 31 and the audio I / F 39.

メモリコントローラ31は、データ転送を統括的に制御するものであり、上述した各種I/Fが接続される。コントローラI/F36は、例えば4つのコントローラI/F36a〜36dで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置3とを通信可能に接続する。例えば、受信ユニット6は、上記コネクタと嵌合し、コントローラI/F36を介してゲーム装置3と接続される。上述したように受信ユニット6は、コントローラ7からの送信データを受信し、コントローラI/F36を介して当該送信データをCPU30へ出力する。ビデオI/F37には、モニタ2が接続される。外部メモリI/F38には、外部メモリカード5が接続され、その外部メモリカード5に設けられたバックアップメモリ等とアクセス可能となる。オーディオI/F39にはモニタ2に内蔵されるスピーカ2aが接続され、DSP34がARAM35から読み出したサウンドデータやディスクドライブ40から直接出力されるサウンドデータをスピーカ2aから出力可能に接続される。ディスクI/F41には、ディスクドライブ40が接続される。ディスクドライブ40は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置3のバスやオーディオI/F39に出力する。   The memory controller 31 controls the overall data transfer and is connected to the various I / Fs described above. The controller I / F 36 includes, for example, four controller I / Fs 36a to 36d, and connects the external device and the game apparatus 3 that can be fitted to each other via a connector included in the controller I / F 36 so as to communicate with each other. For example, the receiving unit 6 is fitted with the connector and connected to the game apparatus 3 via the controller I / F 36. 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. A monitor 2 is connected to the video I / F 37. An external memory card 5 is connected to the external memory I / F 38 and can access a backup memory or the like provided in the external memory card 5. A speaker 2a built in the monitor 2 is connected to the audio I / F 39 so that sound data read out from the ARAM 35 by the DSP 34 or sound data directly output from the disk drive 40 can be output from the speaker 2a. A disk drive 40 is connected to the disk I / F 41. The disk drive 40 reads data stored on the optical disk 4 arranged at a predetermined reading position, and outputs the data to the bus of the game apparatus 3 and the audio I / F 39.

図3および図4を参照して、本発明の入力装置の一例であるコントローラ7について説明する。なお、図3は、コントローラ7の上面後方から見た斜視図である。図4は、コントローラ7を下面後方から見た斜視図である。   With reference to FIG. 3 and FIG. 4, the controller 7 which is an example of the input device of this invention is demonstrated. FIG. 3 is a perspective view of the controller 7 as viewed from the upper rear side. FIG. 4 is a perspective view of the controller 7 as seen from the bottom rear side.

図3および図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。   3 and 4, the controller 7 includes a housing 71 formed by plastic molding, for example, and the housing 71 is provided with a plurality of operation units 72. The housing 71 has a substantially rectangular parallelepiped shape whose longitudinal direction is the front-rear direction, and is a size that can be gripped with one hand of an adult or a child as a whole.

ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、矢印で示す4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。   A cross key 72 a is provided on the center front side of the upper surface of the housing 71. The cross key 72a is a cross-shaped four-direction push switch, and operation portions corresponding to the four directions (front and rear, left and right) indicated by arrows are arranged at 90 ° intervals on the cross protruding pieces, respectively. The player selects one of the front, rear, left and right directions by pressing one of the operation portions of the cross key 72a. For example, when the player operates the cross key 72a, it is possible to instruct the moving direction of the player character or the like appearing in the virtual game world, or to instruct the moving direction of the cursor.

なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、リング状に4方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記十字キー72aの代わりに設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー72aの代わりに設けてもかまわない。また、少なくとも4つの方向(前後左右)をそれぞれ示すスイッチに対して、プレイヤによって押下されたスイッチに応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。   Note that the cross key 72a is an operation unit that outputs an operation signal in response to the above-described direction input operation of the player, but may be an operation unit of another mode. For example, instead of the cross key 72a, a composite switch in which a push switch having a four-direction operation portion in a ring shape and a center switch provided at the center thereof may be provided. Further, an operation unit that outputs an operation signal according to the tilt direction by tilting a tiltable stick protruding from the upper surface of the housing 71 may be provided instead of the cross key 72a. Furthermore, an operation unit that outputs an operation signal corresponding to the sliding direction by sliding a 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, an operation unit that outputs an operation signal in response to a switch pressed by the player may be provided instead of the cross key 72a for switches indicating at least four directions (front / rear / left / right).

ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、Xボタン、Yボタン、およびBボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、セレクトスイッチ、メニュースイッチ、およびスタートスイッチ等としての機能が割り当てられる。これら操作ボタン72b〜72gは、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないため詳細な説明を省略する。なお、図3に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。   A plurality of operation buttons 72 b to 72 g are provided on the rear surface side of the cross key 72 a on the upper surface of the housing 71. The operation buttons 72b to 72g are operation units that output operation signals assigned to the operation buttons 72b to 72g when the player presses the button head. For example, functions such as an X button, a Y button, and a B button are assigned to the operation buttons 72b to 72d. Further, functions as a select switch, a menu switch, a start switch, and the like are assigned to the operation buttons 72e to 72g. Each of these operation buttons 72b to 72g is assigned a function according to a game program executed by the game apparatus 3, but will not be described in detail because it is not directly related to the description of the present invention. In the arrangement example shown in FIG. 3, the operation buttons 72 b to 72 d are arranged side by side along the center front-rear direction on the upper surface of the housing 71. Further, the operation buttons 72e to 72g are arranged in parallel between the operation buttons 72b and 72d along the left-right direction of the upper surface of the housing 71. The operation button 72f is a type of button whose upper surface is buried in the upper surface of the housing 71 and is not accidentally pressed by the player.

また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置3本体の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。   An operation button 72h is provided on the front surface side of the cross key 72a on the upper surface of the housing 71. The operation button 72h is a power switch for remotely turning on / off the game apparatus 3 main body. This operation button 72h is also a type of button whose upper surface is buried in the upper surface of the housing 71 and that the player does not accidentally press.

また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7から受信ユニット6へ送信データを送信する際、上記コントローラ種別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。   A plurality of LEDs 702 are provided on the rear surface side of the operation button 72 c on the upper surface of the housing 71. Here, the controller 7 is provided with a controller type (number) 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 transmission data is transmitted from the controller 7 to the receiving unit 6, the LED corresponding to the type among the plurality of LEDs 702 is turned on according to the controller type.

一方、ハウジング71下面には、凹部が形成されている。後述で明らかとなるが、ハウジング71下面の凹部は、プレイヤがコントローラ7を把持したときに当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばAボタンとして機能する操作部であり、シューティングゲームにおけるトリガスイッチや、プレイヤオブジェクトを所定オブジェクトに対して注目させる操作等に用いられる。   On the other hand, a recess is formed on the lower surface of the housing 71. As will be described later, the recess on the lower surface of the housing 71 is formed at a position where the player's index finger or middle finger is positioned when the player holds the controller 7. And the operation button 72i is provided in the rear surface side inclined surface of the said recessed part. The operation button 72i is an operation unit that functions as an A button, for example, and is used for a trigger switch in a shooting game, an operation for causing a player object to pay attention to a predetermined object, or the like.

また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コントローラ7が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコントローラ7の動きでも追跡して解析することができる。また、ハウジング70の後面には、コネクタ73が設けられている。コネクタ73は、例えば32ピンのエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。なお、本発明では、この撮像情報演算部74からの情報を用いないため、ここではこれ以上の説明を省略する。   An imaging element 743 that constitutes a part of the imaging information calculation unit 74 is provided on the front surface of the housing 71. Here, the imaging information calculation unit 74 is a system for analyzing the image data captured by the controller 7 to determine a location where the luminance is high and detecting the position of the center of gravity, the size, and the like of the location. Since the maximum sampling period is about 200 frames / second, even a relatively fast 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 a 32-pin edge connector, for example, and is used for fitting and connecting with a connection cable, for example. In the present invention, since information from the imaging information calculation unit 74 is not used, further explanation is omitted here.

ここで、説明を具体的にするために、コントローラ7に対して設定する座標系について定義する。図3および図4に示すように、互いに直交するXYZ軸をコントローラ7に対して定義する。具体的には、コントローラ7の前後方向となるハウジング71の長手方向をZ軸とし、コントローラ7の前面(撮像情報演算部74が設けられている面)方向をZ軸正方向とする。また、コントローラ7の上下方向をY軸とし、ハウジング71の上面(十字キー72a等が設けらた面)方向をY軸正方向とする。さらに、コントローラ7の左右方向をX軸とし、ハウジング71の左側面(図3では表されずに図4で表されている側面)方向をX軸正方向とする。   Here, in order to explain specifically, a coordinate system set for the controller 7 is defined. As shown in FIGS. 3 and 4, XYZ axes orthogonal to each other are defined for the 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 (the surface on which the imaging information calculation unit 74 is provided) of the controller 7 is the Z axis positive direction. Further, the vertical direction of the controller 7 is defined as the Y axis, and the upper surface (the surface provided with the cross key 72a and the like) of the housing 71 is defined as the Y axis positive direction. Further, the left-right direction of the controller 7 is taken as the X axis, and the left side surface (side face shown in FIG. 4 but not shown in FIG. 3) direction is taken as the X-axis positive direction.

次に、図5を参照して、コントローラ7の内部構造について説明する。なお、図5(a)は、コントローラ7の上筐体(ハウジング71の一部)を外した状態を示す斜視図である。図5(b)は、コントローラ7の下筐体(ハウジング71の一部)を外した状態を示す斜視図である。ここで、図5(b)に示す基板700は、図5(a)に示す基板700の裏面から見た斜視図となっている。   Next, the internal structure of the controller 7 will be described with reference to FIG. 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 where the lower casing (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.

図5(a)において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、水晶振動子703、無線モジュール753、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751(図6参照)に接続される。加速度センサ701は、コントローラ7が配置された3次元空間における傾きや振動等の算出に用いることができる加速度を検出して出力する。   5A, a substrate 700 is fixed inside the housing 71, and operation buttons 72a to 72h, an acceleration sensor 701, an LED 702, a crystal resonator 703, a wireless module are provided on the upper main surface of the substrate 700. 753, an antenna 754, and the like are provided. These are connected to the microcomputer 751 (see FIG. 6) by wiring (not shown) formed on the substrate 700 or the like. The acceleration sensor 701 detects and outputs an acceleration that can be used for calculating inclination, vibration, and the like in the three-dimensional space in which the controller 7 is arranged.

より詳細には、図6に示すように、コントローラ7は3軸の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向(図3に示すY軸)、左右方向(図3に示すX軸)、および前後方向(図3に示すZ軸)で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、X軸とY軸(または他の対になった軸)のそれぞれに沿った直線加速度のみを検知する2軸の加速度検出手段を使用してもよい。例えば、この3軸または2軸の加速度センサ701は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であることが好ましい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて3軸または2軸の加速度センサ701が提供されてもよい。   More specifically, as shown in FIG. 6, the controller 7 preferably includes a triaxial acceleration sensor 701. The three-axis acceleration sensor 701 is linearly accelerated in three directions, that is, a vertical direction (Y axis shown in FIG. 3), a horizontal direction (X axis shown in FIG. 3), and a front-back direction (Z axis shown in FIG. 3). Is detected. In other embodiments, depending on the type of control signal used in the game process, the biaxial acceleration that detects only the linear acceleration along each of the X axis and the Y axis (or another pair of axes). Detection means may be used. For example, the triaxial or biaxial acceleration sensor 701 may be of the type available from Analog Devices, Inc. or ST Microelectronics NV. The acceleration sensor 701 is preferably a capacitance type (capacitive coupling type) based on a micro-electromechanical system (MEMS) micromachined silicon technique. However, the triaxial or biaxial acceleration sensor 701 may be provided by using existing acceleration detecting means technology (for example, a piezoelectric method or a piezoresistive method) or other appropriate technology developed in the future.

当業者には公知であるように、加速度センサ701に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701からの直接の出力は、その2軸または3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。   As known to those skilled in the art, the acceleration detection means used in the acceleration sensor 701 can detect only the acceleration (linear acceleration) along a straight line corresponding to each axis of the acceleration sensor. That is, the direct output from the acceleration sensor 701 is a signal indicating linear acceleration (static or dynamic) along each of the two or three axes. For this reason, 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, arc) path.

しかしながら、加速度センサ701から出力される加速度の信号に対して追加の処理を行うことによって、コントローラ7に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、静的な加速度(重力加速度)が検知されると、加速度センサ701からの出力を用いて、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象(コントローラ7)の傾きを判定することができる。このように、加速度センサ701をマイコン751(または他のプロセッサ)と組み合わせて用いることによって、コントローラ7の傾き、姿勢または位置を判定することができる。同様に、加速度センサ701を備えるコントローラ7が例えば後述するようにユーザの手で動的に加速されて動かされる場合に、加速度センサ701によって生成される加速度信号を処理することによって、コントローラ7のさまざまな動きおよび/または位置を算出することができる。他の実施例では、加速度センサ701は、信号をマイコン42に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。   However, it is understood by those skilled in the art that additional information regarding the controller 7 can be estimated or calculated (determined) by performing additional processing on the acceleration signal output from the acceleration sensor 701. It will be easily understood from the explanation. For example, when static acceleration (gravity acceleration) is detected, the output of 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. Can be determined. Thus, by using the acceleration sensor 701 in combination with the microcomputer 751 (or other processor), the inclination, posture, or position of the controller 7 can be determined. Similarly, when the controller 7 including the acceleration sensor 701 is dynamically accelerated and moved by a user's hand, for example, as will be described later, the acceleration signal generated by the acceleration sensor 701 is processed. Correct movement and / or position can be calculated. In another embodiment, the acceleration sensor 701 is a built-in signal processing device or other device for performing desired processing on the acceleration signal output from the built-in acceleration detection means before outputting the signal to the microcomputer 42. This type of processing device may be provided. For example, if the acceleration sensor is for detecting a static acceleration (for example, gravitational acceleration), the built-in or dedicated processing device uses the detected acceleration signal as the corresponding inclination angle (or other It may be converted into a preferable parameter.

また、無線モジュール753およびアンテナ754を有する通信部75によって、コントローラ7がワイヤレスコントローラとして機能する。なお、水晶振動子703は、後述するマイコン751の基本クロックを生成する。   Further, the controller 7 functions as a wireless controller by the communication unit 75 including the wireless module 753 and the antenna 754. The crystal resonator 703 generates a basic clock for the microcomputer 751 described later.

一方、図5(b)において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コントローラ7の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられる。そして、操作ボタン72iが撮像情報演算部74の後方の基板700の下主面上に取り付けられていて、それよりさらに後方に、電池705が収容される。電池705とコネクタ73との間の基板700の下主面上には、バイブレータ704が取り付けられる。このバイブレータ704は、例えば振動モータやソレノイドであってよい。バイブレータ704が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。   On the other hand, in FIG. 5B, the imaging information calculation unit 74 is provided at the front edge on the lower main surface of the substrate 700. The imaging information calculation unit 74 includes an infrared filter 741, a lens 742, an imaging element 743, and an image processing circuit 744 in order from the front of the controller 7, and each is attached to the lower main surface of the substrate 700. A connector 73 is attached to the rear edge on the lower main surface of the substrate 700. And the operation button 72i is attached on the lower main surface of the board | substrate 700 in the back of the imaging information calculating part 74, and the battery 705 is accommodated in the back further. A vibrator 704 is attached on the lower main surface of the substrate 700 between the battery 705 and the connector 73. The vibrator 704 may be a vibration motor or a solenoid, for example. Since the vibration is generated in the controller 7 by the operation of 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.

次に、図6を参照して、コントローラ7の内部構成について説明する。なお、図6は、コントローラ7の構成を示すブロック図である。   Next, the internal configuration of the controller 7 will be described with reference to FIG. FIG. 6 is a block diagram showing the configuration of the controller 7.

撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コントローラ7の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コントローラ7のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。   The imaging information calculation unit 74 includes an infrared filter 741, a lens 742, an imaging element 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 condenses the infrared light that has passed through the infrared filter 741 and outputs the condensed infrared light to the image sensor 743. The imaging element 743 is a solid-state imaging element such as a CMOS sensor or a CCD, for example, and images the infrared rays collected by the lens 742. Therefore, the image sensor 743 captures only the infrared light that has passed through the infrared filter 741 and generates image data. Image data generated by the image sensor 743 is processed by an image processing circuit 744. Specifically, the image processing circuit 744 processes the image data obtained from the image sensor 743 to detect high-luminance portions, and transmits processing result data indicating the result of detecting their position coordinates and area to the communication unit 75. Output to. The imaging information calculation unit 74 is fixed to the housing 71 of the controller 7, and the imaging direction can be changed by changing the direction of the housing 71 itself.

加速度センサ701は、上述したようにコントローラ7の上下方向(Y軸方向)、左右方向(X軸方向)、および前後方向(Z軸方向)の3軸成分に分けてそれぞれ加速度を検知して出力するセンサである。加速度センサ701が検知した3軸成分の加速度を示すデータは、それぞれ通信部75へ出力される。この加速度センサ701から出力される加速度データに基づいて、コントローラ7の動きを判別することができる。なお、加速度センサ701は、特定のアプリケーションで必要なデータに応じて何れか2軸に対してそれぞれ加速度を検出する加速度センサが用いられてもかまわない。   As described above, the acceleration sensor 701 detects and outputs acceleration by dividing the controller 7 into three axis components in the vertical direction (Y-axis direction), the horizontal direction (X-axis direction), and the front-back direction (Z-axis direction). Sensor. Data indicating the acceleration of the three-axis components detected by the acceleration sensor 701 is output to the communication unit 75, respectively. Based on the acceleration data output from the acceleration sensor 701, the movement of the controller 7 can be determined. As the acceleration sensor 701, an acceleration sensor that detects acceleration with respect to any two axes according to data necessary for a specific application may be used.

通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。   The communication unit 75 includes a microcomputer (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.

コントローラ7に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの3軸方向の加速度信号(X、Y、およびZ軸方向加速度データ)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ)を受信ユニット6へ送信する送信データとして一時的にメモリ752に格納する。ここで、通信部75から受信ユニット6への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥース(登録商標)で構成される通信部75の送信間隔は5msである。マイコン751は、受信ユニット6への送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ754から放射する。つまり、コントローラ7に設けられた操作部72からのキーデータ、加速度センサ701からのX、Y、およびZ軸方向加速度データ、および撮像情報演算部74からの処理結果データがコントローラ7から送信される。そして、ゲーム装置3の受信ユニット6でその電波信号を受信し、ゲーム装置3で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、X、Y、およびZ軸方向加速度データ、および処理結果データ)を取得する。そして、ゲーム装置3のCPU30は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Bluetooth(登録商標)の技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。   An operation signal (key data) from the operation unit 72 provided in the controller 7, a triaxial acceleration signal (X, Y, and Z axis direction acceleration data) from the acceleration sensor 701, and an 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) as transmission data to be transmitted to the receiving unit 6 in the memory 752. Here, the wireless transmission from the communication unit 75 to the receiving unit 6 is performed every predetermined cycle, but since the game processing is generally performed in units of 1/60 seconds, it is shorter than that. It is necessary to transmit at periodic intervals. Specifically, the processing unit of the game is 16.7 ms (1/60 seconds), and the transmission interval of the communication unit 75 configured by Bluetooth (registered trademark) is 5 ms. When the transmission timing to the receiving unit 6 comes, the microcomputer 751 outputs the transmission data stored in the memory 752 as a series of operation information and outputs it to the wireless module 753. The wireless module 753 radiates operation information from the antenna 754 as a radio wave signal using a carrier wave of a predetermined frequency using, for example, Bluetooth (registered trademark) technology. That is, key data from the operation unit 72 provided in the controller 7, X, Y and Z axis direction acceleration data from the acceleration sensor 701, and processing result data from the imaging information calculation unit 74 are transmitted from the controller 7. . Then, the radio signal is received by the receiving unit 6 of the game apparatus 3, and the radio signal is demodulated or decoded by the game apparatus 3, thereby a series of operation information (key data, X, Y, and Z-axis direction acceleration data). , And processing result data). And CPU30 of the game device 3 performs a game process based on the acquired operation information and a game program. When the communication unit 75 is configured using the Bluetooth (registered trademark) technology, the communication unit 75 can also have a function of receiving transmission data wirelessly transmitted from other devices.

次に、ゲーム装置3が行う具体的な処理を説明する前に、本ゲーム装置3で行うゲームの概要について説明する。図7に示すように、コントローラ7は、全体として大人や子供の片手で把持可能な大きさである。そして、ゲームシステム1でコントローラ7を用いてゲームをプレイするためには、コントローラ7の前面がプレイヤの前方方向に向くようにプレイヤが一方の手(例えば右手)でコントローラ7を把持する。例えば、プレイヤは、親指をコントローラ7の左側面に添え、手のひらをコントローラ7の上面に添え、人差し指、中指、薬指、小指をコントローラ7下面に添えて、コントローラ7の前面がプレイヤの前方方向に露出させて、あたかもテニスラケットを握っているようにコントローラ7を把持する。   Next, before describing specific processing performed by the game apparatus 3, an outline of a game performed by the game apparatus 3 will be described. As shown in FIG. 7, the controller 7 has a size that can be held with one hand of an adult or a child as a whole. And in order to play a game using the controller 7 with the game system 1, a player hold | grips the controller 7 with one hand (for example, right hand) so that the front surface of the controller 7 may face the front direction of a player. For example, the player attaches the thumb to the left side of the controller 7, attaches the palm to the top surface of the controller 7, attaches the index finger, middle finger, ring finger, and little finger to the bottom surface of the controller 7, and the front surface of the controller 7 is exposed in the forward direction of the player. Then, the controller 7 is gripped as if a tennis racket is being gripped.

プレイヤは、モニタ2で表現されているゲーム画像に合わせて、コントローラ7を把持している腕を当該プレイヤから見て右から左へ振ったり(以下、「左振り」と記載する)、コントローラ7を把持している腕を当該プレイヤから見て左から右へ振ったり(以下、「右振り」と記載する)することによって、コントローラ7から操作情報(具体的には、X、Y、およびZ軸方向加速度データ)をゲーム装置3に与える。プレイヤは、上述した左振りや右振りに加えて、コントローラ7を下から上へ振り上げながらの左振りや右振り、コントローラ7を上から下へ振り下ろしながらの左振りや右振り、コントローラ7を右や左にひねりながらの左振りや右振り等を行うことによって、コントローラ7から様々なX、Y、およびZ軸方向加速度データをゲーム装置3に与えることができる。   The player swings the arm holding the controller 7 from the right to the left as viewed from the player in accordance with the game image represented on the monitor 2 (hereinafter referred to as “left swing”), or the controller 7. By swinging the arm holding the handle from the left to the right when viewed from the player (hereinafter referred to as “right swing”), the controller 7 controls the operation information (specifically, X, Y, and Z). Axis direction acceleration data) is given to the game apparatus 3. In addition to the left and right swings described above, the player swings left and right while swinging the controller 7 upward from the bottom, swings left and right while swinging the controller 7 downward from the top, Various X, Y, and Z-axis direction acceleration data can be given to the game apparatus 3 from the controller 7 by performing a left swing or a right swing while twisting right or left.

図8に示すように、コントローラ7から受信したX、Y、およびZ軸方向加速度データに応じて、モニタ2にテニスゲーム等が表現される。具体的には、仮想ゲーム空間に設定されたテニスコートが3次元のゲーム画像としてモニタ2に表現される。そして、仮想ゲーム空間に、プレイヤが操作するプレイヤキャラクタPC、当該プレイヤキャラクタPCの相手選手となる相手キャラクタEC、およびテニスコート上で移動するテニスボールを示すボールキャラクタBC等が配置されてモニタ2に表現される。以下、説明を具体的にするためにテニスゲームを表現するゲームプログラムが光ディスク4に記憶されており、CPU30がテニスゲーム処理の中でコントローラ7の動きを判別するための動き判別処理について説明する。   As shown in FIG. 8, a tennis game or the like is represented on the monitor 2 in accordance with X, Y, and Z-axis direction acceleration data received from the controller 7. Specifically, a tennis court set in the virtual game space is represented on the monitor 2 as a three-dimensional game image. In the virtual game space, a player character PC operated by the player, an opponent character EC as 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. Expressed. Hereinafter, for the sake of specific explanation, a game program representing a tennis game is stored in the optical disc 4, and a movement determination process for the CPU 30 to determine the movement of the controller 7 during the tennis game process will be described.

プレイヤキャラクタPCは、テニスラケットを持っており、仮想ゲーム空間に設定されたテニスコート上に配置される。そして、プレイヤがコントローラ7を振る動作に応じて、プレイヤキャラクタPCもテニスラケットを振るアニメーションが表現される。そして、到来するボールキャラクタBCをプレイヤキャラクタPCがテニスラケットで打ち返した場合、当該テニスラケットで打撃されたボールキャラクタBCが相手キャラクタEC側のコートに向かって飛んでいく。つまり、プレイヤがコントローラ7を把持して振る動作を行うことによって、同様にテニスラケットを振る動作をプレイヤキャラクタPCが表現することになり、プレイヤはあたかもテニスラケットを振ってテニスをしているような仮想的なスポーツゲームを体験できる。   The player character PC has a tennis racket and is placed on the tennis court set in the virtual game space. Then, an animation in which the player character PC also swings the tennis racket is expressed in accordance with the motion of the player swinging the controller 7. When the player character PC hits the incoming ball character BC with a tennis racket, the ball character BC hit with the tennis racket flies toward the court on the opponent character EC side. In other words, when the player performs the motion of holding the controller 7 and swinging, the player character PC similarly expresses the motion of swinging the tennis racket, and the player seems to play tennis by swinging the tennis racket. You can experience a virtual sports game.

例えば、プレイヤキャラクタPCが右打ちのテニスプレイヤを表現している場合、プレイヤがコントローラ7を把持して「左振り」することによって、プレイヤキャラクタPCがフォアハンドでテニスラケットをスイングする。一方、プレイヤがコントローラ7を把持して「右振り」することによって、プレイヤキャラクタPCがバックハンドでテニスラケットをスイングする。つまり、プレイヤがコントローラ7を振る方向に応じて、プレイヤキャラクタPCが同じ方向にテニスラケットをスイングする動作を行う。   For example, when the player character PC represents a right-handed tennis player, the player character PC swings the tennis racket with the forehand by holding the controller 7 and “swinging left”. On the other hand, the player character PC swings the tennis racket with the back hand by holding the controller 7 and “swinging to the right”. That is, according to the direction in which the player swings the controller 7, the player character PC performs an action of swinging the tennis racket in the same direction.

また、プレイヤがコントローラ7を振るタイミングや速度に応じて、プレイヤキャラクタPCがスイングしたテニスラケットで打撃されたボールキャラクタBCが飛ぶ方向や速度が変化する。さらに、プレイヤがコントローラ7を上下に振り上げ/振り下ろしながら左振りや右振りをすることによって、ボールキャラクタBCの軌道高さが変化する。また、プレイヤがコントローラ7を右や左にひねりながら振ることによって、いわゆるトップスピンやアンダースピンを加えたようなボールキャラクタBCを相手キャラクタECに打ち返すことができる。後述により明らかとなるがこれらの動作は、コントローラ7から出力されるX、Y、およびZ軸方向加速度データによって区別することが可能であり、プレイヤがコントローラ7に加えた様々な動作を反映したテニスゲームを表現することができる。   Further, the direction and speed of the ball character BC that is hit with the tennis racket on which the player character PC swings changes according to the timing and speed at which the player swings the controller 7. Further, the trajectory height of the ball character BC changes as the player swings left or right while swinging the controller 7 up and down. In addition, when the player swings the controller 7 while turning it to the right or left, it is possible to return the ball character BC to which the so-called top spin or under spin is applied to the opponent character EC. As will be described later, these operations can be distinguished by X, Y, and Z-axis direction acceleration data output from the controller 7, and tennis that reflects various operations performed by the player on the controller 7. A game can be expressed.

まず、コントローラ7が振られたか否かを判定する方法について説明する。まず、Z軸方向加速度データが閾値を超えるZ軸正方向の値を示しているとき、ゲーム装置3は、プレイヤがコントローラ7を振ったと判定する。例えば、コントローラ7が静止状態である場合、加速度センサ701は、重力加速度9.8m/s2を超える加速度を検出することはない。一方、上述したようにプレイヤがコントローラ7を把持して腕を振った場合、コントローラ7の前端部が円弧状の軌跡を描いて移動するため、遠心力の影響によってZ軸正方向(図3参照)の加速度が検出される。本実施例では、重力加速度以上の閾値を設定し、Z軸方向加速度データが当該閾値を超える加速度を示している場合、プレイヤがコントローラ7を振っていると判定する。 First, a method for determining whether or not the controller 7 has been shaken will be described. First, when the Z-axis direction acceleration data indicates a value in the positive Z-axis direction that exceeds the threshold value, the game apparatus 3 determines that the player has swung the controller 7. For example, when the controller 7 is in a stationary state, the acceleration sensor 701 does not detect an acceleration exceeding the gravitational acceleration 9.8 m / s 2 . On the other hand, as described above, when the player grips the controller 7 and swings his / her arm, the front end of the controller 7 moves along an arcuate trajectory. ) Acceleration is detected. In this embodiment, when a threshold value equal to or higher than the gravitational acceleration is set and the Z-axis direction acceleration data indicates an acceleration exceeding the threshold value, it is determined that the player is swinging the controller 7.

次に、図9を参照して、コントローラ7を振られていると判定されているときに、XおよびY軸方向加速度データによって、コントローラ7が振られている方向を判定する方法について説明する。なお、図9(a)〜図9(d)は、XおよびY軸方向加速度データがそれぞれ示す加速度の正負および大きさをX軸およびY軸としたグラフの一例である。そして、所得時間毎(例えば5ms毎)に同時に得られたXおよびY軸方向加速度データが示す加速度を順にX−Y座標系にプロットしている。図9(a)〜図9(d)では、同時に得られたXおよびY軸方向加速度データが示す加速度をそれぞれ点Pとして示しており、データが得られた順に矢印で結んで示している。また、図9(a)〜図9(d)は、重力加速度を含む一切の加速度が加速度センサ701に付加されていない状態の加速度データの値を原点(X、Y)=(0,0)で示し、重力加速度の大きさを「1」(破線で示す位置に対応)として示している。   Next, a method for determining the direction in which the controller 7 is being shaken based on the X and Y-axis direction acceleration data when it is determined that the controller 7 is being shaken will be described with reference to FIG. FIGS. 9A to 9D are examples of graphs in which the positive and negative accelerations and magnitudes indicated by the X and Y axis direction acceleration data are X and Y axes, respectively. Then, the accelerations indicated by the X and Y-axis direction acceleration data obtained at the same time every income time (for example, every 5 ms) are plotted in order in the XY coordinate system. In FIG. 9A to FIG. 9D, the acceleration indicated by the X-axis and Y-axis direction acceleration data obtained at the same time is shown as a point P, and is shown by an arrow in the order in which the data was obtained. 9A to 9D show the values of acceleration data in a state where no acceleration including gravitational acceleration is added to the acceleration sensor 701. The origin (X, Y) = (0, 0). The magnitude of gravitational acceleration is indicated as “1” (corresponding to the position indicated by the broken line).

コントローラ7を把持して振った場合、振り始めは加速して振り終わりは減速となる。したがって、コントローラ7には、振り始めで振っている方向と同じ方向の加速度が生じた後、徐々に加速度の大きさが減少して、振り終わりで振っている方向とは逆の方向に加速度が生じる。一方、一般的に、加速度センサ701から出力される加速度ベクトル(あるいは、加速度の正負)は、コントローラ7の加速方向とは真逆のベクトルとなる。したがって、加速度センサ701は、コントローラ7の振り始めで振っている方向とは逆の方向に加速度を検出した後、徐々に加速度の大きさが減少して、振り終わりで振っている方向と同じ方向に加速度を検出する。   When the controller 7 is gripped and shaken, the swing start is accelerated and the swing end is decelerated. Therefore, after the acceleration in the same direction as the direction of waving at the beginning of the swing is generated in the controller 7, the magnitude of the acceleration gradually decreases, and the acceleration is in the direction opposite to the direction of waving at the end of the swing. Arise. On the other hand, in general, the acceleration vector (or the sign of acceleration) output from the acceleration sensor 701 is a vector that is opposite to the acceleration direction of the controller 7. Therefore, the acceleration sensor 701 detects the acceleration in a direction opposite to the direction that the controller 7 swings at the start of swinging, and then gradually decreases in magnitude to the same direction as the direction that swings at the end of swinging. Acceleration is detected.

例えば、コントローラ7の上面を上に向けて水平に左振りで加速(つまり、コントローラ7の加速方向がX軸正方向)したとき、加速度センサ701から得られる加速度ベクトルとしてはX軸負方向のベクトルが得られることになる。したがって、振っている際に同時に得られたXおよびY軸方向加速度データが示す加速度をX−Y座標系にプロットしていくと、コントローラ7の振り始めの加速時はX軸負方向からプロットが始まる。そして、コントローラ7の振り終わりは減速となるためX軸正方向にプロットされる。さらに、加速度センサ701には、常に重力加速度が作用しているため、鉛直方向(ここでは、Y軸負方向)に大きさ「1」の加速度を検出している。したがって、コントローラ7の上面を上に向けて水平に左振りしたとき、X軸方向の加速度がX軸負方向からX軸正方向(X+方向)へ順次推移しながらY軸方向の加速度が「−1」で一定となった点Pが順にX−Y座標系にプロットされる(図9(a))。   For example, when acceleration is performed by swinging leftward with the upper surface of the controller 7 facing upward (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, when the acceleration indicated by the X and Y-axis direction acceleration data obtained simultaneously while shaking is plotted in the XY coordinate system, the plot is started from the negative direction of the X-axis when the controller 7 starts accelerating. Begins. Since the end of the swing of the controller 7 is decelerated, it is plotted in the positive direction of the X axis. Further, since gravitational acceleration is always applied to the acceleration sensor 701, an acceleration having a magnitude of “1” is detected in the vertical direction (here, the Y-axis negative direction). Therefore, when the controller 7 is swung horizontally with the top surface facing upward, the acceleration in the Y-axis direction changes from “X-axis negative direction to X-axis positive direction (X + direction) sequentially while the X-axis direction acceleration changes to“ − ”. The points P that become constant at “1” are sequentially plotted in the XY coordinate system (FIG. 9A).

また、コントローラ7の上面をプレイヤから見て左90°方向に向けて水平に左振りで加速(つまり、コントローラ7の加速方向がY軸正方向)したとき、加速度センサ701から得られる加速度ベクトルとしてはY軸負方向のベクトルが得られることになる。したがって、振っている際に同時に得られたXおよびY軸方向加速度データが示す加速度をX−Y座標系にプロットしていくと、コントローラ7の振り始めの加速時はY軸負方向からプロットが始まる。そして、コントローラ7の振り終わりは減速となるためY軸正方向にプロットされる。さらに、加速度センサ701には、常に重力加速度が作用しているため、鉛直方向(ここでは、X軸正方向)に大きさ「1」の加速度を検出している。したがって、コントローラ7の上面をプレイヤから見て左90°方向に向けて水平に左振りしたとき、X軸方向の加速度が「+1」一定でY軸方向の加速度がY軸負方向からY軸正方向(Y+方向)へ順次推移する点Pが順にX−Y座標系にプロットされる(図9(b))。   As the acceleration vector obtained from the acceleration sensor 701 when the top surface of the controller 7 is accelerated horizontally by swinging leftward toward the 90 ° left direction when viewed from the player (that is, the acceleration direction of the controller 7 is the positive direction of the Y axis). Will yield a vector in the negative Y-axis direction. Therefore, when the acceleration indicated by the X and Y-axis direction acceleration data obtained simultaneously while shaking is plotted on the XY coordinate system, the plot is started from the negative direction of the Y-axis when the controller 7 starts to swing. Begins. Since the end of the swing of the controller 7 is decelerated, it is plotted in the positive Y-axis direction. Further, since gravitational acceleration is always applied to the acceleration sensor 701, an acceleration having a magnitude of “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 horizontally swung toward the left 90 ° direction when viewed from the player, the acceleration in the X-axis direction is constant “+1” and the acceleration in the Y-axis direction is positive from the Y-axis negative direction to the Y-axis positive direction. The points P that sequentially transition in the direction (Y + direction) are plotted in order in the XY coordinate system (FIG. 9B).

また、コントローラ7の上面を下に向けて水平に左振りで加速(つまり、コントローラ7の加速方向がX軸負方向)したとき、加速度センサ701から得られる加速度ベクトルとしてはX軸正方向のベクトルが得られることになる。したがって、振っている際に同時に得られたXおよびY軸方向加速度データが示す加速度をX−Y座標系にプロットしていくと、コントローラ7の振り始めの加速時はX軸正方向からプロットが始まる。そして、コントローラ7の振り終わりは減速となるためX軸負方向にプロットされる。さらに、加速度センサ701には、常に重力加速度が作用しているため、鉛直方向(ここでは、Y軸正方向)に大きさ「1」の加速度を検出している。したがって、コントローラ7の上面を下に向けて水平に左振りしたとき、X軸方向の加速度がX軸正方向からX軸負方向(X−方向)へ順次推移しながらY軸方向の加速度が「+1」で一定となった点Pが順にX−Y座標系にプロットされる(図9(c))。   Further, when acceleration is performed by swinging leftward with the upper surface of the controller 7 facing down (that is, the acceleration direction of the controller 7 is the negative X-axis direction), the acceleration vector obtained from the acceleration sensor 701 is a vector in the positive X-axis direction. Will be obtained. Therefore, when the accelerations indicated by the X and Y axis direction acceleration data obtained simultaneously when shaking is plotted in the XY coordinate system, the plotting is started from the X axis positive direction when the controller 7 starts accelerating. Begins. Since the end of the swing of the controller 7 is decelerated, it is plotted in the X axis negative direction. Further, since gravitational acceleration is always applied to the acceleration sensor 701, an acceleration having a magnitude of “1” is detected in the vertical direction (here, the Y-axis positive direction). Therefore, when the controller 7 is swung horizontally with the upper surface facing downward, the acceleration in the Y-axis direction changes while the acceleration in the X-axis direction sequentially changes from the positive X-axis direction to the negative X-axis direction (X-direction). The points P that become constant at “+1” are plotted in order in the XY coordinate system (FIG. 9C).

さらに、コントローラ7の上面をプレイヤから見て右90°方向に向けて水平に左振りで加速(つまり、コントローラ7の加速方向がY軸負方向)したとき、加速度センサ701から得られる加速度ベクトルとしてはY軸正方向のベクトルが得られることになる。したがって、振っている際に同時に得られたXおよびY軸方向加速度データが示す加速度をX−Y座標系にプロットしていくと、コントローラ7の振り始めの加速時はY軸正方向からプロットが始まる。そして、コントローラ7の振り終わりは減速となるためY軸負方向にプロットされる。さらに、加速度センサ701には、常に重力加速度が作用しているため、鉛直方向(ここでは、X軸負方向)に大きさ「1」の加速度を検出している。したがって、コントローラ7の上面をプレイヤから見て右90°方向に向けて水平に左振りしたとき、X軸方向の加速度が「−1」一定でY軸方向の加速度がY軸正方向からY軸負方向(Y−方向)へ順次推移する点Pが順にX−Y座標系にプロットされる(図9(d))。   Further, when the upper surface of the controller 7 is viewed from the player and turned leftward in the direction of 90 ° rightward (ie, the acceleration direction of the controller 7 is the Y axis negative direction), the acceleration vector obtained from the acceleration sensor 701 is obtained as an acceleration vector. Will obtain a vector in the positive direction of the Y-axis. Therefore, when the acceleration indicated by the X and Y-axis direction acceleration data obtained simultaneously while shaking is plotted in the XY coordinate system, the controller 7 plots from the positive direction of the Y-axis when accelerating at the beginning of the swing. Begins. Since the end of the swing of the controller 7 is decelerated, it is plotted in the Y axis negative direction. Further, since gravitational acceleration is always applied to the acceleration sensor 701, an acceleration having a magnitude “1” is detected in the vertical direction (here, the X-axis negative direction). Therefore, when the upper surface of the controller 7 is horizontally swung toward the right 90 ° direction when viewed from the player, the acceleration in the X-axis direction is constant “−1” and the acceleration in the Y-axis direction is changed from the Y-axis positive direction to the Y-axis. Points P that sequentially transition in the negative direction (Y-direction) are plotted in order in the XY coordinate system (FIG. 9D).

このように、プレイヤがコントローラ7を把持して左振りを行ったとき、プレイヤがコントローラ7を把持する方向によって、XおよびY軸方向加速度データから得られる加速度の変化傾向が異なる。しかしながら、図9(a)〜図9(d)を見れば明らかなように、プレイヤがコントローラ7を左振りしたとき、点Pが全てX−Y座標系の原点を中心に右回りに推移している。一方、プレイヤがコントローラ7を右振りしたとき、加速度が左振りとは逆の傾向を示すことは明らかであり、点Pが全てX−Y座標系の原点を中心に左回りに推移することになる。つまり、X−Y座標系の原点を基準にプロット点Pが推移していく周回方向を算出すれば、プレイヤがコントローラ7を振っている方向(コントローラ7の移動方向)を判定することが可能となる。プロット点Pが推移していく周回方向とコントローラ7が振られている方向との関係は、座標軸の設定、加速度センサの特性、X−Y座標系の設定等によって変わるものであり、適宜各設定に応じて関係を調整すればよい。具体的には、得られた加速度データに基づいた重力加速度の方向(図9(a)〜図9(d)に示す破線矢印方向)を基準とし、当該重力加速度の方向に対する加速度データの推移方向を解析すれば、コントローラ7が振られている方向を正確に判定することができる。   Thus, when the player holds the controller 7 and swings left, the change tendency of the acceleration obtained from the X and Y-axis direction acceleration data differs depending on the direction in which the player holds the controller 7. However, as is apparent from FIGS. 9A to 9D, when the player swings the controller 7 to the left, all the points P shift clockwise around the origin of the XY coordinate system. ing. 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 shift counterclockwise around the origin of the XY coordinate system. Become. In other words, by calculating the turning direction in which the plot point P changes based on 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). Become. The relationship between the turning direction in which the plot point P changes and the direction in which the controller 7 is swung varies depending on the setting of the coordinate axis, the characteristics of the acceleration sensor, the setting of the XY coordinate system, and the like. The relationship may be adjusted according to Specifically, based on the direction of gravitational acceleration based on the obtained acceleration data (broken arrow direction shown in FIGS. 9A to 9D), the transition direction of the acceleration data with respect to the direction of the gravitational acceleration. Can be accurately determined in the direction in which the controller 7 is swung.

しかしながら、現実にはプレイヤがコントローラ7を振る前に行うバックスイング(振りかぶり)やひねり等の影響によって、上記X−Y座標系にプロットされる点Pの推移は、図10に示すような複雑な曲線を描く場合が多い。例えば、図10は左振りによる推移の一例であるが、振り始めに原点に対して左回りの推移(点P1〜点P3;推移L)が現れた後に、右回りの推移(点P3〜点P10;推移R)が現れるため、推移Lの時点で振り方向を判定すると右振りと判定されてしまう。推移Lは、加速度の大きさが相対的に小さいデータ群であるが、これはバックスイングの振りの強さが弱いからである。また、原点から放射方向に近い推移をしているが、これは右振りや左振りとは異なる方向にコントローラ7が振られることによるものである。したがって、このように加速度の大きさが相対的に小さく、原点から放射方向に近い推移をするデータ群は、振り方向を判断するには信頼性の低いデータであるといえる。したがって、推移Rのように、加速度の大きさが相対的に大きいデータ群であり、原点を中心とした周回方向に近い推移を用いて判断すれば、正確に振り方向を判定できるといえる。換言すると、振り方向を判断するには、加速度の大きさが相対的に大きなデータほど信頼度が高く、原点を中心とした周回方向に近い推移ほど信頼度が高くなることになる。   However, in reality, the transition of the point P plotted in the XY coordinate system is complicated as shown in FIG. 10 due to the influence of backswing (swinging) and twisting performed before the player swings the controller 7. Often draws a curve. For example, FIG. 10 shows an example of a left-handed transition. At the beginning of the swing, a counterclockwise transition (points P1 to P3; transition L) appears with respect to the origin, and then a clockwise transition (points P3 to P3). P10; transition R) appears, so if the swing direction is determined at the time of transition L, it is determined to be right swing. The transition L is a data group in which the magnitude of the acceleration is relatively small because the back swing swing strength is weak. Moreover, although the transition is close to the radial direction from the origin, this is because the controller 7 is swung in a direction different from the right swing or the left swing. Therefore, it can be said that the data group in which the magnitude of the acceleration is relatively small and changes from the origin to the radial direction is data with low reliability for determining the swing direction. Therefore, it can be said that the swing direction can be accurately determined by using a transition similar to the rotation direction centered on the origin, such as the transition R, which is a data group having a relatively large acceleration. In other words, in order to determine the swing direction, the data having a relatively large acceleration has a higher reliability, and the transition closer to the rotation direction around the origin has a higher reliability.

上記信頼度を、時系列的に連続する2つの加速度データと原点とを結ぶ三角形の面積で表す。例えば、図11に示すように、時系列的に隣接する点P4およびP5と原点とをそれぞれ結ぶ直線で囲まれた三角形の面積A45を考える。この場合、加速度の大きさが相対的に大きな点Pを用いて三角形を形成すると、面積A45が大きくなる。また、原点を中心とした周回方向に近い推移をする点Pを用いて三角形を形成すると、面積A45が大きくなる。つまり、面積A45の大きさによって、上記信頼度を表すことができることがわかる。   The reliability is represented by the area of a triangle connecting two acceleration data that are continuous in time series and the origin. For example, as shown in FIG. 11, consider an area A45 of a triangle surrounded by straight lines connecting points P4 and P5 adjacent in time series and the origin. In this case, if the triangle is formed using the point P having a relatively large acceleration, the area A45 becomes large. In addition, when a triangle is formed using the point P that changes in the circulation direction around the origin, the area A45 increases. That is, it can be seen that the reliability can be expressed by the size of the area A45.

図12は、図10で示した時系列的に連続する点P1〜P3において、隣接するそれぞれの2点と原点とによって形成された三角形を累積した領域の面積A13と、点P3〜P6において、隣接するそれぞれの2点と原点とによって形成された三角形を累積した領域の面積A36(面積A13は、面積A36の一部に重複)とを示す図である。図12に示すように、面積A13は、原点に対して左回りの推移を示す点P1〜P3を用いて算出された三角形の累積面積である。一方、面積A36は、原点に対して右回りの推移を示す点P3〜P6を用いて算出された三角形の累積面積である。図12から明らかなように、面積A13は、面積A36より極めて小さくなっている。本実施例では、右回りの三角形の面積および左回りの三角形の面積を時系列に沿って累計し、一方の累計が閾値を超えた場合、当該超えた累計面積を形成している三角形に含まれる点Pの推移が右回りか左回りかに基づいて、振り方向を判定する。これによって、信頼度の低いデータの影響を排除しながら正確な振り方向を判定することができる。ここで、振り始めから振り終わりまでの全ての点Pを解析すれば、より正しい振り方向の判定が可能であると考えられるが、本実施例では、振り動作の途中の早い段階で振り方向の判定を行うために閾値を基準とした判定が行われる。   FIG. 12 shows an area A13 of a region in which triangles formed by two adjacent points and the origin are accumulated at points P1 to P3 that are continuous in time series shown in FIG. It is a figure which shows area A36 (area A13 overlaps with a part of area A36) of the area | region which accumulated the triangle formed by each two adjacent points and the origin. As shown in FIG. 12, the area A <b> 13 is a cumulative area of triangles calculated using points P <b> 1 to P <b> 3 that show a counterclockwise transition with respect to the origin. On the other hand, the area A36 is a cumulative area of triangles calculated using points P3 to P6 showing a clockwise transition with respect to the origin. As is apparent from FIG. 12, the area A13 is much smaller than the area A36. In the present embodiment, the area of the clockwise triangle and the area of the counterclockwise triangle are accumulated along the time series, and if one of the accumulated values exceeds the threshold value, it is included in the triangle forming the exceeding accumulated area. The swing direction is determined based on whether the transition of the point P is clockwise or counterclockwise. Thereby, it is possible to determine an accurate swing direction while eliminating the influence of data with low reliability. Here, if all the points P from the start to the end of swing are analyzed, it can be considered that the correct swing direction can be determined. However, in this embodiment, the swing direction is determined at an early stage during the swing operation. In order to make a determination, a determination based on a threshold is performed.

次に、プレイヤがコントローラ7を振る速度の判定について説明する。プレイヤがコントローラ7を速く振ると、加速から減速までの期間が相対的に短くなる。一方、プレイヤがコントローラ7を遅く振ると、加速から減速までの期間が相対的に長くなる。つまり、同じ振り幅でプレイヤがコントローラ7を振った場合、プレイヤがコントローラ7を速く振るほどX−Y座標系にプロットされる点Pの間隔(以下、データ間隔と記載することがある)が広くなる。したがって、時系列的に連続する点Pの間隔をそれぞれ判定して、プレイヤがコントローラ7を振る速度を算出することができる。本実施例では、振り始めから振り終わりまでの全ての点Pを解析して、時系列的に連続する点Pの間隔のうち、最も間隔が広いものを抽出して振る速度を算出する。   Next, the determination of the speed at which the player swings the controller 7 will be described. When the player swings the controller 7 quickly, the period from acceleration to deceleration is relatively short. On the other hand, when the player swings the controller 7 slowly, the period from acceleration to deceleration is relatively long. That is, when the player swings the controller 7 with the same swing width, the interval between the points P plotted in the XY coordinate system (hereinafter sometimes referred to as data interval) becomes wider as the player swings the controller 7 faster. Become. Therefore, it is possible to calculate the speed at which the player swings the controller 7 by determining the intervals between the points P that are continuous in time series. In the present embodiment, all points P from the start to the end of swing are analyzed, and the speed of swinging is calculated by extracting the one having the widest interval among the points P that are continuous in time series.

次に、図13〜図15を参照して、コントローラ7が振られているときに、XおよびY軸方向加速度データによって、コントローラ7がひねられている方向を判定する方法について説明する。なお、図13は、コントローラ7のひねり方向を説明するための斜視図である。図14(a)〜図14(c)は、コントローラ7に加えられたひねりに応じて、XおよびY軸方向加速度データがそれぞれ示す加速度の値を示すグラフの一例である。図15は、図14(a)〜図14(c)の角度θに応じて算出されるスピンパラメータSの一例を示すグラフである。なお、図14(a)〜図14(c)は、図9と同様に点Pが得られた順に矢印で結んで示し、重力加速度を含む一切の加速度が加速度センサ701に付加されていない状態の加速度データの値を原点(X、Y)=(0、0)としている。   Next, a method of determining the direction in which the controller 7 is twisted based on the X and Y-axis direction acceleration data when the controller 7 is shaken will be described with reference to FIGS. FIG. 13 is a perspective view for explaining the twist direction of the controller 7. FIG. 14A to FIG. 14C are examples of graphs showing the acceleration values indicated by the X-axis and Y-axis direction 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 θ in FIGS. 14 (a) to 14 (c). 14A to 14C are connected by arrows in the order in which the points P are obtained as in FIG. 9, and no acceleration including gravitational acceleration is added to the acceleration sensor 701. The value of the acceleration data is the origin (X, Y) = (0, 0).

図13において、プレイヤは、コントローラ7を把持して左振りまたは右振りでスイングするとき、さらにZ軸を中心として「左ひねり」または「右ひねり」をコントローラ7に加えることができる。ここで、「左ひねり」とは、プレイヤから見てZ軸を中心とした反時計方向にコントローラ7を回転させることを示している。また、「右ひねり」とは、プレイヤから見てZ軸を中心とした時計方向にコントローラ7を回転させることを示している。これらのひねり判定の結果は、ボールキャラクタBCに加えられるスピン(トップスピンやバックスピン)に反映される。   In FIG. 13, when the player holds the controller 7 and swings left or right, the player can add “left twist” or “right twist” to the controller 7 around the Z axis. Here, “left twist” indicates that the controller 7 is rotated counterclockwise about the Z axis as viewed from the player. “Right twist” indicates that the controller 7 is rotated clockwise around the Z axis as viewed from the player. The results of these twist determinations are reflected in spins (top spin and back spin) applied to the ball character BC.

ここで、コントローラ7が振られているときに、コントローラ7がひねられた角度を判定するには、振り始めから振り終わりまでのXおよびY軸方向加速度データを解析する必要がある。本実施例では、振り始めに得られるXおよびY軸方向加速度データを示す点Ps(つまり、X−Y座標系へ最初にプロットする始点)と振り終わりに得られるXおよびY軸方向加速度データを示す点Pe(つまり、X−Y座標系へ最後にプロットする終点)とを用いて、コントローラ7がひねられた角度を判定する。   Here, in order to determine the twisted angle when the controller 7 is being shaken, it is necessary to analyze the X and Y-axis direction acceleration data from the start to the end of the swing. In the present embodiment, the point Ps indicating the X and Y axis direction acceleration data obtained at the beginning of the swing (that is, the starting point plotted first in the XY coordinate system) and the X and Y axis direction acceleration data obtained at the end of the swing are obtained. The controller 7 determines the twisted angle using the indicated point Pe (that is, the end point plotted last in the XY coordinate system).

例えば、図14(a)は、コントローラ7の上面を上に向けた状態を維持(つまり、「ひねりなし」)して水平に左振りしたときに、振り始めから振り終わりまでに得られるXおよびY軸方向加速度データの一例を示している。そして、始点Psおよび原点を結ぶ直線から終点Peおよび原点を結ぶ直線までの間に形成される角度θ(以下、始点Psから終点Peまでの角度θと記載する)を算出し、当該角度θに応じたスピンパラメータSを設定する。この場合、コントローラ7に作用する重力方向が一定であるため、中程度な角度θが得られる。ここで、角度θは、X−Y座標系の原点から始点Psに向かうベクトルと原点から終点Peに向かうベクトルとが成す角度の絶対値を算出することによって求めることができる。   For example, FIG. 14A shows X and X obtained from the start to the end of swinging when the controller 7 is kept in a state where the upper surface is directed upward (that is, “no twist”) and is swung horizontally. An example of Y-axis direction acceleration data is shown. Then, an 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 an angle θ from the start point Ps to the end point Pe) is calculated, and the angle θ is calculated. A corresponding spin parameter S is set. In this case, since the direction of gravity acting on the controller 7 is constant, a moderate angle θ is obtained. Here, the angle θ can be obtained by calculating the absolute value of the angle formed by the vector from the origin to the start point Ps and the vector from the origin to the end point Pe in the XY coordinate system.

図14(b)は、コントローラ7の上面を上に向けた状態から「左ひねり」を加えながら水平に左振りしたときに、振り始めから振り終わりまでに得られるXおよびY軸方向加速度データの一例を示している。この場合、コントローラ7に作用する重力方向がひねりに応じて右回りに変化していくため、「ひねりなし」で得られる角度θより「左ひねり」で得られる始点Psから終点Peまでの角度θが大きくなる。   FIG. 14B shows X and Y-axis direction acceleration data obtained from the start to the end of swinging when the controller 7 is turned leftward with a “left twist” from the state in which the upper surface is directed upward. 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 obtained by the “left twist” to the end point Pe than the angle θ obtained by “no twist”. Becomes larger.

図14(c)は、コントローラ7の上面を上に向けた状態から「右ひねり」を加えながら水平に左振りしたときに、振り始めから振り終わりまでに得られるXおよびY軸方向加速度データの一例を示している。この場合、コントローラ7に作用する重力方向がひねりに応じて左回りに変化していくため、「ひねりなし」で得られる角度θより「右ひねり」で得られる始点Psから終点Peまでの角度θが小さくなる。   FIG. 14C shows X and Y-axis acceleration data obtained from the start to the end of swinging when the controller 7 is turned leftward with a “right twist” from the state in which the upper surface is directed upward. 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 obtained by the “right twist” to the end point Pe than the angle θ obtained by “no twist”. Becomes smaller.

このように、始点Psから終点Peまでの角度θに注目すれば、振っているときにコントローラ7に加えられたひねり方向やひねり角度を判定することができる。例えば、コントローラ7が「左振り」されているとき、角度θが閾値より大きい場合「左ひねり」、角度θが閾値より小さい場合「右ひねり」と判定することができる。なお、コントローラ7が「右振り」されているときは、これらの傾向が逆に現れる。すなわち、コントローラ7が「右振り」されているとき、角度θが閾値より大きい場合「右ひねり」、角度θが閾値より小さい場合「左ひねり」と判定することができる。つまり、X軸方向加速度データおよびY軸方向加速度データがX−Y座標系における座標点として示す始点Psおよび終点Peを用いて、X軸およびY軸に対して互いに直交するZ軸を回転軸としたコントローラ7の回転動作を判別することができる。   In this way, by paying attention to the angle θ from the start point Ps to the end point Pe, the twist direction and twist angle applied to the controller 7 while shaking can be determined. For example, when the controller 7 is “left-handed”, it can be determined as “left twist” when the angle θ is larger than the threshold, and “right twist” when the angle θ is smaller than the threshold. When the controller 7 is “right-handed”, these tendencies appear in reverse. That is, when the controller 7 is “right-handed”, it can be determined that “right twist” is when the angle θ is larger than the threshold, and “left twist” when the angle θ is smaller than the threshold. That is, using the start point Ps and the end point Pe indicated by the X-axis direction acceleration data and the Y-axis direction acceleration data as coordinate points in the XY coordinate system, the Z axis orthogonal to the X axis and the Y axis is defined as the rotation axis. The rotation operation of the controller 7 can be discriminated.

また、「ひねりなし」で得られる角度θの大きさ(図14(a))を基準とした角度θの大きさの差に応じて、プレイヤがコントローラ7をひねった回転の量を決定することができる。本実施例では、所定の変換テーブルを用いて、ひねり認識に用いた角度θを当該角度θの大きさに応じてスピンパラメータSに置き換えて、その後のゲーム処理を行っている。スピンパラメータSは、例えば角度θの大きさに応じて決定される−1.0〜1.0の浮動小数である。そして、ゲーム処理においては、S=−1.0のときにバックスピンの最大効果を与え、S=1.0のときにトップスピンの最大効果を与えるものとする。   In addition, the amount of rotation by which the player twists the controller 7 is determined according to the difference in the angle θ with reference to the angle θ obtained by “no twist” (FIG. 14A). Can do. In this embodiment, using a predetermined conversion table, the angle θ used for the 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 determined according to the magnitude of the angle θ, for example. In the game process, the maximum effect of back spin is given when S = −1.0, and the maximum effect of top spin is given when S = 1.0.

例えば、図15に示すように、角度θ≦30°のときは、スピンパラメータS=−1.0に変換する。30°<角度θ≦70°のときは、スピンパラメータS=−1.0〜0.0の間で線形に変化させて変換する。70°<角度θ≦120°のときは、スピンパラメータS=0.0に変換する。120°<角度θ≦160°のときは、スピンパラメータS=0.0〜1.0の間で線形に変化させて変換する。160°<角度θのときは、スピンパラメータS=1.0に変換する。これらの変換テーブルを調整することによって、コントローラ7に対するひねりをゲーム処理に反映させる効果を調整することができる。   For example, as shown in FIG. 15, when the angle θ ≦ 30 °, the spin parameter S is converted to −1.0. When 30 ° <angle θ ≦ 70 °, conversion is performed by changing linearly between the spin parameters S = −1.0 to 0.0. When 70 ° <angle θ ≦ 120 °, the spin parameter S is converted to 0.0. When 120 ° <angle θ ≦ 160 °, conversion is performed by changing linearly between spin parameters S = 0.0 to 1.0. When 160 ° <angle θ, the spin parameter S is converted to 1.0. By adjusting these conversion tables, the effect of reflecting the twist on the controller 7 in the game process can be adjusted.

次に、図16および図17を参照して、コントローラ7が振り上げられているまたは振り下ろされている状態を判定する方法について説明する。なお、図16(a)〜図16(c)は、コントローラ7の上下方向に傾けた状態とそれらの座標軸との関係を説明するための図である。図17は、Z軸方向加速度データに応じて算出される上下角度UDの一例を示すグラフである。   Next, a method for determining a state in which the controller 7 is being swung up or down is described with reference to FIGS. 16 and 17. 16A to 16C are diagrams for explaining the relationship between the state in which the controller 7 is tilted in the vertical direction and the coordinate axes thereof. FIG. 17 is a graph showing an example of the vertical angle UD calculated according to the Z-axis direction acceleration data.

本実施例では、振り始め前のコントローラ7の上下方向に基づいて、コントローラ7が振り上げられているまたは振り下ろされているかを判定している。例えば、プレイヤがコントローラ7を振り始める前に当該コントローラ7の前面を水平から所定の角度以上に下方向へ向けていたとき、プレイヤがコントローラ7を振り上げてスイングしたと判定する。一方、プレイヤがコントローラ7を振り始める前に当該コントローラ7の前面を水平から所定の角度以上に上方向へ向けていたとき、プレイヤがコントローラ7を振り下ろしてスイングしたと判定する。   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 turned downward from the horizontal by a predetermined angle or more before the player starts to swing the controller 7, it is determined that the player swings by swinging up the controller 7. On the other hand, when the player turns the front surface of the controller 7 upward from the horizontal by a predetermined angle or more before starting to swing the controller 7, it is determined that the player swings down by swinging the controller 7.

具体的には、コントローラ7が振られていると判定されたとき、その直前の数フレームに対して得られたZ軸方向加速度データに基づいて、振り始め前のコントローラ7の上下方向を判定する。例えば、図16(a)に示すように、プレイヤがコントローラ7を振り始める前に当該コントローラ7が水平である場合、重力加速度がY軸負方向に作用するためZ軸方向加速度データには当該重力加速度の影響が現れない。一方、図16(b)に示すように、プレイヤがコントローラ7を振り始める前に当該コントローラ7の前面を水平から上方向に向けている場合、重力加速度がY軸負方向およびZ軸負方向に作用するためZ軸方向加速度データが当該重力加速度の影響によってZ軸負方向の加速度を示す。また、図16(c)に示すように、プレイヤがコントローラ7を振り始める前に当該コントローラ7の前面を水平から下方向に向けている場合、重力加速度がY軸負方向およびZ軸正方向に作用するためZ軸方向加速度データが当該重力加速度の影響によってZ軸正方向の加速度を示す。つまり、プレイヤがコントローラ7を振り始める前のZ軸方向加速度データを解析すれば、プレイヤがコントローラ7を振り始める前の上下方向が判定できる。   Specifically, when it is determined that the controller 7 is being shaken, the vertical direction of the controller 7 before the start of the shake is determined based on the Z-axis direction acceleration data obtained for the previous few frames. . For example, as shown in FIG. 16A, when the controller 7 is horizontal before the player starts to swing the controller 7, the gravitational acceleration acts in the negative Y-axis direction, so that the gravity data in the Z-axis direction acceleration data The effect of acceleration does not appear. On the other hand, as shown in FIG. 16B, when the front surface of the controller 7 is directed upward from the horizontal before the player starts to swing the controller 7, the gravitational acceleration is in the Y-axis negative direction and the Z-axis negative direction. In order to act, the Z-axis direction acceleration data indicates the Z-axis negative direction acceleration due to the influence of the gravitational acceleration. In addition, as shown in FIG. 16C, when the front surface of the controller 7 is directed downward from the horizontal before the player starts to swing the controller 7, the gravitational acceleration is in the Y-axis negative direction and the Z-axis positive direction. In order to act, the Z-axis direction acceleration data indicates the acceleration in the Z-axis positive direction due to the influence of the gravitational acceleration. That is, if the Z-axis direction acceleration data before the player starts to swing the controller 7 is analyzed, the vertical direction before the player starts to swing the controller 7 can be determined.

本実施例では、得られたZ軸方向加速度データをメインメモリ33に格納し、コントローラ7が振られていると判定されたときに、その直前の30フレーム分に対して得られたZ軸方向加速度データの平均値Zaveをコントローラ7の上下角度UDに変換し、その後のゲーム処理を行っている。   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 shaken, the Z-axis direction obtained for the previous 30 frames is determined. The average value Zave of the acceleration data is converted into the vertical angle UD of the controller 7, and the subsequent game processing is performed.

例えば、図17に示すように、平均値Zave≦−0.2Gのときは、上下角度UD=60°に変換する。−0.2G<平均値Zave≦1.0Gのときは、上下角度UD=60°〜−60°の間で線形に変化させて変換する。1.0G<平均値Zaveのときは、上下角度UD=−60°に変換する。ここで、平均値Zaveに対して変換される上下角度UDのバランスがZ軸正方向に寄っているが、これは振り始めでは必ずZ軸方向加速度データがZ軸正方向に振れているため、その影響を考慮したためである。これらの変換テーブルを調整することによって、コントローラ7の振り始め前に得られたZ軸方向加速度データをゲーム処理に反映させる効果を調整することができる。   For example, as shown in FIG. 17, when the average value Zave ≦ −0.2G, the vertical angle UD is converted to 60 °. When −0.2 G <average value Zave ≦ 1.0 G, conversion is performed by linearly changing the vertical angle UD = 60 ° to −60 °. When 1.0 G <average value Zave, the vertical angle UD is converted to −60 °. Here, the balance of the vertical angle UD converted with respect to the average value Zave is shifted in the positive direction of the Z axis. This is because the acceleration data in the Z axis direction always swings in the positive direction of the Z axis at the beginning of swinging. This is because the influence is 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 controller 7 starts swinging in the game process.

次に、ゲームシステム1において行われるゲーム処理の詳細を説明する。まず、図18を参照して、ゲーム処理において用いられる主なデータについて説明する。なお、図18は、ゲーム装置3のメインメモリ33に記憶される主なデータを示す図である。   Next, the details of the game process performed in the game system 1 will be described. First, main data used in the game process will be described with reference to FIG. FIG. 18 is a diagram showing main data stored in the main memory 33 of the game apparatus 3.

図18に示すように、メインメモリ33には、加速度データDa、上下角度データDb、左回り累積面積データDc、右回り累積面積データDd、第1ボール軌道データDe、第2ボール軌道データDf、第1ダミーボールデータDg、第2ダミーボールデータDh、ボールキャラクタデータDi、始点−終点角度データDj、スピンパラメータDk、最大プロット間隔データDl、カウントデータDm、および画像データDn等が記憶される。なお、メインメモリ33には、図18に示す情報に含まれるデータの他、ゲームに登場するプレイヤキャラクタPCや相手キャラクタEC等に関するデータ(位置データ等)や仮想ゲーム空間に関するデータ(地形データ等)等、ゲーム処理に必要なデータが記憶される。   As shown in FIG. 18, the main memory 33 includes acceleration data Da, vertical angle data Db, counterclockwise accumulated area data Dc, clockwise accumulated area data Dd, first ball trajectory data De, second ball trajectory data Df, First dummy ball data Dg, second dummy ball data Dh, ball character data Di, start point-end point angle data Dj, spin parameter Dk, maximum plot interval data Dl, count data Dm, image data Dn, and the like are stored. In the main memory 33, in addition to the data included in the information shown in FIG. 18, data (position data, etc.) relating to the player character PC and opponent character EC appearing in the game, data relating to the virtual game space (terrain data, etc.) Etc., data necessary for the game processing is stored.

加速度データDaは、コントローラ7から送信データとして送信されてくる一連の操作情報に含まれる加速度データであり、得られた加速度データを所定フレーム分(例えば、ゲーム処理間隔である1フレーム(1/60秒)に対して30フレーム分)格納する。加速度データDaには、加速度センサ701がX、Y、およびZ軸の3軸成分に分けてそれぞれ検出したX軸方向加速度データDa1、Y軸方向加速度データDa2、およびZ軸方向加速度データDa3が含まれる。なお、ゲーム装置3に備える受信ユニット6は、コントローラ7から所定間隔例えば5msごとに送信される操作情報に含まれる加速度データDaを受信し、受信ユニット6に備える図示しないバッファに蓄えられる。その後、ゲーム処理間隔である1フレーム毎に読み出されてメインメモリ33に記憶される。   The acceleration data Da is acceleration data included in a series of operation information transmitted as transmission data from the controller 7, and the obtained acceleration data is stored for a predetermined frame (for example, 1 frame (1/60 which is a game processing interval). For 30 frames). The acceleration data Da includes X-axis direction acceleration data Da1, Y-axis direction acceleration data Da2, and Z-axis direction acceleration data Da3 detected by the acceleration sensor 701 separately for the X-axis, Y-axis, and Z-axis components. It is. The receiving unit 6 provided in the game apparatus 3 receives acceleration data Da included in the operation information transmitted from the controller 7 at a predetermined interval, for example, every 5 ms, and is stored in a buffer (not shown) provided in the receiving unit 6. Thereafter, it is read out every frame which is the game processing interval and stored in the main memory 33.

上下角度データDbは、振り始め前にコントローラ7から得られたZ軸方向加速度データDa3に応じて算出された上下角度UD(図16、図17参照)を示すデータである。左回り累積面積データDcは、X−Y座標系において、原点に対して左回りに推移する加速度データを用いて形成された三角形の面積(図12参照)を累積したデータである。右回り累積面積データDdは、X−Y座標系において、原点に対して右回りに推移する加速度データを用いて形成された三角形の面積(図12参照)を累積したデータである。   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 accumulated area data Dc is data obtained by accumulating triangular areas (see FIG. 12) formed using acceleration data that moves counterclockwise with respect to the origin in the XY coordinate system. The clockwise accumulated area data Dd is data obtained by accumulating triangular areas (see FIG. 12) formed using acceleration data that changes clockwise with respect to the origin in the XY coordinate system.

第1ボール軌道データDeは、後述するモーション認識処理における初期段階におけるデータに基づいて、ボールキャラクタBCが仮想ゲーム空間内を移動する軌道(第1ボール軌道TR1)を算出したデータである。第2ボール軌道データDfは、モーション認識処理の全期間において得られたデータに基づいて、ボールキャラクタBCが仮想ゲーム空間内を移動する軌道(第2ボール軌道TR2)を算出したデータである。第1ダミーボール位置データDgは、第1ダミーボール速度データDg1および第1ダミーボール位置データDg2を含み、第1ボール軌道データDeで示される軌道に沿って移動させる第1ダミーボールの速度および位置を示す仮想ゲーム空間に対する速度ベクトルデータおよび位置座標データである。第2ダミーボール位置データDhは、第2ダミーボール速度データDh1および第2ダミーボール位置データDh2を含み、第2ボール軌道データDfで示される軌道に沿って移動させる第2ダミーボールの速度および位置を示す仮想ゲーム空間に対する速度ベクトルデータおよび位置座標データである。ボールキャラクタデータDiは、ボールキャラクタ速度データDi1およびボールキャラクタ位置データDi2を含み、ボールキャラクタBCの現在の速度および位置を示す仮想ゲーム空間に対する速度ベクトルデータおよび位置座標データである。   The first ball trajectory data De is data obtained by calculating a trajectory (first ball trajectory TR1) in which the ball character BC moves in the virtual game space based on data at an initial stage in a motion recognition process described later. The second ball trajectory data Df is data obtained by calculating a trajectory (second ball trajectory TR2) in which the ball character BC moves in the virtual game space based on data obtained during the entire period of the motion recognition process. The first dummy ball position data Dg includes first dummy ball speed data Dg1 and first dummy ball position data Dg2, and the speed and position of the first dummy ball to be moved along the track indicated by the first ball track data De. These are velocity vector data and position coordinate data for a virtual game space. The second dummy ball position data Dh includes second dummy ball speed data Dh1 and second dummy ball position data Dh2, and the speed and position of the second dummy ball to be moved along the track indicated by the second ball track data Df. These are velocity vector data and position coordinate data for a virtual game space. Ball character data Di includes ball character speed data Di1 and ball character position data Di2, and is speed vector data and position coordinate data for a virtual game space indicating the current speed and position of ball character BC.

始点−終点角度データDjは、上記X−Y座標系において、始点Psから終点Peまでの角度θ(図14参照)を示すデータである。スピンパラメータDkは、角度θを置き換えることによって得られるスピンパラメータS(図15参照)を示すデータである。最大プロット間隔データDlは、モーション認識処理の全期間において得られたXおよびY軸方向加速度データに基づいて、X−Y座標系にプロットした場合に時系列的に連続する間隔が最大となるデータ間隔を示すデータである。カウントデータDmは、後述するフローチャートで用いられるカウント値を示すデータである。   The start point-end point angle data Dj is data indicating an angle θ (see FIG. 14) from the start point Ps to the end point Pe in the XY coordinate system. The spin parameter Dk is data indicating the spin parameter S (see FIG. 15) obtained by replacing the angle θ. The maximum plot interval data Dl is data in which the interval that is continuous in time series becomes maximum when plotted in the XY coordinate system based on the X and Y axis direction acceleration data obtained during the entire period of the motion recognition process. This is data indicating the interval. The count data Dm is data indicating a count value used in a flowchart described later.

画像データDnは、プレイヤキャラクタ画像データDn1およびボール画像データDn2等を含み、仮想ゲーム世界にプレイヤキャラクタPCやボールキャラクタBCを配置してゲーム画像を生成するためのデータである。   The image data Dn includes player character image data Dn1, ball image data Dn2, and the like, and is data for generating a game image by arranging the player character PC and the ball character BC in the virtual game world.

次に、図19〜図26を参照して、ゲーム装置3において行われるゲーム処理の詳細を説明する。なお、図19は、ゲーム装置3において実行されるゲーム処理の流れを示すフローチャートである。図20は、図19におけるステップ51の初期モーション認識処理の詳細な動作を示すサブルーチンである。図21は、図19におけるステップ52のアニメーション開始処理の詳細な動作を示すサブルーチンである。図22は、図19におけるステップ53の第1挙動処理の詳細な動作を示すサブルーチンである。図23は、図19におけるステップ54の第2挙動処理の詳細な動作を示すサブルーチンである。図24は、モーション認識処理、アニメーション処理、およびボール挙動処理がそれぞれ行われるタイミングを示す図である。図25は、スピンパラメータSに応じて決定されるボール挙動の一例を示す図である。図26は、第1ボール軌道TR1および第2ボール軌道TR2の一例を示す図である。なお、図19〜図23に示すフローチャートにおいては、ゲーム処理のうち、プレイヤがコントローラ7を振ることによるゲーム操作に基づいて行われるゲーム処理について説明し、本願発明と直接関連しない他のゲーム処理については詳細な説明を省略する。また、図19〜図23では、CPU30が実行する各ステップを「S」と略称する。   Next, with reference to FIGS. 19 to 26, details of the game process performed in the game apparatus 3 will be described. FIG. 19 is a flowchart showing a flow of game processing executed in the game apparatus 3. FIG. 20 is a subroutine showing the detailed operation of the initial motion recognition process in step 51 in FIG. FIG. 21 is a subroutine showing the detailed operation of the animation start process in step 52 in FIG. FIG. 22 is a subroutine showing the detailed operation of the first behavior process in step 53 in FIG. FIG. 23 is a subroutine showing the detailed operation of the second behavior processing at step 54 in FIG. FIG. 24 is a diagram illustrating timings at which motion recognition processing, animation processing, and ball behavior processing are performed. FIG. 25 is a diagram illustrating an example of the ball behavior determined according to the spin parameter S. FIG. 26 is a diagram illustrating an example of the first ball trajectory TR1 and the second ball trajectory TR2. In the flowcharts shown in FIGS. 19 to 23, game processing performed based on a game operation by the player shaking the controller 7 will be described, and other game processing not directly related to the present invention will be described. Will not be described in detail. In FIGS. 19 to 23, each step executed by the CPU 30 is abbreviated as “S”.

ゲーム装置3の電源が投入されると、ゲーム装置3のCPU30は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ33等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリ33に読み込まれ、CPU30によって当該ゲームプログラムの実行が開始される。図12〜図15に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。   When the power of the game apparatus 3 is turned on, the CPU 30 of the game apparatus 3 executes a startup 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 disc 4 is read into the main memory 33, and the CPU 30 starts executing the game program. The flowchart shown in FIGS. 12 to 15 is a flowchart showing the game process performed after the above process is completed.

図19において、CPU30は、初期モーション認識処理(ステップ51)、アニメーション開始処理(ステップ52)、第1挙動処理(ステップ53)、および第2挙動処理(ステップ54)を順に行う。なお、これらの詳細な動作内容については、後述する。そして、CPU30は、ゲームを終了するか否かを判断する(ステップ55)。ゲームを終了する条件としては、例えば、ゲームオーバーとなる条件(例えば、プレイヤキャラクタがプレイするテニスゲームが終了する等)が満たされたことや、プレイヤがゲームを終了する操作を行ったこと等がある。CPU30は、ゲームを終了しない場合に上記ステップ51に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。   In FIG. 19, the CPU 30 performs an initial motion recognition process (step 51), an animation start process (step 52), a first behavior process (step 53), and a second behavior process (step 54) in this order. Details of these operations will be described later. Then, the CPU 30 determines whether or not to end the game (step 55). As the conditions for ending the game, for example, a condition that the game is over (for example, a tennis game played by the player character is ended), or that the player performs an operation to end the game, etc. is there. CPU30 returns to the said step 51, and repeats a process, when not complete | finishing a game, and complete | finishes the process by the said flowchart, when a game is complete | finished.

図20を参照して、上記ステップ51における初期モーション認識処理の動作について説明する。まず、CPU30は、コントローラ7から受信した操作情報に含まれる加速度データを取得し(ステップ61)、処理を次のステップに進める。そして、CPU30は、取得した加速度データを加速度データDaとしてメインメモリ33に記憶する。ここで、ステップ61で取得される加速度データには、加速度センサ701がX、Y、およびZ軸の3軸成分に分けてそれぞれ検出したX、Y、およびZ軸方向加速度データが含まれている。ここでは、通信部75は、所定の時間間隔(例えば5ms間隔)で操作情報をゲーム装置3へ送信しており、受信ユニット6に備える図示しないバッファに少なくとも加速度データが蓄えられる。そして、CPU30は、ゲーム処理単位である1フレーム毎にバッファに蓄えられた加速度データを取得してメインメモリ33に格納する。   With reference to FIG. 20, the operation | movement of the initial motion recognition process in the said step 51 is demonstrated. First, the CPU 30 acquires acceleration data included in the operation information received from the controller 7 (step 61), and advances the processing to the next step. Then, the CPU 30 stores the acquired acceleration data in the main memory 33 as the acceleration data Da. Here, the acceleration data acquired in step 61 includes X-, Y-, and Z-axis direction acceleration data detected by the acceleration sensor 701 separately for the three-axis components of the X, Y, and Z axes. . Here, the communication unit 75 transmits operation information to the game apparatus 3 at a predetermined time interval (for example, at an interval of 5 ms), and at least acceleration data is stored in a buffer (not shown) provided in the receiving unit 6. Then, the CPU 30 acquires acceleration data stored in the buffer for each frame, which is a game processing unit, and stores it in the main memory 33.

次に、CPU30は、取得した加速度データを用いて、コントローラ7がプレイヤによって振られたか否かを判断する(ステップ62)。具体的には、CPU30は、上記ステップ61で取得したZ軸方向加速度データが閾値を超えたZ軸正方向の値を示しているとき、プレイヤがコントローラ7を振ったと判定する。そして、CPU30は、コントローラ7が振られている場合、処理を次のステップ63に進める。一方、CPU30は、コントローラ7が振られていない場合、上記ステップ61に戻って処理を繰り返す。   Next, the CPU 30 determines whether or not the controller 7 has been swung by the player using the acquired acceleration data (step 62). Specifically, the CPU 30 determines that the player has swung the controller 7 when the Z-axis direction acceleration data acquired in step 61 indicates a value in the positive Z-axis direction that exceeds the threshold value. Then, when the controller 7 is shaken, the CPU 30 advances the process to the next step 63. On the other hand, if the controller 7 is not shaken, the CPU 30 returns to step 61 and repeats the process.

ステップ63において、CPU30は、振り始め前のコントローラ7の上下方向を判定し、処理を次のステップに進める。具体的には、CPU30は、メインメモリ33に格納されている過去数フレーム(例えば、30フレーム)分のZ軸方向加速度データDa3の平均値Zaveを算出する。そして、CPU30は、平均値Zaveを上下角度UDに変換(図17参照)して、当該上下角度UDを示すデータを上下角度データDbとして格納する。   In step 63, the CPU 30 determines the vertical direction of the controller 7 before the start of swinging, and advances the processing to the next step. Specifically, the CPU 30 calculates an average value Zave of the Z-axis direction acceleration data Da3 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 the vertical angle UD (see FIG. 17) and stores data indicating the vertical angle UD as the vertical angle data Db.

次に、CPU30は、コントローラ7から受信した操作情報に含まれる加速度データをステップ61と同様の処理によって取得し(ステップ64)、当該取得した加速度データのZ軸方向データが閾値以下であるかどうかに基づいてプレイヤがコントローラ7を振る動作を終了したか否かを判断する(ステップ65)。そして、CPU30は、コントローラ7を振る動作が継続している場合、処理を次のステップ66に進める。一方、CPU30は、コントローラ7を振る動作が終了している場合、上記ステップ51に戻って処理を繰り返す。   Next, the CPU 30 acquires acceleration data included in the operation information received from the controller 7 by the same process as in step 61 (step 64), and whether the Z-axis direction data of the acquired acceleration data is equal to or less than a threshold value. Based on the above, it is determined whether or not the player has finished moving the controller 7 (step 65). Then, when the operation of shaking the controller 7 is continued, the CPU 30 advances the process to the next step 66. On the other hand, when the operation of shaking the controller 7 is finished, the CPU 30 returns to step 51 and repeats the process.

ステップ66において、CPU30は、上記ステップ64で所得した加速度データに基づいて、X−Y座標系における原点との間で形成される三角形面積を累積し、処理を次のステップに進める。具体的には、図12を参照して説明したように、上記ステップ64で所得した加速度データがX−Y座標系の原点に対して左回りに推移している場合、CPU30は、適宜形成された三角形の面積を左回り累積面積データDcに累積して格納する。一方、CPU30は、上記ステップ64で所得した加速度データがX−Y座標系の原点に対して右回りに推移している場合、適宜形成された三角形の面積を右回り累積面積データDdに累積して格納する。   In step 66, the CPU 30 accumulates the triangular area formed with the origin in the XY coordinate system based on the acceleration data obtained in step 64, and advances the processing to the next step. Specifically, as described with reference to FIG. 12, when the acceleration data obtained in step 64 is counterclockwise with respect to the origin of the XY coordinate system, the CPU 30 is appropriately formed. The area of the triangle is accumulated and stored in the counterclockwise accumulated area data Dc. On the other hand, when the acceleration data obtained in step 64 is moving clockwise with respect to the origin of the XY coordinate system, the CPU 30 accumulates an appropriately formed area of the triangle in the clockwise accumulated area data Dd. Store.

次に、CPU30は、上記ステップ64で所得した加速度データによってX−Y座標系にプロットされる間隔(データ間隔)を判定し(ステップ67)、処理を次のステップに進める。具体的には、CPU30は、得られたデータ間隔が、現在最大プロット間隔データDlに格納されているデータ間隔より広い場合、当該最大プロット間隔データDlを得られたデータ間隔に更新する。一方、CPU30は、得られたデータ間隔が、現在最大プロット間隔データDlに格納されているデータ間隔と同じまたは狭い場合、そのまま処理を次のステップに進める。   Next, the CPU 30 determines an interval (data interval) plotted in the XY coordinate system based on the acceleration data obtained in step 64 (step 67), and advances the processing 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 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.

次に、CPU30は、左回り累積面積データDcが示す累積面積および右回り累積面積データDdが示す累積面積の何れか一方が閾値を超えたか否かを判断する(ステップ68)。そして、CPU30は、累積面積の何れか一方が閾値を超えた場合、当該サブルーチンによる処理を終了して上記ステップ52に処理を進める。一方、CPU30は、累積面積が何れも閾値を超えていない場合、上記ステップ64に戻って処理を繰り返す。   Next, the CPU 30 determines whether one of the cumulative area indicated by the counterclockwise cumulative area data Dc and the cumulative area indicated by the clockwise cumulative area data Dd exceeds a threshold value (step 68). If any one of the accumulated areas exceeds the threshold value, the CPU 30 ends the process by the subroutine and proceeds to step 52 described above. On the other hand, when the accumulated area does not exceed the threshold value, the CPU 30 returns to step 64 and repeats the process.

図21を参照して、上記ステップ52におけるアニメーション開始処理の動作について説明する。上記ステップ68の処理の後、CPU30は、コントローラ7に対して振られた方向を判定し(ステップ71)、処理を次のステップに進める。例えば、上記ステップ68において、左回り累積面積データDcが示す累積面積が閾値を超えたと判定された場合、加速度データが上述したX−Y座標系の原点を中心に左回りに推移しているとしてプレイヤがコントローラ7を「右振り」(図7参照)していると判定される。一方、上記ステップ68において、右回り累積面積データDdが示す累積面積が閾値を超えたと判定された場合、加速度データが上述したX−Y座標系の原点を中心に右回りに推移しているとしてプレイヤがコントローラ7を「左振り」(図7参照)していると判定する。   With reference to FIG. 21, the operation of the animation start process in step 52 will be described. After the process of step 68, the CPU 30 determines the direction swung with respect to the controller 7 (step 71), and advances the process to the next step. For example, if it is determined in step 68 that the cumulative area indicated by the counterclockwise cumulative area data Dc exceeds the threshold, the acceleration data is shifted counterclockwise around the origin of the XY coordinate system described above. It is determined that the player is “right swinging” the controller 7 (see FIG. 7). On the other hand, if it is determined in step 68 that the accumulated area indicated by the clockwise accumulated area data Dd has exceeded the threshold, the acceleration data has shifted clockwise around the origin of the XY coordinate system described above. It is determined that the player is “left-handed” the controller 7 (see FIG. 7).

これらステップ68およびステップ71による処理から明らかなように、上記ステップ71は、左回り累積面積データDcが示す累積面積および右回り累積面積データDdが示す累積面積の何れか一方が閾値を超えた場合に実行され、プレイヤがコントローラ7を振り終わることによって実行される処理ではない。図24に示すように、プレイヤがコントローラ7を振り始めてから振り終わるまでの動作を認識する処理(モーション認識処理)は、時刻T1〜T4まで行われている。一方、プレイヤキャラクタPCがテニスラケットを振るアニメーションを表現する処理(アニメーション処理)は、時刻T2以降に行われ、モーション認識処理の途中から開始される。つまり、コントローラ7に対する振り方向がコントローラ7を振り始めてから振り終わるまでの途中段階で判定されて、ゲーム画像に反映されることになる。ここで、上記ステップ51の初期モーション認識処理は、モーション認識処理のうち、時刻T1〜T2で行われる処理となる。   As is clear from the processing in these steps 68 and 71, the step 71 is performed when either one of the cumulative area indicated by the counterclockwise cumulative area data Dc and the cumulative area indicated by the clockwise counterclockwise area data Dd exceeds the threshold value. This process is not executed when the player finishes swinging the controller 7. As shown in FIG. 24, processing (motion recognition processing) for recognizing an operation from when the player starts to swing the controller 7 until it finishes swinging is performed from time T1 to time T4. On the other hand, the process (animation process) for expressing the animation in which the player character PC swings the tennis racket is performed after time T2, and is started in the middle of the motion recognition process. That is, the swing direction with respect to the controller 7 is determined in the middle of the swing from the start of swinging of 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 in the motion recognition process.

なお、閾値を超えた累積面積の区別とコントローラ7が振られている方向との関係は、コントローラ7における座標軸の設定、加速度センサの特性、X−Y座標系の設定等によって変わるものであり、適宜各設定に応じて関係を調整すればよい。具体的には、得られた加速度データに基づいた重力加速度の方向を基準として、閾値を超えた累積面積の区別と振り方向との関係を解析すれば、コントローラ7が振られている方向を正確に判定することができる。   The relationship between the cumulative area exceeding the threshold and the direction in which the controller 7 is swung varies 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, and the like. What is necessary is just to adjust a relationship suitably according to each setting. Specifically, the direction in which the controller 7 is swung can be accurately determined by analyzing the relationship between the cumulative area exceeding the threshold and the swing direction with reference to the direction of gravitational acceleration based on the obtained acceleration data. Can be determined.

次に、CPU30は、プレイヤキャラクタPCがボールキャラクタBCを打ち返す当たりを判定し(ステップ72)、プレイヤキャラクタPCが空振りするか否かを判断する(ステップ73)。ここで、ここまで実行したステップでは、プレイヤキャラクタPCがラケットを振る動作を開始していない。しかしながら、CPU30は、現時点のプレイヤキャラクタPCの位置およびその後の予想位置と、現時点のボールキャラクタBCの位置およびその後の予想軌道と、プレイヤキャラクタPCがテニスラケットを振る方向等とのデータから、到来するボールキャラクタBCを今回のスイングによって打ち返す当たりを予測して判定することが可能である。そして、CPU30は、プレイヤキャラクタPCが空振りすると予測される場合、プレイヤキャラクタPCが空振りするアニメーションをモニタ2に表示する処理を開始し(ステップ76)、上記ステップ55に進んで処理を行う。一方、CPU30は、プレイヤキャラクタPCがボールキャラクタBCを打ち返すと予測される場合、処理を次のステップ74に進める。   Next, the CPU 30 determines whether or not the player character PC strikes back the ball character BC (step 72), and determines whether or not the player character PC is swung (step 73). Here, in the steps executed so far, the player character PC has not started the action of swinging the racket. However, the CPU 30 arrives from data such as the current position of the player character PC and the subsequent predicted position, the current position of the ball character BC and the subsequent predicted trajectory, and the direction in which the player character PC swings the tennis racket. It is possible to predict and determine the hit of hitting the ball character BC by this swing. Then, when it is predicted that the player character PC is swung, the CPU 30 starts a process of displaying an animation swung by the player character PC on the monitor 2 (step 76), and proceeds to step 55 to perform the process. On the other hand, if it is predicted that the player character PC will strike back the ball character BC, the CPU 30 advances the process to the next step 74.

ステップ74において、CPU30は、現時点からプレイヤキャラクタPCがボールキャラクタBCを打ち返すまでの時間tを算出し、カウントを開始してカウントデータDnを更新する。そして、CPU30は、プレイヤキャラクタPCがボールキャラクタBCを打ち返すアニメーションをモニタ2に表示する処理を開始し(ステップ75)、処理を次のステップに進める。なお、打ち返すアニメーションは、上下角度UDに応じたスイングで表現される。つまり、上下角度UDで示される上下方向に向けてプレイヤキャラクタPCがテニスラケットを振り上げるまたは振り下ろすようなアニメーションが表現される。   In step 74, the CPU 30 calculates a time t from the present time until the player character PC strikes back the ball character BC, starts counting, and updates the count data Dn. And CPU30 starts the process which displays the animation which the player character PC strikes back the ball character BC on the monitor 2 (step 75), and advances a process to the next step. Note that the animation to be returned is expressed by a swing according to the up and down angle UD. That is, an animation in which the player character PC swings up or down the tennis racket in the vertical direction indicated by the vertical angle UD is expressed.

次に、CPU30は、コントローラ7から受信した操作情報に含まれる加速度データを取得し(ステップ77)、当該取得した加速度データに基づいてプレイヤがコントローラ7を振る動作を終了したか否かを判断する(ステップ78)。そして、CPU30は、コントローラ7を振る動作が継続している場合、処理を次のステップ79に進める。一方、CPU30は、コントローラ7を振る動作が終了している場合、処理を次のステップ101に進める。なお、ステップ77における加速度データの取得処理については、上述したステップ61と同様であるため詳細な説明を省略する。また、ステップ78における振り判定方法についても、ステップ77で取得した加速度データを用いることを除いて上述したステップ62と同様であるため、詳細な説明を省略する。   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 moving the controller 7 based on the acquired acceleration data. (Step 78). Then, when the operation of shaking the controller 7 is continued, the CPU 30 advances the process to the next step 79. On the other hand, if the operation of shaking the controller 7 has been completed, the CPU 30 advances the process to the next step 101. The acceleration data acquisition process in step 77 is the same as that in step 61 described above, and a detailed description thereof will be omitted. Further, the swing determination method in step 78 is the same as step 62 described above except that the acceleration data acquired in step 77 is used, and thus detailed description thereof is omitted.

ステップ79において、CPU30は、上記ステップ77で所得した加速度データによってX−Y座標系にプロットされる間隔(データ間隔)を判定する。なお、ステップ79におけるデータ間隔判定処理については、ステップ77で取得した加速度データを用いることを除いて上記ステップ67と同様であるため詳細な説明を省略する。次に、CPU30は、現在のカウントデータDnのカウント値が時間tに到達したか否かを判断する(ステップ80)。そして、CPU30は、現在のカウント値が時間tに未到達である場合、カウントデータDnのカウント値を更新して(ステップ81)、上記ステップ77に戻って処理を繰り返す。一方、CPU30は、現在のカウント値が時間tに到達した場合、当該サブルーチンによる処理を終了して上記ステップ53に処理を進める。   In step 79, the CPU 30 determines an interval (data interval) plotted in the XY coordinate system based on the acceleration data obtained in step 77. Note that the data interval determination process in step 79 is the same as step 67 described above except that the acceleration data acquired in step 77 is used, and a 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). If the current count value has not reached time t, the CPU 30 updates the count value of the count data Dn (step 81), returns to step 77, and repeats the processing. On the other hand, when the current count value reaches time t, the CPU 30 ends the process by the subroutine and advances the process to step 53.

図22を参照して、上記ステップ53における第1挙動処理の動作について説明する。上記ステップ80の処理の後、CPU30は、ボールキャラクタBCを打ち返す初速度、方向、および位置を算出して当該位置にボールキャラクタBCを表示し(ステップ91)、処理を次のステップに進める。具体的には、CPU30は、ボールキャラクタBCの速度および方向を速度ベクトル(vx、vy、vz)で示し、当該速度ベクトルを示すデータをボールキャラクタ速度データDi1に格納する。ここで、速度ベクトル(vx、vy、vz)は、その大きさは固定値で設定される。そして、速度ベクトル(vx、vy、vz)の方向は、プレイヤがコントローラ7を振る方向、コントローラ7を振り始めたタイミングとボールキャラクタBCが到来するタイミングとの関係、および上下角度UD等に基づいて設定される。具体的には、ボールキャラクタBCが打ち返される左右方向は、プレイヤキャラクタPCがテニスラケットを振る左右方向(つまり、コントローラ7の振り方向)とボールキャラクタBCを打撃するタイミング(つまり、コントローラ7の振り始めのタイミング)で決定される。また、ボールキャラクタBCが打ち返される上下方向は、プレイヤキャラクタPCがテニスラケットを振る上下方向(つまり、上下角度UD)で決定される。例えば、上下角度UDが正の角度であるときは振り下ろしであるため、ボールキャラクタBCの速度ベクトルが当該上下角度UDの数値に応じた低い方向に設定される。また、上下角度UDが負の角度であるときは振り上げであるため、ボールキャラクタBCの速度ベクトルが当該上下角度UDの数値に応じた高い方向に設定される。また、CPU30は、ボールキャラクタBCがプレイヤキャラクタPCのテニスラケットで打撃された位置を仮想ゲーム空間の位置座標(x、y、z)で示し、当該位置座標を示すデータをボールキャラクタ位置データDi2に格納する。   With reference to FIG. 22, the operation of the first behavior process in step 53 will be described. After the process of step 80, the CPU 30 calculates the initial speed, direction, and position at which the ball character BC is returned, displays the ball character BC at the position (step 91), and advances the process 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 as 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 at which the player starts to swing the controller 7 and the timing at which the ball character BC arrives, the vertical angle UD, and the like. Is set. Specifically, the left-right direction in which the ball character BC is hit back includes 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 at which the ball character BC is hit (that is, the start of the swing of the controller 7). The timing is determined. Further, the vertical direction in which the ball character BC is hit back is determined by 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, it is a downward swing, so the velocity vector of the ball character BC is set in a low direction corresponding to the numerical value of the vertical angle UD. Further, when the vertical angle UD is a negative angle, it is a swing-up, so that the velocity vector of the ball character BC is set in a higher direction according to the numerical value of the vertical angle UD. Further, the CPU 30 indicates the position at which the ball character BC was hit with 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 displayed in the ball character position data Di2. Store.

次に、CPU30は、コントローラ7から受信した操作情報に含まれる加速度データを取得する(ステップ92)。そして、CPU30は、上記ステップ92で所得した加速度データによってX−Y座標系にプロットされる間隔(データ間隔)を判定して(ステップ93)、処理を次のステップに進める。なお、ステップ92における加速度データの取得処理については、上述したステップ61と同様であるため詳細な説明を省略する。また、ステップ93におけるデータ間隔判定処理については、ステップ92で取得した加速度データを用いることを除いて上記ステップ67と同様であるため詳細な説明を省略する。   Next, the CPU 30 acquires acceleration data included in the operation information received from the controller 7 (step 92). Then, the CPU 30 determines an interval (data interval) plotted in the XY coordinate system based on the acceleration data obtained in step 92 (step 93), and advances the processing to the next step. The acceleration data acquisition process in step 92 is the same as that in step 61 described above, and a detailed description thereof will be omitted. The data interval determination process in step 93 is the same as that in step 67 except that the acceleration data acquired in step 92 is used, and a detailed description thereof will be omitted.

次に、CPU30は、現在のボールキャラクタ速度データDi1およびボールキャラクタ位置データDi2に格納された速度ベクトル(vx、vy、vz)および位置座標(x、y、z)に基づいて第1ボール軌道TR1を算出し、ボールキャラクタBCを当該第1ボール軌道TR1に沿って移動させてモニタ2に表示する(ステップ94)。CPU30は、仮想ゲーム空間に現実世界の物理法則(例えば、重力、空気の抵抗、風の影響)を擬似的に、または厳密に定義し、速度ベクトル(vx、vy、vz)、位置座標(x、y、z)、スピンパラメータS(ここでは、S=0.0)、および当該物理法則に基づいて第1ボール軌道TR1を算出して第1ボール軌道データDeに格納する。そして、第1ボール軌道TR1に沿って移動するようにボールキャラクタBCの速度ベクトル(vx、vy、vz)および位置座標(x、y、z)を新たに算出する。そして、CPU30は、新たな速度ベクトル(vx、vy、vz)および位置座標(x、y、z)をボールキャラクタ速度データDi1およびボールキャラクタ位置データDi2に格納して、位置座標(x、y、z)にボールキャラクタBCをモニタ2に表示する。そして、CPU30は、処理を次のステップに進める。   Next, the CPU 30 determines 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 ball character position data Di2. And the ball character BC is moved along the first ball trajectory TR1 and displayed on the monitor 2 (step 94). The CPU 30 artificially or strictly defines a real world physics law (for example, gravity, air resistance, wind influence) in the virtual game space, and the velocity vector (vx, vy, vz) and position coordinates (x , Y, z), the spin parameter S (here, S = 0.0) and the physical law, the first ball trajectory TR1 is calculated and stored in the first ball trajectory data De. Then, the velocity vector (vx, vy, vz) and 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 CPU 30 stores the new velocity vector (vx, vy, vz) and the position coordinates (x, y, z) in the ball character speed data Di1 and the ball character position data Di2, and stores the position coordinates (x, y, In z), the ball character BC is displayed on the monitor 2. Then, the CPU 30 advances the process to the next step.

次に、CPU30は、上記ステップ92で取得した加速度データに基づいてプレイヤがコントローラ7を振る動作を終了したか否かを判断する(ステップ95)。そして、CPU30は、コントローラ7を振る動作が継続している場合、上記ステップ92に戻って処理を繰り返す。一方、CPU30は、コントローラ7を振る動作が終了している場合、処理を次のステップ54に進める。なお、ステップ95における振り判定方法については、ステップ92で取得した加速度データを用いることを除いて上述したステップ62と同様であるため、詳細な説明を省略する。   Next, the CPU 30 determines whether or not the player has finished moving the controller 7 based on the acceleration data acquired in step 92 (step 95). If the operation of shaking the controller 7 is continued, the CPU 30 returns to step 92 and repeats the process. On the other hand, when the operation of shaking the controller 7 has been completed, the CPU 30 advances the process to the next step 54. Note that 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, and thus detailed description thereof is omitted.

上記ステップ91〜ステップ95の処理から明らかなように、第1挙動処理とはボールキャラクタBCが打撃されてからプレイヤがコントローラ7を振り終わるまでの処理である。図24に示すように、ボールキャラクタBCが打ち返される挙動を表現する処理(ボール挙動処理)は、時刻T3以降に行われ、モーション認識処理の途中から開始される。つまり、コントローラ7を振り始めてから振り終わるまでの途中段階で判定された操作情報(加速度データ)に基づいて、ボールキャラクタBCが打ち返される様子がゲーム画像に反映されることになる。ここで、上記ステップ52のアニメーション開始処理は、アニメーション処理のうち、時刻T2〜T3で行われる処理となる。また、上記ステップ53の第1挙動処理は、ボール挙動処理のうち、時刻T3〜T4で行われる処理となる。また、後述する第2挙動処理は、プレイヤがコントローラ7を振り終わった後にボールキャラクタBCが打ち返される挙動を表現する処理であり、ボール挙動処理のうち、時刻T4以降に行われる処理となる。   As is apparent from the processing in steps 91 to 95, the first behavior processing is processing 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 in the middle of the motion recognition process. That is, based on the operation information (acceleration data) determined in the middle of the swing from the start of the controller 7 to the end of the swing, the state in which the ball character BC is returned is reflected in the game image. Here, the animation start process in step 52 is a process performed at times T2 to T3 in the animation process. Further, the first behavior processing in step 53 is processing performed at times T3 to T4 in the ball behavior processing. Further, the second behavior process described later is a process that expresses a behavior in which the ball character BC is returned after the player finishes swinging the controller 7, and is a process performed after time T4 in the ball behavior process.

図23を参照して、上記ステップ54における第2挙動処理の動作について説明する。上記ステップ95の処理の後、CPU30は、始点Psから終点Peまでの角度θ(図14参照)を算出し、始点−終点角度データDjに格納する(ステップ101)。次に、CPU30は、角度θをスピンパラメータSに変換(図15参照)し、スピンパラメータDkに格納する(ステップ102)。そして、CPU30は、最大プロット間隔データDlに格納されたデータ間隔に基づいて、第2ダミーボールの速度ベクトル(v2x、v2y、v2z)を算出し、第2ダミーボール速度データDh1に格納して(ステップ103)、処理を次のステップに進める。   With reference to FIG. 23, the operation | movement of the 2nd behavior process in the said step 54 is demonstrated. After the process of step 95, the CPU 30 calculates an angle θ (see FIG. 14) from the start point Ps to the end point Pe, 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 CPU 30 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.

ここで、第2ダミーボールの速度ベクトル(v2x、v2y、v2z)は、プレイヤキャラクタPCがテニスラケットでボールキャラクタBCを打撃した時点(図24に示す時刻T3)まで遡り、上記データ間隔(つまり、コントローラ7を振った速度)による影響を加えてボールキャラクタBCの速度ベクトルを再算出するものである。したがって、速度ベクトル(v2x、v2y、v2z)の大きさは、上記データ間隔に応じて設定される。具体的には、上記データ間隔が相対的に広いときは速度ベクトルの大きさを相対的に大きく設定し、上記データ間隔が相対的に狭いときは速度ベクトルの大きさを相対的に狭く設定する。そして、速度ベクトル(v2x、v2y、v2z)の方向は、上記ステップ91と同様に設定する。   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 a tennis racket (time T3 shown in FIG. 24), and the data interval (that is, The velocity vector of the ball character BC is recalculated with the influence of the velocity of the controller 7 being shaken). Therefore, the magnitude of the velocity vector (v2x, v2y, v2z) is set according to the data interval. Specifically, when the data interval is relatively wide, the speed vector size is set to be relatively large, and when the data interval is relatively narrow, the speed vector size is set to be relatively small. . The direction of the velocity vector (v2x, v2y, v2z) is set in the same manner as in step 91 above.

次に、CPU30は、上記ステップ75で開始しているプレイヤキャラクタPCがボールキャラクタBCを打ち返すアニメーションを調整する処理を行ってモニタ2に表示し(ステップ104)、処理を次のステップに進める。これは、上記ステップ75(図24に示す時刻T2)ではプレイヤがコントローラ7を振った左右および上下方向および振るタイミングが判明しているだけであるため、それらの情報のみに基づいたアニメーションが開始されている。しかしながら、ステップ104(図24に示す時刻T4)ではプレイヤがコントローラ7に加えたひねり角度やコントローラ7を振った速度がさらに判明しているため、より多くの情報に基づいたアニメーションを再現できる。つまり、上記ステップ104からは、上記ステップ75から開始されているアニメーションを、ひねり角度から判明したトップスピンやバックスピンを加えるスイングや上記データ間隔から判明したスイング速度が反映されたアニメーションに調整してモニタ2に表示する。   Next, the CPU 30 performs a process of adjusting an animation in which the player character PC started in step 75 returns the ball character BC and displays it on the monitor 2 (step 104), and the process proceeds to the next step. This is because, in step 75 (time T2 shown in FIG. 24), only the left and right and up and down directions and the timing of shaking of the player 7 are known, so an animation based only on those information is started. ing. However, in step 104 (time T4 shown in FIG. 24), the twist angle that the player has applied to the controller 7 and the speed at which the player 7 has swung the controller 7 are further known, so that an animation based on more information can be reproduced. That is, from the step 104, the animation started from the step 75 is adjusted to an animation reflecting the top spin and the back spin determined from the twist angle and the swing speed determined from the data interval. Display on the monitor 2.

次に、CPU30は、ボールキャラクタ位置データDi2を参照し、ボールキャラクタBCが仮想ゲーム空間における所定の空間まで到達したか否かを判断する(ステップ105)。ここで、所定の空間とは、例えば、仮想ゲーム空間に設定された相手コート上の空間やテニスコート外(アウト)の空間である。そして、CPU30は、ボールキャラクタBCが所定の空間まで到達していない場合、処理を次のステップ106に進める。一方、CPU30は、ボールキャラクタBCが所定の空間に到達している場合、処理を次のステップ109に進める。   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. If the ball character BC has not reached the predetermined space, the CPU 30 advances the process to the next step 106. On the other hand, when the ball character BC has reached the predetermined space, the CPU 30 advances the process to the next step 109.

ステップ106において、CPU30は、第1ボール軌道TR1および第2ボール軌道TR2を算出し、第1ボール軌道TR1から第2ボール軌道TR2へボールキャラクタBCの軌道を補間する処理を行う。そして、CPU30は、補間された軌道に沿ってボールキャラクタBCを移動させてボールキャラクタ速度データDi1およびボールキャラクタ位置データDi2を更新し、当該ボールキャラクタBCをモニタ2に表示して(ステップ107)、処理を次のステップ108に進める。   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.

図25および図26を参照して、第2ボール軌道TR2および補間処理について説明する。上記ステップ94で算出される第1ボール軌道TR1は、初期モーション認識処理で認識された情報(コントローラ7の左右および上下振り方向、振るタイミング)のみで算出されたボールキャラクタBCの軌道である。一方、第2ボール軌道TR2は、モーション認識処理全体で認識可能な情報(コントローラ7へのひねり角度および振り速度)を加えて算出されるボールキャラクタBCの軌道である。   The second ball trajectory TR2 and the interpolation process will be described with reference to FIGS. The first ball trajectory TR1 calculated in the above step 94 is a trajectory of the ball character BC calculated only by information recognized in the initial motion recognition process (left and right and up and down swing direction of the controller 7, and swing timing). On the other hand, the second ball trajectory TR2 is a trajectory of the ball character BC calculated by adding information that can be recognized in the entire motion recognition process (twist angle and swing speed to the controller 7).

第2ボール軌道TR2は、第1ボール軌道TR1と同様に仮想ゲーム空間に現実世界の物理法則を定義して、速度ベクトル(v2x、v2y、v2z)、位置座標(x2、y2、z2)、スピンパラメータS、および当該物理法則に基づいて算出され第2ボール軌道データDfに格納される。CPU30は、ボールキャラクタBCがプレイヤキャラクタPCのテニスラケットで打撃された位置を位置座標(x2、y2、z2)および上記ステップ103で求められた速度ベクトル(v2x、v2y、v2z)を用いて、第1ボール軌道TR1と同様に算出される軌道にスピンパラメータSの影響を加えて第2ボール軌道TR2を算出する。   Similarly to the first ball trajectory TR1, the second ball trajectory TR2 defines real world physics in the virtual game space, and includes a velocity vector (v2x, v2y, v2z), position coordinates (x2, y2, z2), spin It is calculated based on the parameter S and the physical law and is stored in the second ball trajectory data Df. The CPU 30 uses the position coordinates (x2, y2, z2) and the velocity vector (v2x, v2y, v2z) obtained in step 103 to determine the position at which the ball character BC was hit with 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.

図25に示すように、プレイヤがコントローラ7に「左ひねり」を加えながら「左振り」する、またはプレイヤがコントローラ7に「右ひねり」を加えながら「右振り」すると、スピンパラメータS>0.0となって「トップスピン」が表現される。一方、プレイヤがコントローラ7に「右ひねり」を加えながら「左振り」する、またはプレイヤがコントローラ7に「左ひねり」を加えながら「右振り」すると、スピンパラメータS<0.0となって「バックスピン」が表現される。CPU30は、スピンパラメータSがトップスピンを示す場合(S>0.0)、軌道が縦方向に急降下するように変化させる。また、CPU30は、スピンパラメータSがバックスピンを示す場合(S<0.0)、縦方向に飛距離が増加するように、かつ、振り方向に応じて横方向に曲がる(「左振り」では右に曲がり、「右振り」では左に曲がる)ように軌道を変化させる。そして、CPU30は、スピンパラメータSがスピンなしを示す場合(S=0.0)、軌道にスピンパラメータSによる変化を加えない。   As shown in FIG. 25, when the player “turns left” while adding “left twist” to the controller 7, or “turns right” while adding “right twist” to the controller 7, the spin parameter S> 0. 0 and “top spin” is expressed. On the other hand, if the player “turns left” while adding a “right twist” to the controller 7, or “turns right” while adding a “left twist” to the controller 7, the spin parameter S <0.0. "Backspin" is expressed. When the spin parameter S indicates the top spin (S> 0.0), the CPU 30 changes the trajectory so that it rapidly drops in the vertical direction. Further, when the spin parameter S indicates back spin (S <0.0), the CPU 30 bends in the horizontal direction according to the swing direction so that the flight distance increases in the vertical direction ("left swing" Change the trajectory so that it turns to the right and turns to the left when turning to the right. 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.

図24および図26に示すように、第2ボール軌道TR2は、コントローラ7が振り終わった時刻T4で算出されるため、モニタ2に表示されているボールキャラクタBCが既に第1ボール軌道TR1に沿って移動している(図26の時刻T3〜T4間の太線)。一方、プレイヤがコントローラ7をスイングして得られたデータを全て反映した軌道は第2ボール軌道TR2であるため、ボールキャラクタBCの軌道を第1ボール軌道TR1から第2ボール軌道TR2に変更して移動させるのが望ましい。したがって、プレイヤに違和感を与えずにボールキャラクタBCを第2ボール軌道TR2に沿って移動させるためには、第1ボール軌道TR1から第2ボール軌道TR2までスムーズに接続しなければならない(図26の時刻T4〜T5間の太線)。本実施例では、第1ボール軌道TR1から第2ボール軌道TR2まで接続する過程(図16に示す時刻T4〜T5)で、それぞれの軌道に沿って表示されないダミーボールを飛ばし、それらのダミーボール位置の間を補間する位置をボールキャラクタBCの位置としている。   As shown in FIGS. 24 and 26, since the second ball trajectory TR2 is calculated at time T4 when the controller 7 finishes swinging, the ball character BC displayed on the monitor 2 is already along the first ball trajectory TR1. (Bold line between times T3 and T4 in FIG. 26). On the other hand, since the trajectory reflecting 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 causing the player to feel uncomfortable, it is necessary to smoothly connect the first ball trajectory TR1 to the second ball trajectory TR2 (FIG. 26). (Bold 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 along the respective trajectories are skipped, and the positions of the dummy balls The position for interpolating between the positions is the position of the ball character BC.

CPU30は、第1ボール軌道TR1に沿って飛ばすダミーボールを第1ダミーボールB1とし、第1ダミーボール速度(v1x、v1y、v1z)および第1ダミーボール位置(x1、y1、z1)を第1ダミーボールのボールパラメータとする。また、CPU30は、第2ボール軌道TR2に沿って飛ばすダミーボールを第2ダミーボールB2とし、第2ダミーボール速度(v2x、v2y、v2z)および第2ダミーボール位置(x2、y2、z2)を第2ダミーボールのボールパラメータとする。そして、補間に要する時間(図26に示す時刻T5−T4)として補間時間Tiを設定する。   The CPU 30 sets the dummy ball flying along the first ball trajectory TR1 as the first dummy ball B1, and sets the first dummy ball speed (v1x, v1y, v1z) and the first dummy ball position (x1, y1, z1) to the first. The ball parameter of the dummy ball. Further, the CPU 30 sets the dummy ball flying along the second ball trajectory TR2 as the second dummy ball B2, and sets the second dummy ball speed (v2x, v2y, v2z) and the second dummy ball position (x2, y2, z2). The ball parameter of the second dummy ball is used. Then, the interpolation time Ti is set as the time required for interpolation (time T5-T4 shown in FIG. 26).

まず、時刻T4において、CPU30は、ボールキャラクタデータDiに格納されているボールキャラクタ速度(vx、vy、vz)およびボールキャラクタ位置(x、y、z)をそれぞれ第1ダミーボール速度(v1x、v1y、v1z)および第1ダミーボール位置(x1、y1、z1)として、第1ダミーボールデータDgに格納する。一方、第2ダミーボールデータDhに基づいて、第2ダミーボールB2を第2ボール軌道TR2に沿って時刻T4に相当する位置まで移動させ、第2ダミーボールデータDhを更新する。   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 time T4 to update the second dummy ball data Dh.

時刻T4〜T5の間の時刻Tnにおいて、CPU30は、第1ダミーボールB1および第2ダミーボールB2それぞれのボールパラメータを物理計算で更新し、それぞれ第1ボール軌道TR1および第2ボール軌道TR2に沿ってフレーム毎に移動させる。そして、CPU30は、以下の数式を用いてそれらのダミーボールを補間する位置および速度を算出して、ボールキャラクタ速度データDi1およびボールキャラクタ位置データDi2を更新する(図26の時刻T4〜T5間の太線)。
ratio=(Tn−T4)÷Ti
x = x2 × ratio + x1 × (1.0 − ratio)
y = y2 × ratio + y1 × (1.0 − ratio)
z = z2 × ratio + z1 × (1.0 − ratio)
vx = v2x × ratio + v1x × (1.0 − ratio)
vy = v2y × ratio + v1y × (1.0 − ratio)
vz = v2z × ratio + v1z × (1.0 − ratio)このように、時刻T4〜T5の間のボールキャラクタ速度データDi1およびボールキャラクタ位置データDi2は、経過時刻毎の第1ダミーボールB1および第2ダミーボールB2それぞれの速度および位置を所定割合で重み付けをして平均化して求められている。
At time Tn between times T4 and T5, the CPU 30 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. To move every frame. Then, the CPU 30 calculates the position and speed at which these dummy balls are interpolated using the following formula, and updates the ball character speed data Di1 and the ball character position data Di2 (between times T4 to T5 in FIG. 26). Thick line).
ratio = (Tn−T4) ÷ Ti
x = x2 * ratio + x1 * (1.0-ratio)
y = y2 * ratio + y1 * (1.0-ratio)
z = z2 * ratio + z1 * (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 speed data Di1 and the ball character position data Di2 between the times T4 and T5 are the first dummy ball B1 and the first The speed and position of each of the two dummy balls B2 are weighted at a predetermined ratio and averaged.

時刻T5以降では、CPU30は、第1ダミーボールB1および第2ダミーボールB2を破棄する。そして、CPU30は、現在のボールキャラクタ速度データDi1およびボールキャラクタ位置データDi2に格納された速度ベクトル(vx、vy、vz)および位置座標(x、y、z)に基づいて第2ボール軌道TR2を算出し、第2ボール軌道TR2に沿ってボールキャラクタBCを移動させてボールキャラクタ速度データDi1およびボールキャラクタ位置データDi2を更新し、当該ボールキャラクタBCをモニタ2に表示する(図26の時刻T5以降の太線)。   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 ball character position data Di2. The ball character BC is moved along the second ball trajectory TR2 to update the ball character speed data Di1 and the ball character position data Di2, and the ball character BC is displayed on the monitor 2 (after time T5 in FIG. 26). Thick line).

図23に戻り、ステップ108において、CPU30は、ボールキャラクタBCが相手キャラクタECに打ち返された、またはボールキャラクタBCがアウトになった(コート外に直接出る)か否かを判断する。そして、CPU30は、ボールキャラクタBCが相手キャラクタECに打ち返されておらず、アウトにもなっていない場合、上記ステップ106に戻って処理を繰り返す。一方、CPU30は、ボールキャラクタBCが相手キャラクタECに打ち返された。またはアウトになった場合、当該サブルーチンによる処理を終了して、上記ステップ55に処理を進める。   Returning to FIG. 23, in step 108, the CPU 30 determines whether or not the ball character BC is hit back to the opponent character EC or the ball character BC is out (goes directly out of the court). If the ball character BC has not been returned to the opponent character EC and is not out, the CPU 30 returns to step 106 and repeats the process. On the other hand, the CPU 30 returns the ball character BC to the opponent character EC. Alternatively, if it is out, the process by the subroutine is terminated, and the process proceeds to step 55.

一方、上記ステップ105において、ボールキャラクタBCが所定の空間に到達している場合、CPU30は、ボールキャラクタBCを当該第1ボール軌道TR1に沿って移動させてモニタ2に表示し(ステップ109)、処理を次のステップに進める。CPU30は、現在のボールキャラクタ速度データDi1およびボールキャラクタ位置データDi2に格納された速度ベクトル(vx、vy、vz)および位置座標(x、y、z)に基づいて第1ボール軌道TR1を算出し、ボールキャラクタBCを当該第1ボール軌道TR1に沿って移動させてモニタ2に表示する。このステップ109は、上記ステップ94と同様の処理であるため、これ以上の説明を省略する。   On the other hand, when the ball character BC has reached the predetermined space in step 105, the CPU 30 moves the ball character BC along the first ball trajectory TR1 and displays it on the monitor 2 (step 109). The process proceeds to the next step. The CPU 30 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 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 the above-mentioned step 94, further explanation is omitted.

次に、CPU30は、ボールキャラクタBCが相手キャラクタECに打ち返された、またはボールキャラクタBCがアウトになった(コート外に直接出る)か否かを判断する(ステップ110)。そして、CPU30は、ボールキャラクタBCが相手キャラクタECに打ち返されておらず、アウトにもなっていない場合、上記ステップ109に戻って処理を繰り返す。一方、CPU30は、ボールキャラクタBCが相手キャラクタECに打ち返された。またはアウトになった場合、当該サブルーチンによる処理を終了して、上記ステップ55に処理を進める。   Next, the CPU 30 determines whether or not the ball character BC is hit back to the opponent character EC or the ball character BC is out (goes directly out of the court) (step 110). If the ball character BC has not been returned to the opponent character EC and is not out, the CPU 30 returns to step 109 and repeats the process. On the other hand, the CPU 30 returns the ball character BC to the opponent character EC. Alternatively, if it is out, the process by the subroutine is terminated, and the process proceeds to step 55.

このように、上記実施形態に係るゲーム装置3は、コントローラ7の前面がプレイヤの前方方向に向くようにプレイヤが一方の手でコントローラ7を把持していれば、当該コントローラ7が振られた方向(コントローラ7の移動方向)やひねり方向(コントローラ7のZ軸を回転軸とした回転方向)等の動きを正確に判定することができる。また、プレイヤは、コントローラ7の上面をどのような方向に向けて把持して振ってもかまわない。したがって、プレイヤがコントローラ7を持つ方向(コントローラ7の姿勢)に対する自由度が非常に高くなる。また、コントローラ7本体に加えられた回転動作を判別することができ、プレイヤがコントローラ7を回転させながらスイングするような複数の動きが複合されたものについても判定できる。そして、このようなコントローラ7に加えられた回転動作を操作入力として用いることができるため、入力可能なコントローラ7の操作の種類が豊富となる。   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 forward direction of the player, the direction in which the controller 7 is swung. Movements such as (the movement direction of the controller 7) and the twist direction (the rotation direction with the Z axis of the controller 7 as the rotation axis) can be accurately determined. Further, the player may hold and shake the upper surface of the controller 7 in any direction. Therefore, the degree of freedom with respect to the direction in which the player holds the controller 7 (the posture of the controller 7) is very high. Further, it is possible to determine the rotational motion applied to the main body of the controller 7, and it is also possible to determine a combination of a plurality of movements such that the player swings while rotating the controller 7. And since the rotation operation | movement added to such a controller 7 can be used as an operation input, the kind of operation of the controller 7 which can be input becomes abundant.

なお、上述した処理手順では、第1ボール軌道TR1および第2ボール軌道TR2の算出をフレーム毎に行う(つまり、ステップ94、ステップ106、およびステップ109で処理ループの中で行う)ように説明したが、他の手順で軌道計算をしてもかまわない。例えば、1度算出された第1ボール軌道TR1および第2ボール軌道TR2をメモリに記憶しておき、適宜記憶された軌道データを利用してもかまわない。この場合、処理ループの前(例えば、ステップ91の後、ステップ103の後)に第1ボール軌道TR1および/または第2ボール軌道TR2を算出しておけば、フレーム毎に軌道計算をする必要がなくなる。   In the above-described processing procedure, it has been described that the calculation of the first ball trajectory TR1 and the second ball trajectory TR2 is performed for each frame (that is, performed in the processing loop at step 94, step 106, and step 109). However, the trajectory may be calculated using other procedures. For example, the first ball trajectory TR1 and the second ball trajectory TR2 calculated once may be stored in a memory, and the trajectory data stored as appropriate 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. Disappear.

また、上述した説明では、コントローラ7から出力される3軸加速度データを用いてテニスゲームを行う例を説明したが、他のゲーム処理にも用いることができる。例えば、プレイヤキャラクタが何らかのオブジェクトを振るゲーム(卓球、バドミントン、野球、剣で斬る等)に適用できることは言うまでもない。また、上述した説明では、コントローラ7の動きを判別する動き判別装置をゲームシステム1に適用した例を説明したが、加速度センサを備えた入力装置によって操作される一般的なパーソナルコンピュータなどの情報処理装置にも適用することができる。例えば、判別された入力装置の動きに応じて、情報処理装置が表示しているデータが移動したり、情報処理装置が情報を表示しているページを変更したり、図形を描いたりする等、動き判別装置による判別結果に基づいて様々な処理を行うことができる。さらに、動き判別装置は、判別した入力装置の動きに応じて、当該入力装置の動きを示す動きデータを作成して他の装置に出力してもかまわない。   In the above description, the example in which the tennis game is performed using the triaxial acceleration data output from the controller 7 has been described. However, the game can be used for other game processes. For example, it goes without saying that the present invention can be applied to a game in which the player character shakes some object (table tennis, badminton, baseball, sword cutting, etc.). In the above description, the example in which the motion discriminating device that discriminates the motion of the controller 7 is applied to the game system 1 has been described. However, information processing such as a general personal computer operated by an input device having an acceleration sensor is described. It can also be applied to devices. For example, according to the determined movement of the input device, data displayed by the information processing device moves, a page on which the information processing device displays information is changed, a figure is drawn, etc. Various processes can be performed based on the discrimination result by the motion discrimination device. Furthermore, the motion determination device may create motion data indicating the motion of the input device according to the determined motion of the input device and output the motion data to another device.

また、コントローラ7に設けられた加速度センサ701は、互いに直交する3軸成分に分けてそれぞれ検出して出力する3軸加速度センサを用いて説明したが、少なくとも直交する2軸成分をそれぞれ検出する加速度センサを用いれば本発明を実現することができる。例えば、コントローラ7が配置された3次元空間における加速度をXおよびY軸(図3、図4参照)の2軸成分に分けてそれぞれ検出して出力する加速度センサを用いても、上述した左右振り方向の判定やひねり方向の判定を行うことができる。この場合、上述した説明でZ軸成分の加速度を用いて判定していた振り始めおよび振り終わりの判定ができなくなるが、XおよびY軸に対する加速度成分から得られる左右振りによって生じる遠心力成分を用いて振り始めおよび振り終わりを判定してもいいし、加速度センサ701とは異なる他のセンサを用いて振り始めおよび振り終わりを判定してもかまわない。また、プレイヤがコントローラ7をスイングするときは操作ボタン72の何れかを押下するようなゲームルールを設定して、当該操作ボタン72の何れかが押下されている期間に応じて振り始めおよび振り終わりを判定してもかまわない。   Further, although the acceleration sensor 701 provided in the controller 7 has been described using the triaxial acceleration sensor that detects and outputs each of the triaxial components orthogonal to each other, the acceleration that detects at least the orthogonal biaxial components is described. The present invention can be realized by using a sensor. For example, even if an acceleration sensor that detects and outputs acceleration in a three-dimensional space in which the controller 7 is arranged is divided into two axis components of the X and Y axes (see FIGS. 3 and 4), the above-described left and right swings are used. Direction determination and twist direction determination can be performed. In this case, it is impossible to determine the swing start and swing end determined using the acceleration of the Z-axis component in the above description, but the centrifugal force component generated by the horizontal 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 one of the operation buttons 72 is pressed, and the swing start and the swing end are performed according to a period during which any one of the operation buttons 72 is pressed. May be judged.

また、上述した説明では、コントローラ7とゲーム装置3とが無線通信によって接続された態様を用いたが、コントローラ7とゲーム装置3とがケーブルを介して電気的に接続されてもかまわない。この場合、コントローラ7に接続されたケーブルをゲーム装置3の接続端子に接続する。   In the above description, the controller 7 and the game apparatus 3 are connected by wireless communication. However, the controller 7 and the game apparatus 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 apparatus 3.

また、コントローラ7から無線送信される送信データを受信する受信手段として、ゲーム装置3の接続端子に接続された受信ユニット6を用いて説明したが、ゲーム装置3の本体内部に設けられた受信モジュールによって当該受信手段を構成してもかまわない。この場合、受信モジュールが受信した送信データは、所定のバスを介してCPU30に出力される。   Further, the reception unit 6 connected to the connection terminal of the game apparatus 3 has been described as the reception means for receiving transmission data wirelessly transmitted from the controller 7, but the reception module provided inside the main body of the game apparatus 3 The receiving means may be configured as follows. In this case, the transmission data received by the receiving module is output to the CPU 30 via a predetermined bus.

また、上述したコントローラ7の形状や、それらに設けられている操作部72の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、コントローラ7における撮像情報演算部74の位置(撮像情報演算部74の光入射口)は、ハウジング71の前面でなくてもよく、ハウジング71の外部から光を取り入れることができれば他の面に設けられてもかまわない。   In addition, the shape of the controller 7 described above and the shape, number, and installation position of the operation unit 72 provided in them are merely examples, and even if the shape, number, and installation position are other, It goes without saying that 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. It does not matter if it is provided.

本発明に係る動き判別装置および動き判別プログラムは、入力装置の姿勢に対する自由度の高い操作を実現しながら当該入力装置の動きを判別することができ、ゲームコントローラの動きに応じて操作されるゲーム装置やゲームプログラム等、入力装置の動きを判別する装置やプログラムとして有用である。   The motion discriminating apparatus and the motion discriminating program according to the present invention can discriminate the motion of the input device while realizing an operation with a high degree of freedom with respect to the posture of the input device, and are operated according to the motion of the game controller. It is useful as a device or a program for discriminating the movement of an input device such as a device or a game program.

本発明の一実施形態に係るゲームシステム1を説明するための外観図1 is an external view for explaining a game system 1 according to an embodiment of the present invention. 図1のゲーム装置3の機能ブロック図Functional block diagram of the game apparatus 3 of FIG. 図3のコントローラ7の上面後方から見た斜視図The perspective view seen from the upper surface rear of the controller 7 of FIG. 図3のコントローラ7を下面後方から見た斜視図The perspective view which looked at the controller 7 of FIG. 3 from the lower surface back. 図3のコントローラ7の上筐体を外した状態を示す斜視図The perspective view which shows the state which removed the upper housing | casing of the controller 7 of FIG. 図3のコントローラ7の構成を示すブロック図The block diagram which shows the structure of the controller 7 of FIG. 図3のコントローラ7を用いてゲーム操作するときの状態を概説する図解図An illustrative view outlining the state when operating the game using the controller 7 of FIG. 図3のコントローラ7から受信したX、Y、およびZ軸方向加速度データに応じて、モニタ2に表現されたテニスゲーム画像の一例を示す図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. XおよびY軸方向加速度データがそれぞれ示す加速度の正負および大きさをX軸およびY軸としたグラフの一例An example of a graph in which the positive and negative accelerations and magnitudes indicated by the X and Y axis direction acceleration data are X and Y axes, respectively. 図9に示したグラフにおいて、左振りによる推移の一例In the graph shown in FIG. 図10に示した時系列的に隣接する点P4およびP5と原点とをそれぞれ結ぶ直線で囲まれた三角形の面積A45を示す図The figure which shows the area A45 of the triangle enclosed by the straight line which each connects the points P4 and P5 which adjoin in time series shown in FIG. 10, and an origin. 図10で示した時系列的に連続する点P1〜P3および原点によって形成された三角形を累積した面積A13と、点P3〜P6および原点によって形成された三角形を累積した面積A36とを示す図The figure which shows area A13 which accumulated the triangle formed by the points P1-P3 and the origin which were time-sequentially shown in FIG. 10, and the area A36 which accumulated the triangle formed by the points P3-P6 and the origin 図3のコントローラ7のひねり方向を説明するための斜視図The perspective view for demonstrating the twist direction of the controller 7 of FIG. コントローラ7に加えられたひねりに応じて、XおよびY軸方向加速度データがそれぞれ示す加速度の値を示すグラフの一例An example of a graph showing acceleration values indicated by the X-axis and Y-axis direction acceleration data in accordance with a twist applied to the controller 7 図14(a)〜図14(c)の角度θに応じて算出されるスピンパラメータSの一例を示すグラフ14 is a graph showing an example of the spin parameter S calculated according to the angle θ in FIGS. コントローラ7の上下方向に傾けた状態とそれらの座標軸との関係を説明するための図The figure for demonstrating the state tilted to the up-down direction of the controller 7, and those coordinate axes Z軸方向加速度データに応じて算出される上下角度UDの一例を示すグラフThe graph which shows an example of the up-and-down angle UD calculated according to Z-axis direction acceleration data ゲーム装置3のメインメモリ33に記憶される主なデータを示す図The figure which shows the main data memorize | stored in the main memory 33 of the game device 3 ゲーム装置3において実行されるゲーム処理の流れを示すフローチャートThe flowchart which shows the flow of the game process performed in the game device 3 図19におけるステップ51の初期モーション認識処理の詳細な動作を示すサブルーチンSubroutine showing the detailed operation of the initial motion recognition process in step 51 in FIG. 図19におけるステップ52のアニメーション開始処理の詳細な動作を示すサブルーチンSubroutine showing the detailed operation of the animation start process in step 52 in FIG. 図19におけるステップ53の第1挙動処理の詳細な動作を示すサブルーチンSubroutine showing the detailed operation of the first behavior processing at step 53 in FIG. 図19におけるステップ54の第2挙動処理の詳細な動作を示すサブルーチンSubroutine showing the detailed operation of the second behavior processing at step 54 in FIG. モーション認識処理、アニメーション処理、およびボール挙動処理がそれぞれ行われるタイミングを示す図The figure which shows the timing when each of motion recognition processing, animation processing, and ball behavior processing is performed スピンパラメータSに応じて決定されるボール挙動の一例を示す図The figure which shows an example of the ball | bowl behavior determined according to the spin parameter S 第1ボール軌道TR1および第2ボール軌道TR2の一例を示す図The figure which shows an example of 1st ball track TR1 and 2nd ball track TR2

符号の説明Explanation of symbols

1…ゲームシステム
2…モニタ
2a…スピーカ
3…ゲーム装置
30…CPU
31…メモリコントローラ
32…GPU
33…メインメモリ
34…DSP
35…ARAM
36…コントローラI/F
37…ビデオI/F
38…外部メモリI/F
39…オーディオI/F
40…ディスクドライブ
41…ディスクI/F
4…光ディスク
5…外部メモリカード
6…受信ユニット
7…コントローラ
71…ハウジング
72…操作部
73…コネクタ
74…撮像情報演算部
741…赤外線フィルタ
742…レンズ
743…撮像素子
744…画像処理回路
75…通信部
751…マイコン
752…メモリ
753…無線モジュール
754…アンテナ
700…基板
701…加速度センサ
702…LED
703…水晶振動子
704…バイブレータ
705…電池
8…マーカ
DESCRIPTION OF SYMBOLS 1 ... Game system 2 ... Monitor 2a ... Speaker 3 ... Game device 30 ... CPU
31 ... Memory controller 32 ... GPU
33 ... Main memory 34 ... DSP
35 ... ARAM
36 ... Controller I / F
37 ... Video I / F
38 ... External memory I / F
39 ... Audio I / F
40 ... disk drive 41 ... disk I / F
DESCRIPTION OF SYMBOLS 4 ... Optical disk 5 ... External memory card 6 ... Reception unit 7 ... Controller 71 ... Housing 72 ... Operation part 73 ... Connector 74 ... Imaging information calculating part 741 ... Infrared filter 742 ... Lens 743 ... Imaging element 744 ... Image processing circuit 75 ... Communication Part 751 ... Microcomputer 752 ... Memory 753 ... Wireless module 754 ... Antenna 700 ... Substrate 701 ... Acceleration sensor 702 ... LED
703 ... Crystal oscillator 704 ... Vibrator 705 ... Battery 8 ... Marker

Claims (7)

少なくとも2軸の加速度センサを備えた操作装置に対するスイング操作に基づいてゲーム処理を行うゲーム装置であって、
前記加速度センサから出力される加速度データを取得する加速度データ取得手段と、
前記加速度データの2軸方向成分に基づいてそれぞれ座標軸が定義され、重力加速度を含む加速度が前記加速度センサに作用していない状態の加速度データの値を原点とする2次元座標系において、当該原点を軸として前記加速度データが時系列的に推移する周回方向を判定する周回方向判定手段と、
前記周回方向に基づいてフォアスイングかバックスイングかを判別する、スイング判別手段と、
当該スイングに基づいてゲーム処理を行なうゲーム処理手段とを備える、ゲーム装置。
A game apparatus for performing a game process based on the swing operation on the operation device provided with acceleration sensors of at least two axes,
Acceleration data acquisition means for acquiring acceleration data output from the acceleration sensor;
In a two-dimensional coordinate system in which coordinate axes are defined based on two-axis direction components of the acceleration data and acceleration data including gravitational acceleration does not act on the acceleration sensor, the origin is A rotating direction determining means for determining a rotating direction in which the acceleration data changes in time series as an axis ;
Swing discriminating means for discriminating whether the fore swing or the back swing based on the circulation direction;
A game apparatus comprising: game processing means for performing game processing based on the swing .
前記周回方向判定手段は、前記2次元座標系において、前記原点からの距離が相対的に大きい加速度データに対して前記周回方向の判定に寄与する度合いを高くし、かつ、前記原点を軸とする周回方向に時系列的に推移する加速度データに対して前記周回方向の判定に寄与する度合いを高くする演算を用いて、前記周回方向を判定する、請求項1に記載のゲーム装置。In the two-dimensional coordinate system, the rotation direction determination unit increases the degree of contribution to the determination of the rotation direction with respect to acceleration data having a relatively large distance from the origin, and uses the origin as an axis. The game device according to claim 1, wherein the circulation direction is determined using an operation that increases a degree of contribution to the determination of the rotation direction with respect to acceleration data that changes in a time series in the rotation direction. 前記周回方向判定手段は、前記2次元座標系において、時系列的に連続し、一方の前記周回方向に推移する2つの加速度データがそれぞれ示す座標点と前記原点とを頂点とする三角形の面積を時系列に沿って順次累積した第1累積面積を演算し、時系列的に連続し、逆方向の前記周回方向に推移する2つの加速度データがそれぞれ示す座標点と前記原点とを頂点とする三角形の面積を時系列に沿って順次累積した第2累積面積を演算し、当該第1累積面積および当該第2累積面積のいずれか一方が閾値を超えたとき、前記加速度データが当該累積面積を得た周回方向に時系列的に推移していると判定する、請求項2に記載のゲーム装置。In the two-dimensional coordinate system, the rounding direction determination unit is configured to calculate an area of a triangle whose apexes are the coordinate point and the origin indicated by two acceleration data that are continuous in time series and transition in one rounding direction. A first cumulative area that is sequentially accumulated along the time series is calculated, and a triangle having apexes at the coordinate point and the origin that are respectively indicated by two acceleration data that are continuous in time series and that move in the opposite direction of rotation. The second cumulative area is sequentially accumulated along the time series, and when one of the first cumulative area and the second cumulative area exceeds a threshold, the acceleration data obtains the cumulative area. The game device according to claim 2, wherein the game device determines that the movement is made in a time series in the circumferential direction. 前記加速度センサは、前記入力装置に対して互いに直交する3軸方向の加速度を検出し、The acceleration sensor detects accelerations in three axial directions orthogonal to the input device;
前記推移周回方向判定手段は、前記3軸方向に含まれる第1軸方向の加速度が所定値を超えている期間に取得された他の前記第2軸および第3軸方向の加速度データが時系列的に推移する前記周回方向を判定する、請求項1乃至3のいずれか1つに記載のゲーム装置。The transitional circulation direction determination means is configured to obtain time-series acceleration data in the other second and third axes acquired during a period in which the acceleration in the first axis included in the three axes exceeds a predetermined value. The game device according to claim 1, wherein the turning direction that changes automatically is determined.
少なくとも2軸の加速度センサを備えた操作装置に対するスイング操作に基づいてゲーム処理を行うゲーム装置のコンピュータで実行されるゲームプログラムであって、A game program executed by a computer of a game device that performs a game process based on a swing operation on an operation device including at least a biaxial acceleration sensor,
前記コンピュータを、The computer,
前記加速度センサから出力される加速度データを取得する加速度データ取得手段と、Acceleration data acquisition means for acquiring acceleration data output from the acceleration sensor;
前記加速度データの2軸方向成分に基づいてそれぞれ座標軸が定義され、重力加速度を含む加速度が前記加速度センサに作用していない状態の加速度データの値を原点とする2次元座標系において、当該原点を軸として前記加速度データが時系列的に推移する周回方向を判定する周回方向判定手段と、In a two-dimensional coordinate system in which coordinate axes are defined based on two-axis direction components of the acceleration data and acceleration data including gravitational acceleration does not act on the acceleration sensor, the origin is A rotating direction determining means for determining a rotating direction in which the acceleration data changes in time series as an axis;
前記周回方向に基づいてフォアスイングかバックスイングかを判別する、スイング判別手段と、Swing discriminating means for discriminating whether the fore swing or the back swing based on the circulation direction;
当該スイングに基づいてゲーム処理を行なうゲーム処理手段として機能させる、ゲームプログラム。A game program that functions as game processing means for performing game processing based on the swing.
少なくとも2軸の加速度センサを備えた操作装置に対するスイング操作に基づいてゲーム処理を行うゲームシステムであって、A game system that performs a game process based on a swing operation on an operation device including at least a biaxial acceleration sensor,
前記加速度センサから出力される加速度データを取得する加速度データ取得手段と、Acceleration data acquisition means for acquiring acceleration data output from the acceleration sensor;
前記加速度データの2軸方向成分に基づいてそれぞれ座標軸が定義され、重力加速度を含む加速度が前記加速度センサに作用していない状態の加速度データの値を原点とする2次元座標系において、当該原点を軸として前記加速度データが時系列的に推移する周回方向を判定する周回方向判定手段と、In a two-dimensional coordinate system in which coordinate axes are defined based on two-axis direction components of the acceleration data and acceleration data including gravitational acceleration does not act on the acceleration sensor, the origin is A rotating direction determining means for determining a rotating direction in which the acceleration data changes in time series as an axis;
前記周回方向に基づいてフォアスイングかバックスイングかを判別する、スイング判別手段と、Swing discriminating means for discriminating whether the fore swing or the back swing based on the circulation direction;
当該スイングに基づいてゲーム処理を行なうゲーム処理手段とを備える、ゲームシステム。A game system comprising game processing means for performing game processing based on the swing.
少なくとも2軸の加速度センサを備えた操作装置に対するスイング操作に基づいてゲーム処理を行うゲーム処理方法であって、A game processing method for performing a game process based on a swing operation on an operation device including at least a biaxial acceleration sensor,
前記加速度センサから出力される加速度データを取得する加速度データ取得ステップと、An acceleration data acquisition step of acquiring acceleration data output from the acceleration sensor;
前記加速度データの2軸方向成分に基づいてそれぞれ座標軸が定義され、重力加速度を含む加速度が前記加速度センサに作用していない状態の加速度データの値を原点とする2次元座標系において、当該原点を軸として前記加速度データが時系列的に推移する周回方向を判定する周回方向判定ステップと、In a two-dimensional coordinate system in which coordinate axes are defined based on two-axis direction components of the acceleration data and acceleration data including gravitational acceleration does not act on the acceleration sensor, the origin is A circumferential direction determination step for determining a circumferential direction in which the acceleration data changes in time series as an axis;
前記周回方向に基づいてフォアスイングかバックスイングかを判別する、スイング判別ステップと、A swing determination step for determining whether the fore swing or the back swing based on the circulation direction;
当該スイングに基づいてゲーム処理を行なうゲーム処理ステップとを含む、ゲーム処理方法。And a game processing step of performing a game process based on the swing.
JP2008195298A 2008-07-29 2008-07-29 GAME DEVICE, GAME PROGRAM, GAME SYSTEM, AND GAME PROCESSING METHOD Active JP4789984B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008195298A JP4789984B2 (en) 2008-07-29 2008-07-29 GAME DEVICE, GAME PROGRAM, GAME SYSTEM, AND GAME PROCESSING METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008195298A JP4789984B2 (en) 2008-07-29 2008-07-29 GAME DEVICE, GAME PROGRAM, GAME SYSTEM, AND GAME PROCESSING METHOD

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006063110A Division JP4202366B2 (en) 2006-03-08 2006-03-08 Motion discrimination device and motion discrimination program

Publications (2)

Publication Number Publication Date
JP2008269650A JP2008269650A (en) 2008-11-06
JP4789984B2 true JP4789984B2 (en) 2011-10-12

Family

ID=40048969

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008195298A Active JP4789984B2 (en) 2008-07-29 2008-07-29 GAME DEVICE, GAME PROGRAM, GAME SYSTEM, AND GAME PROCESSING METHOD

Country Status (1)

Country Link
JP (1) JP4789984B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5374287B2 (en) 2009-09-15 2013-12-25 任天堂株式会社 Information processing program, information processing apparatus, information processing system, and information processing method
US8461468B2 (en) 2009-10-30 2013-06-11 Mattel, Inc. Multidirectional switch and toy including a multidirectional switch

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3086827B2 (en) * 1992-12-28 2000-09-11 株式会社セガ・エンタープライゼス Control key device
JP4029102B2 (en) * 2005-12-26 2008-01-09 株式会社コナミデジタルエンタテインメント Video game program, video game apparatus, and video game control method

Also Published As

Publication number Publication date
JP2008269650A (en) 2008-11-06

Similar Documents

Publication Publication Date Title
JP4202366B2 (en) Motion discrimination device and motion discrimination program
JP4151982B2 (en) Motion discrimination device and motion discrimination program
JP4330593B2 (en) GAME DEVICE AND GAME PROGRAM
US8419539B2 (en) Game apparatus and recording medium recording game program for displaying a motion matching a player&#39;s intention when moving an input device
US8721442B2 (en) Recording medium recording game program and game apparatus
EP2302487B1 (en) Storage medium with information processing program and information processing apparatus for detecting swing direction of input device
JP5196515B2 (en) GAME PROGRAM, GAME DEVICE, GAME SYSTEM, AND GAME PROCESSING METHOD
JP5173174B2 (en) GAME DEVICE, GAME PROGRAM, GAME SYSTEM, AND GAME PROCESSING METHOD
JP5334595B2 (en) GAME DEVICE AND GAME PROGRAM
US8246457B2 (en) Storage medium having game program stored thereon and game apparatus
JP4789984B2 (en) GAME DEVICE, GAME PROGRAM, GAME SYSTEM, AND GAME PROCESSING METHOD
JP5074343B2 (en) GAME DEVICE AND GAME PROGRAM

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110506

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110714

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110719

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4789984

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250