JP5612826B2 - GAME PROGRAM AND GAME DEVICE - Google Patents

GAME PROGRAM AND GAME DEVICE Download PDF

Info

Publication number
JP5612826B2
JP5612826B2 JP2009096501A JP2009096501A JP5612826B2 JP 5612826 B2 JP5612826 B2 JP 5612826B2 JP 2009096501 A JP2009096501 A JP 2009096501A JP 2009096501 A JP2009096501 A JP 2009096501A JP 5612826 B2 JP5612826 B2 JP 5612826B2
Authority
JP
Japan
Prior art keywords
posture
reference plane
input device
plane
predetermined
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
JP2009096501A
Other languages
Japanese (ja)
Other versions
JP2010246610A (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 JP2009096501A priority Critical patent/JP5612826B2/en
Priority to US12/539,957 priority patent/US9427657B2/en
Priority to EP09167808.6A priority patent/EP2236179B1/en
Publication of JP2010246610A publication Critical patent/JP2010246610A/en
Application granted granted Critical
Publication of JP5612826B2 publication Critical patent/JP5612826B2/en
Priority to US15/217,776 priority patent/US9724604B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいたゲーム処理を実行させるゲームプログラム、および、ゲーム装置に関し、より特定的には、姿勢動き情報に基づき、仮想空間内のオブジェクトを移動させるゲームプログラム、およびゲーム装置に関する。   The present invention relates to a game program for executing a game process based on posture movement information acquired from predetermined detection means for detecting the posture or movement of an input device operated by a user, and more specifically, to a game device. The present invention relates to a game program and a game apparatus for moving an object in a virtual space based on posture movement information.

従来より、いわゆるゴルフゲームにおいて、ワイヤレスのコントローラ自体を振り上げて、振り下ろす操作を行うことで、仮想ゲーム空間内のゴルフクラブを動作(ゴルフスイング)させて楽しむゴルフゲームが開示されている(例えば、非特許文献1)。当該ゴルフゲームでは、スイングを行う際の操作内容として、以下のような流れとなっている。まず、画面には、図58に示すようなゲージが表示されている。当該ゲージには、リモコンカーソル901、クラブヘッドカーソル902、インパクトゾーン903が表示されている。そして、プレイヤは、コントローラのAボタンを押しながら当該コントローラを振り上げる。すると、この動きに連動して画面内のリモコンカーソル901がゲージに沿って移動する(図58では右方向に移動)。これに併せて、クラブヘッドカーソル902がリモコンカーソル901を追うように移動する。その後、クラブヘッドカーソル902がリモコンカーソル901に追いついて重なると、クラブヘッドカーソル902は反転して元の位置に戻っていく。そして、このクラブヘッドカーソル902がインパクトゾーン903の範囲内に戻ってきたときに、プレイヤがコントローラを振り下ろすことで、ゴルフのショット動作を行うことができる。   Conventionally, in a so-called golf game, a golf game that is enjoyed by operating a golf club in a virtual game space (golf swing) by performing an operation of swinging up and down the wireless controller itself (for example, golf swing) is disclosed (for example, Non-patent document 1). In the golf game, the flow of operations when swinging is as follows. First, a gauge as shown in FIG. 58 is displayed on the screen. On the gauge, a remote controller cursor 901, a club head cursor 902, and an impact zone 903 are displayed. Then, the player swings up the controller while pressing the A button of the controller. Then, in conjunction with this movement, the remote control cursor 901 in the screen moves along the gauge (moves in the right direction in FIG. 58). At the same time, the club head cursor 902 moves so as to follow the remote control cursor 901. Thereafter, when the club head cursor 902 catches up and overlaps the remote control cursor 901, the club head cursor 902 is reversed and returns to the original position. When the club head cursor 902 returns to within the range of the impact zone 903, the player can swing the controller to perform a golf shot operation.

「WE LOVE GOLF!」取扱説明書、株式会社CAPCOM、P6〜7、P16〜17、P22〜23"WE LOVE GOLF!" Instruction Manual, CAPCOM, P6-7, P16-17, P22-23

しかしながら、上述したようなゲーム装置においては、以下に示す問題点があった。上記のゴルフゲームにおいては、コントローラの持ち方、振り上げる方向は、予め定められた内容に沿っていることを前提としている。(換言すれば、コントローラの持ち方、振り上げる方向は固定された内容である。)そして、この予め定められた内容に沿った動きが行われることを前提として、上記インパクトゾーン903におけるショットの判定処理が実行されている。しかし、コントローラの持ち方や振り上げる方向については、プレイヤによっての個人差がある。そのため、プレイヤによっては、同じような動作を行っているつもりでも、上記の予め定められた内容に沿った動作となっていない場合もあり、その結果、ショットの認識が行われなかったり、逆に、ショットの誤認識が発生したりするという問題があった。   However, the game apparatus as described above has the following problems. In the golf game described above, it is assumed that the controller is held and the direction in which it is raised is in accordance with predetermined contents. (In other words, the way the controller is held and the direction in which it is raised is a fixed content.) Then, on the premise that the movement according to the predetermined content is performed, the shot determination in the impact zone 903 is performed. Processing is being executed. However, there are individual differences depending on the player in terms of how to hold the controller and the direction in which it is raised. Therefore, depending on the player, even if the player intends to perform the same action, the action may not be in accordance with the above-described predetermined contents. As a result, the shot may not be recognized, or conversely There was a problem that erroneous recognition of shots occurred.

それ故に、本発明の目的は、ゴルフゲームのショットの判定等において、誤判定や誤認識をより軽減できるゲームプログラム及びゲーム装置を提供することである。   SUMMARY OF THE INVENTION Therefore, an object of the present invention is to provide a game program and a game apparatus that can further reduce misjudgment and misrecognition in the determination of golf game shots.

本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係の一例を示したものであって、本発明を何ら限定するものではない。   The present invention employs the following configuration in order to solve the above problems. Note that the reference numerals in parentheses, supplementary explanations, and the like are examples of the correspondence with the embodiments described later in order to help understanding of the present invention, and do not limit the present invention.

第1の発明は、ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲーム装置のコンピュータに実行させるゲームプログラムであって、コンピュータを、姿勢動き情報取得手段(S2)と、姿勢算出手段(S31)と、基準平面設定手段(S32)と、処理手段(S17)として機能させる。姿勢動き情報取得手段は、検出手段で検出された姿勢動き情報を取得する。姿勢算出手段は、姿勢動き情報に基づいて入力装置の姿勢を算出する。基準平面設定手段は、所定のタイミングで、姿勢動き情報に基づいて所定の平面を基準平面として実空間内に仮想的に設定する。処理手段は、基準平面に対する入力装置の姿勢に応じた所定の処理を実行する。   The first invention is a game program that is executed by a computer of a game device that moves an object in a virtual space based on posture movement information acquired from predetermined detection means for detecting the posture or movement of an input device operated by a user. The computer is caused to function as posture motion information acquisition means (S2), posture calculation means (S31), reference plane setting means (S32), and processing means (S17). The posture movement information acquisition unit acquires the posture movement information detected by the detection unit. The posture calculation means calculates the posture of the input device based on the posture motion information. The reference plane setting means virtually sets the predetermined plane as a reference plane in the real space based on the posture movement information at a predetermined timing. The processing means executes a predetermined process corresponding to the attitude of the input device with respect to the reference plane.

第1の発明によれば、プレイヤの操作の誤認識や誤判定を軽減することが可能となる。   According to the first aspect, it is possible to reduce misrecognition and misjudgment of the player's operation.

第2の発明は、第1の発明において、所定の検出手段は、入力装置に備えられている所定の動きセンサである。   In a second aspect based on the first aspect, the predetermined detecting means is a predetermined motion sensor provided in the input device.

第2の発明によれば、入力装置の姿勢をより正確に算出することが可能となる。   According to the second invention, the attitude of the input device can be calculated more accurately.

第3の発明は、第1の発明において、基準平面設定手段は、姿勢算出手段で算出された入力装置の姿勢に基づいて基準平面を設定する。   In a third aspect based on the first aspect, the reference plane setting means sets the reference plane based on the attitude of the input device calculated by the attitude calculation means.

第3の発明によれば、プレイヤが構えている入力装置の姿勢に基づき基準平面を設定するため、プレイヤの操作の誤認識や誤判定を更に軽減することが可能となる。   According to the third aspect, since the reference plane is set based on the attitude of the input device held by the player, it is possible to further reduce misrecognition and misjudgment of the player's operation.

第4の発明は、第3の発明において、基準平面設定手段は、ユーザが入力装置を操作した時の姿勢に基づいて基準平面を設定する。   In a fourth aspect based on the third aspect, the reference plane setting means sets the reference plane based on the posture when the user operates the input device.

第4の発明によれば、ユーザに任意のタイミングで基準平面の設定操作を行わせることができる。   According to the fourth aspect of the invention, it is possible to cause the user to perform a reference plane setting operation at an arbitrary timing.

第5の発明は、第3の発明において、ゲームプログラムは、コンピュータを、角度算出手段と、判定手段として更に機能させる。角度算出手段は、入力装置の姿勢と基準平面とのなす角度を算出する。判定手段は、入力装置の姿勢と基準平面とのなす角度が所定の条件を満たしたか否かを判定する。そして、処理手段は、判定手段において所定の条件を満たしたと判定された時に、所定の処理を実行する。   In a fifth aspect based on the third aspect, the game program causes the computer to further function as angle calculation means and determination means. The angle calculation means calculates an angle formed between the attitude of the input device and the reference plane. The determination unit determines whether or not an angle formed between the attitude of the input device and the reference plane satisfies a predetermined condition. The processing means executes a predetermined process when the determination means determines that the predetermined condition is satisfied.

第6の発明は、第5の発明において、判定手段は、角度算出手段で算出された角度に基づいて、入力装置の姿勢と基準平面とが水平になったか否かを判定する。   In a sixth aspect based on the fifth aspect, the determining means determines whether the attitude of the input device and the reference plane are horizontal based on the angle calculated by the angle calculating means.

第7の発明は、第5の発明において、ゲームプログラムは、判定手段によって入力装置の姿勢と基準平面ととのなす角度が所定の条件を満たしたと判定されるまで、姿勢動き情報取得手段と、姿勢算出手段と、角度算出手段と、判定手段による処理を繰り返し実行する。   According to a seventh aspect based on the fifth aspect, the game program, until the determination means determines that the angle formed between the posture of the input device and the reference plane satisfies a predetermined condition, The processing by the posture calculation unit, the angle calculation unit, and the determination unit is repeatedly executed.

第8の発明は、第7の発明において、判定手段は、角度算出手段で算出された角度に基づいて、入力装置の姿勢と基準平面とのなす角度の符号が反転したか否かを判定する。   In an eighth aspect based on the seventh aspect, the determining means determines whether or not the sign of the angle formed by the attitude of the input device and the reference plane is inverted based on the angle calculated by the angle calculating means. .

第5乃至第8の発明によれば、例えばゴルフスイングのような動作をプレイヤに行わせる際に、プレイヤの意図した操作をより正確にゲーム処理に反映させることが可能となる。   According to the fifth to eighth inventions, for example, when the player performs an action such as a golf swing, the operation intended by the player can be more accurately reflected in the game process.

第9の発明は、第8の発明において、入力装置には、それぞれ直交する3軸が定義されている。そして、基準平面設定手段は、姿勢算出手段で算出された入力装置の姿勢において、定義されている3軸のうちの所定の2軸方向それぞれにかかる姿勢に基づいて基準平面を設定する。   In a ninth aspect based on the eighth aspect, the input device defines three orthogonal axes. Then, the reference plane setting unit sets the reference plane based on the postures in the predetermined two-axis directions among the three defined axes in the posture of the input device calculated by the posture calculation unit.

第10の発明は、第9の発明において、基準平面設定手段は、所定の2軸方向それぞれの姿勢に基づき、基準平面を設定するための2つの平面を算出する候補平面算出手段(S41、S43)を含む。そして、基準平面設定手段は、候補平面算出手段で算出された2つの平面に基づいて基準平面を設定する。   According to a tenth aspect, in the ninth aspect, the reference plane setting means calculates candidate plane calculation means (S41, S43) for calculating two planes for setting the reference plane based on respective postures in two predetermined biaxial directions. )including. The reference plane setting means sets the reference plane based on the two planes calculated by the candidate plane calculation means.

第9乃至第10の発明によれば、多角的な視点で基準平面を算出することができる。   According to the ninth to tenth aspects, the reference plane can be calculated from various viewpoints.

第11の発明は、第10の発明において、候補平面算出手段は、定義されている3軸のうちの所定の1軸と重力方向とを含む平面を2つの平面のうちの1つとして算出する。   In an eleventh aspect based on the tenth aspect, the candidate plane calculating means calculates a plane including a predetermined one of the three defined axes and the direction of gravity as one of the two planes. .

第12の発明は、第11の発明において、候補平面算出手段は、入力装置の長手方向の軸として定義されている軸と重力方向とを含む平面を2つの平面のうちの1つとして算出する。   In a twelfth aspect based on the eleventh aspect, the candidate plane calculating means calculates a plane including the axis defined as the longitudinal axis of the input device and the gravity direction as one of the two planes. .

第13の発明は、第10の発明において、候補平面算出手段は、入力装置の上下方向の軸として定義されている軸と重力方向とを含む平面を2つの平面のうちの1つとして算出する。   In a thirteenth aspect based on the tenth aspect, the candidate plane calculating means calculates a plane including the axis defined as the vertical axis of the input device and the direction of gravity as one of the two planes. .

第14の発明は、第10の発明において、候補平面算出手段は、入力装置の長手方向の軸として定義されている軸を重力方向に向けるような回転を入力装置の上下方向の軸として定義されている軸に加えることで算出される仮想軸と重力方向とを含む平面を2つの平面のうちの1つとして算出する。   In a fourteenth aspect based on the tenth aspect, the candidate plane calculating means is defined as a vertical axis of the input device that rotates the axis defined as the longitudinal axis of the input device in the direction of gravity. A plane including the virtual axis and the direction of gravity calculated by adding to the axis is calculated as one of the two planes.

第15の発明は、第10の発明において、基準平面設定手段は、候補平面算出手段が算出した2つの平面に対して、それぞれ所定の条件に基づく重み付けを行い、当該2つの平面の加重平均となる面を算出し、基準平面として設定する。   In a fifteenth aspect based on the tenth aspect, the reference plane setting means weights the two planes calculated by the candidate plane calculation means based on predetermined conditions, and calculates a weighted average of the two planes. Is calculated and set as a reference plane.

第16の発明は、第15の発明において、基準平面設定手段は、候補平面算出手段が算出した2つの平面のうち、直前に設定された基準平面により近い位置にある平面に対して、より重く重み付けを行う。   In a sixteenth aspect based on the fifteenth aspect, the reference plane setting means is heavier than the plane that is closer to the reference plane set immediately before, among the two planes calculated by the candidate plane calculation means. Perform weighting.

第17の発明は、第15の発明において、基準平面設定手段は、候補平面算出手段が算出した2つの平面のうち、重力方向からより遠い位置となる軸に基づいて算出された平面に対して、より重く重み付けを行う。   According to a seventeenth aspect, in the fifteenth aspect, the reference plane setting unit is configured to calculate a plane calculated based on an axis that is farther from the direction of gravity among the two planes calculated by the candidate plane calculation unit. Weigh more heavily.

第11乃至第17の発明によれば、2つの平面を用いた多角的な視点で基準平面を算出することができ、コントローラの持ち方の違いによって、基準平面を算出するための計算が不安定となることを回避することができる。   According to the eleventh to seventeenth aspects, the reference plane can be calculated from various viewpoints using two planes, and the calculation for calculating the reference plane is unstable due to the difference in how the controller is held. Can be avoided.

第18の発明は、第9の発明において、基準平面設定手段は、入力装置に定義されている所定の2軸方向の軸のうち、重力方向からより遠い位置にある軸を算出用軸として選択し、当該算出用軸にかかる姿勢に基づいて基準平面を設定する。   In an eighteenth aspect based on the ninth aspect, the reference plane setting means selects, as a calculation axis, an axis farther from the gravitational direction among predetermined two axial directions defined in the input device. Then, the reference plane is set based on the posture applied to the calculation axis.

第19の発明は、第18の発明において、基準平面設定手段は、算出用軸に基づいて算出用軸平面を設定する。そして、基準平面設定手段は、当該算出用軸平面に基づいて基準平面を設定する。   In a nineteenth aspect based on the eighteenth aspect, the reference plane setting means sets the calculation axis plane based on the calculation axis. The reference plane setting means sets the reference plane based on the calculation axial plane.

第20の発明は、第19の発明において、基準平面設定手段は、直前に設定された基準平面である旧基準平面、および、算出用軸平面に基づいて基準平面を設定する。   In a twentieth aspect based on the nineteenth aspect, the reference plane setting means sets the reference plane based on the old reference plane which is the reference plane set immediately before and the calculation axis plane.

第21の発明は、第20の発明において、基準平面設定手段は、旧基準平面、および、算出用軸平面のそれぞれに対して所定の条件に基づく重み付けを行い、当該2つの平面の加重平均となる面を算出し、基準平面として設定する。   In a twenty-first aspect based on the twentieth aspect, the reference plane setting means weights each of the old reference plane and the calculation axis plane based on a predetermined condition, and calculates a weighted average of the two planes. Is calculated and set as a reference plane.

第22の発明は、第21の発明において、基準平面設定手段は、旧基準平面に対して、より重く重み付けを行う。   In a twenty-second aspect based on the twenty-first aspect, the reference plane setting means weights the old reference plane more heavily.

第23の発明は、第21の発明において、基準平面設定手段は、算出用軸が重力方向から遠い位置にあるほど、より重く重み付けを行う。   In a twenty-third aspect based on the twenty-first aspect, the reference plane setting means weights more heavily as the calculation axis is located farther from the direction of gravity.

第18乃至第23の発明によれば、重力方向からより遠い位置にある軸に基づいて基準平面を設定するため、プレイヤに違和感を感じさせないような基準平面を設定することができる。   According to the eighteenth to twenty-third aspects, since the reference plane is set based on the axis farther from the direction of gravity, it is possible to set the reference plane that does not make the player feel uncomfortable.

第24の発明は、第10の発明において、基準平面設定手段は、候補平面算出手段が算出した2つの平面のうち、直前に設定された基準平面である旧基準平面により近い方の平面に基づいて基準平面を設定する。   In a twenty-fourth aspect based on the tenth aspect, the reference plane setting means is based on a plane closer to the old reference plane which is the reference plane set immediately before, out of the two planes calculated by the candidate plane calculation means. To set the reference plane.

第25の発明は、第24の発明において、基準平面設定手段は、旧基準平面により近い方の平面、および、当該旧基準平面に対して、それぞれ所定の条件に基づく重み付けを行い、当該2つの平面の加重平均となる面を算出し、基準平面として設定する。   In a twenty-fifth aspect based on the twenty-fourth aspect, the reference plane setting means weights the plane closer to the old reference plane and the old reference plane based on predetermined conditions, respectively, A plane that is a weighted average of the planes is calculated and set as a reference plane.

第26の発明は、第25の発明において、基準平面設定手段は、旧基準平面に対して、より重く重み付けを行う。   In a twenty-sixth aspect based on the twenty-fifth aspect, the reference plane setting means weights the old reference plane more heavily.

第24乃至第26の発明によれば、直前に算出された基準平面をより信頼して新たな基準平面の設定を行うため、プレイヤに違和感を感じさせないような基準平面を設定することができる。   According to the twenty-fourth to twenty-sixth aspects, since a new reference plane is set with more confidence of the reference plane calculated immediately before, it is possible to set a reference plane that does not make the player feel uncomfortable.

第27の発明は、ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲーム装置のコンピュータに実行させるゲームプログラムであって、コンピュータを、姿勢動き情報取得手段(S2)と、姿勢算出手段(S31)と、姿勢補正値算出手段と、処理手段(S17)として機能させる。姿勢動き情報取得手段は、検出手段で検出された姿勢動き情報を取得する。姿勢算出手段は、姿勢動き情報に基づいて入力装置の姿勢を算出する。姿勢補正値算出手段は、所定のタイミングで、姿勢動き情報に基づいて入力装置の姿勢の補正値を算出する。処理手段は、実空間内に仮想的に設定された所定の基準平面に対する入力装置の姿勢を補正値で補正した姿勢に応じて所定の処理を実行する。   According to a twenty-seventh aspect of the present invention, there is provided a game program that is executed by a computer of a game device that moves an object in a virtual space based on posture movement information acquired from a predetermined detection unit that detects the posture or movement of an input device operated by a user. Then, the computer is caused to function as posture motion information acquisition means (S2), posture calculation means (S31), posture correction value calculation means, and processing means (S17). The posture movement information acquisition unit acquires the posture movement information detected by the detection unit. The posture calculation means calculates the posture of the input device based on the posture motion information. The posture correction value calculating means calculates the posture correction value of the input device based on the posture motion information at a predetermined timing. The processing means executes predetermined processing according to an attitude obtained by correcting the attitude of the input device with respect to a predetermined reference plane virtually set in the real space with a correction value.

第27の発明によれば、第1の発明と同様の結果を得ることができる。   According to the twenty-seventh aspect, the same result as in the first aspect can be obtained.

第28の発明は、ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲーム装置であって、姿勢動き情報取得手段(10)と、姿勢算出手段(10)と、基準平面設定手段(10)と、処理手段(10)とを備える。姿勢動き情報取得手段は、検出手段で検出された姿勢動き情報を取得する。姿勢算出手段は、姿勢動き情報に基づいて入力装置の姿勢を算出する。基準平面設定手段は、所定のタイミングで、姿勢動き情報に基づいて所定の平面を基準平面として実空間内に仮想的に設定する。処理手段は、基準平面に対する入力装置の姿勢に応じた所定の処理を実行する。   A twenty-eighth aspect of the present invention is a game device for moving an object in a virtual space based on posture movement information acquired from predetermined detection means for detecting the posture or movement of an input device operated by a user, the posture movement information An acquisition means (10), an attitude calculation means (10), a reference plane setting means (10), and a processing means (10) are provided. The posture movement information acquisition unit acquires the posture movement information detected by the detection unit. The posture calculation means calculates the posture of the input device based on the posture motion information. The reference plane setting means virtually sets the predetermined plane as a reference plane in the real space based on the posture movement information at a predetermined timing. The processing means executes a predetermined process corresponding to the attitude of the input device with respect to the reference plane.

第29の発明は、ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲーム装置であって、姿勢動き情報取得手段(10)と、姿勢算出手段(10)と、姿勢補正値算出手段(10)と、処理手段(10)とを備える。姿勢動き情報取得手段と、検出手段で検出された姿勢動き情報を取得する。姿勢算出手段は、姿勢動き情報に基づいて入力装置の姿勢を算出する。姿勢補正値算出手段は、所定のタイミングで、姿勢動き情報に基づいて入力装置の姿勢の補正値を算出する。処理手段は、実空間内に仮想的に設定された所定の基準平面に対する入力装置の姿勢を補正値で補正した姿勢に応じて所定の処理を実行する。   A twenty-ninth aspect of the present invention is a game device for moving an object in a virtual space based on posture movement information acquired from predetermined detection means for detecting the posture or movement of an input device operated by a user, the posture movement information An acquisition means (10), an attitude calculation means (10), an attitude correction value calculation means (10), and a processing means (10) are provided. Posture movement information acquisition means and posture movement information detected by the detection means are acquired. The posture calculation means calculates the posture of the input device based on the posture motion information. The posture correction value calculating means calculates the posture correction value of the input device based on the posture motion information at a predetermined timing. The processing means executes predetermined processing according to an attitude obtained by correcting the attitude of the input device with respect to a predetermined reference plane virtually set in the real space with a correction value.

第28乃至第29の発明によれば、第1の発明と同様の結果を得ることができる。   According to the twenty-eighth to twenty-ninth aspects, the same result as in the first aspect can be obtained.

本発明によれば、動き情報から算出される入力装置の姿勢等に基づいて基準平面を設定し、これに基づいた処理を実行できるため、例えば、ゴルフゲームにおけるショットの判定等の処理において、誤認識や誤判定の発生を防ぐことができる。   According to the present invention, it is possible to set a reference plane based on the posture of the input device calculated from the motion information and execute a process based on the reference plane. Generation of recognition and erroneous determination can be prevented.

ゲームシステム1の外観図External view of game system 1 ゲーム装置3の構成を示すブロック図Block diagram showing the configuration of the game apparatus 3 入力装置8の外観構成を示す斜視図The perspective view which shows the external appearance structure of the input device 8 コントローラ5の外観構成を示す斜視図The perspective view which shows the external appearance structure of the controller 5 コントローラ5の内部構造を示す図The figure which shows the internal structure of the controller 5 コントローラ5の内部構造を示す図The figure which shows the internal structure of the controller 5 入力装置8の構成を示すブロック図Block diagram showing the configuration of the input device 8 本実施形態で想定するゲームの画面の一例Example of game screen assumed in this embodiment プレイヤの操作方法について説明するための図The figure for demonstrating the operation method of a player 本実施形態で想定するゲームの画面の一例Example of game screen assumed in this embodiment 基準平面の概念を示す模式図Schematic diagram showing the concept of the reference plane 本実施形態で想定するゲームの画面の一例Example of game screen assumed in this embodiment パワーゲージ104に関して説明するための図Illustration for explaining the power gauge 104 パワーゲージ104に関して説明するための図Illustration for explaining the power gauge 104 パワーゲージ104に関して説明するための図Illustration for explaining the power gauge 104 パワーゲージ104に関して説明するための図Illustration for explaining the power gauge 104 パワーゲージ104に関して説明するための図Illustration for explaining the power gauge 104 本実施形態で想定するゲームの画面の一例Example of game screen assumed in this embodiment パワーゲージ104に関して説明するための図Illustration for explaining the power gauge 104 捻り角度に関して説明するための図Diagram for explaining the twist angle バックスピン操作について説明するための図Diagram for explaining backspin operation バックスピン操作について説明するための図Diagram for explaining backspin operation 入力装置8と基準平面、および、2つの候補面の関係の一例Example of relationship between input device 8 and reference plane and two candidate planes クラブヘッド部分のしなりの一例を模式的に示した図The figure which showed an example of the bending of the club head part typically クラブヘッド部分を「バネ」と「ダンパー」でモデル化した図Figure of club head modeled with "spring" and "damper" 基準X角度の概念を示す模式図Schematic diagram showing the concept of the reference X angle 現在X角度の概念を示す模式図Schematic diagram showing the concept of the current X angle 捻り角度をパワーゲージの湾曲度に変換するグラフの一例Example of a graph that converts the twist angle into the curvature of the power gauge 振りかぶり量Hの算出について説明するための図The figure for demonstrating calculation of the amount of shaking fog H 振りかぶり角度の絶対値を振りかぶり量Hに変換するグラフの一例An example of a graph that converts the absolute value of the swing-up angle into the swing-up amount H 構え直し姿勢の正しさStの算出について説明するための図The figure for demonstrating calculation of the correctness St of the repositioning attitude | position ゲーム装置3の外部メインメモリ12のメモリマップを示す図The figure which shows the memory map of the external main memory 12 of the game device 3 図32の操作データ127のデータ構造の一例を示した図The figure which showed an example of the data structure of the operation data 127 of FIG. 図32のゲーム処理用データ128のデータ構造の一例を示した図The figure which showed an example of the data structure of the data 128 for game processing of FIG. 本発明の実施形態に係るゲーム処理を示すフローチャートThe flowchart which shows the game processing which concerns on embodiment of this invention 本発明の実施形態に係るゲーム処理を示すフローチャートThe flowchart which shows the game processing which concerns on embodiment of this invention 本発明の実施形態に係るゲーム処理を示すフローチャートThe flowchart which shows the game processing which concerns on embodiment of this invention 図36のステップS8で示した構えなおし処理の詳細を示したフローチャート36 is a flowchart showing details of the repositioning process shown in step S8 of FIG. 図38のステップS32で示した基準平面設定処理の詳細を示したフローチャートThe flowchart which showed the detail of the reference plane setting process shown by step S32 of FIG. 図39のステップS47の処理概要を説明するための図The figure for demonstrating the process outline | summary of step S47 of FIG. 図37のステップS16で示したスイング関連処理の詳細を示したフローチャートThe flowchart which showed the detail of the swing related process shown by step S16 of FIG. 図41のステップS52で示したパワーゲージ更新処理の詳細を示したフローチャートThe flowchart which showed the detail of the power gauge update process shown by step S52 of FIG. 図42のステップS61で示した捻り角度算出処理の詳細を示したフローチャートThe flowchart which showed the detail of the twist angle calculation process shown by step S61 of FIG. 図42のステップS62で示した振りかぶり角度算出処理の詳細を示したフローチャート42 is a flowchart showing details of the swing angle calculation process shown in step S62 of FIG. 図41のステップS53で示した打球パワー算出処理の詳細を示したフローチャートThe flowchart which showed the detail of the hitting ball power calculation process shown by step S53 of FIG. 図41のステップS54で示したしなり角算出処理の詳細を示したフローチャートThe flowchart which showed the detail of the bending angle calculation process shown by step S54 of FIG. 図37のステップS17で示したインパクト関連処理の詳細を示したフローチャートThe flowchart which showed the detail of the impact related process shown by step S17 of FIG. 図47のステップS115で示したショット処理の詳細を示したフローチャート47 is a flowchart showing details of the shot processing shown in step S115 of FIG. 図37のステップS18で示した構え直しガイド処理の詳細を示したフローチャート37 is a flowchart showing details of the readjustment guide process shown in step S18 of FIG. 図49のステップS134で示したKrの算出処理の詳細を示したフローチャートThe flowchart which showed the detail of the calculation process of Kr shown by step S134 of FIG. 図49のステップS135で示したKsの算出処理の詳細を示したフローチャート49 is a flowchart showing details of the Ks calculation process shown in step S135 of FIG. 図35のステップS4で示したボール移動処理の詳細を示したフローチャートThe flowchart which showed the detail of the ball | bowl movement process shown by step S4 of FIG. 図52のステップS162で示したバックスピン率設定処理の詳細を示したフローチャートThe flowchart which showed the detail of the backspin rate setting process shown by step S162 of FIG. パワーゲージ104の形状の変化の一例を示す図The figure which shows an example of a change of the shape of the power gauge 104 振りかぶり角度を振りかぶり量Hに変換するためのグラフの一例An example of a graph for converting the swing angle into the swing amount H 捻り角度をパワーゲージの湾曲度に変換するためのグラフの一例An example of a graph for converting the twist angle into the curvature of the power gauge 捻り角度をパワーゲージの湾曲度に変換するためのグラフの一例An example of a graph for converting the twist angle into the curvature of the power gauge 従来のゴルフゲームにおけるゲージの一例An example of a gauge in a conventional golf game

[ゲームシステムの全体構成]
図1を参照して、本発明の一実施形態に係る姿勢算出装置の一例であるゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、入力装置8、およびマーカ部6を含む。本システムは、入力装置8を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
[Overall configuration of game system]
With reference to FIG. 1, a game system 1 including a game apparatus, which is an example of an attitude calculation apparatus according to an embodiment of the present invention, will be described. FIG. 1 is an external view of the game system 1. Hereinafter, the game apparatus and the game program of the present embodiment will be described using a stationary game apparatus as an example. In FIG. 1, the game system 1 includes a television receiver (hereinafter simply referred to as “TV”) 2, a game device 3, an optical disk 4, an input device 8, and a marker unit 6. In the present system, game processing is executed by the game device 3 based on a game operation using the input device 8.

ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。   An optical disk 4 that is an example of an information storage medium that can be used interchangeably with the game apparatus 3 is detachably inserted into the game apparatus 3. The optical disc 4 stores a game program to be executed on the game apparatus 3. An insertion slot for the optical disk 4 is provided on the front surface of the game apparatus 3. The game apparatus 3 executes a game process by reading and executing a game program stored in the optical disc 4 inserted into the insertion slot.

ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。   A television 2 which is an example of a display device is connected to the game apparatus 3 via a connection cord. The television 2 displays a game image obtained as a result of the game process executed in the game device 3. A marker unit 6 is installed around the screen of the television 2 (upper side of the screen in FIG. 1). The marker unit 6 includes two markers 6R and 6L at both ends thereof. The marker 6R (same for the marker 6L) is specifically one or more infrared LEDs, and outputs infrared light toward the front of the television 2. The marker unit 6 is connected to the game apparatus 3, and the game apparatus 3 can control lighting of each infrared LED included in the marker unit 6.

入力装置8は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与えるものである。本実施形態では、入力装置8はコントローラ5とジャイロセンサユニット7とを含む。詳細は後述するが、入力装置8は、コントローラ5に対してジャイロセンサユニット7が着脱可能に接続されている構成である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。   The input device 8 gives operation data indicating the content of the operation performed on the own device to the game device 3. In the present embodiment, the input device 8 includes a controller 5 and a gyro sensor unit 7. Although details will be described later, the input device 8 has a configuration in which a gyro sensor unit 7 is detachably connected to the controller 5. The controller 5 and the game apparatus 3 are connected by wireless communication. In the present embodiment, for example, Bluetooth (registered trademark) technology is used for wireless communication between the controller 5 and the game apparatus 3. In other embodiments, the controller 5 and the game apparatus 3 may be connected by wire.

[ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
[Internal configuration of game device 3]
Next, the internal configuration of the game apparatus 3 will be described with reference to FIG. FIG. 2 is a block diagram showing a configuration of the game apparatus 3. The game apparatus 3 includes a CPU 10, a system LSI 11, an external main memory 12, a ROM / RTC 13, a disk drive 14, an AV-IC 15 and the like.

CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。   The CPU 10 executes a game process by executing a game program stored on the optical disc 4, and functions as a game processor. The CPU 10 is connected to the system LSI 11. In addition to the CPU 10, an external main memory 12, a ROM / RTC 13, a disk drive 14, and an AV-IC 15 are connected to the system LSI 11. The system LSI 11 performs processing such as control of data transfer between components connected thereto, generation of an image to be displayed, and acquisition of data from an external device. The internal configuration of the system LSI 11 will be described later. The volatile external main memory 12 stores a program such as a game program read from the optical disc 4 or a game program read from the flash memory 17, or stores various data. Used as a work area and buffer area. The ROM / RTC 13 includes a ROM (so-called boot ROM) in which a program for starting the game apparatus 3 is incorporated, and a clock circuit (RTC: Real Time Clock) that counts time. The disk drive 14 reads program data, texture data, and the like from the optical disk 4 and writes the read data to an internal main memory 11e or an external main memory 12 described later.

また、システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。   Further, the system LSI 11 is provided with an input / output processor (I / O processor) 11a, a GPU (Graphics Processor Unit) 11b, a DSP (Digital Signal Processor) 11c, a VRAM 11d, and an internal main memory 11e. Although not shown, these components 11a to 11e are connected to each other by an internal bus.

GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。   The GPU 11b forms part of a drawing unit and generates an image according to a graphics command (drawing command) from the CPU 10. The VRAM 11d stores data (data such as polygon data and texture data) necessary for the GPU 11b to execute the graphics command. When an image is generated, the GPU 11b creates image data using data stored in the VRAM 11d.

DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。   The DSP 11c functions as an audio processor, and generates sound data using sound data and sound waveform (tone color) data stored in the internal main memory 11e and the external main memory 12.

上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。   The image data and audio data generated as described above are read out by the AV-IC 15. The AV-IC 15 outputs the read image data to the television 2 via the AV connector 16, and outputs the read audio data to the speaker 2 a built in the television 2. As a result, an image is displayed on the television 2 and a sound is output from the speaker 2a.

入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。   The input / output processor 11a performs transmission / reception of data to / from components connected to the input / output processor 11a and downloads data from an external device. The input / output processor 11a is connected to the flash memory 17, the wireless communication module 18, the wireless controller module 19, the expansion connector 20, and the memory card connector 21. An antenna 22 is connected to the wireless communication module 18, and an antenna 23 is connected to the wireless controller module 19.

入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。   The input / output processor 11a is connected to the network via the wireless communication module 18 and the antenna 22, and can communicate with other game devices and various servers connected to the network. The input / output processor 11a periodically accesses the flash memory 17 to detect the presence / absence of data that needs to be transmitted to the network. If there is such data, the input / output processor 11a communicates with the network via the wireless communication module 18 and the antenna 22. Send. Further, the input / output processor 11a receives data transmitted from other game devices and data downloaded from the download server via the network, the antenna 22 and the wireless communication module 18, and receives the received data in the flash memory 17. Remember. By executing the game program, the CPU 10 reads out the data stored in the flash memory 17 and uses it in the game program. In the flash memory 17, in addition to data transmitted and received between the game apparatus 3 and other game apparatuses and various servers, save data (game result data or intermediate data) of the game played using the game apparatus 3 May be stored.

また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。   The input / output processor 11a receives operation data transmitted from the controller 5 via the antenna 23 and the wireless controller module 19, and stores (temporarily stores) the data in the buffer area of the internal main memory 11e or the external main memory 12.

さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。   Further, an expansion connector 20 and a memory card connector 21 are connected to the input / output processor 11a. The expansion connector 20 is a connector for an interface such as USB or SCSI, and connects a medium such as an external storage medium, a peripheral device such as another controller, or a wired communication connector. By connecting, communication with the network can be performed instead of the wireless communication module 18. The memory card connector 21 is a connector for connecting an external storage medium such as a memory card. For example, the input / output processor 11a can access an external storage medium via the expansion connector 20 or the memory card connector 21 to store data in the external storage medium or read data from the external storage medium.

ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。   The game apparatus 3 is provided with a power button 24, a reset button 25, and an eject button 26. The power button 24 and the reset button 25 are connected to the system LSI 11. When the power button 24 is turned on, power is supplied to each component of the game apparatus 3 via an AC adapter (not shown). When the reset button 25 is pressed, the system LSI 11 restarts the boot program for the game apparatus 3. The eject button 26 is connected to the disk drive 14. When the eject button 26 is pressed, the optical disk 4 is ejected from the disk drive 14.

[入力装置8の構成]
次に、図3〜図6を参照して、入力装置8について説明する。図3は、入力装置8の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
[Configuration of Input Device 8]
Next, the input device 8 will be described with reference to FIGS. FIG. 3 is a perspective view showing an external configuration of the input device 8. FIG. 4 is a perspective view showing an external configuration of the controller 5. 3 is a perspective view of the controller 5 as seen from the upper rear side, and FIG. 4 is a perspective view of the controller 5 as seen from the lower front side.

図3および図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ5に設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。   3 and 4, the controller 5 includes a housing 31 formed by plastic molding, for example. The housing 31 has a substantially rectangular parallelepiped shape whose longitudinal direction is the front-rear direction (the Z-axis direction shown in FIG. 3), and is a size that can be gripped with one hand of an adult or a child as a whole. The player can perform a game operation by pressing a button provided on the controller 5 and moving the controller 5 itself to change its position and posture.

ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。本明細書では、これらのボタン32a〜32hが設けられるハウジング31の上面を「ボタン面」と呼ぶことがある。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。   The housing 31 is provided with a plurality of operation buttons. As shown in FIG. 3, a cross button 32a, a first button 32b, a second button 32c, an A button 32d, a minus button 32e, a home button 32f, a plus button 32g, and a power button 32h are provided on the upper surface of the housing 31. It is done. In the present specification, the upper surface of the housing 31 on which these buttons 32a to 32h are provided may be referred to as a “button surface”. On the other hand, as shown in FIG. 4, a recess is formed on the lower surface of the housing 31, and a B button 32i is provided on the rear inclined surface of the recess. A function corresponding to the game program executed by the game apparatus 3 is appropriately assigned to each of the operation buttons 32a to 32i. The power button 32h is for remotely turning on / off the main body of the game apparatus 3. The home button 32 f and the power button 32 h are embedded in the upper surface of the housing 31. This can prevent the player from pressing the home button 32f or the power button 32h by mistake.

ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、ジャイロセンサユニット7や他のコントローラ)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。   A connector 33 is provided on the rear surface of the housing 31. The connector 33 is used to connect another device (for example, the gyro sensor unit 7 or another controller) to the controller 5. Further, locking holes 33a are provided on both sides of the connector 33 on the rear surface of the housing 31 in order to prevent the other devices from being easily detached.

ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。   A plurality (four in FIG. 3) of LEDs 34 a to 34 d are provided behind the upper surface of the housing 31. Here, the controller type (number) is assigned to the controller 5 to distinguish it from other main controllers. The LEDs 34a to 34d are used for the purpose of notifying the player of the controller type currently set in the controller 5 and notifying the player of the remaining battery level of the controller 5. Specifically, when a game operation is performed using the controller 5, any one of the plurality of LEDs 34a to 34d is turned on according to the controller type.

また、コントローラ5は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。   Further, the controller 5 has an imaging information calculation unit 35 (FIG. 6), and a light incident surface 35a of the imaging information calculation unit 35 is provided on the front surface of the housing 31, as shown in FIG. The light incident surface 35a is made of a material that transmits at least infrared light from the markers 6R and 6L.

ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5)からの音を外部に放出するための音抜き孔31aが形成されている。   Between the first button 32b and the home button 32f on the upper surface of the housing 31, a sound release hole 31a for releasing sound from the speaker 49 (FIG. 5) built in the controller 5 is formed.

次に、図5および図6を参照して、コントローラ5の内部構造について説明する。図5および図6は、コントローラ5の内部構造を示す図である。なお、図5は、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。   Next, the internal structure of the controller 5 will be described with reference to FIGS. 5 and 6 are diagrams showing the internal structure of the controller 5. FIG. FIG. 5 is a perspective view showing a state in which the upper housing (a part of the housing 31) of the controller 5 is removed. FIG. 6 is a perspective view showing a state in which the lower casing (a part of the housing 31) of the controller 5 is removed. The perspective view shown in FIG. 6 is a perspective view of the substrate 30 shown in FIG.

図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。   In FIG. 5, a substrate 30 is fixed inside the housing 31, and operation buttons 32 a to 32 h, LEDs 34 a to 34 d, an acceleration sensor 37, an antenna 45, and a speaker 49 are provided on the upper main surface of the substrate 30. Etc. are provided. These are connected to a microcomputer (microcomputer) 42 (see FIG. 6) by wiring (not shown) formed on the substrate 30 and the like. In the present embodiment, the acceleration sensor 37 is disposed at a position shifted from the center of the controller 5 with respect to the X-axis direction. This makes it easier to calculate the movement of the controller 5 when the controller 5 is rotated about the Z axis. The acceleration sensor 37 is disposed in front of the center of the controller 5 in the longitudinal direction (Z-axis direction). Further, the controller 5 functions as a wireless controller by the wireless module 44 (FIG. 6) and the antenna 45.

一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。   On the other hand, in FIG. 6, an imaging information calculation unit 35 is provided at the front edge on the lower main surface of the substrate 30. The imaging information calculation unit 35 includes an infrared filter 38, a lens 39, an imaging element 40, and an image processing circuit 41 in order from the front of the controller 5. These members 38 to 41 are respectively attached to the lower main surface of the substrate 30.

さらに、基板30の下主面上には、上記マイコン42およびバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がコントローラ5の中心よりも端側に配置することによって、バイブレータ48の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。   Further, the microcomputer 42 and the vibrator 48 are provided on the lower main surface of the substrate 30. The vibrator 48 is, for example, a vibration motor or a solenoid, and is connected to the microcomputer 42 by wiring formed on the substrate 30 or the like. The controller 48 is vibrated by the operation of the vibrator 48 according to the instruction of the microcomputer 42. As a result, a so-called vibration-compatible game in which the vibration is transmitted to the hand of the player holding the controller 5 can be realized. In the present embodiment, the vibrator 48 is disposed slightly forward of the housing 31. That is, by arranging the vibrator 48 on the end side of the center of the controller 5, the entire controller 5 can be vibrated greatly by the vibration of the vibrator 48. The connector 33 is attached to the rear edge on the lower main surface of the substrate 30. 5 and 6, the controller 5 includes a crystal resonator that generates a basic clock of the microcomputer 42, an amplifier that outputs an audio signal to the speaker 49, and the like.

また、ジャイロセンサユニット7は、3軸回りの角速度を検知するジャイロセンサ(図7に示すジャイロセンサ55および56)を有する。ジャイロセンサユニット7は、コントローラ5のコネクタ33に着脱可能に装着される。ジャイロセンサユニット7の前端(図3に示すZ軸正方向側の端部)には、コネクタ33に接続可能なプラグ(図7に示すプラグ53)が設けられる。さらに、プラグ53の両側にはフック(図示せず)が設けられる。ジャイロセンサユニット7がコントローラ5に対して装着される状態では、プラグ53がコネクタ33に接続されるとともに、上記フックがコントローラ5の係止穴33aに係止する。これによって、コントローラ5とジャイロセンサユニット7とがしっかりと固定される。また、ジャイロセンサユニット7は側面(図3に示すX軸方向の面)にボタン51を有している。ボタン51は、それを押下すれば上記フックの係止穴33aに対する係止状態を解除することができるように構成されている。したがって、ボタン51を押下しながらプラグ53をコネクタ33から抜くことによって、ジャイロセンサユニット7をコントローラ5から離脱することができる。   Further, the gyro sensor unit 7 includes gyro sensors (gyro sensors 55 and 56 shown in FIG. 7) that detect angular velocities around three axes. The gyro sensor unit 7 is detachably attached to the connector 33 of the controller 5. A plug (plug 53 shown in FIG. 7) that can be connected to the connector 33 is provided at the front end of the gyro sensor unit 7 (end on the Z-axis positive direction side shown in FIG. 3). Further, hooks (not shown) are provided on both sides of the plug 53. In a state where the gyro sensor unit 7 is attached to the controller 5, the plug 53 is connected to the connector 33 and the hook is locked in the locking hole 33 a of the controller 5. Thereby, the controller 5 and the gyro sensor unit 7 are firmly fixed. The gyro sensor unit 7 has a button 51 on a side surface (surface in the X-axis direction shown in FIG. 3). The button 51 is configured such that when the button 51 is pressed, the hook is released from the locked state with respect to the locking hole 33a. Therefore, the gyro sensor unit 7 can be detached from the controller 5 by removing the plug 53 from the connector 33 while pressing the button 51.

また、ジャイロセンサユニット7の後端には、上記コネクタ33と同形状のコネクタが設けられる。したがって、コントローラ5(のコネクタ33)に対して装着可能な他の機器は、ジャイロセンサユニット7のコネクタに対しても装着可能である。なお、図3においては、当該コネクタに対してカバー52が着脱可能に装着されている。   A connector having the same shape as the connector 33 is provided at the rear end of the gyro sensor unit 7. Therefore, other devices that can be attached to the controller 5 (connector 33 thereof) can also be attached to the connector of the gyro sensor unit 7. In FIG. 3, a cover 52 is detachably attached to the connector.

なお、図3〜図6に示したコントローラ5およびジャイロセンサユニット7の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。   The shapes of the controller 5 and the gyro sensor unit 7 shown in FIGS. 3 to 6, the shapes of the operation buttons, the number of acceleration sensors and vibrators, and the installation positions are merely examples, and other shapes, numbers, Even in the installation position, the present invention can be realized. In the present embodiment, the imaging direction by the imaging unit is the positive Z-axis direction, but the imaging direction may be any direction. That is, the position of the imaging information calculation unit 35 in the controller 5 (the light incident surface 35a of the imaging information calculation unit 35) does not have to be the front surface of the housing 31, and other surfaces can be used as long as light can be taken in from the outside of the housing 31. May be provided.

図7は、入力装置8(コントローラ5およびジャイロセンサユニット7)の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、および加速度センサ37を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。   FIG. 7 is a block diagram showing a configuration of the input device 8 (the controller 5 and the gyro sensor unit 7). The controller 5 includes an operation unit 32 (operation buttons 32a to 32i), a connector 33, an imaging information calculation unit 35, a communication unit 36, and an acceleration sensor 37. The controller 5 transmits data indicating the details of the operation performed on the own device to the game apparatus 3 as operation data.

操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示す操作ボタンデータを通信部36のマイコン42へ出力する。   The operation unit 32 includes the operation buttons 32a to 32i described above, and the operation button data indicating the input state (whether or not each operation button 32a to 32i is pressed) to each operation button 32a to 32i is transmitted to the microcomputer of the communication unit 36. Output to 42.

撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。   The imaging information calculation unit 35 is a system for analyzing the image data captured by the imaging unit, discriminating a region having a high luminance in the image data, and calculating a center of gravity position, a size, and the like of the region. Since the imaging information calculation unit 35 has a sampling period of, for example, about 200 frames / second at the maximum, it can track and analyze even a relatively fast movement of the controller 5.

撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ部6のマーカ6Rおよび6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6Rおよび6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ6Rおよび6L)の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。   The imaging information calculation unit 35 includes an infrared filter 38, a lens 39, an imaging element 40, and an image processing circuit 41. The infrared filter 38 passes only infrared rays from the light incident from the front of the controller 5. The lens 39 collects the infrared light transmitted through the infrared filter 38 and makes it incident on the image sensor 40. The image sensor 40 is a solid-state image sensor such as a CMOS sensor or a CCD sensor, for example, and receives the infrared light collected by the lens 39 and outputs an image signal. Here, the markers 6 </ b> R and 6 </ b> L of the marker unit 6 disposed in the vicinity of the display screen of the television 2 are configured by infrared LEDs that output infrared light toward the front of the television 2. Therefore, by providing the infrared filter 38, the image sensor 40 receives only the infrared light that has passed through the infrared filter 38 and generates image data, so that the images of the markers 6R and 6L can be captured more accurately. Hereinafter, an image captured by the image sensor 40 is referred to as a captured image. Image data generated by the image sensor 40 is processed by the image processing circuit 41. The image processing circuit 41 calculates the position of the imaging target (markers 6R and 6L) in the captured image. The image processing circuit 41 outputs coordinates indicating the calculated position to the microcomputer 42 of the communication unit 36. The coordinate data is transmitted to the game apparatus 3 as operation data by the microcomputer 42. Hereinafter, the coordinates are referred to as “marker coordinates”. Since the marker coordinates change corresponding to the direction (tilt angle) and position of the controller 5 itself, the game apparatus 3 can calculate the direction and position of the controller 5 using the marker coordinates.

なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。   In other embodiments, the controller 5 may not include the image processing circuit 41, and the captured image itself may be transmitted from the controller 5 to the game apparatus 3. At this time, the game apparatus 3 may have a circuit or a program having the same function as the image processing circuit 41, and may calculate the marker coordinates.

加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、3軸または2軸の加速度センサは、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。   The acceleration sensor 37 detects the acceleration (including gravity acceleration) of the controller 5, that is, detects the force (including gravity) applied to the controller 5. The acceleration sensor 37 detects the value of the acceleration (linear acceleration) in the linear direction along the sensing axis direction among the accelerations applied to the detection unit of the acceleration sensor 37. For example, in the case of a multi-axis acceleration sensor having two or more axes, the component acceleration along each axis is detected as the acceleration applied to the detection unit of the acceleration sensor. For example, the triaxial or biaxial acceleration sensor may be of the type available from Analog Devices, Inc. or ST Microelectronics NV. The acceleration sensor 37 is, for example, a capacitance type acceleration sensor, but other types of acceleration sensors may be used.

本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置8(コントローラ5)を基準に設定されるXYZ座標系(コントローラ座標系)における3次元のベクトル(ax,ay,az)として表される。以下では、加速度センサ37によって検出される3軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。   In the present embodiment, the acceleration sensor 37 has a vertical direction (Y-axis direction shown in FIG. 3), a horizontal direction (X-axis direction shown in FIG. 3), and a front-back direction (Z-axis direction shown in FIG. 3) with reference to the controller 5. ) Linear acceleration is detected in each of the three axis directions. Since the acceleration sensor 37 detects acceleration in the linear direction along each axis, the output from the acceleration sensor 37 represents the linear acceleration value of each of the three axes. That is, the detected acceleration is represented as a three-dimensional vector (ax, ay, az) in an XYZ coordinate system (controller coordinate system) set with reference to the input device 8 (controller 5). Hereinafter, a vector having the respective acceleration values related to the three axes detected by the acceleration sensor 37 as components is referred to as an acceleration vector.

加速度センサ37が検出した加速度を示すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や動きに対応して変化するので、ゲーム装置3は加速度データを用いてコントローラ5の向きや動きを算出することができる。本実施形態では、ゲーム装置3は、加速度データに基づいてコントローラ5の姿勢を判断する。   Data indicating the acceleration detected by the acceleration sensor 37 (acceleration data) is output to the communication unit 36. The acceleration detected by the acceleration sensor 37 changes in accordance with the direction (tilt angle) and movement of the controller 5 itself, so that the game apparatus 3 can calculate the direction and movement of the controller 5 using the acceleration data. it can. In the present embodiment, the game apparatus 3 determines the attitude of the controller 5 based on the acceleration data.

加速度センサ37が検出した加速度(加速度ベクトル)を示すデータ(加速度データ)は、通信部36へ出力される。本実施形態において、加速度センサ37は、コントローラ5の傾斜角度を判断するためのデータを出力するセンサとして用いられる。   Data (acceleration data) indicating the acceleration (acceleration vector) detected by the acceleration sensor 37 is output to the communication unit 36. In the present embodiment, the acceleration sensor 37 is used as a sensor that outputs data for determining the tilt angle of the controller 5.

なお、加速度センサ37から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ(例えばCPU10)またはコントローラ5のプロセッサ(例えばマイコン42)等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合)、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。   In addition, based on the acceleration signal output from the acceleration sensor 37, a computer such as a processor (for example, the CPU 10) of the game apparatus 3 or a processor (for example, the microcomputer 42) of the controller 5 performs processing, whereby further information regarding the controller 5 is obtained. Those skilled in the art will be able to easily understand from the description of the present specification that can be estimated or calculated (determined). For example, when processing on the computer side is executed on the assumption that the controller 5 on which the acceleration sensor 37 is mounted is stationary (that is, the processing is executed assuming that the acceleration detected by the acceleration sensor is only gravitational acceleration). When the controller 5 is actually stationary, it can be determined whether or not the attitude of the controller 5 is inclined with respect to the direction of gravity based on the detected acceleration. Specifically, whether or not the controller 5 is inclined with respect to the reference depending on whether or not 1G (gravity acceleration) is applied, based on the state in which the detection axis of the acceleration sensor 37 is directed vertically downward. It is possible to know how much it is inclined with respect to the reference according to its size. Further, in the case of the multi-axis acceleration sensor 37, it is possible to know in detail how much the controller 5 is inclined with respect to the direction of gravity by further processing the acceleration signal of each axis. . In this case, the processor may calculate the tilt angle of the controller 5 based on the output from the acceleration sensor 37, or may calculate the tilt direction of the controller 5 without calculating the tilt angle. Good. Thus, by using the acceleration sensor 37 in combination with the processor, the tilt angle or posture of the controller 5 can be determined.

一方、コントローラ5が動的な状態(コントローラ5が動かされている状態)であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の動き方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。   On the other hand, when it is assumed that the controller 5 is in a dynamic state (a state in which the controller 5 is moved), the acceleration sensor 37 detects an acceleration corresponding to the movement of the controller 5 in addition to the gravitational acceleration. Therefore, the movement direction of the controller 5 can be known by removing the gravitational acceleration component from the detected acceleration by a predetermined process. Even if it is assumed that the controller 5 is in a dynamic state, the direction of gravity is obtained by removing the acceleration component corresponding to the movement of the acceleration sensor from the detected acceleration by a predetermined process. It is possible to know the inclination of the controller 5 with respect to. In another embodiment, the acceleration sensor 37 is a built-in process for performing a predetermined process on the acceleration signal before outputting the acceleration signal detected by the built-in acceleration detection means to the microcomputer 42. An apparatus or other type of dedicated processing apparatus may be provided. A built-in or dedicated processing device converts the acceleration signal into a tilt angle (or other preferred parameter) if, for example, the acceleration sensor 37 is used to detect static acceleration (eg, gravitational acceleration). It may be a thing.

通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。また、マイコン42はコネクタ33に接続されている。ジャイロセンサユニット7から送信されてくるデータは、コネクタ33を介してマイコン42に入力される。以下、ジャイロセンサユニット7の構成について説明する。   The communication unit 36 includes a microcomputer 42, a memory 43, a wireless module 44, and an antenna 45. The microcomputer 42 controls the wireless module 44 that wirelessly transmits data acquired by the microcomputer 42 to the game apparatus 3 while using the memory 43 as a storage area when performing processing. The microcomputer 42 is connected to the connector 33. Data transmitted from the gyro sensor unit 7 is input to the microcomputer 42 via the connector 33. Hereinafter, the configuration of the gyro sensor unit 7 will be described.

ジャイロセンサユニット7は、プラグ53、マイコン54、2軸ジャイロセンサ55、および1軸ジャイロセンサ56を備えている。上述のように、ジャイロセンサユニット7は、3軸(本実施形態では、XYZ軸)周りの角速度を検出し、検出した角速度を示すデータ(角速度データ)をコントローラ5へ送信する。   The gyro sensor unit 7 includes a plug 53, a microcomputer 54, a 2-axis gyro sensor 55, and a 1-axis gyro sensor 56. As described above, the gyro sensor unit 7 detects angular velocities around the three axes (in this embodiment, the XYZ axes), and transmits data (angular velocity data) indicating the detected angular velocities to the controller 5.

2軸ジャイロセンサ55は、X軸周りの角速度およびY軸周りの(単位時間あたりの)角速度を検出する。また、1軸ジャイロセンサ56は、Z軸周りの(単位時間あたりの)角速度を検出する。なお、本明細書では、コントローラ5の撮像方向(Z軸正方向)を基準として、XYZ軸周りの回転方向を、それぞれ、ロール方向、ピッチ方向、ヨー方向と呼ぶ。すなわち、2軸ジャイロセンサ55は、ロール方向(X軸周りの回転方向)およびピッチ方向(Y軸周りの回転方向)の角速度を検出し、1軸ジャイロセンサ56は、ヨー方向(Z軸周りの回転方向)の角速度を検出する。   The biaxial gyro sensor 55 detects an angular velocity around the X axis and an angular velocity (per unit time) around the Y axis. The single axis gyro sensor 56 detects an angular velocity (per unit time) around the Z axis. In this specification, the rotation directions around the XYZ axes are referred to as a roll direction, a pitch direction, and a yaw direction, respectively, with reference to the imaging direction (Z axis positive direction) of the controller 5. That is, the biaxial gyro sensor 55 detects angular velocities in the roll direction (rotation direction around the X axis) and the pitch direction (rotation direction around the Y axis), and the single axis gyro sensor 56 detects the yaw direction (around the Z axis). Detect the angular velocity in the rotation direction.

なお、本実施形態では、3軸回りの角速度を検出するために、2軸ジャイロセンサ55と1軸ジャイロセンサ56とを用いる構成としたが、他の実施形態においては、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。   In this embodiment, the 2-axis gyro sensor 55 and the 1-axis gyro sensor 56 are used to detect the angular velocity around the three axes. However, in other embodiments, the angular velocity around the three axes is Any number and combination of gyro sensors may be used as long as they can be detected.

また、本実施形態では、後述する姿勢算出処理における計算を容易にする目的で、各ジャイロセンサ55および56が角速度を検出する3つの軸は、加速度センサ37が加速度を検出する3つの軸(XYZ軸)と一致するように設定される。ただし、他の実施形態においては、各ジャイロセンサ56および57が角速度を検出する3つの軸と、加速度センサ37が加速度を検出する3つの軸とは一致しなくてもよい。   Further, in the present embodiment, for the purpose of facilitating the calculation in the posture calculation process described later, the three axes where the gyro sensors 55 and 56 detect the angular velocity are the three axes (XYZ) where the acceleration sensor 37 detects the acceleration. Axis). However, in other embodiments, the three axes for detecting the angular velocities by the gyro sensors 56 and 57 and the three axes for detecting the acceleration by the acceleration sensor 37 may not coincide with each other.

各ジャイロセンサ56および57で検出された角速度を示すデータは、マイコン54に出力される。したがって、マイコン54には、XYZ軸の3軸回りの角度速度を示すデータが入力されることになる。マイコン54は、上記3軸回りの角速度を示すデータを角速度データとしてプラグ53を介してコントローラ5へ送信する。なお、マイコン54からコントローラ5への送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。   Data indicating the angular velocity detected by each of the gyro sensors 56 and 57 is output to the microcomputer 54. Accordingly, the microcomputer 54 receives data indicating the angular velocity around the three axes of the XYZ axes. The microcomputer 54 transmits data indicating the angular velocities around the three axes as angular velocity data to the controller 5 via the plug 53. Although transmission from the microcomputer 54 to the controller 5 is sequentially performed every predetermined cycle, since the game processing is generally performed in units of 1/60 seconds (one frame time), this time Transmission is preferably performed in the following cycle.

コントローラ5の説明に戻り、操作部32、撮像情報演算部35、および加速度センサ37からマイコン42へ出力されたデータ、ならびに、ジャイロセンサユニット7からマイコン42へ送信されてきたデータは、一時的にメモリ43に格納される。これらのデータは、上記操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3の無線コントローラモジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側の無線コントローラモジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部36から無線コントローラモジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で各操作データをゲーム装置3の無線コントローラモジュール19へ出力する。   Returning to the description of the controller 5, the data output from the operation unit 32, the imaging information calculation unit 35, and the acceleration sensor 37 to the microcomputer 42 and the data transmitted from the gyro sensor unit 7 to the microcomputer 42 are temporarily stored. Stored in the memory 43. These data are transmitted to the game apparatus 3 as the operation data. That is, the microcomputer 42 outputs the operation data stored in the memory 43 to the wireless module 44 when the transmission timing to the wireless controller module 19 of the game apparatus 3 arrives. The wireless module 44 modulates a carrier wave of a predetermined frequency with operation data using, for example, Bluetooth (registered trademark) technology, and radiates a weak radio signal from the antenna 45. That is, the operation data is modulated by the wireless module 44 into a weak radio signal and transmitted from the controller 5. The weak radio signal is received by the wireless controller module 19 on the game apparatus 3 side. By demodulating and decoding the received weak radio signal, the game apparatus 3 can acquire operation data. And CPU10 of the game device 3 performs a game process based on the acquired operation data and a game program. Note that the wireless transmission from the communication unit 36 to the wireless controller module 19 is sequentially performed at predetermined intervals, but the game processing is generally performed in units of 1/60 seconds (one frame time). Therefore, it is preferable to perform transmission at a period equal to or shorter than this time. The communication unit 36 of the controller 5 outputs each operation data to the wireless controller module 19 of the game apparatus 3 at a rate of once every 1/200 seconds, for example.

上記コントローラ5を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ5を任意の傾斜角度に傾ける操作を行うことができる。その他、上記コントローラ5によれば、プレイヤは、コントローラ5によって画面上の任意の位置を指示する操作、および、コントローラ5自体を動かす操作を行うこともできる。   By using the controller 5, the player can perform an operation of tilting the controller 5 to an arbitrary tilt angle in addition to the conventional general game operation of pressing each operation button. In addition, according to the controller 5, the player can also perform an operation of instructing an arbitrary position on the screen by the controller 5 and an operation of moving the controller 5 itself.

次に、本実施形態で想定するゲームの概要について説明する。図8は、本実施形態で想定するゲームの画面の一例である。本実施形態で想定するゲームはゴルフゲームである。図8において、3次元仮想空間内に構築されたゴルフコースがゲーム画面として表示されており、ゲーム画面には、ゴルフクラブ102を持ったプレイヤオブジェクト101、ゴルフボールオブジェクト103(以下、単にボールと呼ぶ)、パワーゲージ104等が表示されている。また、パワーゲージ104の中には、スイングバー106が表示されている。   Next, an outline of the game assumed in this embodiment will be described. FIG. 8 is an example of a game screen assumed in the present embodiment. The game assumed in this embodiment is a golf game. In FIG. 8, a golf course constructed in a three-dimensional virtual space is displayed as a game screen, and a player object 101 having a golf club 102 and a golf ball object 103 (hereinafter simply referred to as a ball) are displayed on the game screen. ), The power gauge 104 and the like are displayed. A swing bar 106 is displayed in the power gauge 104.

次に、本ゲームにおけるプレイヤの操作方法について説明する。本ゲームは、上記入力装置8をゴルフクラブに見立てて操作する。例えば、プレイヤは、図9に示すように、入力装置8の前面(光入射面35aがある面)を下方向に向けて両手で把持する。そして、プレイヤは、ゴルフのスイングを模した動作を行う。このスイング動作に連動して、仮想空間内のプレイヤオブジェクト101もスイング動作を行い、これに伴ってゴルフクラブ102も移動する。つまり、プレイヤの腕を振る動作が、プレイヤオブジェクト101のスイング動作に反映されることになる。   Next, a player operation method in this game will be described. In this game, the input device 8 is operated as a golf club. For example, as shown in FIG. 9, the player holds the input device 8 with both hands with the front surface (the surface on which the light incident surface 35a is located) facing downward. Then, the player performs an action simulating a golf swing. In conjunction with this swing motion, the player object 101 in the virtual space also performs a swing motion, and the golf club 102 moves accordingly. That is, the motion of swinging the player's arm is reflected in the swing motion of the player object 101.

上記の操作についてより具体的に説明すると、まず、ボールを打つ前(スイングを開始する前)のプレイヤオブジェクトの初期状態としては、図8のように、ボール103から少し離れた場所に位置している。この状態のときに、プレイヤが上記のようにスイング動作を行うことで、「素振り」ができる。そして、ボールを打つときは、プレイヤはAボタン32dを押す。すると、図10に示すように、プレイヤオブジェクト101が前進してボール103に近づく。そして、Aボタン32dを押したまま、プレイヤが上記スイング動作を行うことで、ゴルフクラブ102をボール103に当てて、ボール103を飛ばす、つまり、ショットを行うことができる。このように、本ゲームでは、プレイヤが入力装置8を把持し、Aボタン32dを押さずにゴルフのスイング動作を行うことで「素振り」を行い、Aボタン32dを押しながらスイング動作を行うことでボール103を打って飛ばすことで、実際のゴルフに近いプレイ感覚のゴルフゲームを楽しむことができる。   The above operation will be described in more detail. First, as an initial state of the player object before hitting the ball (before starting the swing), as shown in FIG. Yes. In this state, the player can swing as described above by performing the swing motion as described above. When hitting the ball, the player presses the A button 32d. Then, as shown in FIG. 10, the player object 101 moves forward and approaches the ball 103. When the player performs the swing motion while pressing the A button 32d, the golf club 102 can be applied to the ball 103 to fly the ball 103, that is, a shot can be performed. As described above, in this game, the player holds the input device 8 and performs “swing” by performing a golf swing motion without pressing the A button 32d, and by performing a swing motion while pressing the A button 32d. By hitting and flying the ball 103, it is possible to enjoy a golf game that feels like playing golf.

また、本ゲームでは、Aボタン32dを押していない状態で、Bボタン32iを押すことで「構え直し」という操作を行うことができる。当該「構え直し」は、現実世界におけるプレイヤの正面方向を定義するための操作である(ゴルフでいう、「アドレス」の姿勢をとることに近い概念となる)。これは、ジャイロセンサでは姿勢の「変化」しか分からないため、プレイヤにBボタン32iを押してもらうことで、正面方向を定めるものである。そして、この操作で定義された正面方向を基準として、本ゴルフゲームにかかる各種処理が実行されることになる。   Further, in this game, an operation “reposition” can be performed by pressing the B button 32i in a state where the A button 32d is not pressed. The “reading” is an operation for defining the front direction of the player in the real world (a concept close to taking an “address” posture in golf). This is because the gyro sensor only knows the “change” of the posture, so that the player presses the B button 32i to determine the front direction. And various processes concerning this golf game are performed on the basis of the front direction defined by this operation.

より具体的には、Bボタン32iを押したときの入力装置8の姿勢に基づき、実空間においてプレイヤの正面方向に伸びるような仮想的な平面を算出し、「基準平面」として設定するような処理を実行する。図11に、当該基準平面の概念を示す模式図を示す。図11(a)に示すように、基準平面は、実空間におけるプレイヤ自身の正面方向に伸びるような(仮想上の)平面である。同時に、図11(b)に示すように、プレイヤの位置の対応する仮想空間内の位置、すなわち、プレイヤオブジェクト101の正面方向に伸びるような平面に相当する。そして、当該基準平面と、スイング中の入力装置8の姿勢とを比較することで、スイング角度(プレイヤが入力装置8を振りかぶっている量)などのパラメータの算出が実行されたり、また、インパクトが発生したか否か(ゴルフクラブ102とボール103が当たったか否か)の判定等が実行される。より具体的には、スイング角度(後述の振りかぶり角度)について、基準平面の位置を0°として捉え、ボールを飛ばす側を正の値、振りかぶる側を負の値の角度として考える(本実施形態では、+180°〜−180°という範囲で考える)。そして、例えば、スイング角度が負の値から正の値に変化したときに、入力装置8が基準平面と接触、あるいは通過した(インパクトが発生した)という判定を行う。   More specifically, based on the attitude of the input device 8 when the B button 32i is pressed, a virtual plane extending in the front direction of the player in real space is calculated and set as the “reference plane”. Execute the process. FIG. 11 is a schematic diagram showing the concept of the reference plane. As shown in FIG. 11A, the reference plane is a (virtual) plane that extends in the front direction of the player himself / herself in real space. At the same time, as shown in FIG. 11 (b), this corresponds to a position in the virtual space corresponding to the position of the player, that is, a plane extending in the front direction of the player object 101. Then, by comparing the reference plane and the posture of the input device 8 during the swing, calculation of parameters such as a swing angle (amount that the player is swinging the input device 8) is executed, and the impact is reduced. Determination of whether or not it has occurred (whether or not the golf club 102 and the ball 103 have hit) is executed. More specifically, regarding the swing angle (a swing angle described later), the position of the reference plane is assumed to be 0 °, and the side on which the ball is thrown is considered as a positive value, and the side on which the ball is thrown is considered as a negative value (this embodiment) Then, the range of + 180 ° to −180 ° is considered). For example, when the swing angle changes from a negative value to a positive value, it is determined that the input device 8 has contacted or passed through the reference plane (impact has occurred).

しかし、一旦正面方向(基準平面)を決めたとしても、その後、プレイヤが入力装置8を振っているうちに、ジャイロセンサの計測誤差や計算誤差の蓄積によって、上記定義した正面方向と、その時々における入力装置8の姿勢との関係が不正確になり得る。また、プレイヤ自身が向きを変えることによって、上記正面方向と定義した方向が、プレイヤの目から見た正面方向ではなくなってしまうこともあり得る。その結果、入力装置8を振っているうちに、現実世界のプレイヤが今、仮想ゲーム空間においてどちらの方向を向いて立っているか分からない(仮想ゲーム空間における正面方向を向いているのかどうかわからない)という問題が発生する。結果的に、プレイヤは「正面」を向いてスイングしているつもりでも、ゲーム処理上は、正面を向いていない状態でスイングしているような扱いで処理され得る。そのために、定期的にBボタン32iを押すことで、正面方向(基準平面)を再設定する必要がある。また、例えば、入力装置8を一旦振りかぶった後、振り下ろさずにそのままの状態を維持したまま、ある程度時間が経過したような場合も、上記計算誤差の蓄積による影響が発生する可能性がある。そのため、上記Bボタン32iを押したときの入力装置8の姿勢(アドレス時の姿勢)と、現在の入力装置8の姿勢との差異が大きい状態であり、入力装置8に動きが発生していない状態がある程度の時間経過したような場合も、上記正面方向(基準平面)を再設定することが好ましい。   However, even if the front direction (reference plane) is once determined, the front direction defined above and sometimes from time to time as the measurement error and calculation error of the gyro sensor are accumulated while the player is waving the input device 8. The relationship with the attitude of the input device 8 at the time may become inaccurate. Further, when the player himself changes the direction, the direction defined as the front direction may not be the front direction seen from the player's eyes. As a result, while waving the input device 8, it does not know which direction the real world player is currently standing in the virtual game space (does not know whether it is facing the front direction in the virtual game space). The problem occurs. As a result, even if the player intends to swing toward the “front”, it can be processed as if it is swinging while not facing the front in the game processing. Therefore, it is necessary to reset the front direction (reference plane) by periodically pressing the B button 32i. In addition, for example, even when a certain amount of time has passed while the input device 8 is once shaken and then maintained without being shaken down, there is a possibility that the influence of the accumulation of the calculation error may occur. Therefore, there is a large difference between the posture of the input device 8 when the B button 32i is pressed (the posture at the time of address) and the current posture of the input device 8, and no movement occurs in the input device 8. Even when the state has passed for some time, it is preferable to reset the front direction (reference plane).

ここで、本実施形態では、Bボタン32iが押されたときの入力装置8の持ち方の違いによって、正面方向を算出するための計算が不安定となることを回避するために、後述するような処理を行うことで、多角的な基準で正面方向(基準平面)を定めている。   Here, in this embodiment, in order to avoid that the calculation for calculating the front direction becomes unstable due to the difference in how the input device 8 is held when the B button 32i is pressed, as described later. By carrying out this process, the front direction (reference plane) is determined on a multifaceted basis.

更に、本実施形態では、基準平面の再設定の必要性を推定して、適当だと思われるタイミングで、図12に示すような、上記「構え直し」操作をプレイヤに促すメッセージ105(以下、構え直しガイドと呼ぶ)の表示を行うという処理も実行している。   Furthermore, in the present embodiment, the necessity of resetting the reference plane is estimated, and the message 105 (hereinafter, referred to as the following) prompting the player to perform the above-mentioned “reposition” operation as shown in FIG. A process of displaying a repositioning guide) is also executed.

次に、上記ゲーム画面に表示されているパワーゲージ104に関して説明する。パワーゲージ104は、棒状の形状で表示されており、ゴルフクラブ102の振りかぶり量(プレイヤにとっては、打球パワーの目安となる情報)と、手首の捻り度合い(Z軸回りの角度)という2種類の情報を表示するものである。まず、振りかぶり量については、ゲージ内のスイングバー106の位置で示される。このスイングバー106は、振りかぶり量に応じてゲージ内を上下する。例えば、図13に示すように、基本姿勢(アドレスの姿勢)の状態では、スイングバー106はパワーゲージ104の一番下に位置している。その後、ゴルフクラブ102がボール103にインパクトするまでの間は、スイングバー106は振りかぶり量に応じてリアルタイムにパワーゲージ104内を上下する。   Next, the power gauge 104 displayed on the game screen will be described. The power gauge 104 is displayed in a rod-like shape, and has two types, a swinging amount of the golf club 102 (information that is a guide for hitting power for the player) and a wrist twist degree (angle around the Z axis). Information is displayed. First, the swing amount is indicated by the position of the swing bar 106 in the gauge. The swing bar 106 moves up and down in the gauge according to the swinging amount. For example, as shown in FIG. 13, the swing bar 106 is positioned at the bottom of the power gauge 104 in the basic posture (address posture). Thereafter, until the golf club 102 impacts the ball 103, the swing bar 106 moves up and down in the power gauge 104 in real time according to the amount of swinging.

具体的には、ゴルフクラブ102(実世界では、入力装置8)を振り上げると、図14に示すように、スイングバー106は上方に移動する。振りかぶり量が大きいほど、より上に移動する。その後、クラブを振り下げると、スイングバー106は下方に移動する。そして、インパクト時には、図15に示すように、スイングバー106はパワーゲージ104の一番下に位置することになる。また、インパクトの時点で、打球のパワーが決定する。打球パワーが決定すると(すなわち、インパクトすると)、スイングバー106の表示は消えて、代わりに、図16に示すような、打球パワーを示すパワーバー107が、決定した打球パワーを示す長さまで下から伸びていく。そして、決定した打球パワーに対応する長さまで伸びると、図17に示すように、パワーバー107の伸びはそこで停止し、それ以上は伸びない。   Specifically, when the golf club 102 (in the real world, the input device 8) is swung up, the swing bar 106 moves upward as shown in FIG. The higher the swing amount, the higher the movement. Thereafter, when the club is swung down, the swing bar 106 moves downward. At the time of impact, the swing bar 106 is positioned at the bottom of the power gauge 104 as shown in FIG. At the time of impact, the power of the hit ball is determined. When the hitting power is determined (that is, when the impact is made), the display of the swing bar 106 disappears. Instead, the power bar 107 indicating the hitting power as shown in FIG. 16 reaches the length indicating the determined hitting power from the bottom. It grows. And if it extends to the length corresponding to the determined hitting ball power, as shown in FIG. 17, the extension of the power bar 107 stops there, and does not extend any more.

次に、手首の捻り角度(Z軸回りの回転角度)については、図18に示すように、パワーゲージ104の形状自体を湾曲させることで表現している。例えば、手首を右側(時計回り)に捻っていれば、図19(a)に示すように、パワーゲージ104の形状が右に湾曲した形状となる。また、手首を左方向(反時計回り)に捻っていれば、図19(b)示すように、左に湾曲した形状となす。また、捻り具合が大きい程、湾曲具合も大きくなり、捻り具合が小さければ、図19(c)にように、湾曲具合も小さくなる。なお、本実施形態では、捻り角度(Z軸周りの回転角度)の最大値は、図20に示すように、入力装置8のY軸を中心として、左右それぞれ35°(−35°〜+35°)までとして扱う(これ以上の角度の捻りは、35°の捻りとして扱う)。また、捻り角度については、本実施形態では、構え直し操作を行ったときの角度を0°として、右側への捻りを正の値、左側の捻りを負の値として算出されるものとする。   Next, as shown in FIG. 18, the wrist twist angle (rotation angle around the Z axis) is expressed by curving the shape of the power gauge 104. For example, if the wrist is twisted to the right (clockwise), the shape of the power gauge 104 is curved to the right as shown in FIG. Further, if the wrist is twisted to the left (counterclockwise), the shape is curved to the left as shown in FIG. Further, the greater the twist, the greater the curvature, and the smaller the twist, the smaller the curvature as shown in FIG. In the present embodiment, the maximum value of the twist angle (rotation angle around the Z axis) is 35 ° (−35 ° to + 35 °) on the left and right sides of the Y axis of the input device 8 as shown in FIG. ) (A twist of more than this angle is treated as a 35 ° twist). In this embodiment, the twist angle is calculated with the angle when the repositioning operation is performed as 0 °, the twist to the right as a positive value, and the left twist as a negative value.

このようにして、本実施形態のパワーゲージ104では、振りかぶり量と手首の捻り角度という異なる2つの要素を1つのパワーゲージでまとめて表示している。   In this way, in the power gauge 104 of the present embodiment, two different elements such as the amount of shaking and the twist angle of the wrist are collectively displayed with one power gauge.

次に、本実施形態にかかる処理のうち、特徴的な処理について説明する。本実施形態において特徴的な処理は、大きく以下の3つに大別される。
(1)ショット関連処理
(2)パワーゲージ関連処理
(3)かまえなおしガイド処理
Next, a characteristic process among the processes according to the present embodiment will be described. The characteristic processing in this embodiment is roughly divided into the following three types.
(1) Shot-related processing (2) Power gauge-related processing (3) Rework guide processing

まず、上記(1)ショット関連については、更に以下のような3つの処理に大別される。
(1−1)基準平面算出処理
(1−2)振り下ろし動作反映処理
(1−3)バックスピン処理
まず、(1−1)基準平面算出処理は、上述のように、Bボタン32iが押されたときに上記基準平面を算出・設定するための処理である。上記のように、コントローラの持ち方の違いによって、基準平面を算出するための計算が不安定となることを回避するために、多角的な視点で基準平面を算出する処理である。
First, the above (1) shot relation is further roughly divided into the following three processes.
(1-1) Reference plane calculation process (1-2) Downward motion reflection process (1-3) Backspin process First, (1-1) Reference plane calculation process is performed by pressing the B button 32i as described above. This is a process for calculating and setting the reference plane when it is performed. As described above, in order to avoid the calculation for calculating the reference plane becoming unstable due to the difference in the holding method of the controller, the reference plane is calculated from various viewpoints.

次に、(1−2)振り下ろし動作反映処理は、クラブを振りかぶったときの上記スイングバー106の高さをベースにショットパワーを算出する処理である。具体的には、一旦クラブを振り上げ、その後、ゆっくりと下ろした場合は、スイングバー106の降下にともない弱いショットパワーが算出される。一方、一旦クラブを振り上げ、ある程度勢いよく振り下ろした場合は、振りかぶったときのスイングバー106の高さに近いショットパワーが算出される。また、一旦クラブを振り上げた後、さらに強く振り下ろした場合は、それ以上のショットパワーが算出される。つまり、振り下ろし時の際の動き方をショットパワーに反映させるための処理である。スイング中の振り下ろしにかかる動作をショットに反映させるための処理である。具体的には、上記スイングバー106の移動に関して、一旦クラブを振り上げ、その後、ゆっくりと下ろしたときは、スイングバー106もその動きに追従して下がるが、一旦振り上げて、勢いよく振り下ろした場合、ほぼ振り上げたときのパワーでショットすることができる。つまり、振り下ろし時の際の動き方をショットパワーに反映させる処理である。   Next, (1-2) the swing-down action reflecting process is a process of calculating shot power based on the height of the swing bar 106 when the club is swung over. Specifically, when the club is raised up and then slowly lowered, a weak shot power is calculated as the swing bar 106 is lowered. On the other hand, if the club is once swung up and swung down to some extent, the shot power close to the height of the swing bar 106 when it is swung is calculated. If the club is once swung up and then swung down further, shot power higher than that is calculated. In other words, this is a process for reflecting the manner of movement when swinging down in the shot power. This is a process for reflecting, on a shot, an action for swinging down during a swing. Specifically, regarding the movement of the swing bar 106, when the club is swung up once and then slowly lowered, the swing bar 106 also follows the movement, but once swung up and swung down vigorously It is possible to make a shot with the power when it is almost swung up. That is, it is a process of reflecting the way of movement when swinging down on the shot power.

次に、(1−3)バックスピン処理については、本実施形態では、スイングしてインパクトしたときに、図21に示すように、最後まで振り切らずに、図22に示すようにボール103のある場所で止めるようなスイング(インパクトの位置で急ブレーキをかけて止めるようなスイング)を行うことで、打球にバックスピンをかけることができる。そして、このような、途中で急ブレーキをかけるようなスイング(制動力がかかったスイング)を検出し、そのときの動きをバックスピンに反映させる処理が、当該(1−3)バックスピン処理である。   Next, regarding (1-3) backspin processing, in this embodiment, when swinging and impacting, as shown in FIG. 21, the ball 103 is not swung to the end as shown in FIG. Backspin can be applied to the hit ball by performing a swing that stops at a place (a swing that stops by applying a sudden brake at the impact position). And this kind of (1-3) backspin process is a process of detecting such a swing that suddenly brakes in the middle (a swing with a braking force applied) and reflecting the movement at that time in the backspin. is there.

次に、上記(2)パワーゲージ関連処理では、上記のような、振りかぶりの量(スイング角度)と、手首の捻り(Z軸まわりの回転角度)とを算出して、それぞれをパワーゲージ104の表示に反映させるための処理が実行される。   Next, in the above (2) power gauge-related processing, the amount of swinging-up (swing angle) and the twist of the wrist (rotation angle around the Z axis) as described above are calculated. Processing for reflecting in the display is executed.

次に、(3)かまえなおしガイド処理とは、本実施形態では、上記のように、定期的にBボタン32iの押下による「構え直し」(基準平面の再設定)が必要となるが、この基準平面の再設定の必要性を推定して、適当だと思われるタイミングで上記構え直しガイド105の表示を行う処理である。   Next, (3) Re-feeding guide processing, in this embodiment, as described above, it is necessary to periodically “reposition” (resetting the reference plane) by pressing the B button 32i. This is a process of estimating the necessity of resetting the reference plane and displaying the repositioning guide 105 at a timing deemed appropriate.

次に、上記の各処理の概要について説明する。
[基準平面設定処理の概要]
まず、上記(1)ショット関連処理の(1−1)基準平面設定処理にかかる処理の概要を説明する。本処理は、上述したように、Bボタン32iが押されたときに基準平面(正面方向)を定義する処理である。そして、Bボタン32iが押されたときの、プレイヤの入力装置8の持ち方の違いによる計算結果の不安定さを回避するために、本実施形態では、以下のような処理を行っている。
Next, an overview of each of the above processes will be described.
[Overview of reference plane setting process]
First, the outline of the process related to the (1-1) reference plane setting process of the (1) shot related process will be described. As described above, this process is a process of defining a reference plane (front direction) when the B button 32i is pressed. In order to avoid instability of the calculation result due to the difference in how the player holds the input device 8 when the B button 32i is pressed, the following processing is performed in the present embodiment.

まず、現在の入力装置8の姿勢に基づいて、(入力装置8のローカル座標系における)Z軸方向と重力方向を含む平面を算出する。以下、この平面を、第1の候補面と呼ぶ。   First, based on the current posture of the input device 8, a plane including the Z-axis direction (in the local coordinate system of the input device 8) and the gravity direction is calculated. Hereinafter, this plane is referred to as a first candidate plane.

次に、Z軸正方向を重力方向に向けるような回転を、Y軸に対して加えることで、Y'軸を算出する。これは、仮想的に入力装置8を真下に向け直し、この状態のY軸方向を求めたものである。そして、当該Y'軸と重力方向とを含む平面を算出する。以下、この平面を第2の候補面と呼ぶ。   Next, the Y ′ axis is calculated by applying rotation to the Y axis so that the positive direction of the Z axis is directed to the direction of gravity. This is obtained by virtually turning the input device 8 directly below and obtaining the Y-axis direction in this state. Then, a plane including the Y ′ axis and the direction of gravity is calculated. Hereinafter, this plane is referred to as a second candidate plane.

なお、Y軸をそのまま使うのではなく、Y'軸を算出するのは、以下の理由による。一般的に、ゴルフスイングの構えを取った場合、入力装置8は真下を向いた姿勢よりも、斜めになった姿勢(Z軸を持ち上げるような姿勢)となることが多いと考えられる。このZ軸の持ち上がりの姿勢回転に引きずられて、Y軸方向がプレイヤの正面方向からずれているケースが多い。そのため、Y軸をそのまま使うよりも、入力装置8を一旦真下に向けたと仮定したY'軸を用いるほうが、ゴルフゲームの処理を行う際には、より良い算出結果が得られると考えられるためである。そのため、ゲーム処理の内容によっては、Y'軸を使わず、Y軸をそのまま用いてもよい。   The Y ′ axis is calculated instead of using the Y axis as it is for the following reason. In general, when a posture of a golf swing is taken, it is considered that the input device 8 often takes an inclined posture (a posture in which the Z-axis is lifted) rather than a posture that is directed downward. In many cases, the Y-axis direction is deviated from the front direction of the player by being dragged by the Z-axis lifting posture rotation. For this reason, it is considered that a better calculation result can be obtained when the golf game process is performed by using the Y ′ axis, which is assumed that the input device 8 is once directed downward, rather than using the Y axis as it is. is there. Therefore, depending on the content of the game process, the Y axis may be used as it is without using the Y ′ axis.

そして、上記2つの候補面と、その時点において算出済みである基準平面(つまり、直近に算出された基準平面)とに基づいて、新たな基準平面を算出する。当該新たな基準平面の算出については、例えば以下のような処理を用いる。まず、上記2つの候補面をブレンドすることで新たは基準平面を求めるという方法がある。このとき、現在の基準平面に近いほうに位置する候補面をより信頼するような重み付けを加えて、2つの平面をブレンドするような処理を行う。   Then, a new reference plane is calculated based on the two candidate planes and the reference plane that has been calculated at that time (that is, the reference plane calculated most recently). For example, the following processing is used for calculating the new reference plane. First, there is a method in which a new reference plane is obtained by blending the above two candidate planes. At this time, processing is performed such that the two planes are blended by applying a weight that makes the candidate plane located closer to the current reference plane more reliable.

例えば、入力装置8と基準平面、および、上記2つの候補面との関係が、図23のような関係とする。図23は、入力装置8のZ軸負方向から見た場合を想定した模式図である。この場合、第1の候補面と現在の基準平面との成す角をθA、第2の候補面と現在の基準平面との成す角をθBとすると、例えば、以下のような式で新たな基準平面を算出する。
重みa=1-cos(θB/2)
重みb=1-cos(θA/2)
比率a=重みa / (重みa+重みb)
比率b=重みb / (重みa+重みb)
新たな基準平面=比率a×第1の候補面+比率b×第2の候補面 ・・・式1
なお、上記の式において、重みaは、第2の候補面が現在の基準平面からずれているほど大きくなり、重みbは、第1の候補面が現在の基準平面からずれているほど大きくなる。
For example, the relationship between the input device 8, the reference plane, and the two candidate planes is as shown in FIG. FIG. 23 is a schematic diagram assuming a case where the input device 8 is viewed from the negative Z-axis direction. In this case, assuming that the angle between the first candidate plane and the current reference plane is θA, and the angle between the second candidate plane and the current reference plane is θB, for example, a new reference is obtained by the following formula: Calculate the plane.
Weight a = 1-cos (θB / 2)
Weight b = 1-cos (θA / 2)
Ratio a = weight a / (weight a + weight b)
Ratio b = weight b / (weight a + weight b)
New reference plane = ratio a × first candidate plane + ratio b × second candidate plane Equation 1
In the above formula, the weight a increases as the second candidate plane deviates from the current reference plane, and the weight b increases as the first candidate plane deviates from the current reference plane. .

また、上記比率aおよび比率bについては、以下のような式を用いて算出してもよい。
重みa=1-cos(θB/2)
重みb=1-cos(θA/2)
Further, the ratio a and the ratio b may be calculated using the following formula.
Weight a = 1-cos (θB / 2)
Weight b = 1-cos (θA / 2)

Figure 0005612826
Figure 0005612826

Figure 0005612826
Figure 0005612826

新たな基準平面=比率a×第1の候補面+比率b×第2の候補面   New reference plane = ratio a × first candidate plane + ratio b × second candidate plane

なお、上記式1については、現在の基準平面と各候補面との「近さ」に着目したものであるが、この他、各候補面と重力方向とのなす角度に着目した手法を用いても良い。すなわち、上記Z軸方向と重力方向のなす角と、上記Y軸方向(あるいはY'軸方向)と重力方向のなす角とをそれぞれ算出する。そして、算出した角度が大きいほど、上記式1における加重平均の比率(上記比率aおよび比率b)を高めるようにしてもよい。   Note that the above formula 1 focuses on the “closeness” between the current reference plane and each candidate surface, but in addition, using a method that focuses on the angle between each candidate surface and the direction of gravity. Also good. That is, the angle formed between the Z-axis direction and the gravity direction, and the angle formed between the Y-axis direction (or Y′-axis direction) and the gravity direction are calculated. Then, as the calculated angle is larger, the weighted average ratio (the ratio a and the ratio b) in Equation 1 may be increased.

また、別の算出方法として、現在の基準平面により近い方の候補面だけを選び、当該候補面と現在の基準平面とをブレンドすることで新たな基準平面を算出するようにしてもよい。候補面と基準平面との関係が上記図23のような関係であるとすると、例えば、以下のような式で算出する。
新たな基準平面=0.9×現在の基準平面+0.1×選択した候補面・・・式2
なお、上記式2では、加重平均の比率を固定(0.9と0.1)している。この式の場合、現在の基準平面の重み付けが高い、つまり、現在の基準平面の信頼度を高くした式となっている。
As another calculation method, only a candidate plane closer to the current reference plane may be selected, and a new reference plane may be calculated by blending the candidate plane and the current reference plane. Assuming that the relationship between the candidate plane and the reference plane is as shown in FIG. 23, for example, the following calculation is performed.
New reference plane = 0.9 × current reference plane + 0.1 × selected candidate plane Equation 2
In Equation 2, the weighted average ratio is fixed (0.9 and 0.1). In the case of this equation, the current reference plane is highly weighted, that is, the reliability of the current reference plane is increased.

また、上記式2で固定的に設定している加重平均の比率については、固定的にすることに限らない。例えば、上記「現在の基準平面により近い方の候補面」を算出するための用いた軸(Z軸あるいはY'軸)と重力方向との成す角度が大きいほど、上記式3における加重平均の比率を高めるようにしてもよい。   Further, the weighted average ratio that is fixedly set in Expression 2 is not limited to being fixed. For example, as the angle between the axis (Z axis or Y ′ axis) used to calculate the “candidate surface closer to the current reference plane” and the direction of gravity is larger, the ratio of the weighted average in Equation 3 above You may make it raise.

また、上記「現在の基準平面により近い方の候補面」の代わりに、上記Z軸と重力方向との成す角と、Y'軸と重力方向との成す角とをそれぞれ算出し、成す角が大きいほうの平面を選択するようにしてもよい。つまり、入力装置8が、ゴルフスイングの構えのように、下に下がった状態であればY'軸を用いて算出された候補面をより信頼し、野球のバッターの構えのように、入力装置8が起き上がっているような状態であれば、Z軸を用いて算出された候補面をより信頼して新たな基準平面を算出するようにしてもよい。   Also, instead of the “candidate surface closer to the current reference plane”, the angle formed by the Z-axis and the gravitational direction and the angle formed by the Y′-axis and the gravitational direction are respectively calculated. The larger plane may be selected. In other words, if the input device 8 is in a state of being lowered, such as a golf swing posture, the input device 8 is more reliable for the candidate surface calculated using the Y ′ axis, and the input device 8 is similar to a baseball batter posture. If 8 is raised, a new reference plane may be calculated with more confidence in the candidate plane calculated using the Z axis.

なお、上記のブレンド方法はあくまで一例であり、これらに限らず、2つの候補平面および現在の基準平面を適切にブレンドできれば、どのような処理方法を用いても良い。   The blending method described above is merely an example, and the present invention is not limited thereto, and any processing method may be used as long as the two candidate planes and the current reference plane can be appropriately blended.

以上のような算出方法を用いることで、基準平面について、複数の方法で算出した候補面が矛盾する場合は信頼度を考慮しつつゆるやかに補正を行い、一致する場合は大胆に大きく補正するという結果を得ることができる。このように、「重力方向」や「現在の基準平面」との関係に注目することで、プレイヤの入力装置8の持ち方の違いによる計算結果の不安定さ、すなわち、ちょっとした持ち方のぶれでプレイヤの意図しない方向に正面方向(基準平面)が設定される、ということを回避している。
その結果、プレイヤの入力装置8の持ち方に応じて基準平面の位置を補正するような処理が行われていることになる。
By using the calculation method as described above, if the candidate planes calculated by a plurality of methods are inconsistent, the reference plane is corrected gently considering the reliability, and if they match, the correction is made boldly and greatly. The result can be obtained. In this way, by paying attention to the relationship with the “gravity direction” and the “current reference plane”, the calculation result is unstable due to the difference in how the player holds the input device 8, that is, with slight movement of the holding method. It is avoided that the front direction (reference plane) is set in a direction not intended by the player.
As a result, processing for correcting the position of the reference plane according to how the player holds the input device 8 is performed.

[振り下ろし動作反映処理の概要]
次に、上記(1−2)の振り下ろし動作反映処理の処理概要を説明する。本処理は、振り下ろし時の動きを打球パワーに反映させるための処理であり、例えば、プレイヤが大きく振りかぶり、強く振り下ろせば打球パワーが大きく算出され、弱く、あるいはゆっくりと振り下ろせば、それに連れて打球パワーも低下させて算出するような処理である。具体的には、プレイヤがコントローラ振りかぶることで、スイングバー106がパワーゲージ104の一番上(打球パワーの目安として、100%の打球パワーが期待できるような状態)まで上がった場合を想定する。この状態から、プレイヤが素早く振り下ろすようにスイングを行えば、ほぼ100%のパワーを打球パワーに反映する。一方、スイングバー106がパワーゲージ104の一番上まで上がっている状態から、プレイヤが思い直して(例えば、これでは強すぎる、と考えた場合等)、例えばパワーゲージ104の75%くらいの位置(パワーゲージ104の一番下から3/4程度の距離の位置)まで、ゆっくりと入力装置8(ゴルフクラブ102)を下げて(この動きに連動して、スイングバー106も下に下がる)、その位置からスイングした場合は、上述したような100%のパワーではなく、思い直して下ろした後の75%付近のパワーを打球パワーに反映する。このような、振り下ろし動作にかかる内容を打球パワーに反映させるための処理である。
[Overview of swing-down action reflection processing]
Next, an outline of the above-described (1-2) swing-down action reflection process will be described. This process is a process for reflecting the movement at the time of swinging down to the hitting ball power. For example, if the player swings large and swings down strongly, the hitting ball power is calculated to be large. In this process, the hitting power is also reduced. Specifically, it is assumed that the swing bar 106 is raised to the top of the power gauge 104 (a state in which 100% hitting power can be expected as a guide to hitting power) as a result of the player hitting the controller. . From this state, if the player swings to swing down quickly, almost 100% of the power is reflected in the hit ball power. On the other hand, from the state where the swing bar 106 is raised to the top of the power gauge 104, the player thinks again (for example, when this is considered too strong), for example, about 75% of the position of the power gauge 104 ( Slowly lower the input device 8 (golf club 102) to the position at a distance of about 3/4 from the bottom of the power gauge 104 (in conjunction with this movement, the swing bar 106 is also lowered), When swinging from the position, not the 100% power as described above, but the 75% power after reconsidering it is reflected in the hitting power. This is a process for reflecting the content of the swing-down operation on the hitting ball power.

上記のような処理内容を実現するために、本実施形態では、以下のような処理を実行している。まず、スイングバー106に対応する振りかぶり量Hが算出される。振りかぶり量Hの算出については、後述の「パワーゲージ関連処理」についての説明等において説明するが、プレイヤが入力装置8を振りかぶっている量(スイングの角度)が振りかぶり量(つまり、パワーゲージ104内におけるスイングバー106の位置)として算出される。更に、本処理では、この振りかぶり量(スイングバー106)に追従するような追従量T(Tは0.0〜1.0)という値を算出する。当該追従量Tは、以下のような式で算出される。
H<Tのときは
T=T+追従係数Kt×(H−T) ・・・式3
H≧Tのときは、
T=H
上記の式について説明すると、H<Tのとき、というのは、振り下げ動作を行っているときを示し、H≧Tのとき、というのは、主に振り上げ動作を行っているときを示している。そして、振り上げ動作が行われているときは、追従量Tは振りかぶり量Hと同じ値にしておき、振り下げ動作中のみ追従するような値が算出されるようにしている。また、追従係数Ktは、強いスイングのとき(加速度が大きいとき)は追従性を低くし、弱いスイングのとき(加速度が小さいとき)は、追従性を高くするための係数である。当該追従係数Ktは、スイング中の振りの強さを加速度の大きさで捉え、変化させている。具体的には、まず、加速度センサ37から得られる加速度から、重力成分(1.0G)を除去し、更にその絶対値をとったものを「加速度の大きさ」とする。本実施形態では、この絶対値は、0.0G〜1.2Gの範囲内の値になるものとする。そして、この加速度の大きさである0.0G〜1.2Gの値を、0.2〜0.01の範囲内の値に変換して(割り当てて)追従係数Ktとする(つまり、Kt=0.2〜0.01)。
In order to realize the processing contents as described above, the following processing is executed in the present embodiment. First, the swing-up amount H corresponding to the swing bar 106 is calculated. The calculation of the swing-up amount H will be described in the description of “power gauge related processing” described later. Is calculated as the position of the swing bar 106 in FIG. Further, in this process, a value of a follow-up amount T (T is 0.0 to 1.0) that follows this swing-up amount (swing bar 106) is calculated. The follow-up amount T is calculated by the following equation.
When H <T, T = T + follow-up coefficient Kt × (HT) Equation 3
When H ≧ T,
T = H
The above formula will be explained. When H <T, it means that the swing-down operation is performed, and when H ≧ T, it means that the swing-up operation is mainly performed. Yes. When the swing-up operation is performed, the follow-up amount T is set to the same value as the swing-up amount H, and a value that follows only during the swing-down operation is calculated. The follow-up coefficient Kt is a coefficient for lowering the followability when the swing is strong (when acceleration is large) and increasing the followability when the swing is weak (when acceleration is small). The follow-up coefficient Kt is changed by grasping the strength of the swing during the swing by the magnitude of the acceleration. Specifically, first, the gravitational component (1.0 G) is removed from the acceleration obtained from the acceleration sensor 37, and the absolute value thereof is taken as the “magnitude of acceleration”. In the present embodiment, this absolute value is a value within the range of 0.0G to 1.2G. Then, the value of 0.0G to 1.2G, which is the magnitude of this acceleration, is converted (assigned) into a value within the range of 0.2 to 0.01 as the tracking coefficient Kt (that is, Kt = 0.2-0.01).

このような算出を行うことで、プレイヤが入力装置8を振りがぶった後、速く振り下ろしたとき、あるいは、強く振り下ろしたときほど、追従量Tは、過去の振りかぶり量の内の最大値(以下、最大振りかぶり量と呼ぶ)に近い値が維持されうる。また、ゆっくり振り下ろす、あるいは弱く振り下ろすと、追従量Tは振りかぶり量Hと共に下がっていくことになる。   By performing such a calculation, the follow-up amount T becomes the maximum value of the past swing-up amounts as the player swings down the input device 8 and then swings down faster or more strongly. A value close to (hereinafter referred to as the maximum swinging amount) can be maintained. Further, if the arm is slowly swung down or slightly swung down, the follow-up amount T is lowered together with the swing-up amount H.

なお、上記式3において、(H−T)としているため、振りかぶり量Hと追従量Tの差が大きいときほど、Tの値をより大きく減少させる(追従させる)ことになる。   Since (HT) is used in Equation 3 above, the larger the difference between the swing-up amount H and the follow-up amount T, the more the value of T is reduced (followed up).

また、上記のH≧Tのときは、追従量Tの値は振りかぶり量Hを下限とする。つまり、振り下げの動作中であっても、追従量Tの値は振りかぶり量Hの値を追い越して下がってしまわないようにしている。   Further, when the above H ≧ T, the follow-up amount T has a swing-up amount H as a lower limit. That is, even during the swing-down operation, the value of the follow-up amount T is not overtaken by the value of the swing-up amount H.

ここで、打球のパワーの決定に関して、従来のゴルフゲームでは最大振りかぶり量をスイングパワーとしていたが、本実施形態では、ゴルフクラブ102とボール103がインパクトしたときに最終的な打球のパワー(以下、打球パワーP)が決定される。このときに、上記最大振りかぶり量、あるいは、上記振りかぶり量Hの値をそのまま打球パワーPとして用いるのではなく、上記追従量Tの値を打球パワーPとして用いる。つまり、振りかぶり量Hを補正した値に相当する追従量Tを打球パワーPとして用いる。これにより、上述のような速く振り下ろしたときと、ゆっくり振り下ろしたときの打球パワーPの違いを実現することができる。しかし、本実施形態では、更に、打球パワーPの決定に際して、以下のような処理を行うことで最終的な打球パワーPを決定している。   Here, regarding the determination of the hit ball power, in the conventional golf game, the maximum swinging amount is the swing power. However, in this embodiment, when the golf club 102 and the ball 103 impact, the final hit ball power (hereinafter, referred to as the hit power) The hitting power P) is determined. At this time, the value of the follow-up amount T is used as the hit ball power P instead of using the maximum swing fog amount or the value of the swing fog amount H as the hit ball power P as it is. That is, the follow-up amount T corresponding to the value obtained by correcting the swing-up amount H is used as the hitting power P. Thereby, the difference in the hit ball power P between when swinging down quickly and when swinging down slowly can be realized. However, in this embodiment, when determining the hitting power P, the final hitting power P is determined by performing the following processing.

本実施形態では、上記追従量Tに加え、更に、「過剰な振り強さS」という要素を算出する(Sは0.0〜1.0)。これは、例えば「力を込めた強い振り下ろし方」と「力はあまり込めていない軽い振り下ろし方」等のような、スイングにかかる振り下ろしの「強さ」を評価し、打球パワーに反映しようとするものである。上記追従量Tの計算方法、特にスイング中の加速度が大きいときほど追従係数Ktを小さくする計算によって、強く振れば振るほど(加速度が大きいほど)、打球パワーPは大きくなる。しかし、その上限値は振りかぶり量Hの最大値に等しいので、逆に言うと、どんなに強く振ってもそれ以上の打球パワーを出すことはできない。そこで、強く振っても打球パワーP(追従量T)に影響しないような過剰なスイング中の加速度を「過剰な振り強さS」として評価し、改めて打球パワーPに上乗せすることを考える。本実施形態では、この「過剰な振り強さ」を一連のスイング動作を通じて評価する方法として、仮想的にスイング中の加速度を目減りさせて計算してみて打球パワーPがどう変化するかを観察する方法をとる。例えば、上記振りかぶり量Hの状態から振り下ろしたときの「振りおろしの強さ」を100%とした場合に、加速度が2割しか出ていなかったと仮定して(つまり、加速度を8割引いて)上記追従量Tを再計算する。このように加速度を小さく見積もって再計算すると、上記追従量T等の要素もあり、最終的に、例えば、60%〜80%の「振りおろしの強さ」が算出されることが予想される。このように加速度を8割引で計算したにも関わらず、元の「振りおろしの強さ」との差が小さい(再計算結果が80%程度の値)、つまり、あまり元の強さと変化がない場合は、もともとの加速度値が大きすぎると評価することができる。一方、元の「振りおろしの強さ」との差がより大きい(再計算結果が60%程度の値)であれば、加速度的には無駄がなかったと評価することができる。つまり、加速度の目減りに応じて打球パワーPが下がれば加速度的に無駄のないスイング、加速度を目減りさせても打球パワーPがあまり下がらなければ、もともとの加速度値が大きすぎる、即ち、加速度的に過剰なスイングと考える。そこで、この元の「振り下ろしの強さ」と加速度を割り引いて再計算した「振り下ろしの強さ」との算出結果の差を「過剰な振り強さS」として評価する。   In the present embodiment, in addition to the follow-up amount T, an element of “excessive swing strength S” is calculated (S is 0.0 to 1.0). This evaluates the “strength” of swinging down, such as “how to swing down with force” and “lightly swinging down with less force”, and reflects it in the hitting ball power. It is something to try. By the calculation method of the follow-up amount T, particularly by calculating the follow-up coefficient Kt to be smaller as the acceleration during the swing is larger, the hitting power P becomes larger as the player shakes more strongly (the acceleration is greater). However, since the upper limit value is equal to the maximum value of the swing-up amount H, in other words, no more hitting power can be produced no matter how strong the swing is. Therefore, it is considered that an excessive acceleration during swinging that does not affect the hitting ball power P (following amount T) even if it is shaken strongly is evaluated as “excessive swinging strength S” and added to the hitting ball power P again. In the present embodiment, as a method for evaluating this “excessive swing strength” through a series of swing motions, the calculation is performed by virtually reducing the acceleration during the swing, and observing how the hitting power P changes. Take the way. For example, assuming that the “strength of swinging down” when swinging down from the state of swinging amount H is 100%, it is assumed that only 20% of the acceleration is present (that is, the acceleration is discounted by 8). The follow-up amount T is recalculated. Thus, when the acceleration is estimated to be small and recalculated, there are factors such as the follow-up amount T, and it is expected that the “swinging strength” of 60% to 80% is finally calculated. . Although the acceleration is calculated with 8 discounts in this way, the difference from the original “strength of swinging” is small (the recalculation result is about 80%), that is, the original strength and change are not so much. If not, it can be evaluated that the original acceleration value is too large. On the other hand, if the difference from the original “strength of swinging” is larger (the recalculation result is a value of about 60%), it can be evaluated that there was no waste in terms of acceleration. In other words, if the hitting power P decreases according to the decrease in acceleration, the original acceleration value is too large if the hitting power P does not decrease too much even if the hitting power P decreases too much. Think of it as an excessive swing. Therefore, the difference between the calculation result of the original “swinging strength” and the “swinging strength” recalculated by discounting the acceleration is evaluated as “excessive swinging strength S”.

具体的には、以下のような処理を行っている。まず、スイング中の加速度が、実際の2割しか出ていなかったと想定して(加速度を8割差し引いて)、上記追従量Tの算出と同じ計算を行い、その結果を割引追従量T'とする(本実施形態では、T'は0.0〜1.0)。そして、上記追従量Tと割引追従量T'とを比較し、その差をみる。その結果、両者の差が小さい場合は、より力の込められたスイング(加速度的に過剰なスイング)が行われていたとして扱い、両者の差が大きい場合は、実際のスイングの強さは(ゲーム処理上において)適当な強さの振り(加速度的に無駄のないスイング)として扱う。   Specifically, the following processing is performed. First, assuming that the actual acceleration during the swing was only 20% (subtracting 80% of the acceleration), the same calculation as the calculation of the follow-up amount T is performed, and the result is expressed as a discount follow-up amount T ′. (In this embodiment, T ′ is 0.0 to 1.0). Then, the follow-up amount T and the discount follow-up amount T ′ are compared, and the difference is observed. As a result, if the difference between the two is small, it is treated as if a more powerful swing (excessive acceleration swing) was performed, and if the difference between the two is large, the actual swing strength is ( It is treated as a swing of appropriate strength (in a game process) (a swing that is not wasteful in terms of acceleration).

より具体的な算出方法について説明する。本実施形態では、まず、T'/Tを計算する。そして、その算出結果のうち0.6〜0.8の範囲内の値を上記過剰な振り強さS(0.0〜1.0)に割り当てる。そして、当該過剰な振り強さSと追従量Tとを用いて、以下の式で最終的な打球パワーPを算出する。
P=T+係数Ks×S ・・・式4
ここで、係数Ksは、Sの重み付けを示しており、本実施形態では0.25とする。つまり、過剰な振り強さSの25%を追従量Tに上乗せすることで、打球パワーPを決定している(なお、係数Ksの値は、ゲームバランス等を考慮して適宜決められる値である)。
A more specific calculation method will be described. In the present embodiment, first, T ′ / T is calculated. And the value within the range of 0.6-0.8 is allocated to the excessive swing strength S (0.0-1.0) among the calculation results. Then, by using the excessive swing strength S and the follow-up amount T, the final hit ball power P is calculated by the following equation.
P = T + coefficient Ks × S Expression 4
Here, the coefficient Ks indicates the weighting of S, and is 0.25 in the present embodiment. That is, the ball hitting power P is determined by adding 25% of the excessive swing strength S to the follow-up amount T (note that the value of the coefficient Ks is a value that is appropriately determined in consideration of game balance and the like). is there).

上記のように、追従量T、および、過剰な振り強さSという要素を加味して打球パワーPを算出する処理を行うことで、本実施形態では、振り下ろしのときの動作内容を打球パワーに反映させることが可能となっている。例えば、スイングバー106を100%の度合い(スイングバー106がパワーゲージ104の一番上まで上がった状態)まで振り上げた後、素早く振り下ろせば、ほぼ100%の打球パワーが得られるが、ゆっくり振り下ろせば、それに連れてより低下した打球パワーになるという処理を実現することができる。   As described above, by performing the process of calculating the hitting power P in consideration of the elements of the follow-up amount T and the excessive swing strength S, in this embodiment, the operation content at the time of swinging down is the hitting power. It is possible to reflect on. For example, if the swing bar 106 is swung up to a degree of 100% (the state where the swing bar 106 is raised to the top of the power gauge 104) and then swung down quickly, a hitting power of almost 100% can be obtained. If lowered, it is possible to realize a process of lowering the hitting ball power.

[バックスピン処理の概要]
次に、上記(1−3)のバックスピンに関する処理の概要について説明する。上記のように、スイングの動作について、最後まで振り切らずに、途中でゴルフクラブを止めるようなスイングを行うことで、打球にバックスピンをかけることができる。このような動きを実現するため、本実施形態では、ゴルフクラブのヘッド部分の「しなり」を想定して利用する。より具体的には、「スイングによって後方にしなり、スイングが止まるとしなりが戻り、場合によっては惰性でさらに前方にしなる」ような「しなり」のモデルを利用する。
[Outline of backspin processing]
Next, the outline of the processing related to backspin (1-3) will be described. As described above, backspin can be applied to the hit ball by performing a swing that stops the golf club halfway without swinging all the way to the end. In order to realize such a movement, in the present embodiment, the golf club head portion is used assuming “bending”. More specifically, a “bending” model such as “becomes backward by a swing, returns when the swing stops, and sometimes further forward by inertia” is used.

上記のようなモデルにおける、スイング中のクラブヘッドのしなりを考えると、普通にスイングした場合、ゴルフクラブを振りあげ、振り下ろし始めてクラブヘッドがボールに当たるまでは、クラブヘッド部分は後方にしなる。そして、上記のようにスイングを急に止めたとき、つまり、制動力がかかったとき、クラブヘッド部分は惰性で前方にしなると考えられる。そこで、本実施形態では、この前方へのしなりの最大値を拾い、バックスピン率に反映するという処理を実行している。つまり、スイング(クラブ)が止まった後、惰性でどこまで前方(ボールが飛ぶ方向)にしなるかを測り、そのしなり具合に応じてバックスピン率(バックスピンの強さ)を設定するという処理を行っている。   Considering the bending of the club head during the swing in the model as described above, when swinging normally, the club head portion is in the rear direction until the golf club swings up and starts to swing down until it hits the ball. When the swing is suddenly stopped as described above, that is, when a braking force is applied, it is considered that the club head portion is inertial and forward. Therefore, in the present embodiment, processing is performed in which the maximum value of the forward bending is picked up and reflected in the backspin rate. In other words, after the swing (club) stops, it measures how far forward (in the direction the ball flies) by inertia, and sets the backspin rate (backspin strength) according to the condition. Is going.

図24に、当該ヘッド部分のしなりの一例を模式的に示す。図24においては、角度θは上記の振りかぶり角度を示す。角度θh(以下、追従角度と呼ぶ)は、しなっているクラブのヘッド部分の角度を示す。そのため、しなり角φは、次の式で算出することができる(図24では、φ<0の状態である)。
φ=θh−θ ・・・式5
そして、当該しなり角φが前方(φ>0)になったときの変化を監視しておき、前方への変化のうちの最大値を拾い、バックスピン率に反映する。
FIG. 24 schematically shows an example of bending of the head portion. In FIG. 24, the angle θ represents the above-described swing angle. The angle θh (hereinafter referred to as the follow-up angle) indicates the angle of the head portion of the club that is bent. Therefore, the bending angle φ can be calculated by the following equation (in FIG. 24, φ <0).
φ = θh−θ Equation 5
Then, the change when the bending angle φ becomes forward (φ> 0) is monitored, and the maximum value of the forward change is picked up and reflected in the backspin rate.

上記のようなしなりを、「バネ」と「ダンパー」を用いてモデル化したものを図25に示す。図25では、クラブのヘッド部分が、「ばね」Kpと「ダンパー」Kdでクラブの本体部分に接続されているようなモデルを示している。本実施形態では、このようなモデルを用いて、クラブヘッド部分のしなりをシミュレートする。具体的には、まず、以下の式を用いて、ヘッド部分の加速度Aを算出する。
A=−Kp(θh−θ)−Kd(θhd−θd)・・・式6
ここで、変数θhdは、前フレームのθhと現在のフレームとのθhの差分を示す。また、変数θdは、前フレームにおけるθと現在のフレームとのθの差分を示す。また、上記式6の「−Kp(θh−θ)」におけるθhは、前フレームにおける追従角度θhであり、θは現在の振りかぶり角度θである。
FIG. 25 shows a model of the above bend using “spring” and “damper”. FIG. 25 shows a model in which the head portion of the club is connected to the main body portion of the club by “spring” Kp and “damper” Kd. In the present embodiment, such a model is used to simulate the bending of the club head portion. Specifically, first, the acceleration A of the head portion is calculated using the following equation.
A = −Kp (θh−θ) −Kd (θhd−θd) Equation 6
Here, the variable θhd indicates a difference between θh of the previous frame and the current frame. The variable θd indicates the difference between θ in the previous frame and the current frame. Further, θh in “−Kp (θh−θ)” of the above equation 6 is the follow-up angle θh in the previous frame, and θ is the current swing-up angle θ.

更に、変数Kp(ばね)およびKd(ダンパー)に関して、本実施形態では、振りかぶり角度θの絶対値に応じて変数KpおよびKdを更新している。つまり、しなり特性を振りかぶり角度θに応じて変化させている。これは、インパクト付近ではしなりやすく、遠いときはしなりにくくするためである。その結果、インパクト付近でクラブを止めたほうがバックスピンがかかりやすくなり、最後まで振り切ると、バックスピンがかかりにくくなるようになる。   Furthermore, regarding the variables Kp (spring) and Kd (damper), in this embodiment, the variables Kp and Kd are updated according to the absolute value of the swing-up angle θ. That is, the bending characteristic is changed according to the swing angle θ. This is to make it easier to bend near the impact and hard to bend when far away. As a result, the backspin is more likely to be applied when the club is stopped near the impact, and the backspin is less likely to be applied when the club is swung to the end.

そして、上記加速度Aを用いてクラブヘッド部分の速度を算出し、この速度に基づいて、追従角度、すなわち、ヘッド部分の角度(位置)θhを算出する。追従角度θhが算出できれば、上記式5を用いてしなり角φを算出できる。   Then, the speed of the club head portion is calculated using the acceleration A, and the tracking angle, that is, the angle (position) θh of the head portion is calculated based on this speed. If the follow-up angle θh can be calculated, the bending angle φ can be calculated using Equation 5 above.

その後、前方への最大のしなり角φを用いて、バックスピン率Kを更新するという処理を行っている。なお、本実施形態では、このとき、クラブの種類や打球のパワーに応じて、しなり角φをバックスピン率に反映させる割合を変化させる処理も行っている。   Thereafter, a process of updating the backspin rate K using the maximum forward bending angle φ is performed. In the present embodiment, at this time, processing for changing the ratio of reflecting the bending angle φ in the backspin rate is also performed according to the type of club and the power of the hit ball.

このような処理を行うことで、スイング中に、インパクト付近でクラブを止めればバックスピンをかけることができ、更に、クラブを止める前にスイングの勢いがあれば、(クラブヘッドが惰性でより前方にしなるため)より強いバックスピンをかけることができるという処理が可能となる。   By performing such processing, if the club is stopped near the impact during swing, backspin can be applied, and if there is momentum of swing before stopping the club (if the club head is inertia and more forward Therefore, it is possible to apply a stronger backspin.

[パワーゲージ関連処理の概要]
次に、上記(2)パワーゲージ関連処理の概要について説明する。本実施形態では、上記のように、手首の捻り(Z軸回りの回転)と上述したような振りかぶり量Hを算出し、振りかぶり量Hは、スイングバー106として表示すると同時に、捻り具合については、パワーゲージ104の形状自体を湾曲させることで、2つの異なる要素を1つのパワーゲージでまとめて表現している。
[Outline of processing related to power gauge]
Next, the outline of the above (2) power gauge related processing will be described. In the present embodiment, as described above, the wrist twist (rotation around the Z axis) and the above-described swing-up amount H are calculated. By curving the shape of the power gauge 104 itself, two different elements are collectively represented by one power gauge.

本実施形態では、捻り角度については、以下のようにして算出している。具体的には、まず、上述したように、構え直し操作時に、上記基準平面が算出される。このときに、当該基準平面に対する入力装置8のX軸の角度を算出して記憶する(以下、この角度を基準X角度と呼ぶ)。図26に、当該基準X角度の概念を示す模式図を示す。図26は、入力装置8が真下を向いている状況を想定して、Z軸の負方向から見た場合を示している。図26では、基準平面に対する入力装置8のX軸方向の角度は90°となっている。   In the present embodiment, the twist angle is calculated as follows. Specifically, first, as described above, the reference plane is calculated during the repositioning operation. At this time, the angle of the X axis of the input device 8 with respect to the reference plane is calculated and stored (hereinafter, this angle is referred to as a reference X angle). FIG. 26 is a schematic diagram showing the concept of the reference X angle. FIG. 26 shows a case where the input device 8 is viewed from the negative direction of the Z-axis, assuming a situation where the input device 8 is facing directly downward. In FIG. 26, the angle in the X-axis direction of the input device 8 with respect to the reference plane is 90 °.

次に、スイング中(基準平面設定後の毎フレームの処理)、その時々の姿勢から、上記基準平面の算出手法と同じ手法を用いて、仮想的な基準平面を算出する(以下、仮想基準面と呼ぶ)。そして、当該仮想基準面に対する、入力装置8のX軸方向の角度を算出する。例えば、入力装置8の状態が、Z軸は真下に向いたまま、少し右に傾いたような状態と仮定し、Z軸と重力方向を含む平面である仮想基準面と、当該仮想基準面に対するこのときのX軸方向の角度が図27に示すような状態であるとする(以下、この角度を現在X角度と呼ぶ)。このときの現在X角度は、例えば100°であるとする。そして、上記の基準X角度と、当該現在X角度との角度差を算出し、この角度差を捻り角度として扱う。上記の例では、100°−90°=10°が捻り角度として扱われることになる。そして、このようにして算出された捻り角度に基づいて、パワーゲージ104の形状をスイング動作中(ショットするまでの間)にリアルタイムに湾曲させて表示する。例えば、パワーゲージ104の湾曲度を−1.0〜1.0の範囲内の値(負の値が左に湾曲することを示し、正の値が右に湾曲することを示す)で定義しておき、図28に示すように、捻り角度の値をこの範囲内の値に線形のグラフとなるように割り当てることで、パワーゲージ104の湾曲度を算出する。そして、当該湾曲度に基づいてパワーゲージ104の形状を湾曲させる。   Next, during the swing (processing for each frame after setting the reference plane), the virtual reference plane is calculated from the posture at that time using the same method as the reference plane calculation method (hereinafter referred to as the virtual reference plane). Called). And the angle of the X-axis direction of the input device 8 with respect to the virtual reference plane is calculated. For example, it is assumed that the state of the input device 8 is a state in which the Z axis is tilted to the right while the Z axis is directed downward, and a virtual reference plane that is a plane including the Z axis and the direction of gravity, and the virtual reference plane It is assumed that the angle in the X-axis direction at this time is as shown in FIG. 27 (hereinafter, this angle is referred to as the current X angle). The current X angle at this time is assumed to be 100 °, for example. Then, an angle difference between the reference X angle and the current X angle is calculated, and this angle difference is treated as a twist angle. In the above example, 100 ° −90 ° = 10 ° is treated as the twist angle. Based on the twist angle thus calculated, the shape of the power gauge 104 is curved and displayed in real time during the swing operation (until the shot is made). For example, the degree of curvature of the power gauge 104 is defined by a value within a range of −1.0 to 1.0 (a negative value indicates that the curve is to the left, and a positive value indicates that the curve is to the right). As shown in FIG. 28, the curvature of the power gauge 104 is calculated by assigning the value of the twist angle to a value within this range so as to form a linear graph. Then, the shape of the power gauge 104 is bent based on the degree of bending.

なお、捻り角度に関しては、Z軸の角速度だけを用いて捻り角度を算出することも考えられるが、実際の振り動作はZ軸まわりの回転だけでなくX軸まわりの回転やY軸まわりの回転の組み合わせによって行われる。そのため、例え「Z軸の角速度の積算値」がゼロであっても、手首の捻りがないとは言い切れないことが考えられる。そのため、本実施形態では、上記のように、入力装置8の姿勢に基づく平面を利用して算出する。   Regarding the twist angle, it is possible to calculate the twist angle using only the angular velocity of the Z axis, but the actual swinging motion is not only the rotation about the Z axis but also the rotation about the X axis and the rotation about the Y axis. It is done by a combination of Therefore, even if “the integrated value of the angular velocity of the Z axis” is zero, it can be said that there is no wrist twist. Therefore, in the present embodiment, calculation is performed using a plane based on the attitude of the input device 8 as described above.

一方、振りかぶり量Hについては、基準姿勢を基準とした場合の、ゴルフクラブ102(入力装置8)を振りかぶっている角度、すなわち、入力装置8のZ軸がどのくらい地面から起き上がっているか、を計算する。そして、この振りかぶり角度を振りかぶり量Hに変換し、スイングバー106の位置に反映させる。これは、ゴルフスイングの場合、入力装置8のZ軸正方向が下を向いている状態が基本的な姿勢と考えられるため、この状態を基準としてZ軸の傾きを見ることで、振りかぶっている角度を把握することができる。   On the other hand, for the swing amount H, the angle at which the golf club 102 (input device 8) is swung with respect to the reference posture, that is, how much the Z axis of the input device 8 rises from the ground is calculated. . Then, the swing angle is converted into a swing amount H and reflected in the position of the swing bar 106. This is because, in the case of a golf swing, a state in which the positive direction of the Z-axis of the input device 8 faces downward is considered to be a basic posture. The angle can be grasped.

より具体的には、本実施形態では、以下のようにして振りかぶり量Hを算出する。まず、上記基準平面を基にして、図29に示すような、重力上方向をY方向、当該平面に対する垂直方向をX方向とする座標系{L}を設定する。以下、当該座標系を「{L}座標系」と呼ぶ。   More specifically, in the present embodiment, the swing-up amount H is calculated as follows. First, based on the reference plane, a coordinate system {L} is set, as shown in FIG. 29, in which the upward direction of gravity is the Y direction and the vertical direction to the plane is the X direction. Hereinafter, the coordinate system is referred to as “{L} coordinate system”.

次に、スイング中の入力装置8のローカル座標系におけるZ軸正方向を上記{L}座標系に変換したベクトルDを算出する。   Next, a vector D obtained by converting the positive Z-axis direction in the local coordinate system of the input device 8 during the swing into the {L} coordinate system is calculated.

そして、当該ベクトルDの3軸成分(Dx、Dy、Dz)に基づき、以下の式を基づいて、振りかぶり角度θを算出する。
θ=Atan(Dx,−Dy+K×Dz)・・・式7
なお、変数K>0であるとする。また、上記式においては、水平にスイングされる場合(野球のようなスイング)を考慮して、Dzの要素を加味している。すなわち、DxおよびDyが共にゼロに近づいたとき(入力装置8が水平に構えられているような状態)のときに、角度の算出が不安定となることを防いでいる。また、Dzがプラス側にあれば、実際よりも入力装置8を下に向けているのと同じ効果があり、マイナス側では、実際よりも入力装置8を上に向けるのと同じ効果が得られる。つまり、水平に振っていても(野球のようなスイングをしていても)、縦に振っている場合(ゴルフスイング)とある程度同じような効果を得ることができる。
Then, based on the three-axis components (Dx, Dy, Dz) of the vector D, the swing angle θ is calculated based on the following equation.
θ = Atan (Dx, −Dy + K × Dz) Equation 7
Note that variable K> 0. Further, in the above formula, the element of Dz is taken into consideration in consideration of a case where the swing is made horizontally (swing like a baseball). That is, the angle calculation is prevented from becoming unstable when both Dx and Dy are close to zero (a state where the input device 8 is held horizontally). Further, if Dz is on the plus side, the same effect as that when the input device 8 is directed downward is obtained, and on the minus side, the same effect as that when the input device 8 is directed upward is obtained. . In other words, even if the player swings horizontally (whether a baseball-like swing) or vertically swings (golf swing), the same effect can be obtained to some extent.

上記の式を用いた結果、構え直し操作が行われたときの姿勢(Bボタン32iが押されたときの姿勢)のときは、θ=0となる。また、前方(ゴルフボールを飛ばす方向)に入力装置8を振ると、θは正の値として算出される。また、入力装置8を振りかぶると、θは負の値として算出される。このように算出された振りかぶり角度θを振りかぶり量Hに変換する。例えば、振りかぶり角度θを−180°〜+180°の範囲とし、振りかぶり量Hは0.0〜1.0の範囲の値として、図30に示すような線形のグラフに基づいて振りかぶり角度θの絶対値を振りかぶり量Hに変換する。そして、当該振りかぶり量Hに応じてスイングバー106を上下させることで、振りかぶっている量を表示する。なお、本実施形態では、振りかぶり量Hが0.0のときは、スイングバー106はパワーゲージ104の一番下に来るものとし、振りかぶり量Hが1.0のときは、スイングバー106はパワーゲージ104の一番上に来るものとする。   As a result of using the above formula, θ = 0 when the posture is the posture when the repositioning operation is performed (the posture when the B button 32i is pressed). Further, when the input device 8 is swung forward (the direction in which the golf ball is to fly), θ is calculated as a positive value. Further, when the input device 8 is shaken, θ is calculated as a negative value. The swing angle θ thus calculated is converted into a swing amount H. For example, assuming that the swing-up angle θ is in the range of −180 ° to + 180 °, and the swing-up amount H is in the range of 0.0 to 1.0, the absolute value of the swing-up angle θ is based on a linear graph as shown in FIG. The value is converted into a shake amount H. Then, the swinging bar 106 is moved up and down in accordance with the swinging amount H to display the amount of swinging. In this embodiment, the swing bar 106 is located at the bottom of the power gauge 104 when the swing-up amount H is 0.0, and the swing bar 106 is powered when the swing-up amount H is 1.0. Assume that it comes to the top of the gauge 104.

このように、本実施形態では、上記のような捻り角度をパワーゲージ104の湾曲で示すと同時に、スイングバー106をパワーゲージ104内で上下させることで、例えば上記図18に示したような表示を行い、振りかぶり量(打球のパワーの目安)と手首の捻り具合(フェースの開き具合)という2つの要素をまとめて表示している。これにより、ショット時にゴルフボールに与える影響に関してプレイヤに直感的に把握させることが可能となる。   As described above, in the present embodiment, the twist angle as described above is indicated by the curvature of the power gauge 104, and at the same time, the swing bar 106 is moved up and down in the power gauge 104, for example, as shown in FIG. , And the two elements of the swinging amount (a measure of the hitting ball power) and the wrist twisting (face opening) are collectively displayed. This makes it possible for the player to intuitively understand the influence on the golf ball during a shot.

[構え直しガイド処理の概要]
次に、上記(3)構え直しガイドの表示処理の概要について説明する。上述のように、本実施形態では、上記図12で示したような、Bボタン32iの押下による「構え直し」操作を推奨する、構え直しガイド105を適切なタイミングで表示する。構え直しガイド105の表示タイミングについては、基本的には、Bボタン32iが押されたタイミングで内部的なカウンタ(以下、ガイド表示カウンタと呼ぶ)を用いてカウントアップを開始する。その後、毎フレーム、カウントアップされ、当該ガイド表示カウンタが所定値以上となれば、当該構え直しガイド105を表示するという処理を行っている。但し、本実施形態では、上記の「適切なタイミング」を決定するために、「構え直しの必要度」(以下、必要度Kr)と、「構え姿勢をとっている可能性」(以下、構え姿勢可能性Ks)を算出し、上記のカウントアップに反映する処理を行っている。更に、所定のタイミングでガイド表示カウンタのリセットも行うことで、「適切なタイミング」をより正確なものとしている。具体的には、以下のタイミングで上記ガイド表示カウンタをリセットしている。
(1)Bボタン32iが押されたとき。
(2)入力装置8の姿勢が、「構えなおし」のときに期待される姿勢(アドレスの姿勢)と大きく異なっているとき。例えば、入力装置8のZ軸正方向が水平より上を向いており、かつ、Y軸正方向が水平より下を向いているような場合(野球のバッターのような構え)。
(3)スイング中の状態の時。これは、角速度や加速度の絶対値が所定値以上か否かで判定する。具体的には、角速度については、その絶対値が30deg/secより大きいか否か、加速度については、その絶対値が0.2Gより大きいか否か。
[Overview of preparation guide processing]
Next, an outline of the display process of the (3) repositioning guide will be described. As described above, in this embodiment, the repositioning guide 105 that recommends the “repositioning” operation by pressing the B button 32i as shown in FIG. 12 is displayed at an appropriate timing. Regarding the display timing of the repositioning guide 105, basically, counting up is started using an internal counter (hereinafter referred to as a guide display counter) when the B button 32i is pressed. Thereafter, each frame is counted up, and when the guide display counter reaches a predetermined value or more, processing for displaying the repositioning guide 105 is performed. However, in the present embodiment, in order to determine the above “appropriate timing”, “the degree of necessity of repositioning” (hereinafter, necessary degree Kr) and “possibility of taking a posture” (hereinafter, “stance” Attitude possibility (Ks) is calculated, and processing for reflecting the above-described count-up is performed. Further, the “appropriate timing” is made more accurate by resetting the guide display counter at a predetermined timing. Specifically, the guide display counter is reset at the following timing.
(1) When the B button 32i is pressed.
(2) When the posture of the input device 8 is significantly different from the posture (address posture) expected at the time of “reposition”. For example, when the Z-axis positive direction of the input device 8 faces upward from the horizontal, and the Y-axis positive direction faces downward from the horizontal (holding like a baseball batter).
(3) When in a swinging state. This is determined by whether or not the absolute values of angular velocity and acceleration are greater than or equal to predetermined values. Specifically, for the angular velocity, whether the absolute value is greater than 30 deg / sec, and for the acceleration, whether the absolute value is greater than 0.2G.

次に、上記必要度Kr、および、構え姿勢可能性Ksの算出方法等について説明する。まず、上記必要度Krとは、構え直しが必要であると考えられる度合いのことである。また、構え姿勢可能性Ksとは、プレイヤが構えの状態をとっている可能性である。ここでいう「構えの状態」とは、入力装置8の前面をある程度下側に向けているような状態(アドレスに近い状態)を想定するものである。つまり、ゴルフクラブを振りかぶっているような状態は除外される。   Next, a method for calculating the degree of necessity Kr and the attitude / posture possibility Ks will be described. First, the degree of necessity Kr is a degree at which repositioning is considered necessary. Further, the holding posture possibility Ks is a possibility that the player is in a holding state. Here, the “ready state” assumes a state in which the front surface of the input device 8 is directed downward to some extent (a state close to an address). That is, a state where a golf club is being swung is excluded.

上記必要度Krの算出について、本実施形態では、以下のようにして算出している。まず、「今この瞬間にBボタンを押した」と仮定して仮の基準平面を作り、現在の基準平面との角度差の絶対値を算出する(当該2平面のなす角度とは、面法線と面法線のなす角度である)。そして、この角度差が0°であれば、構え直し不要と判定し、11°以上であれば、構え直しが必要と判定する。   In the present embodiment, the necessity degree Kr is calculated as follows. First, assuming that “the B button is pressed at this moment”, a temporary reference plane is created, and the absolute value of the angle difference from the current reference plane is calculated (the angle formed by the two planes is the surface method) The angle between the line and the surface normal). If this angle difference is 0 °, it is determined that repositioning is unnecessary, and if it is 11 ° or more, it is determined that repositioning is necessary.

ここで、必要度Krは0.0〜1.0の範囲の値をとるとし、0.0が構え直しの必要性がないことを示し、1.0が、構え直しの必要性が高いことを示す。すなわち、上記角度差が0°のときはKr=0.0、角度差が11°のときはKr=1.0とする。そして、0°〜11°の間のKrの値は、線形補間によって算出するものとする。   Here, the degree of necessity Kr takes a value in the range of 0.0 to 1.0, 0.0 indicates that there is no need for repositioning, and 1.0 indicates that the necessity for repositioning is high. Indicates. That is, Kr = 0.0 when the angle difference is 0 ° and Kr = 1.0 when the angle difference is 11 °. The value of Kr between 0 ° and 11 ° is calculated by linear interpolation.

次に、構え姿勢可能性Ksの算出については、角速度の安定状態Sw、加速度の安定状態Sa(つまり、激しい動きが発生していない状態)と、構え直し姿勢の正しさStという要素を用いて算出する。まず、角速度の安定状態Swについては、スイング中ではないと考えられるときの角速度、すなわち、角速度の絶対値が30deg/sec以下の場合に、当該角速度の絶対値を0.0〜1.0の値に換算してSwに割り当てる。加速度の安定状態Saについても同様に、スイング中の動きではないと考えられる加速度の絶対値0G〜0.2Gを、Sa0.0〜1.0の範囲に割り当てる。   Next, regarding the calculation of the posture attitude possibility Ks, the elements of the angular velocity stable state Sw, the acceleration stable state Sa (that is, a state where no intense movement has occurred), and the correctness of the posture to be repositioned St are used. calculate. First, regarding the stable state Sw of the angular velocity, when the angular velocity when it is considered that the swing is not being performed, that is, when the absolute value of the angular velocity is 30 deg / sec or less, the absolute value of the angular velocity is 0.0 to 1.0. Convert to a value and assign to Sw. Similarly, in the stable acceleration state Sa, an absolute value of acceleration 0G to 0.2G that is considered not to be a movement during a swing is assigned to a range of Sa 0.0 to 1.0.

次に、構え直し姿勢の正しさStという要素は、入力装置8を下に下ろしている度合いを示す要素である。これは、入力装置8のX軸がどの程度水平状態に近いかによって示される。図31に、構え直し姿勢の正しさStの概念を示す。図31(a)に示すように、入力装置8の前面を下方に下げている状態であれば、入力装置8のローカル座標系におけるX軸は、水平状態(図31(d)参照)となる。この状態を、理想的な構え直し姿勢とすれば、その時々において算出される入力装置8の姿勢のX軸が水平か否かを見ることで(図31(b)、(c)参照)、構え直し姿勢の正しさStを算出することが可能となる。より具体的には、X軸の重力方向成分の絶対値を算出し、0.0〜1.0の範囲の値で示すことで、構え直し姿勢の正しさStとする。   Next, the element St of the correct posture St is an element indicating the degree to which the input device 8 is lowered. This is indicated by how close the X axis of the input device 8 is to the horizontal state. FIG. 31 shows the concept of the correctness St of the repositioning posture. As shown in FIG. 31A, when the front surface of the input device 8 is lowered, the X axis in the local coordinate system of the input device 8 is in a horizontal state (see FIG. 31D). . If this state is an ideal repositioning posture, by checking whether the X-axis of the posture of the input device 8 calculated at that time is horizontal (see FIGS. 31B and 31C), It is possible to calculate the correctness St of the repositioning posture. More specifically, the absolute value of the gravity direction component of the X axis is calculated and indicated by a value in the range of 0.0 to 1.0, so that the correctness St of the repositioning posture is obtained.

そして、上記の要素を用いて、構え姿勢可能性Ksを以下の式で算出する。
Ks=Sw×Sa×St ・・・式8
Then, using the above-described elements, the posture attitude possibility Ks is calculated by the following equation.
Ks = Sw × Sa × St (8)

上記のようにして必要度Kr、および、構え姿勢可能性Ksが算出できれば、これに基づき、以下の式を用いてガイド表示カウンタCをカウントアップしていく。
C=C+Kr×Ks ・・・式9
そして、ガイド表示カウンタの値が30を越えれば、上記図12に示したような構え直しガイド105を表示する処理を実行する。これにより、「構え直し」が必要で効果的なタイミングを測って構え直しガイド105を表示することができ、プレイヤによる構え直し操作がより適切なタイミングで行われることが期待できる。
If the necessary degree Kr and the holding posture possibility Ks can be calculated as described above, the guide display counter C is counted up using the following formula based on this.
C = C + Kr × Ks Equation 9
If the value of the guide display counter exceeds 30, the process for displaying the repositioning guide 105 as shown in FIG. 12 is executed. As a result, it is possible to display the repositioning guide 105 by measuring the effective timing which requires “repositioning”, and it can be expected that the repositioning operation by the player is performed at a more appropriate timing.

次に、ゲーム装置本体3によって実行されるゲーム処理の詳細を説明する。まず、ゲーム処理の際に外部メインメモリ12に記憶されるデータについて説明する。図32は、ゲーム装置3の外部メインメモリ12のメモリマップを示す図である。図32において、外部メインメモリ12は、プログラム記憶領域121およびデータ記憶領域126を含む。プログラム記憶領域121およびデータ記憶領域126のデータは、光ディスク4に記憶され、ゲームプログラム実行時には外部メインメモリ12に転送されて記憶される。   Next, details of the game process executed by the game apparatus body 3 will be described. First, data stored in the external main memory 12 during game processing will be described. FIG. 32 is a diagram showing a memory map of the external main memory 12 of the game apparatus 3. In FIG. 32, the external main memory 12 includes a program storage area 121 and a data storage area 126. Data in the program storage area 121 and the data storage area 126 is stored in the optical disc 4 and transferred to the external main memory 12 and stored when the game program is executed.

プログラム記憶領域121は、CPU10によって実行されるゲームプログラムを記憶し、このゲームプログラムは、メイン処理プログラム122と、スイング関連処理プログラム123と、インパクト関連処理プログラム124などによって構成される。メイン処理プログラム122は、後述する図35のフローチャートの処理に対応するプログラムである。スイング関連処理プログラム123は、プレイヤが行うスイング動作に関する各種処理をCPU10に実行させるためのプログラムであり、インパクト関連処理プログラム124は、インパクトが発生したか否かを判定するための処理等をCPU10に実行させるためのプログラムである。また、ボール移動処理プログラム125は、打球を移動させるための処理をCPU10に実行させるためのプログラムである。   The program storage area 121 stores a game program executed by the CPU 10, and the game program includes a main processing program 122, a swing related processing program 123, an impact related processing program 124, and the like. The main processing program 122 is a program corresponding to the processing of the flowchart of FIG. The swing related processing program 123 is a program for causing the CPU 10 to execute various processes related to the swing motion performed by the player. The impact related processing program 124 performs processing for determining whether or not an impact has occurred in the CPU 10. This is a program to be executed. The ball movement processing program 125 is a program for causing the CPU 10 to execute processing for moving the hit ball.

データ記憶領域126には、操作データ127やゲーム処理用データ128などのデータが記憶されるとともに、ゲーム処理中に一時的に用いられる各種フラグや変数も記憶される。   The data storage area 126 stores data such as operation data 127 and game processing data 128, and also stores various flags and variables temporarily used during game processing.

操作データ127は、コントローラ5からゲーム装置3へ送信されてくる操作データである。上述したように、コントローラ5からゲーム装置3へ1/200秒に1回の割合で操作データが送信されるので、外部メインメモリ12に記憶される操作データ127はこの割合で更新される。本実施形態においては、外部メインメモリ12には、最新の(最後に取得された)操作データのみが記憶されればよい。   The operation data 127 is operation data transmitted from the controller 5 to the game apparatus 3. As described above, since the operation data is transmitted from the controller 5 to the game apparatus 3 at a rate of once every 1/200 seconds, the operation data 127 stored in the external main memory 12 is updated at this rate. In the present embodiment, only the latest (last acquired) operation data needs to be stored in the external main memory 12.

操作データ127には、図33に示すように、角速度データ131、加速度データ132、マーカ座標データ133、および操作ボタンデータ134が含まれる。角速度データ131は、ジャイロセンサユニット7のジャイロセンサ55および56によって検出された角速度を示すデータである。ここでは、角速度データ131は、図3に示すXYZの3軸回りのそれぞれの角速度を示す。また、加速度データ132は、加速度センサ37によって検出された加速度(加速度ベクトル)を示すデータである。ここでは、加速度データ132は、図3に示すXYZの3軸の方向に関する加速度を各成分とする3次元の加速度ベクトルを示す。また、本実施形態においては、コントローラ5が静止している状態で加速度センサ37が検出する加速度ベクトルの大きさを"1"とする。つまり、加速度センサ37によって検出される重力加速度の大きさは"1"である。   As shown in FIG. 33, the operation data 127 includes angular velocity data 131, acceleration data 132, marker coordinate data 133, and operation button data 134. The angular velocity data 131 is data indicating angular velocities detected by the gyro sensors 55 and 56 of the gyro sensor unit 7. Here, the angular velocity data 131 indicates respective angular velocities around the three axes of XYZ shown in FIG. The acceleration data 132 is data indicating the acceleration (acceleration vector) detected by the acceleration sensor 37. Here, the acceleration data 132 represents a three-dimensional acceleration vector having each component of acceleration in the directions of the three axes of XYZ shown in FIG. In this embodiment, the magnitude of the acceleration vector detected by the acceleration sensor 37 while the controller 5 is stationary is “1”. That is, the magnitude of gravitational acceleration detected by the acceleration sensor 37 is “1”.

マーカ座標データ133は、撮像情報演算部35の画像処理回路41によって算出される座標、すなわち上記マーカ座標を示すデータである。マーカ座標は、撮像画像に対応する平面上の位置を表すための2次元座標系で表現される。なお、撮像素子40によって2つのマーカ6Rおよび6Lが撮像される場合には、2つのマーカ座標が算出される。一方、撮像素子40の撮像可能な範囲内にマーカ6Rおよび6Lのいずれか一方が位置しない場合には、撮像素子40によって1つのマーカのみが撮像され、1つのマーカ座標のみが算出される。また、撮像素子40の撮像可能な範囲内にマーカ6Rおよび6Lの両方が位置しない場合には、撮像素子40によってマーカが撮像されず、マーカ座標は算出されない。したがって、マーカ座標データ133は、2つのマーカ座標を示す場合もあるし、1つのマーカ座標を示す場合もあるし、マーカ座標がないことを示す場合もある。   The marker coordinate data 133 is data indicating coordinates calculated by the image processing circuit 41 of the imaging information calculation unit 35, that is, the marker coordinates. The marker coordinates are expressed in a two-dimensional coordinate system for representing a position on a plane corresponding to the captured image. Note that, when the two markers 6R and 6L are imaged by the imaging element 40, two marker coordinates are calculated. On the other hand, if either one of the markers 6R and 6L is not located within the imageable range of the image sensor 40, only one marker is imaged by the image sensor 40, and only one marker coordinate is calculated. Further, when both of the markers 6R and 6L are not located within the image capturing range of the image sensor 40, the marker is not imaged by the image sensor 40, and the marker coordinates are not calculated. Therefore, the marker coordinate data 133 may indicate two marker coordinates, may indicate one marker coordinate, or may indicate that there is no marker coordinate.

操作ボタンデータ134は、各操作ボタン32a〜32iに対する入力状態を示すデータである。   The operation button data 134 is data indicating an input state for each of the operation buttons 32a to 32i.

ゲーム処理用データ128は、図34に示すように、入力装置姿勢データ141と、基準平面データ142と、基準X角度データ143と、仮想基準面データ144と、現在X角度データ145と、捻り角度データ146と、振りかぶり量データ147と、{L}座標系データ148と、ベクトルDのデータ149と、第1の候補面データ150と、第2の候補面データ151と、前回振りかぶり角度データ152と、前回追従角度データ153と、前回しなり角データ154と、ガイド表示カウンタ155と、打球パワーデータ156と、バックスピン率データ157と、打球パラメータ158と、現在状態データ159と、画像データ160と、ショットフラグ161と、飛球中フラグ162と、バックスピンフラグ163と、終了フラグ164等が記憶される。   As shown in FIG. 34, the game processing data 128 includes input device attitude data 141, reference plane data 142, reference X angle data 143, virtual reference plane data 144, current X angle data 145, and twist angle. Data 146, swing amount data 147, {L} coordinate system data 148, vector D data 149, first candidate plane data 150, second candidate plane data 151, and previous swing fog angle data 152 The following tracking angle data 153, the previous bending angle data 154, the guide display counter 155, the hit ball power data 156, the backspin rate data 157, the hit ball parameter 158, the current state data 159, and the image data 160 , Shot flag 161, flying ball flag 162, backspin flag 163, and end flag 164 and the like are stored.

入力装置姿勢データ141は、入力装置8の姿勢を示すデータである。ここで、本実施形態では、入力装置8の姿勢を、互いに直交する3つのベクトルの組(すなわち、X軸、Y軸、Z軸)で表す。そして、本実施形態では、電源投入時、あるいは、ゲーム処理の開始時に、初期値として、ワールド座標系における入力装置8の姿勢(すなわち、入力装置8のローカル座標系でみた姿勢)をX軸=(1,0,0)、Y軸=(0,1,0)、Z軸=(0,0,1)と設定する。そして、ゲーム処理の開始後は、入力装置姿勢データ141で示される姿勢は、ジャイロセンサユニット7から取得した値に基づき、ワールド座標系に対する姿勢として算出されるものとする。   The input device attitude data 141 is data indicating the attitude of the input device 8. Here, in this embodiment, the posture of the input device 8 is represented by a set of three vectors orthogonal to each other (that is, the X axis, the Y axis, and the Z axis). In this embodiment, when the power is turned on or when the game process is started, the attitude of the input device 8 in the world coordinate system (that is, the attitude viewed in the local coordinate system of the input device 8) is set as an initial value as the X axis = (1, 0, 0), Y axis = (0, 1, 0), Z axis = (0, 0, 1) are set. After the game process is started, the posture indicated by the input device posture data 141 is calculated as the posture with respect to the world coordinate system based on the value acquired from the gyro sensor unit 7.

基準平面データ142、基準X角度データ143は、上述したような基準平面、基準X角度を示すデータである。なお、本実施形態における各種平面を示すデータの保存形式については、各種平面が重力方向を含む(平行である)ため、平面を定めるという意味で、重力方向を軸とする回転の角度データを保存すればよい。また、冗長ではあるが、後述するような処理において利用しやすいという利点から、平面に含まれる水平ベクトル(重力方向と垂直なベクトル)1軸をデータとして保存するようにしても良い。更に、重力上方向のベクトル1軸と面の法線ベクトル1軸を加えて、3軸のベクトルデータとして保存しても良い。   The reference plane data 142 and the reference X angle data 143 are data indicating the reference plane and the reference X angle as described above. As for the storage format of data indicating various planes in this embodiment, since the various planes include the direction of gravity (in parallel), the angle data of rotation about the direction of gravity is stored in the sense that the plane is defined. do it. Further, although it is redundant, it is possible to store one axis of a horizontal vector (vector perpendicular to the direction of gravity) included in the plane because of the advantage that it is easy to use in processing as described later. Furthermore, a gravitational upward vector 1 axis and a surface normal vector 1 axis may be added and saved as 3-axis vector data.

仮想基準面データ144、現在X角度データ145は、上述したような捻り角度の算出等のために用いる仮想基準面、現在X角度を示すデータである。また、捻り角度データ146は、算出された上記捻り角度を示すデータである。   The virtual reference plane data 144 and the current X angle data 145 are data indicating the virtual reference plane and the current X angle used for calculating the twist angle as described above. The twist angle data 146 is data indicating the calculated twist angle.

振りかぶり量データ147は、上記振りかぶり量Hに対応するデータであり、{L}座標系データ148は、上記{L}座標系(上記図29参照)を示すデータである。また、ベクトルDのデータ149は、図29で示したベクトルDを示すデータである。   The swing-up amount data 147 is data corresponding to the above-described swing-up amount H, and the {L} coordinate system data 148 is data indicating the {L} coordinate system (see FIG. 29). The vector D data 149 is data indicating the vector D shown in FIG.

第1の候補面データ150および第2の候補面データ151は、基準平面を算出するために用いられる上記第1の候補面と第2の候補面を示すデータである。   The first candidate plane data 150 and the second candidate plane data 151 are data indicating the first candidate plane and the second candidate plane used for calculating the reference plane.

前回振りかぶり角度データ152、前回追従角度データ153、前回しなり角データ154は、インパクトの発生の判定等に用いられるデータであり、直前の処理ループにおいて算出された振りかぶり角度等の値を記憶したものである。   The previous swing angle data 152, the previous follow angle data 153, and the previous bending angle data 154 are data used for determining the occurrence of impact and the like, and storing values such as the swing angle calculated in the immediately preceding processing loop. It is.

ガイド表示カウンタ155は、上記図12で示したような構え直しガイド105を表示するタイミングを測るためのカウンタである。   The guide display counter 155 is a counter for measuring the timing for displaying the repositioning guide 105 as shown in FIG.

打球パワーデータ156は、打球のパワーを示すデータである(上記打球パワーPに対応するデータである)。バックスピン率データ157は、上記バックスピン率を示すデータである。また、打球パラメータ158は、打球を移動させるために用いる各種パラメータであり、打球が移動する軌道(弾道)や移動速度等のパラメータが含まれる。   The hit ball power data 156 is data indicating the hit ball power (data corresponding to the hit ball power P). The backspin rate data 157 is data indicating the backspin rate. The hit ball parameter 158 is various parameters used for moving the hit ball, and includes parameters such as a trajectory (ball trajectory) in which the hit ball moves and a moving speed.

現在状態データ159は、現在選択しているゴルフクラブの種類や、現在の場所に関するデータ(フェアウェイかラフか等)、風の向きや風の強さ等、仮想ゲーム空間内におけるプレイヤオブジェクトを取り巻く環境に関するデータが含まれる。   The current state data 159 includes the environment surrounding the player object in the virtual game space, such as the type of the currently selected golf club, data on the current location (whether fairway or rough, etc.), wind direction and wind strength, etc. Data on is included.

画像データ160は、ゲーム画像として表示される各種画像のデータである。上記構え直しガイド105の画像もこれに含まれる。   The image data 160 is data of various images displayed as game images. This includes the image of the repositioning guide 105.

ショットフラグ161は、スイングの際にAボタン32dが押されているか否か、つまり、プレイヤが行うスイングが素振りか否かを判定するためのフラグであり、Aボタン32dが押されているときはオンに設定される。   The shot flag 161 is a flag for determining whether or not the A button 32d is pressed during a swing, that is, whether or not the swing performed by the player is a swing, and when the A button 32d is pressed. Set to on.

飛球中フラグ162は、インパクトが発生する前(ボールが打たれる前)か、インパクトの発生後(ボールが打たれた後)かを判定するためのフラグである。当該フラグは、インパクト発生前はオフに設定され、インパクトが発生すれば、オンに設定される。   The flying ball flag 162 is a flag for determining whether an impact occurs (before the ball is hit) or after an impact occurs (after the ball is hit). The flag is set to off before the impact occurs, and is set to on when the impact occurs.

バックスピンフラグ163は、バックスピン率の算出処理を実行する必要があるか否かを示すフラグである。当該フラグは、インパクト発生と共にオンに設定され、その後、バックスピン率の算出が終わればオフに設定される(本実施形態では、インパクトの発生後、打球が着地するまでの間にバックスピン率の算出処理が実行されるため)。   The backspin flag 163 is a flag indicating whether or not the backspin rate calculation process needs to be executed. The flag is set to ON when the impact occurs, and then set to OFF when the calculation of the backspin rate is completed (in this embodiment, the backspin rate is measured after the impact occurs until the hit ball lands). Because the calculation process is executed).

終了フラグ164は、一打分に係る処理が終了したか否かを示すためのフラグである。   The end flag 164 is a flag for indicating whether or not the processing related to one stroke has been completed.

次に、図35〜図53を参照して、ゲーム装置3によって実行されるゲーム処理について説明する。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、ROM/RTC13に記憶されている起動プログラムを実行し、これによってメインメモリ33等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムが外部メインメモリ12に読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。なお、図35〜図37に示すフローチャートは、ゴルフにおける一打分の処理を示したものであり、プレイヤによる一打分の動作毎に、図35〜図37のフローチャートの処理が実行される。また、図35〜図37に示すステップS1〜ステップS21の処理ループは、1フレーム毎に繰り返し実行される。   Next, a game process executed by the game apparatus 3 will be described with reference to FIGS. When the power of the game apparatus 3 is turned on, the CPU 10 of the game apparatus 3 executes a startup program stored in the ROM / RTC 13, thereby initializing each unit such as the main memory 33. Then, the game program stored in the optical disc 4 is read into the external main memory 12, and the CPU 10 starts executing the game program. Note that the flowcharts shown in FIGS. 35 to 37 show processing for one stroke in golf, and the processing of the flowcharts in FIGS. 35 to 37 is executed for each operation of one stroke by the player. Also, the processing loop of steps S1 to S21 shown in FIGS. 35 to 37 is repeatedly executed for each frame.

図35において、まず、CPU10は、初期化処理を実行する(ステップS1)。この処理では、各種フラグや変数の初期化が実行される。   In FIG. 35, first, the CPU 10 executes an initialization process (step S1). In this processing, various flags and variables are initialized.

次に、CPU10は、操作データ127を取得する(ステップS2)。続いて、CPU10は、飛球中フラグ162がオンか否かを判定する(ステップS3)。これは、インパクト前か後かを示すフラグである。当該判定の結果、移動中フラグがオンのとき、すなわち、インパクト後の状態であれば(ステップS3でYES)、ステップS4の処理に進む。このときの処理については後述する。   Next, the CPU 10 acquires operation data 127 (step S2). Subsequently, the CPU 10 determines whether or not the flying ball flag 162 is on (step S3). This is a flag indicating whether the impact is before or after. As a result of the determination, if the moving flag is on, that is, if it is in a state after impact (YES in step S3), the process proceeds to step S4. The process at this time will be described later.

一方、飛球中フラグ162がオフのときは(ステップS3でNO)、ボール103のインパクト前であるため、CPU10は、次に、環境設定処理を実行する(図36のステップS5)。この処理では、ショットに関連する環境の設定がなされる。例えば、プレイヤオブジェクト101の現在位置がフェアウェイかラフ、あるいはバンカーか等を判定し、打球パワーの上限を制限するような設定や、ボールの射出方向を地形等に応じて変更する処理が実行される。また、ここで設定された内容を示すデータは、現在状態データ159として外部メインメモリ12に記憶される。なお、当処理は、本発明の内容とは直接関連しないため、詳細な説明は省略する。   On the other hand, when the flying ball flag 162 is off (NO in step S3), since the ball 103 is not yet impacted, the CPU 10 next executes an environment setting process (step S5 in FIG. 36). In this process, the environment related to the shot is set. For example, it is determined whether the current position of the player object 101 is a fairway, a rough, or a bunker, and a setting for limiting the upper limit of the hitting ball power or a process for changing the ball injection direction according to the terrain or the like is executed. . Data indicating the contents set here is stored in the external main memory 12 as current state data 159. Since this process is not directly related to the contents of the present invention, detailed description thereof is omitted.

次に、CPU10は、上記ステップS2で取得した操作データ127で示される操作内容が、スイング操作以外の操作にかかる内容であるか否かを判定する(ステップS6)。スイング操作以外の操作とは、例えば、ゴルフクラブを選択するための操作や、ショットする方向を変化させる(仮想カメラの向きを変える)ための操作等、本発明の内容に関わること以外の操作である。なお、ゴルフクラブの選択操作が行われたときは、選択したゴルフクラブの種類(ドライバやアイアン等)を示すデータは現在状態データ159の一部として外部メインメモリ12に記憶される。   Next, the CPU 10 determines whether or not the operation content indicated by the operation data 127 acquired in step S2 is content related to an operation other than the swing operation (step S6). The operations other than the swing operation are operations other than those related to the contents of the present invention, such as an operation for selecting a golf club and an operation for changing a shot direction (changing the direction of the virtual camera). is there. When a golf club selection operation is performed, data indicating the type of the selected golf club (driver, iron, etc.) is stored in the external main memory 12 as part of the current state data 159.

当該判定の結果、スイング操作以外の操作が行われていたときは(ステップS6でYES)、CPU10は、後述するステップS19の処理に進む。一方、スイング操作以外の操作ではないときは(ステップS6でNO)、次に、CPU10は、操作データ127で示される操作内容がBボタン32iの押下であるか否かを判定する(ステップS7)。当該判定の結果、Bボタン32iが押されていたときは(ステップS7でYES)、CPU10は、構え直し処理を実行する(ステップS8)。当該構え直し処理においては、上述したような基準平面を算出する処理等が実行される。   As a result of the determination, when an operation other than the swing operation has been performed (YES in step S6), the CPU 10 proceeds to the process of step S19 described later. On the other hand, when the operation is not an operation other than the swing operation (NO in step S6), the CPU 10 next determines whether or not the operation content indicated by the operation data 127 is a press of the B button 32i (step S7). . As a result of the determination, when the B button 32i has been pressed (YES in step S7), the CPU 10 executes a repositioning process (step S8). In the repositioning process, a process for calculating the reference plane as described above is executed.

図38は、上記ステップS8で示した構え直し処理の詳細を示すフローチャートである。図38において、まず、CPU10は、上記操作データ127に含まれる加速度データ132および角速度データ131に基づいて入力装置8の姿勢を算出する処理を実行する(ステップS31)。本処理は、どのような処理方法であっても良いが、本実施形態では、上記のように、まず、ジャイロセンサユニット7で検出された角速度に基づいて入力装置8の姿勢を算出する。角速度から姿勢を算出する方法は、例えば、初期姿勢に(単位時間あたりの)角速度を逐次加算する方法がある。すなわち、ジャイロセンサユニット7から逐次出力される角速度に基づいて、初期状態から開始して、前回算出された姿勢に逐次変化を加えて更新していくことによって、現在の姿勢を算出することができる。次に、加速度センサ37で検出された加速度データに基づいて上記角速度から算出された姿勢を補正する。本実施形態では、上記角速度から算出された姿勢を加速度データから決まる姿勢へと近づける補正を行う。次に角速度による姿勢の更新を行うときには、当該補正された姿勢にたいして角速度を加えることになる。加速度データから決まる姿勢とは、具体的には、加速度データが示す加速度の向きが鉛直下向きであると想定する場合における入力装置8の姿勢を指す。すなわち、加速度データが示す加速度が重力加速度であると仮定して算出された姿勢である。加速度によって決められる姿勢は、センサが静止しているときには正確だが、動いているときには誤差があるという性質がある。一方、ジャイロセンサは、センサ出力に誤差が含まれる場合に、算出された姿勢には時間と共に誤差が蓄積していくという性質がある。したがって、常に補正を加えながら姿勢を更新していくことによって、誤差の少ない姿勢が算出される。このようにして補正された姿勢が、入力装置姿勢データ141として外部メインメモリ12に記憶される。以下(この姿勢のことを、現在姿勢と呼ぶ)。なお、加速度データを反映させない場合は、角速度の積分結果を初期姿勢に反映させた姿勢としてもよい。   FIG. 38 is a flowchart showing details of the readjustment process shown in step S8. In FIG. 38, first, the CPU 10 executes a process of calculating the attitude of the input device 8 based on the acceleration data 132 and the angular velocity data 131 included in the operation data 127 (step S31). In this embodiment, first, the attitude of the input device 8 is calculated based on the angular velocity detected by the gyro sensor unit 7 as described above. As a method of calculating the posture from the angular velocity, for example, there is a method of sequentially adding the angular velocity (per unit time) to the initial posture. That is, based on the angular velocities sequentially output from the gyro sensor unit 7, the current posture can be calculated by starting from the initial state and sequentially updating the posture calculated last time by updating it. . Next, the posture calculated from the angular velocity is corrected based on the acceleration data detected by the acceleration sensor 37. In the present embodiment, correction is performed so that the posture calculated from the angular velocity approaches the posture determined from the acceleration data. Next, when the posture is updated based on the angular velocity, the angular velocity is added to the corrected posture. The attitude determined from the acceleration data specifically refers to the attitude of the input device 8 when it is assumed that the direction of acceleration indicated by the acceleration data is vertically downward. That is, the posture is calculated on the assumption that the acceleration indicated by the acceleration data is gravitational acceleration. The posture determined by the acceleration is accurate when the sensor is stationary, but has an error when it is moving. On the other hand, the gyro sensor has a property that when the sensor output includes an error, the calculated posture accumulates the error with time. Therefore, a posture with few errors is calculated by updating the posture while always applying correction. The posture corrected in this way is stored in the external main memory 12 as input device posture data 141. Below (this posture is called the current posture). If the acceleration data is not reflected, the posture may be one in which the integration result of the angular velocity is reflected in the initial posture.

次に、CPU10は、基準平面設定処理を実行する(ステップS32)。図39は、当該基準平面設定処理の詳細を示すフローチャートである。図39において、まず、CPU10は、現在の入力装置8のローカル座標系でのZ軸(以下、ローカルZ軸と呼ぶ)方向と、重力方向とを含む平面を第1の候補面として算出し、第1の候補面データ150として外部メインメモリ12に記憶する(ステップS41)。   Next, the CPU 10 executes a reference plane setting process (step S32). FIG. 39 is a flowchart showing details of the reference plane setting process. In FIG. 39, first, the CPU 10 calculates a plane including a Z-axis (hereinafter referred to as local Z-axis) direction in the local coordinate system of the current input device 8 and a gravity direction as a first candidate plane, It memorize | stores in the external main memory 12 as the 1st candidate surface data 150 (step S41).

次に、CPU10は、現在姿勢におけるローカルZ軸を重力方向に向けるような回転行列を算出する。そして、現在の入力装置8のローカル座標系におけるY軸(以下、ローカルY軸と呼ぶ)に対して、上記算出した回転行列を適用することで、Y'軸を算出する(ステップS42)。   Next, the CPU 10 calculates a rotation matrix that directs the local Z-axis in the current posture in the direction of gravity. Then, the Y ′ axis is calculated by applying the calculated rotation matrix to the Y axis (hereinafter referred to as the local Y axis) in the local coordinate system of the current input device 8 (step S42).

次に、CPU10は、当該Y'軸と重力方向とを含む平面を第2の候補面として算出し、第2の候補面データ151として外部メインメモリ12に記憶する(ステップS43)。   Next, the CPU 10 calculates a plane including the Y ′ axis and the direction of gravity as the second candidate plane, and stores it as the second candidate plane data 151 in the external main memory 12 (step S43).

次に、現在の基準平面(直近に算出された基準平面)と、上記第1の候補面、第2の候補面と現在の判定面とのなす角(上記図23のθA、θB)をそれぞれ算出する(ステップS44)。次に、上記の角度に基づき、上述した式1(式2や式3でもよい)を用いて、新たな基準平面を算出し、基準平面データ142として外部メインメモリ12に記憶する(ステップS45)。   Next, the angles (θA, θB in FIG. 23) formed by the current reference plane (the reference plane calculated most recently) and the first candidate plane, the second candidate plane, and the current determination plane are respectively set. Calculate (step S44). Next, based on the above angle, a new reference plane is calculated using the above-described formula 1 (may be formula 2 or formula 3), and is stored in the external main memory 12 as the reference plane data 142 (step S45). .

ここで、ゲーム処理の開始後、当該処理が初めて実行されるときは、まだ基準平面が算出されていない状態である。そのため、初回実行時のみ、基準平面を以下のようにして算出する。すなわち、CPU10は、上記第1の候補面と第2の候補面とがなす角(θA+θB)を2分割するような平面を算出し(つまり、2つの角の平均をとる)、この平面を新たな基準平面とする。   Here, when the process is executed for the first time after the start of the game process, the reference plane has not yet been calculated. Therefore, the reference plane is calculated as follows only at the first execution. That is, the CPU 10 calculates a plane that divides the angle (θA + θB) formed by the first candidate plane and the second candidate plane into two (that is, takes the average of the two corners), and newly sets the plane. A standard reference plane.

なお、初回実行時における基準平面の算出にすいては、上記のような方法の他、次のような方法を用いて算出しても良い。すなわち、Z軸方向と重力方向との角度差を第1の候補面の重みとし上記Y'軸方向と重力方向との角度差を、第2の候補面の重みとする。そして、第1の候補面と第2の候補面の加重平均をとることで、新たな基準平面としてもよい。   In addition, as for the calculation of the reference plane at the first execution, the following method may be used in addition to the above method. That is, the angle difference between the Z-axis direction and the gravity direction is set as the weight of the first candidate plane, and the angle difference between the Y′-axis direction and the gravity direction is set as the weight of the second candidate plane. And it is good also as a new reference plane by taking the weighted average of a 1st candidate surface and a 2nd candidate surface.

次に、CPU10は、(新たな)基準平面に基づいて、上述したような{L}座標系(上記図29参照)を設定する(ステップS46)。   Next, the CPU 10 sets the {L} coordinate system (see FIG. 29) described above based on the (new) reference plane (step S46).

次に、CPU10は、上記ローカルZ軸が基準平面に平行になるような仮想的な回転を、現在の入力装置8のX軸(以下、ローカルX軸と呼ぶ)に適用することで、X'軸を算出する(ステップS47)。図40は、当該処理の概要を示す図である。図40(a)は、実際の入力装置8の姿勢を示し、図40(b)は、上記のような回転を加えたことによる、入力装置8の仮想的な姿勢の状態を示している。   Next, the CPU 10 applies a virtual rotation such that the local Z-axis is parallel to the reference plane to the X-axis (hereinafter referred to as the local X-axis) of the current input device 8 so that X ′ An axis is calculated (step S47). FIG. 40 is a diagram showing an outline of the processing. FIG. 40A shows the actual posture of the input device 8, and FIG. 40B shows the virtual posture state of the input device 8 resulting from the above rotation.

次に、CPU10は、上記基準平面に対する上記X'軸の角度を算出し、基準X角度データ143として外部メインメモリ12に記憶する(ステップS48)。以上で、基準平面設定処理は終了する。   Next, the CPU 10 calculates the angle of the X ′ axis with respect to the reference plane, and stores it as the reference X angle data 143 in the external main memory 12 (step S48). Thus, the reference plane setting process ends.

図37に戻り、基準平面設定処理が終了すれば、次に、CPU10は、プレイヤオブジェクト101の姿勢制御等を行う(ステップS33)。すなわち、CPU10は、上記算出した現在姿勢に基づいてゴルフクラブ102等の位置を移動したり、プレイヤオブジェクト101に、構え直しを行っている様子を取らせる(例えば、ゴルフクラブを握り直すようなそぶりを行わせる)処理を実行したりする。   Returning to FIG. 37, when the reference plane setting process is completed, the CPU 10 next performs posture control of the player object 101 and the like (step S33). In other words, the CPU 10 moves the position of the golf club 102 or the like based on the calculated current posture or causes the player object 101 to take a state of repositioning (for example, to grasp the golf club again). Perform processing).

次に、CPU10は、構え直しガイド105の表示(上記図12参照)のために用いるガイド表示カウンタ155をリセットする(ステップS34)。   Next, the CPU 10 resets the guide display counter 155 used for displaying the repositioning guide 105 (see FIG. 12 above) (step S34).

次に、CPU10は、パワーゲージ104の表示内容を初期化する(ステップS35)。具体的には、パワーゲージ104の形状を、上記図8や図12で示したように真っ直ぐな状態とし、スイングバー106の位置をパワーゲージ104の一番下に設定する。以上で、構え直し処理は終了する。   Next, the CPU 10 initializes the display content of the power gauge 104 (step S35). Specifically, the shape of the power gauge 104 is set to a straight state as shown in FIGS. 8 and 12, and the position of the swing bar 106 is set at the bottom of the power gauge 104. This completes the repositioning process.

図36に戻り、構え直し処理が終了すれば、次に、CPU10は、描画処理を行う(ステップS20)。すなわち、仮想カメラで仮想ゲーム空間を撮影した画像をゲーム画像としてテレビ2に表示する処理が実行される。ステップS20の後、CPU10は、終了フラグ164がオンか否かでゲーム終了か否かを判断し(ステップS21)、YESの場合、ゲーム処理を終了し、NOの場合、ステップS2に戻って、ゲーム処理を繰り返す。   Returning to FIG. 36, when the repositioning process is completed, the CPU 10 performs a drawing process (step S20). That is, processing for displaying an image obtained by photographing the virtual game space with the virtual camera on the television 2 as a game image is executed. After step S20, the CPU 10 determines whether or not the game is over based on whether or not the end flag 164 is on (step S21). If YES, the game process is ended. If NO, the process returns to step S2. Repeat the game process.

次に、上記ステップS7で、Bボタン32iが押されていないと判定されたときの処理(ステップS7でNO)について説明する。このときは、次に、CPU10は、操作データ127の操作内容がAボタンの押下であるか否か、つまり、Aボタン32dが押されているか否かを判定する(ステップS9)。   Next, a process when it is determined in step S7 that the B button 32i has not been pressed (NO in step S7) will be described. At this time, the CPU 10 next determines whether or not the operation content of the operation data 127 is a press of the A button, that is, whether or not the A button 32d is pressed (step S9).

当該判定の結果、Aボタン32dが押されているときは(ステップS9でYES)、プレイヤが行うスイングが、「素振り」ではなく、ボールを打ちに行く「ショット」動作として扱うための設定処理が行われる。まず、CPU10は、ショットフラグ161がオンか否かを判定する(ステップS13)。その結果、ショットフラグ161がオンでないときは(ステップS13でNO)、Aボタン32dが押された直後の状態と考えられるため、CPU10は、ショットフラグ161をオンに設定する(ステップS14)。次に、プレイヤオブジェクト101をボール103の位置に向けて前進させる(近づける)ような制御(上記図8から図10の状態にするような制御)を実行する(ステップS15)。その後、CPU10は後述するステップS16の処理に進む。   As a result of the determination, when the A button 32d is pressed (YES in step S9), the setting process for handling the swing performed by the player as a “shot” action for hitting the ball instead of “swinging” is performed. Done. First, the CPU 10 determines whether or not the shot flag 161 is on (step S13). As a result, when the shot flag 161 is not on (NO in step S13), it is considered that the state is immediately after the A button 32d is pressed, so the CPU 10 sets the shot flag 161 on (step S14). Next, control (control to bring the player object 101 into the state shown in FIGS. 8 to 10) such that the player object 101 moves forward (approaches) toward the position of the ball 103 is executed (step S15). Thereafter, the CPU 10 proceeds to a process of step S16 described later.

一方、ステップS13の判定の結果、ショットフラグ161がオンに設定されていれば(ステップS13でYES)。Aボタン32dが押され続けている状態と考えられるため、CPU10は後述のステップS16の処理に進む。   On the other hand, if the result of determination in step S13 is that the shot flag 161 is set to ON (YES in step S13). Since it is considered that the A button 32d is kept pressed, the CPU 10 proceeds to the process of step S16 described later.

一方、上記ステップS9の判定の結果、Aボタン32dが押されていないときは(ステップS9でNO)、プレイヤが行うスイングを「素振り」として扱うための設定処理を行うことになる。まず、CPU10は、ショットフラグ161がオンか否かを判定する(ステップS10)。その結果、ショットフラグ161がオンであれば(ステップS10でYES)、Aボタン32dを押し続けていた状態からAボタン32dを離した直後の状態と考えられるため、CPU10は、ショットフラグ161をオフに設定する(ステップS11)。次に、CPU10は、プレイヤオブジェクト101をボール103の位置から後退させるような制御(上記図10から図8の状態に戻す)を行う(ステップS12)。その後、CPU10は、後述のステップS16の処理に進む。   On the other hand, if the result of the determination in step S9 is that the A button 32d is not pressed (NO in step S9), a setting process for handling the swing performed by the player as “swing” is performed. First, the CPU 10 determines whether or not the shot flag 161 is on (step S10). As a result, if the shot flag 161 is on (YES in step S10), it is considered that the state immediately after releasing the A button 32d from the state in which the A button 32d was kept pressed, the CPU 10 turns off the shot flag 161. (Step S11). Next, the CPU 10 performs control such that the player object 101 moves backward from the position of the ball 103 (returns to the state shown in FIG. 10 to FIG. 8) (step S12). Thereafter, the CPU 10 proceeds to a process of step S16 described later.

一方、ステップS10の判定でショットフラグ161がオフと判定されたときは(ステップS10でNO)、CPU10は、上記ステップS11〜S12の処理は実行せずに、後述のステップS16の処理に進む。   On the other hand, when it is determined in step S10 that the shot flag 161 is off (NO in step S10), the CPU 10 proceeds to the process of step S16 described later without executing the processes of steps S11 to S12.

次に、CPU10は、スイング関連処理を実行する(図37のステップS16)。図41は、当該スイング関連処理の詳細を示すフローチャートである。図41において、まず、CPU10は、操作データ127に基づいて、入力装置の現在姿勢を算出する(ステップS51)。   Next, the CPU 10 executes a swing related process (step S16 in FIG. 37). FIG. 41 is a flowchart showing details of the swing related processing. In FIG. 41, first, the CPU 10 calculates the current posture of the input device based on the operation data 127 (step S51).

次に、CPU10は、パワーゲージ更新処理を実行する(ステップS52)。この処理は、上述したようなパワーゲージ104の表示内容を決定(更新)するための処理である(処理概要の説明で上述した(2)パワーゲージ関連処理に相当)。   Next, CPU10 performs a power gauge update process (step S52). This process is a process for determining (updating) the display content of the power gauge 104 as described above (corresponding to (2) the power gauge related process described above in the description of the process outline).

図42は、当該パワーゲージ更新処理の詳細を示すフローチャートである。図42において、まず、CPU10は、捻り角度算出処理を実行する(ステップS61)。この処理は、上述したような捻り角度を求めるための処理である。図43は、当該捻り角度算出処理の詳細を示すフローチャートである。図43において、まず、CPU10は、現在の入力装置の姿勢に基づいて、仮想的に基準平面を生成する(ステップS71)。つまり、仮に今Bボタン32iが押されたものと仮想して、上述したような基準平面を生成する。以下、当該仮想的な基準平面を、仮想基準面と呼ぶ。仮想基準面生成のための処理としては、図39を用いて説明したステップS41〜S45の処理と同じ処理が実行され、生成された平面が仮想基準面データ144として外部メインメモリ12に記憶される。   FIG. 42 is a flowchart showing details of the power gauge update process. In FIG. 42, first, the CPU 10 executes a twist angle calculation process (step S61). This process is a process for obtaining the twist angle as described above. FIG. 43 is a flowchart showing details of the twist angle calculation processing. In FIG. 43, first, the CPU 10 virtually generates a reference plane based on the current attitude of the input device (step S71). That is, it is assumed that the B button 32i has been pressed, and the reference plane as described above is generated. Hereinafter, the virtual reference plane is referred to as a virtual reference plane. As the process for generating the virtual reference plane, the same processes as those in steps S41 to S45 described with reference to FIG. 39 are executed, and the generated plane is stored in the external main memory 12 as the virtual reference plane data 144. .

次に、CPU10は、入力装置8のローカルZ軸を当該仮想基準面に対して平行にするような回転を、ローカルX軸に適用し、仮想X'軸を算出する(ステップS72)。次に、仮想基準面に対する仮想X'軸の角度を算出し、現在X角度データ145として外部メインメモリ12に記憶する(ステップS73)。当該ステップS72およびS73の処理は、仮想基準面を対象とする点を除けば、図39を用いて上述したステップS47およびS48の処理と同様となるため、詳細な説明は省略する。   Next, the CPU 10 calculates a virtual X ′ axis by applying a rotation that makes the local Z axis of the input device 8 parallel to the virtual reference plane to the local X axis (step S <b> 72). Next, the angle of the virtual X ′ axis with respect to the virtual reference plane is calculated and stored in the external main memory 12 as the current X angle data 145 (step S73). The processing in steps S72 and S73 is the same as the processing in steps S47 and S48 described above with reference to FIG. 39 except for the point that targets the virtual reference plane, and thus detailed description thereof is omitted.

次に、CPU10は、以下の式で捻り角度を算出し、捻り角度データ146として記憶する(ステップS74)。
捻り角度=現在X角度−基準X角度 ・・・式10
以上で、捻り角度算出処理は終了する。
Next, the CPU 10 calculates the twist angle by the following formula and stores it as the twist angle data 146 (step S74).
Twist angle = current X angle−reference X angle
Thus, the twist angle calculation process ends.

図42に戻り、捻り角度算出処理の次に、CPU10は、振りかぶり角度算出処理を実行する(ステップS62)。図44は、当該振りかぶり角度算出処理の詳細を示すフローチャートである。図44において、まず、CPU10は、上記(スイング角度算出の図A)を用いて示したように、現在姿勢におけるローカルZ軸を、上述したような{L}座標系に変換することで、ベクトルDを算出する(ステップS81)。   Returning to FIG. 42, after the twist angle calculation process, the CPU 10 executes a swing-up angle calculation process (step S62). FIG. 44 is a flowchart showing details of the swing angle calculation processing. In FIG. 44, first, the CPU 10 converts the local Z axis in the current posture into the {L} coordinate system as described above, as shown using the above (swing angle calculation diagram A), thereby obtaining a vector. D is calculated (step S81).

次に、CPU10は、上述した式7(θ=Atan(Dx,−Dy+K×Dz))を用いて、振りかぶり角度θを算出する(ステップS82)。なお、振りかぶり角度θは、上述したように、構え直し操作を行ったときの姿勢で0、前方に振ると正の値、振りかぶると負の値が算出される。以上で、振りかぶり角度算出処理は終了する。   Next, the CPU 10 calculates the swing-up angle θ using the above-described equation 7 (θ = Atan (Dx, −Dy + K × Dz)) (step S82). Note that, as described above, the swing angle θ is 0 in the posture when the repositioning operation is performed, a positive value is calculated when swinging forward, and a negative value is calculated when swinging. This is the end of the swing angle calculation process.

図42に戻り、振りかぶり角度θが算出できれば、次に、CPU10は、当該振りかぶり角度θの絶対値に基づいて、捻り角度をパワーゲージ104の湾曲に反映させる度合い(反映度)を決定するための処理を実行する(ステップS63)。この処理は、振りかぶり角度が大きいときほど(大きく振りかぶっているときほど)、捻り角度の影響を小さくし、振りかぶり角度が小さいほど(ゴルフクラブ102のヘッドがボール103に近いほど)、捻り角度の影響を大きくするための処理である。つまり、仮に手首の捻り角度が同じとして、大きく振りかぶっているときは、パワーゲージ104はあまり湾曲しないが、ボール103に近づくほど、捻り角度がパワーゲージ104の湾曲に反映される度合いが高くなり、より湾曲して表示されるような処理を実行する。例えば、反映度を0.0(反映度弱)〜1.0(反映度強)とすると、振りかぶり角度が0度のときを反映度1.0とし、振りかぶり角度の絶対値が180°を反映度0.0として、この間の値が線形のグラフとなるように割り当てるようにする(もちろん、非線形で割り当てるようにしても良い)。   Returning to FIG. 42, if the swing-up angle θ can be calculated, the CPU 10 next determines the degree (reflectance) for reflecting the twist angle in the curvature of the power gauge 104 based on the absolute value of the swing-up angle θ. Processing is executed (step S63). This process reduces the effect of the twist angle as the swing angle increases (as the player swings larger), and the effect of the twist angle decreases as the swing angle decreases (the head of the golf club 102 is closer to the ball 103). Is a process for increasing the size. In other words, assuming that the wrist twist angle is the same, the power gauge 104 does not bend very much when it is swung over, but the closer the ball 103 is, the higher the degree that the twist angle is reflected in the curvature of the power gauge 104, A process that displays the image more curved is executed. For example, if the reflection degree is 0.0 (low reflection degree) to 1.0 (high reflection degree), the reflection degree is 1.0 when the swing-up angle is 0 degree, and the absolute value of the swing-up angle is 180 degrees. The degree of 0.0 is assigned so that the value between them becomes a linear graph (of course, it may be assigned non-linearly).

次に、CPU10は、上記捻り角度と反映度に基づいて、パワーゲージ104の形状を湾曲させる(ステップS64)。例えば、CPU10は、上記図28で示したようなグラフに相当する関数を用いて、捻り角度−35°〜+35°を、湾曲度−1.0〜1.0の範囲の値に変換する処理を実行する。そして、この変換の際に、上記反映度を係数として用いる。例えば、捻り角度を10°とすると、反映度1.0(アドレスに近い状態)であれば、10°がそのまま湾曲度に反映されるが、反映度が0.5(半分くらいまで振りかぶっている状態)であれば、当該0.5を乗じた値を湾曲度として算出する。   Next, the CPU 10 curves the shape of the power gauge 104 based on the twist angle and the reflection degree (step S64). For example, the CPU 10 uses a function corresponding to the graph shown in FIG. 28 to convert the twist angle −35 ° to + 35 ° into a value in the range of the curvature degree −1.0 to 1.0. Execute. In the conversion, the reflection degree is used as a coefficient. For example, if the twist angle is 10 °, if the reflection degree is 1.0 (a state close to the address), 10 ° is reflected as it is in the curvature, but the reflection degree is 0.5 (around half). State), the value multiplied by 0.5 is calculated as the degree of curvature.

続いて、CPU10は、振りかぶり角度θを振りかぶり量Hに換算する(ステップS65)。具体的には、CPU10は、上記図30で示したようなグラフに相当する関数を用いて、振りかぶり角度θ(−180°〜+180°)の絶対値を振りかぶり量H(0.0〜1.0)に変換する。   Subsequently, the CPU 10 converts the swing-up angle θ into the swing-up amount H (step S65). Specifically, the CPU 10 uses the function corresponding to the graph shown in FIG. 30 to calculate the absolute value of the swing-up angle θ (−180 ° to + 180 °) as the swing-up amount H (0.0 to 1.. 0).

次に、CPU10は、上記振りかぶり量Hに基づいて、スイングバー106を移動させる(ステップS66)。以上で、パワーゲージ更新処理は終了する。   Next, the CPU 10 moves the swing bar 106 based on the swinging amount H (step S66). This is the end of the power gauge update process.

図41に戻り、パワーゲージ更新処理の次に、CPU10は、打球パワー算出処理を実行する(ステップS53)。図45は、当該打球パワー算出処理の詳細を示すフローチャートである。図45において、まず、CPU10は、上記の「振り下ろし動作反映処理の概要」において説明したような、追従係数Ktの設定、および、これを用いた追従量Tの算出を実行する(ステップS91)。   Returning to FIG. 41, after the power gauge update process, the CPU 10 executes a hit ball power calculation process (step S53). FIG. 45 is a flowchart showing details of the hit ball power calculation process. In FIG. 45, first, the CPU 10 executes the setting of the follow-up coefficient Kt and the calculation of the follow-up amount T using this as described in the above-mentioned “Overview of the swing-down action reflecting process” (step S91). .

次に、CPU10は、上述した過剰な振り強さSを算出する(ステップS92)。すなわち、加速度を8割減と仮定して、上記追従量Tと同様の計算を行うことで過剰な振り強さSを算出する。   Next, the CPU 10 calculates the excessive swing strength S described above (step S92). That is, assuming that the acceleration is reduced by 80%, the excessive swing strength S is calculated by performing the same calculation as the follow-up amount T.

次に、CPU10は、上述したような式4を用いて打球パワーPを算出し、打球パワーデータ156として外部メインメモリ12に記憶する(ステップS93)。以上で、打球パワー算出処理は終了する。   Next, the CPU 10 calculates the hitting power P using the formula 4 as described above, and stores it in the external main memory 12 as the hitting ball power data 156 (step S93). This is the end of the hitting ball power calculation process.

図41に戻り、打球パワー算出処理が終われば、次に、CPU10は、しなり角算出処理を実行する(ステップS54)。この処理は、上述したようなバックスピン率を算出するために用いる、ゴルフクラブ102のヘッド部分のしなりを算出するための処理である。図46は、当該しなり角算出処理の詳細を示すフローチャートである。図46において、まず、CPU10は、しなり特性の設定を行う(ステップS101)。すなわち、CPU10は、上記変数Kp(ばね)およびKd(ダンパー)を、振りかぶり角度θの絶対値に応じて設定する。具体的には、振りかぶり角度の絶対値|θ|である0°〜180°のうち、0°〜90°の範囲の値に対して、Kpについては、0.01〜0.015の値を割り当てる(90°以上については、Kpは一律に0.015とする)。また、Kdについては、同じく0°〜90°に対して、0.001〜0.3の値を割り当てる(90°以上については、Kdは一律に0.3とする)。これにより、インパクト付近ではしなりやすく、遠いときはしなりにくいという、しなりについての特性をもたせることができる。   Returning to FIG. 41, when the hitting ball power calculation process is completed, the CPU 10 next executes a bending angle calculation process (step S54). This process is a process for calculating the bending of the head portion of the golf club 102 used for calculating the backspin rate as described above. FIG. 46 is a flowchart showing details of the bending angle calculation process. In FIG. 46, first, the CPU 10 sets a bending characteristic (step S101). That is, the CPU 10 sets the variables Kp (spring) and Kd (damper) according to the absolute value of the swing-up angle θ. Specifically, among the values in the range of 0 ° to 90 ° among 0 ° to 180 °, which is the absolute value | θ | of the swing angle, the value of 0.01 to 0.015 is set for Kp. (Kp is uniformly set to 0.015 for 90 ° or more). Similarly, for Kd, a value of 0.001 to 0.3 is assigned to 0 ° to 90 ° (for 90 ° or more, Kd is uniformly set to 0.3). As a result, it is possible to give a characteristic of bending that it is easy to bend near the impact and difficult to bend when far away.

次に、CPU10は、上記式6を用いてクラブヘッド部分の加速度Aを算出し、更に、上述したような追従角度θh(上記図25参照)を算出する(ステップS102)。   Next, the CPU 10 calculates the acceleration A of the club head portion using the above equation 6, and further calculates the following angle θh (see FIG. 25) as described above (step S102).

次に、CPU10は、上記式5(φ=θh−θ)を用いて、しなり角φを算出する(ステップS103)。以上で、しなり角算出処理は終了する。   Next, the CPU 10 calculates the bending angle φ by using the above formula 5 (φ = θh−θ) (step S103). This is the end of the bending angle calculation process.

図41に戻り、しなり角算出処理が終了すれば、次に、CPU10は、入力装置8の現在姿勢に基づいてプレイヤオブジェクト101やゴルフクラブ102等の姿勢を更新する(ステップS55)。以上で、スイング関連処理は終了する。   Returning to FIG. 41, when the bending angle calculation process is completed, the CPU 10 next updates the postures of the player object 101, the golf club 102, and the like based on the current posture of the input device 8 (step S55). This completes the swing related process.

図37に戻り、スイング関連処理が終われば、次に、CPU10は、インパクト関連処理を実行する(ステップS17)。本処理では、インパクトが発生したか否かの判定や、インパクトが発生したときの打球に関するパラメータを決めるための処理が実行される。   Returning to FIG. 37, if the swing related process is completed, the CPU 10 next executes the impact related process (step S17). In this process, a process for determining whether or not an impact has occurred and for determining a parameter relating to a hit ball when the impact has occurred is executed.

図47は、当該インパクト関連処理の詳細を示すフローチャートである。図47において、まず、CPU10は、ゴルフクラブ102が上記基準平面を通過したか否かを判定する(ステップS111)。より具体的には、CPU10は、前回振りかぶり角度データ152を参照し、直前のフレーム(直前の処理ループ)で算出された振りかぶり角度θの値を取得する。そして、当該値と、現在のフレームでの処理で算出された振りかぶり角度θとを比較して、当該振りかぶり角度θの値がマイナス値からプラス値に変化したか否かを判定することで、基準平面を通過したか否かを判定する。なお、この判定は、主にバックスピン動作を行っていない、通常のスイングが行われた場合を想定した判定である。   FIG. 47 is a flowchart showing details of the impact-related processing. In FIG. 47, first, the CPU 10 determines whether or not the golf club 102 has passed the reference plane (step S111). More specifically, the CPU 10 refers to the previous swing angle data 152 and acquires the value of the swing angle θ calculated in the immediately preceding frame (previous processing loop). Then, by comparing the value with the swing-up angle θ calculated by the processing in the current frame, it is determined whether or not the value of the swing-up angle θ has changed from a negative value to a positive value. It is determined whether or not the plane has been passed. This determination is based on the assumption that a normal swing is performed in which the backspin operation is not performed.

当該判定の結果、ゴルフクラブ102が基準平面を通過したと判定されたときは(ステップS111でYES)、CPU10は、後述のステップS113の処理に進む。一方、ステップS111の判定の結果、ゴルフクラブ102が基準平面を通過していないと判定されたときは(ステップS111でNO)、CPU10は、バックスピン動作が行われたときのゴルフクラブ102のヘッド部のしなりを考慮して、基準平面を通過したか否かの判定を行う(ステップS112)。つまり、上述したようなバックスピン動作が行われたとき、プレイヤはボールをインパクトしたつもりであっても、上記振りかぶり角度θで判定した場合、仮想ゲーム空間内においては、ぎりぎりでゴルフクラブ102がボール103に当たっておらず(基準平面を通過していない)、直前で止められた結果になっているという場合がある。このような場合を想定して、バックスピン動作を行ったときに発生すると考えられる、ゴルフクラブ102のヘッド部の前方へのしなりを考慮して、前方にしなったヘッド部分が基準平面を通過したか否か、すなわち、ボール103にインパクトしたか否かを判定するものである。そのため、CPU10は、上記追従角度θhの値がマイナス値からプラス値に変化したか否かを判定することで、基準平面を通過したか否かを判定する。そして、基準平面を通過していれば(ステップS112でYES)、ステップS113の処理に進み、基準平面を通過していないときは(ステップS112でNO)、CPU10は、インパクト関連処理を終了する。   As a result of the determination, when it is determined that the golf club 102 has passed the reference plane (YES in step S111), the CPU 10 proceeds to a process of step S113 described later. On the other hand, as a result of the determination in step S111, when it is determined that the golf club 102 does not pass through the reference plane (NO in step S111), the CPU 10 causes the head of the golf club 102 when the backspin operation is performed. In consideration of the bending of the part, it is determined whether or not the reference plane has been passed (step S112). That is, when the backspin operation as described above is performed, even if the player intends to impact the ball, if the determination is made based on the above swing angle θ, the golf club 102 is almost in the virtual game space. 103 is not hit (does not pass through the reference plane), and may have been stopped immediately before. In consideration of such a case, the head portion that has become forward passes the reference plane in consideration of the forward bending of the head portion of the golf club 102 that is considered to occur when the backspin operation is performed. Whether or not the ball 103 has been impacted is determined. For this reason, the CPU 10 determines whether or not the value of the follow-up angle θh has changed from a negative value to a positive value, thereby determining whether or not the reference plane has been passed. If the reference plane has been passed (YES in step S112), the process proceeds to step S113. If the reference plane has not been passed (NO in step S112), the CPU 10 ends the impact-related process.

次に、CPU10は、ショットフラグ161がオンか否かを判定する(ステップS113)。つまり、今回行われたスイングが、「素振り」か否かを判定している。その結果、ショットフラグ161がオフのときは(ステップS113でNO)、「素振り」が行われているため、CPU10は、打球パワーデータ156を読み出し、打球パワーPをパワーバー107(図16等参照)に変換して表示する(ステップS114)。このとき、パワーゲージ104の形状が湾曲していれば、その湾曲に沿ってパワーバー107も湾曲した形状として表示する。   Next, the CPU 10 determines whether or not the shot flag 161 is on (step S113). That is, it is determined whether or not the swing performed this time is “swing”. As a result, when the shot flag 161 is off (NO in step S113), since “swing” is performed, the CPU 10 reads the hitting power data 156 and sets the hitting power P to the power bar 107 (see FIG. 16 and the like). ) And displayed (step S114). At this time, if the shape of the power gauge 104 is curved, the power bar 107 is also displayed as a curved shape along the curve.

一方、上記ステップS113の判定の結果、ショットフラグ161がオンのときは(ステップS113でYES)、CPU10は、打球を飛ばすためのショット処理を実行する(ステップS115)。図48は、上記ショット処理の詳細を示すフローチャートである。図48において、まず、CPU10は、バックスピンフラグ163にオンを設定する(ステップS121)。更に、CPU10は、飛球中フラグ162をオンに設定する(ステップS122)。   On the other hand, if the result of the determination in step S113 is that the shot flag 161 is on (YES in step S113), the CPU 10 executes a shot process for skipping a hit ball (step S115). FIG. 48 is a flowchart showing details of the shot processing. In FIG. 48, first, the CPU 10 sets the backspin flag 163 to ON (step S121). Further, the CPU 10 sets the flying ball flag 162 to ON (step S122).

次に、CPU10は、打球パワーデータ156を読み出し、上記打球パワーPをパワーバー107に変換して表示する(ステップS123)。続いて、CPU10は、上記打球パワーPや捻り角度、更には、(現在状態データ159を参照して得られる、現在選択されているゴルフクラブの種類や打った場所(フェアウェイやラフ等)、風向き等のデータに基づいて、打球の弾道や移動速度等の打球のパラメータを算出する(ステップS124)。算出されたパラメータは、打球パラメータ158として外部メインメモリ12に記憶される。以上で、ショット処理は終了する。   Next, the CPU 10 reads the hit ball power data 156, converts the hit ball power P into the power bar 107, and displays it (step S123). Subsequently, the CPU 10 determines the hitting power P, the twist angle, and the type of golf club that is currently selected (obtained by referring to the current state data 159, the hit location (fairway, rough, etc.), and the wind direction. Based on such data, the parameters of the hit ball such as the trajectory of the hit ball and the moving speed are calculated (step S124), and the calculated parameters are stored in the external main memory 12 as the hit ball parameter 158. The shot processing is thus completed. Ends.

図41に戻り、ショット処理が終了すれば、次に、CPU10は、上記振りかぶり角度θを前回振りかぶり角度データ152として外部メインメモリ12に記憶する(ステップS116)。更に、CPU10は、上記追従角度θhを前回追従角度データ153として外部メインメモリ12に記憶する(ステップS117)。また、CPU10は、上記スイング関連処理において算出されたしなり角を前回しなり角データ154として外部メインメモリ12に記憶する(ステップS118)。以上で、インパクト関連処理は終了する。   Returning to FIG. 41, when the shot processing is completed, the CPU 10 stores the above-mentioned swing-up angle θ in the external main memory 12 as the previous swing-up angle data 152 (step S116). Further, the CPU 10 stores the follow-up angle θh as the previous follow-up angle data 153 in the external main memory 12 (step S117). In addition, the CPU 10 stores the bending angle calculated in the swing related process in the external main memory 12 as the bending angle data 154 (step S118). This is the end of the impact related process.

図37に戻り、インパクト関連処理が終了すれば、次に、CPU10は、構え直しガイド処理を実行する(ステップS18)。本処理は、上記図12に示したような構え直しガイド105の表示タイミングを測り、当該ガイドメッセージを表示するための処理である(上述した処理概要の説明における(3)ガイドメッセージ表示関連処理に相当)。   Returning to FIG. 37, if the impact-related processing is completed, the CPU 10 then executes the repositioning guide processing (step S18). This process is a process for measuring the display timing of the repositioning guide 105 as shown in FIG. 12 and displaying the guide message ((3) Guide message display related process in the description of the process outline described above. Equivalent).

図49は、上記ステップS18で示した構え直しガイド処理の詳細を示すフローチャートである。図49において、まず、CPU10は、ガイド表示カウンタ155をリセットする条件が満たされているか否かの判定を行う(ステップS131)。すなわち、上述したような、入力装置8の姿勢が、「構えなおし」のときに期待される姿勢(アドレスに近い姿勢)と大きく異なっているか否かという条件と、スイング中の状態か否かという条件である。(なお、Bボタンが押されたか否かという条件については、上記図38のステップS34の処理で対応している)。
より具体的には、
(1)入力装置のローカルZ軸が水平よりも上を向いていて、ローカルY軸が水平より下を向いているか(例えば、野球のバットを持ったときの構えなど)。
(2)角速度の絶対値が30deg/secより大きいか
(3)加速度の絶対値が0.2Gより大きいか。
という3つの条件について、それぞれ満たされているか否かを判定する。
FIG. 49 is a flowchart showing details of the readjustment guide process shown in step S18. In FIG. 49, first, the CPU 10 determines whether or not a condition for resetting the guide display counter 155 is satisfied (step S131). That is, as described above, whether or not the posture of the input device 8 is significantly different from the posture expected when “repositioning” (the posture close to the address), and whether or not it is in a swinging state. It is a condition. (Note that the condition whether or not the B button is pressed corresponds to the process in step S34 in FIG. 38).
More specifically,
(1) Whether the local Z-axis of the input device is above the horizontal and the local Y-axis is below the horizontal (for example, when holding a baseball bat).
(2) Whether the absolute value of angular velocity is greater than 30 deg / sec. (3) Whether the absolute value of acceleration is greater than 0.2G.
It is determined whether each of the three conditions is satisfied.

次に、CPU10は、上記3つの条件のうち、一つでも条件が満たされているか否かを判定する(ステップS132)。その結果、1つでも条件が満たされていれば(ステップS132でYES)、リセット条件が満たされたとして、CPU10は、ガイド表示カウンタ155をリセットし(ステップS133)、構え直しガイド処理を終了する。   Next, the CPU 10 determines whether or not one of the three conditions is satisfied (step S132). As a result, if even one of the conditions is satisfied (YES in step S132), the CPU 10 resets the guide display counter 155 (step S133) and completes the repositioning guide process, assuming that the reset condition is satisfied. .

一方、上記3つの条件のいずれも満たされていないときは(ステップS132でNO)、CPU10は、ガイド表示カウンタをカウントアップするための処理を実行する。具体的には、まず、CPU10は、上述したような、(構え直しの)必要度Krの算出処理を実行する(ステップS134)。図50は、必要度Krの算出処理の詳細を示すフローチャートである。図50において、まず、CPU10は、上述したような仮想基準面を算出し、外部メインメモリ12に記憶する(ステップS141)。この処理は、図42を用いて上述したステップS71の処理と同様の処理である。   On the other hand, when none of the above three conditions is satisfied (NO in step S132), the CPU 10 executes a process for counting up the guide display counter. Specifically, first, the CPU 10 executes a calculation process of the necessary degree Kr (reposition) as described above (step S134). FIG. 50 is a flowchart showing details of the necessary degree Kr calculation processing. In FIG. 50, first, the CPU 10 calculates the virtual reference plane as described above and stores it in the external main memory 12 (step S141). This process is the same as the process of step S71 described above with reference to FIG.

次に、CPU10は、現在の基準平面と上記仮想基準面との角度差(面法線と面法線のなす角度)の絶対値を算出する(ステップS142)。   Next, the CPU 10 calculates the absolute value of the angle difference (angle formed by the surface normal and the surface normal) between the current reference plane and the virtual reference plane (step S142).

次に、CPU10は、上記ステップS142で算出した角度差を必要度Krに変換する(ステップS143)。具体的には、角度差が11°以上のときは構え直し不要、角度差が0°であれば、構え直し不要と定義し、この間の0°〜11°までの角度差を、線形補間を用いて0.0〜1.0の範囲内の値に変換して、必要度Krとする。以上で、必要度Krの算出処理は終了する。   Next, the CPU 10 converts the angle difference calculated in step S142 into the necessary degree Kr (step S143). Specifically, when the angle difference is 11 ° or more, repositioning is not necessary, and when the angle difference is 0 °, it is defined that repositioning is not necessary. The angle difference between 0 ° and 11 ° is linear interpolation. The value is converted into a value within the range of 0.0 to 1.0, and the necessary degree Kr is obtained. Thus, the calculation process of the necessary degree Kr is completed.

図49に戻り、次に、CPU10は、構え姿勢可能性Ksの算出処理を実行する(ステップS135)。図51は、上記ステップS135で示した構え姿勢可能性Ksの算出処理の詳細を示すフローチャートである。図51において、まず、操作データ127に含まれる角速度データに基づき、現在の角速度を角速度の安定状態を示す変数Swに変換する(ステップS151)。具体的には、角速度の絶対値0deg/sec〜30deg/secを、線形補間を用いて0.0〜1.0の範囲内の値に変換し、変数Swとする。   Returning to FIG. 49, next, the CPU 10 executes a process of calculating a holding posture possibility Ks (step S <b> 135). FIG. 51 is a flowchart showing details of the calculation process of the attitude / posture possibility Ks shown in step S135. In FIG. 51, first, based on the angular velocity data included in the operation data 127, the current angular velocity is converted into a variable Sw indicating a stable state of the angular velocity (step S151). Specifically, the absolute value of the angular velocity 0 deg / sec to 30 deg / sec is converted into a value within the range of 0.0 to 1.0 using linear interpolation, and set as a variable Sw.

次に、CPU10は、操作データ127に含まれる加速度データに基づき、現在の加速度を加速度の安定状態を示す変数Saに変換する(ステップS152)。具体的には、加速度の絶対値0G〜0.2Gを、線形補間を用いて0.0〜1.0の範囲内の値に変換し、変数Saとする。   Next, the CPU 10 converts the current acceleration into a variable Sa indicating the stable state of acceleration based on the acceleration data included in the operation data 127 (step S152). Specifically, the absolute values of acceleration 0G to 0.2G are converted into values in the range of 0.0 to 1.0 using linear interpolation, and set as a variable Sa.

次に、CPU10は、ローカルX軸の重力方向成分を、構え直し姿勢の正しさを示す変数Stに変換する(ステップS153)。すなわち、図31を用いて上述したような、X軸の水平度合いを0.0(X軸が垂直な状態)〜1.0(X軸が水平な状態)の範囲の値に換算して変数Stとする。   Next, the CPU 10 converts the gravitational direction component of the local X axis into a variable St that indicates the correctness of the holding posture (step S153). That is, as described above with reference to FIG. 31, the horizontal degree of the X axis is converted into a value in the range of 0.0 (the X axis is vertical) to 1.0 (the X axis is horizontal). Let it be St.

次に、CPU10は、上述した式8(Ks=Sw×Sa×St)を用いて、構え姿勢可能性Ksを算出する(ステップS154)。以上で、構え姿勢可能性Ksの算出処理は終了する。   Next, the CPU 10 calculates a holding posture possibility Ks using the above-described Expression 8 (Ks = Sw × Sa × St) (step S154). Thus, the calculation process of the posture attitude possibility Ks ends.

図49に戻り、次に、CPU10は、必要度Krおよび構え姿勢可能性Kに基づき、上記の式9(C=C+Kr×Ks)を用いてかまえ表示カウンタCをカウントアップする(ステップS136)。   Returning to FIG. 49, next, the CPU 10 counts up the display display counter C using the above formula 9 (C = C + Kr × Ks) based on the necessary degree Kr and the holding posture possibility K (step S136).

次に、CPU10は、構え表示カウンタCが30を越えたか否かを判定する(ステップS137)。その結果、30を越えていれば(ステップS137でYES)、上記図10で示したような構え直しガイド105を表示するための処理を実行する(ステップS138)。一方、30を越えていないときは(ステップS137でNO)、CPU10は、そのまま構え直しガイド処理を終了する。   Next, the CPU 10 determines whether or not the attitude display counter C has exceeded 30 (step S137). As a result, if it exceeds 30 (YES in step S137), processing for displaying the repositioning guide 105 as shown in FIG. 10 is executed (step S138). On the other hand, when it does not exceed 30 (NO in step S137), the CPU 10 repositions and ends the guide process.

図37に戻り、構え直しガイド処理が終了すれば、次に、CPU10は、その他のゲーム処理を実行する(ステップS19)。すなわち、本発明に関すること以外のゴルフゲームにかかる処理を実行する。その後、上述したステップS20以降の処理が実行される。   Returning to FIG. 37, when the repositioning guide process is completed, the CPU 10 then executes other game processes (step S <b> 19). That is, a process related to a golf game other than that related to the present invention is executed. Thereafter, the processes after step S20 described above are executed.

次に、上記図35のステップS3の判定の結果、飛球中フラグ162がオンのときの処理(ステップS3でYES)を説明する。このときは、インパクトが発生した後、つまり、ショットした後ということになるため、CPU10は、ボール移動処理を実行する(ステップS4)。この処理では、打球を移動させるための処理、および、バックスピンに関する処理が実行される。   Next, the processing when the flying ball flag 162 is turned on as a result of the determination in step S3 of FIG. 35 (YES in step S3) will be described. At this time, since an impact has occurred, that is, after a shot, the CPU 10 executes a ball movement process (step S4). In this process, a process for moving the hit ball and a process related to backspin are executed.

図52は、上記ボール移動処理の詳細を示すフローチャートである。図52において、まず、CPU10は、バックスピンフラグがオンか否かを判定する(ステップS161)。その結果、オンのときは(ステップS161でYES)、CPUはバックスピン率設定処理(ステップS162)を実行してからステップS163の処理に進み、オフのときは(ステップS161でNO)、ステップS162の処理は実行せずにステップS163の処理に進む。   FIG. 52 is a flowchart showing details of the ball movement process. In FIG. 52, first, the CPU 10 determines whether or not the backspin flag is on (step S161). As a result, when it is on (YES in step S161), the CPU executes the backspin rate setting process (step S162) and then proceeds to the process of step S163. When it is off (NO in step S161), step S162 The process proceeds to step S163 without executing the process.

図53は、上記ステップS162で示したバックスピン率設定処理の詳細を示すフローチャートである。この処理では、クラブヘッド部分の前方へのしなり角の最大値を検出してバックスピン率に反映するための処理が実行される。図53において、まず、CPU10は、上記しなり角φを算出するためのしなり角算出処理を実行する(ステップS171)。本処理は、図40を用いて説明したステップS54の処理と同じであるため、説明は省略する。   FIG. 53 is a flowchart showing details of the backspin rate setting process shown in step S162. In this process, a process for detecting the maximum value of the forward bending angle of the club head portion and reflecting it in the backspin rate is executed. In FIG. 53, first, the CPU 10 executes a bending angle calculation process for calculating the bending angle φ (step S171). This process is the same as the process of step S54 described with reference to FIG.

次に、CPU10は、算出されたしなり角φの値が、正の値であるか否かを判定する(ステップS172)。当該判定の結果、正の値でないときは(ステップS172でNO)、CPU10は、算出されたしなり角で前回しなり角データ154を更新し(ステップS177)、バックスピン率設定処理を終了する。   Next, the CPU 10 determines whether or not the calculated value of the bending angle φ is a positive value (step S172). If the result of this determination is not a positive value (NO in step S172), the CPU 10 updates the previous corner data 154 with the calculated corner angle (step S177) and ends the backspin rate setting process. .

一方、算出されたしなり角φの値が、正の値のときは(ステップS172でYES)、次に、CPU10は、しなりの折り返しが発生したか否かを判定する(ステップS173)。しなりの折り返しとは、バックスピンをかけるようなスイングによってゴルフクラブのヘッド部分が前方へしなった後、反発してまた後方へ戻り始めたときのことである。例えば、CPU10は、前回しなり角データ154で示されるしなり角が上記ステップS171で算出されたしなり角φより大きければ、折り返しが発生したと判定する。そして、当該判定の結果、折り返しが発生していないときは(ステップS173でNO)、まだ前方へ向かってのしなりが継続している状態と考えられるため、CPU10は、上記ステップS177の処理を実行してから、バックスピン率設定処理を終了する。   On the other hand, when the calculated value of the bending angle φ is a positive value (YES in step S172), the CPU 10 next determines whether or not a bending of the bending has occurred (step S173). The bent back is when the head portion of the golf club is moved forward by a swing that applies backspin and then rebounds and begins to return backward. For example, if the previous bending angle indicated by the bending angle data 154 is larger than the bending angle φ calculated in step S171, the CPU 10 determines that folding has occurred. As a result of the determination, if no wrapping occurs (NO in step S173), it is considered that the forward bending is still continuing, so the CPU 10 performs the process of step S177. After the execution, the backspin rate setting process is terminated.

一方、折り返しが発生したときは(ステップS173でYES)、次に、CPU10は、そのときに選択されているゴルフクラブの種類等に基づいて、しなり角のバックスピンへの反映率を決定する処理を実行する(ステップS174)。例えば、クラブの種類がドライバであれば、バックスピンがかかりにくくなるよう、反映率としては低い値を設定する。   On the other hand, when the turn-back has occurred (YES in step S173), the CPU 10 next determines the reflection rate of the bending angle to the backspin based on the type of the golf club selected at that time. Processing is executed (step S174). For example, if the club type is a driver, a low value is set as the reflection rate so that backspin is less likely to occur.

次に、CPU10は、上記決定された反映率と、前回しなり角データ154で示されるしなり角(すなわち、前方へのしなりの最大値となる)に基づき、バックスピン率を決定する(ステップS175)。決定されたバックスピン率は、バックスピン率データ157として外部メインメモリ12に記憶される。   Next, the CPU 10 determines the backspin rate based on the determined reflection rate and the previous bend angle indicated by the bend angle data 154 (ie, the maximum bend forward value) ( Step S175). The determined backspin rate is stored in the external main memory 12 as backspin rate data 157.

次に、CPU10は、バックスピンフラグ163をオフに設定する(ステップS176)。以上で、バックスピン率設定処理は終了する。   Next, the CPU 10 sets the backspin flag 163 to OFF (step S176). This completes the backspin rate setting process.

図52に戻り、バックスピン率設定処理の後、CPU10は、打球パラメータ158に基づいて、打球(ボール103)を移動する。また、バックスピン率が決定した後は、当該バックスピン率にも基づいて打球を移動させる(ステップS163)。つまり、ショットの直後は、まだバックスピン率は未決定の状態であるため、打球パラメータ158のみに基づいて(バックスピンがかかっていない状態で)打球が移動される。その後、バックスピン率が決定した後(バックスピンフラグ163がオフになった後)は、打球パラメータ158に加えてバックスピン率データ157も用いて打球を移動させる。一般的に、バックスピンのかかった打球は、高く上がるような弾道となる。そのため、上記のように途中からバックスピン率を適用して打球を移動させることで、打球が途中から急上昇するような弾道になり得る。また、このとき、例えば、打球を追いかけるようなカメラワークを行うための仮想カメラの設定等も適宜行われる。   Returning to FIG. 52, after the backspin rate setting process, the CPU 10 moves the hit ball (ball 103) based on the hit ball parameter 158. After the backspin rate is determined, the hit ball is moved based on the backspin rate (step S163). That is, immediately after the shot, the backspin rate is still undecided, so that the hit ball is moved based on the hit ball parameter 158 alone (in a state where no back spin is applied). Thereafter, after the back spin rate is determined (after the back spin flag 163 is turned off), the hit ball is moved using the back spin rate data 157 in addition to the hit ball parameter 158. In general, a hit ball with a backspin has a trajectory that rises higher. Therefore, by moving the hit ball by applying the backspin rate from the middle as described above, a trajectory in which the hit ball rapidly rises from the middle can be obtained. At this time, for example, setting of a virtual camera for performing camera work such as chasing a hit ball is appropriately performed.

なお、バックスピンによる打球の挙動については、上記の方法の他、例えば、上記のバックスピン率が決定しても、打球が着地するまでは打球パラメータ158のみに基づいて打球を移動させ、打球が一旦着地してから、上記バックスピン率を打球の挙動に反映するようにしてもよい。例えば、打球が着地したタイミングで、当該バックスピン率を適用した状態のインパクト時からの打球の軌道を再計算する。これにより、バックスピンを考慮した最終的な打球の位置が算出されるため、この位置にボールが来るように着地後の打球の挙動を制御するようにしてもよい。   As for the behavior of the hit ball by backspin, in addition to the above method, for example, even if the backspin rate is determined, the hit ball is moved based on only the hit ball parameter 158 until the hit ball is landed. After landing once, the backspin rate may be reflected in the behavior of the hit ball. For example, at the timing when the hit ball lands, the trajectory of the hit ball from the time of impact in a state where the back spin rate is applied is recalculated. As a result, the final hit ball position in consideration of backspin is calculated. Therefore, the behavior of the hit ball after landing may be controlled so that the ball comes to this position.

次に、CPU10は、打球の移動が終了したか否かを判定する(ステップS164)。その結果、打球の移動が終了していないときは(ステップS164でNO)、CPU10は、ボール移動処理を終了する。一方、打球の移動が終了すれば(ステップS164でYES)、CPU10は、飛球中フラグ162にオフを設定し(ステップS165)、ショット終了後におけるその他のゲーム処理を実行する(ステップS166)。これは、例えば、スコアの計算等の処理である。その後、CPU10は、終了フラグ164にオンを設定する(ステップS167)。以上で、ボール移動処理は終了する。   Next, the CPU 10 determines whether or not the movement of the hit ball has ended (step S164). As a result, when the movement of the hit ball has not ended (NO in step S164), the CPU 10 ends the ball movement process. On the other hand, if the movement of the hit ball is completed (YES in step S164), the CPU 10 sets the flying ball flag 162 to OFF (step S165), and executes other game processing after the shot is ended (step S166). This is, for example, processing such as score calculation. Thereafter, the CPU 10 sets the end flag 164 to ON (step S167). This completes the ball movement process.

図35に戻り、ボール移動処理が終了すれば、上記ステップS20の描画処理以降の処理が実行される。上記ボール移動処理において終了フラグ164にオンが設定されていれば、ステップS20の判定の結果、本実施形態にかかる処理、つまり、一打分の処理が終了する。以上で、本実施形態にかかる処理の詳細説明を終了する。   Returning to FIG. 35, when the ball movement process is completed, the process after the drawing process in step S20 is executed. If the end flag 164 is set to ON in the ball movement process, as a result of the determination in step S20, the process according to the present embodiment, that is, the process for one stroke is completed. This is the end of the detailed description of the processing according to the present embodiment.

このように、本実施形態では、パワーゲージ104について、上記捻り角度と振りかぶり量(打球のパワーの目安)という、異なる2つの要素についての情報を1つのパワーゲージ104でプレイヤに提示している。これにより、プレイヤに、フェースの開き具合や、どの程度強い打球を打つことができるか等を直感的に把握させることが可能となる。   As described above, in the present embodiment, for the power gauge 104, information about two different elements such as the twist angle and the amount of swinging-up (a measure of the hitting ball power) is presented to the player using one power gauge 104. This makes it possible for the player to intuitively understand how the face opens and how strong the ball can be hit.

また、本実施形態では、上記のような「構え直し」の際の基準平面の算出について、Bボタン32iが押されたときの、プレイヤの個人差による入力装置8の持ち方の違いによって、基準平面を算出するための計算が不安定となることを回避している。そのため、より適切に基準平面を算出でき、その結果、インパクトの判定についてもより適切な判定を実行することが可能となる。   In the present embodiment, the calculation of the reference plane at the time of “repositioning” as described above is based on the difference in how the input device 8 is held due to individual differences of the player when the B button 32i is pressed. It avoids that the calculation for calculating the plane becomes unstable. Therefore, it is possible to calculate the reference plane more appropriately, and as a result, it is possible to execute more appropriate determination for impact determination.

また、「構え直し」の操作を行うべきタイミングについて、上記のような構え直しの必要度Kr、および、構え姿勢可能性Ksを用いて、より適切なタイミングを測っている。これにより、プレイヤに、無駄に構え直し操作を行わせることを防ぐ事ができる。また、必要なときに構え直し操作を行わせることもできる。   Further, with respect to the timing at which the “reading” operation is to be performed, a more appropriate timing is measured by using the readiness degree Kr and the holding posture possibility Ks as described above. As a result, it is possible to prevent the player from performing a holding operation unnecessarily. In addition, it is possible to perform a repositioning operation when necessary.

更に、スイング動作のうちの振り下ろしにかかる動作の内容(振り下ろしの強さ)を打球パワーに反映する処理を行っているため、入力装置8自体を動かすことによる操作の一体感をより高めることができ、ゲームの興趣性を高めることができる。また、加速度を利用して打球パワーPの決定を行っているため、プレイヤが入力装置8を振りかぶった後、単純に速い速度でスイングした場合はもちろんのこと、例えば、腕のリーチが長いプレイヤが大きなスイングを行った場合等、スイングの角度の時間的変化はゆっくりではあるが、加速度としては大きな加速度(つまり、遠心力)が発生するようなスイングについても強いスイングとして捉えることができ、打球パワーに反映することが可能となる。   Furthermore, since the process of reflecting the content of the swing-down motion (the strength of the swing-down) in the swing motion is reflected in the hitting ball power, the sense of unity of the operation by moving the input device 8 itself is further enhanced. Can enhance the fun of the game. Further, since the hitting ball power P is determined by using the acceleration, the player swings the input device 8 and then swings at a fast speed. Although the time change of the swing angle is slow, such as when a large swing is performed, a swing that generates a large acceleration (that is, centrifugal force) can be regarded as a strong swing, and the hitting power Can be reflected in

また、ボタン操作ではなく、スイングの仕方によって打球にバックスピンをかけることができるため、よりリアリティの高い操作感を有するゴルフゲームをプレイヤに提供することができる。   Further, since the backspin can be applied to the hit ball not by the button operation but by the way of swinging, it is possible to provide the player with a golf game having a higher sense of operation.

なお、上記「構え直し」の操作に関しては、上述した実施形態では、Bボタン32iが押されたときに実行するようにしていたが、この他、ボタン入力が無くても、入力装置8の姿勢が「構え直し」で期待されるような姿勢のまま、所定時間以上静止しているような状態であれば、Bボタン32iが押されたものとみなして、上記構え直しに係る処理を実行するようにしてもよい。   In addition, in the above-described embodiment, the “reposition” operation is performed when the B button 32i is pressed. In addition, even if there is no button input, the attitude of the input device 8 is determined. Is in a posture that is expected to be “reading” and remains stationary for a predetermined time or longer, it is considered that the B button 32 i has been pressed, and the processing relating to the above-mentioned holding is executed. You may do it.

また、上記実施形態では、構え直し操作をプレイヤが行うことを推奨するために、構え直しガイド105を表示するという処理を行っていた。これに限らず、例えば、構え直しガイド105を表示する代わりに、所定の音声案内を出力することで、構え直し操作を行うことを推奨するようにしてもよい。   Further, in the above embodiment, in order to recommend that the player perform the repositioning operation, the process of displaying the repositioning guide 105 is performed. For example, instead of displaying the repositioning guide 105, it may be recommended to perform a repositioning operation by outputting a predetermined voice guidance.

また、パワーゲージ104に関して、捻り角度に応じて湾曲させていたが、更に、ボール103を打つ場所(地形)による要素を加えて、パワーゲージの形状を変化させてもよい。つまり、ボールを打つ場所によるボールの射出方向や軌道(弾道)の変化についての情報も、パワーゲージ104の形状の変化で提示するようにしてもよい。図54に、ボール103を打つ場所によるパワーゲージ104の形状の違いの例を示す。図54(a)は、フェアウェイで打つ場合を示し、図54(b)は、例えば、バンカーで打つ場合を示している。図54(a)のパワーゲージ104では、射出方向は前方に真っ直ぐの方向であることが示されている(つまり、ボールは、真っ直ぐの方向射出された後、右曲がりにスライスするような飛び方)。一方、図54(b)のパワーゲージ104の場合は、パワーゲージ104の根本部分からやや右に傾斜するような変化となっており、射出方向が右斜め前となっていること(打球は最初から右斜め前に飛んでいき、更に右にスライスする)が示されている。また、図54では、フェアウェイではパワーゲージを根本から傾斜させず、バンカーでは、パワーゲージを根本から傾斜させていることも示されている。すなわち、特定の地形でボールを打つときのみ根本から傾斜させるような処理を行っても良い。   Further, the power gauge 104 is curved according to the twist angle, but the shape of the power gauge may be changed by adding an element depending on a place (terrain) where the ball 103 is hit. That is, information on the change in the ball ejection direction and the trajectory (ball trajectory) depending on the location where the ball is hit may also be presented as the shape of the power gauge 104 changes. FIG. 54 shows an example of the difference in shape of the power gauge 104 depending on where the ball 103 is hit. FIG. 54 (a) shows a case of hitting with a fairway, and FIG. 54 (b) shows a case of hitting with a bunker, for example. In the power gauge 104 of FIG. 54 (a), it is indicated that the injection direction is a straight direction forward (that is, the ball is shot in a straight direction and then slicing in a right turn). ). On the other hand, in the case of the power gauge 104 in FIG. 54 (b), the change is such that it tilts slightly to the right from the root of the power gauge 104, and the injection direction is diagonally forward to the right (the first hit ball is To the right diagonally forward and slice further to the right). FIG. 54 also shows that the power gauge is not inclined from the root in the fairway, and the power gauge is inclined from the root in the bunker. That is, a process of tilting from the root only when a ball is hit on a specific terrain may be performed.

また、上記実施形態では、パワーゲージ104の形状を湾曲させる場合を例に挙げたが、この他、パワーゲージ104の表示色を変えて表示するようにしてもよい。例えば、通常はパワーゲージ104の枠の色を白色で表示しておき、湾曲度が所定値以上の場合は、パワーゲージ104の枠線を赤色で表示するようにしてもよい。同様に、スイングバー106やパワーバー107に表示色についても、振りかぶり量Hや捻り角度、打球パワーP等の大きさに応じて変化させるようにしてもよい。   Moreover, although the case where the shape of the power gauge 104 was curved was mentioned as an example in the said embodiment, you may make it display by changing the display color of the power gauge 104 besides this. For example, the frame of the power gauge 104 is normally displayed in white, and when the degree of curvature is a predetermined value or more, the frame of the power gauge 104 may be displayed in red. Similarly, the colors displayed on the swing bar 106 and the power bar 107 may be changed according to the swinging amount H, twist angle, hitting power P, and the like.

また、上記実施形態では、結果的に、インパクト発生時に打球パワーPと捻り角度が同時に決定するという形になっているが、これに限らず、必ずしも同時に決定する必要はない。いずれか一方が先に決定され、その後、他方を決定するようにしてもよい。例えば、捻り角度を打球パワーPよりも先に決定するようにした場合は、捻り角度が決定するまでは、スイングバー106に移動とパワーゲージ104の湾曲を共に行い、捻り角度が決定した後は、パワーゲージの湾曲状態を固定し、スイングバー106のみ移動させるようにしてもよい。また、打球パワーPと捻り角度のいずれか一方が決定された時点で、パワーゲージ104の湾曲状態とスイングバー106の位置(つまり、表示状態のみ)を固定させるようにしてもよい。例えば、ショットした瞬間に、パワーゲージ104の湾曲状態とスイングバー106の位置が固定されて(表示状態は同時に固定する)、かつ湾曲状態に関連した打球の曲がり具合も決定するが(パラメータの片方が決定する)、打球パワーについては、プレイヤが入力装置8を振り切ってから確定する(もう一方のパラメータは後のタイミングで決定される)ようにしてもよい。   In the above embodiment, as a result, the hitting power P and the twist angle are determined at the same time when an impact occurs. However, the present invention is not limited to this. Either one may be determined first, and then the other may be determined. For example, when the torsion angle is determined before the hitting ball power P, the swing bar 106 is moved and the power gauge 104 is bent together until the torsion angle is determined. Alternatively, the curved state of the power gauge may be fixed and only the swing bar 106 may be moved. Alternatively, the curved state of the power gauge 104 and the position of the swing bar 106 (that is, only the display state) may be fixed when one of the hitting power P and the twist angle is determined. For example, at the moment of the shot, the curved state of the power gauge 104 and the position of the swing bar 106 are fixed (the display state is fixed at the same time), and the bending state of the hit ball related to the curved state is also determined (one of the parameters). The hitting power may be determined after the player swings the input device 8 (the other parameter is determined at a later timing).

また、上記基準平面算出処理において、上述の例では、現在の基準面を新たに算出した基準平面で置き換えるような処理によって基準平面を更新していた。この他、例えば、基準平面自体はその位置を固定しておき、ゴルフクラブ102の姿勢のほうを調整するようにしてもよい。つまり、基準平面は重力方向を含む(平行である)ため、基準平面の補正は、現在の基準平面を重力方向まわり回転させる操作に相当する。従って、逆の考え方として、現在の基準平面を固定して、ゴルフクラブ(入力装置8の姿勢)の方を重力方向まわりに逆回転させたとしても、同様の効果が得られる。例えば、上記第1の候補面とその時点における基準平面との角度差を算出する。この差が例えば30°あったとする。この場合は、ゴルフクラブ102の姿勢を30°回転させるという処理を行うようにしても良い。   In the above reference plane calculation process, in the above example, the reference plane is updated by a process of replacing the current reference plane with a newly calculated reference plane. In addition, for example, the position of the reference plane itself may be fixed and the posture of the golf club 102 may be adjusted. That is, since the reference plane includes the gravitational direction (is parallel), the correction of the reference plane corresponds to an operation of rotating the current reference plane around the gravitational direction. Therefore, as a reverse idea, the same effect can be obtained even when the current reference plane is fixed and the golf club (the posture of the input device 8) is rotated backward about the direction of gravity. For example, the angle difference between the first candidate surface and the reference plane at that time is calculated. Assume that this difference is 30 °, for example. In this case, a process of rotating the posture of the golf club 102 by 30 ° may be performed.

また、上述した振りかぶり角度θを振りかぶり量Hに変換することに関し、上記の実施形態では、線形のグラフになるような(図30参照)変換を行う場合を例として挙げた。これに限らず、例えば図55に示すように、非線形のグラフとなるように振りかぶり角度θを振りかぶり量Hに変換するようにしてもよい。図55は、横軸右方向をθの正の値、縦軸上方向をHの正の値とするグラフである。図55(a)では、上に膨らむような曲線のグラフとなっており、この場合は、プレイヤが大きく振りかぶっているときほど(Hが1.0に近いほど)細かい調整を行いやすくすることができる。また、図55(b)は、下に膨らむような曲線のグラフとなっており、この場合は、プレイヤがあまり振りかぶっていないときほど(Hが0.0に近いほど)細かい調整を行いやすくすることができる。   In addition, regarding the conversion of the above-described swing-up angle θ into the swing-up amount H, the above embodiment has exemplified the case of performing the conversion so as to form a linear graph (see FIG. 30). For example, as shown in FIG. 55, the swing angle θ may be converted into the swing amount H so as to form a non-linear graph. FIG. 55 is a graph in which the right direction of the horizontal axis is a positive value of θ and the upward direction of the vertical axis is a positive value of H. In FIG. 55 (a), the graph is a curve that swells upward, and in this case, it is easier to make fine adjustments as the player swings large (as H is closer to 1.0). it can. FIG. 55 (b) is a curved graph that swells downward. In this case, the finer adjustment is facilitated as the player is not wearing too much (as H is closer to 0.0). be able to.

また、捻り角度とパワーゲージ104の湾曲度についても、同様に非線形のグラフとなるように対応付けても良い。また、ゲームの難度設定として、線形、非線形のグラフを使い分けるようにしても良い。設定操作については、プレイヤがゲームの難度を選択できるような設定画面を用意しておけばよい。そして、例えば、難度について「簡単」「普通」「難しい」の3つを用意しておく。「簡単」が選択されたときは、図56に示すような、下向きの曲線となるグラフになるような湾曲度の変換を行う。また、「普通」が選択されたときは、上記図28に示したような線形のグラフとなるような変換を行う。また、「難しい」が選択されたときは、図57に示すような、上向きに膨らむ曲線となるグラフになるような変換を行う。また、上記振りかぶり量Hの変換についても、このような難度設定に応じたグラフの使い分けをおこなってもよい。   Similarly, the twist angle and the curvature of the power gauge 104 may be associated with each other so as to form a non-linear graph. In addition, a linear or non-linear graph may be used properly as the game difficulty level setting. For the setting operation, a setting screen may be prepared so that the player can select the difficulty level of the game. For example, three levels of difficulty, “easy”, “normal”, and “difficult” are prepared. When “Easy” is selected, the degree of curvature is converted so as to form a downward curve as shown in FIG. When “normal” is selected, conversion is performed so that a linear graph as shown in FIG. 28 is obtained. Also, when “difficult” is selected, conversion is performed so as to form a graph that curves upward as shown in FIG. Further, regarding the conversion of the above-mentioned swing amount H, the graphs may be selectively used according to the difficulty level setting.

更に、打球パワーPの算出に関して、上述の実施形態で説明した算出方法に加えて、更に、プレイヤが入力装置8を振り上げてから振り下ろす(インパクトが発生する)までにかかった時間を計測し、当該時間に応じて打球パワーPを補正するようにしてもよい。すなわち、速く振り下ろしたとき(振り上げてから振り下ろしてボールにインパクトするまでの時間が相対的に短いとき)は、ゆっくり振り下ろしたときよりも打球パワーPが相対的に高くなるような処理を実行するようにしてもよい。例えば、上記打球パワー算出処理(ステップS53)において、上記追従量Tは用いずに、一旦、上記振りかぶり量Hのみに基づいて打球パワーPを仮決定する。その後、上記ショット処理(ステップS115)において、振り下ろしにかかった時間に応じて、当該打球パワーPを増減させるような補正を加える処理を実行しても良い(振り下ろしにかかった時間が相対的に短ければ、打球パワーPを増加させる補正を行い、当該時間が長ければ、打球パワーPを減少させる補正を行う等)。   Further, regarding the calculation of the hitting ball power P, in addition to the calculation method described in the above embodiment, the time taken for the player to swing the input device 8 up and down (impact occurs) is measured. You may make it correct | amend hitting power P according to the said time. That is, when swinging down quickly (when the time from swinging up to swinging down and impacting the ball is relatively short), a process in which the hitting power P is relatively higher than when swinging down slowly is performed. You may make it perform. For example, in the hitting ball power calculation process (step S53), the hitting power P is temporarily determined based only on the swinging amount H without using the follow-up amount T. Thereafter, in the shot process (step S115), a process for correcting the hitting ball power P to be increased or decreased according to the time taken to swing down may be executed (the time taken to swing down is relative). If the time is short, correction for increasing the hitting power P is performed, and if the time is long, correction for decreasing the hitting power P is performed).

また、打球パワーPの決定に関して、「力を入れすぎたショット(力みすぎたショット)」を反映するようにしてもよい。例えば、打球パワーについて、所定の値を「上限値」として予め設定しておく。そして、上記算出された打球パワーPが当該「上限値」を越えるような値のときは、「力を入れすぎたショット」であるとして、例えば打球の飛ぶ方向をランダムに変化させるようにしてもよい。例えば、「上限値」以下の打球パワーであれば、真っ直ぐ前方に飛んでいくような打球の弾道を、少し右にスライスさせる、あるいは左前方に射出される等の変化を加える処理を行う。また、このとき、パワーバー107の色を変え、左右に揺らすようなエフェクトを表示し、「力を入れすぎたショット」であることを視覚的にプレイヤに提示するようにしてもよい。   Further, regarding the determination of the hitting ball power P, “a shot with excessive force (a shot with excessive force)” may be reflected. For example, a predetermined value is set in advance as the “upper limit value” for the hitting ball power. When the calculated hitting power P is a value that exceeds the “upper limit value”, it is determined that the shot hits too much force, for example, the hitting direction of the hitting ball is changed randomly. Good. For example, if the hitting power is less than or equal to the “upper limit value”, the ballistic trajectory of a hitting ball that flies straight forward is slightly sliced to the right, or a process of adding changes such as being ejected to the left front is performed. Further, at this time, the color of the power bar 107 may be changed, and an effect that swings to the left and right may be displayed to visually indicate to the player that it is a “shot with too much power”.

また、打球パワーPの決定に関しては、上述したような追従量Tや過剰な振り強さSを用いずに、単純に、振りかぶり量の最大値(最大振りかぶり量)を打球パワーPとして用いてもよい。すなわち、最大振りかぶり量を外部メインメモリに記憶しておき、インパクト発生時に、当該最大振りかぶり量に基づいて打球パワーPを決定して、パワーバー107として表示するようにしても良い。振り下ろし時にかかる動作は打球パワーには反映されないが、処理負荷を軽減できる点で有利である。また、この場合でも、スイングバー106とパワーゲージ104自体の湾曲によって、フェースの開き具合と打球パワーに関する情報を直感的にプレイヤに提供する事は可能である。   Further, regarding the determination of the hitting ball power P, the maximum value (the maximum swinging fog amount) of the swinging fog amount can be simply used as the hitting ball power P without using the follow-up amount T and the excessive swing strength S as described above. Good. That is, the maximum swinging fog amount may be stored in the external main memory, and the impact power P may be determined based on the maximum swinging fog amount and displayed as the power bar 107 when an impact occurs. Although the operation when swinging down is not reflected in the hit ball power, it is advantageous in that the processing load can be reduced. Also in this case, it is possible to intuitively provide the player with information regarding the degree of opening of the face and the hitting ball power by the curvature of the swing bar 106 and the power gauge 104 itself.

また、上記バックスピン率の算出処理に関して、上述の実施形態の例では、バネとダンパーを想定したモデルに基づいて「しなり」をシミュレートするような処理を行っていた。このようなモデルを利用することに限らず、例えば、毎フレームの角速度の変化を監視するようにし、角速度が急激に減少していれば、スイングに急ブレーキがかけられた(制動力がかけられた)、つまり、図22で示したような、バックスピンがかかるようなスイングが行われたと判定して、バックスピン率を決定するような処理を実行するように構成しても良い。   Further, regarding the backspin rate calculation processing, in the example of the above-described embodiment, processing for simulating “bending” is performed based on a model assuming a spring and a damper. Not only using such a model, but, for example, the change in the angular velocity of each frame is monitored, and if the angular velocity is abruptly decreasing, the swing is suddenly braked (the braking force is applied). That is, as shown in FIG. 22, it may be determined that a swing that causes backspin is performed, and a process for determining the backspin rate may be executed.

更に、上記バックスピン率の算出処理に関し、上述したような角速度の変化を利用する処理だけに限らず、加速度を利用して上記制動力の発生を判定するようにしてもよい。例えば、上記のような、スイングを急に止めるような操作を行うと、急にスイングを止めた反動で、それまでとは逆方向への加速度が発生する。そこで、当該逆方向への加速度の変化(上記前方へのしなりの相当する)を監視するようにし、これに基づいてバックスピン率を決定する処理を実行しても良い。   Further, regarding the backspin rate calculation process, the generation of the braking force may be determined using acceleration as well as the process using the change in angular velocity as described above. For example, when an operation for suddenly stopping the swing as described above is performed, an acceleration in the reverse direction is generated due to the reaction that suddenly stopped the swing. Therefore, the change in acceleration in the reverse direction (corresponding to the forward bending) may be monitored, and the process of determining the backspin rate based on the change may be executed.

また、図47を用いて上述したインパクト関連処理に関し、本実施形態では、振りかぶり角度θを利用してインパクトの発生を判定しており、その一例として、上述したように、振りかぶり角度θの符号が反転したか否かを判定すること(ステップS111)でインパクトの発生を判定していた。振りかぶり角度θを利用したインパクトの発生の判定方法については、この他、入力装置8のZ軸方向についての姿勢と上記基準平面とが水平になったか否かを角度θに基づいて判定することでインパクトの発生を判定するようにしても良い。両者が水平であれば(振りかぶり角度θが0°であれば)、インパクトが発生したと判定すればよい。   In addition, regarding the impact-related processing described above with reference to FIG. 47, in this embodiment, the occurrence of impact is determined using the swing-up angle θ. As an example, as described above, the sign of the swing-up angle θ is The occurrence of impact was determined by determining whether or not it was reversed (step S111). In addition to the method for determining the occurrence of impact using the swing angle θ, whether or not the attitude of the input device 8 in the Z-axis direction and the reference plane are horizontal is determined based on the angle θ. You may make it determine generation | occurrence | production of an impact. If both are horizontal (if the swing angle θ is 0 °), it may be determined that an impact has occurred.

更に、上記実施形態では、入力装置8の姿勢の検出について、上記ジャイロセンサユニット7や加速度センサ37を用いていた。これに限らず、入力装置8の姿勢の検出については、所定のカメラで入力装置8を撮像し、当該撮像データに基づいて入力装置8の姿勢を算出するようにしてもよい。例えば、所定のカメラで入力装置8を撮像し、当該撮像画像のデータをゲーム装置3に取得させる。そして、CPU10は、撮像画像に写っている入力装置8を識別し、その姿勢を判別して入力装置8の動きを検出する等の処理を実行すればよい。   Further, in the above embodiment, the gyro sensor unit 7 and the acceleration sensor 37 are used for detecting the attitude of the input device 8. For example, the attitude of the input device 8 may be detected by imaging the input device 8 with a predetermined camera and calculating the attitude of the input device 8 based on the imaging data. For example, the input device 8 is imaged with a predetermined camera, and the game device 3 is caused to acquire data of the captured image. Then, the CPU 10 may perform processing such as identifying the input device 8 shown in the captured image, determining its posture, and detecting the movement of the input device 8.

本発明にかかるゲームプログラムおよびゲーム装置は、ゴルフゲームにおけるショットの判定や野球ゲームにおけるボールとバットとのヒッティング判定等の処理において誤認識や誤判定の発生を防ぐことができ、動きセンサを備えた入力装置を用いる各種ゲーム装置やゲーム処理が実行されるパーソナルコンピュータ等に有用である。   A game program and a game apparatus according to the present invention can prevent occurrence of erroneous recognition and erroneous determination in processing such as shot determination in a golf game and hitting determination between a ball and a bat in a baseball game, and include a motion sensor. The present invention is useful for various game devices using the input device, personal computers on which game processing is executed, and the like.

1…ゲームシステム
2…モニタ
2a…スピーカ
3…ゲーム装置
4…光ディスク
5…コントローラ
7…ジャイロセンサユニット
8…入力装置
10…CPU
11…システムLSI
11a…入出力プロセッサ
11b…GPU
11c…DSP
11d…VRAM
11e…内部メインメモリ
12…外部メインメモリ
13…ROM/RTC
14…ディスクドライブ
15…AV−IC
16…AVコネクタ
17…フラッシュメモリ
18…無線通信モジュール
19…無線コントローラモジュール
20…拡張コネクタ
21…外部メモリカード用コネクタ
22…アンテナ
23…アンテナ
24…電源ボタン
25…リセットボタン
26…イジェクトボタン
30…基板
31…ハウジング
32…操作部
33…コネクタ
34…LED
35…撮像情報演算部
36…通信部
37…加速度センサ
38…赤外線フィルタ
39…レンズ
40…撮像素子
41…画像処理回路
42…マイコン
43…メモリ
44…無線モジュール
45…アンテナ
48…バイブレータ
49…スピーカ
53…プラグ
54…マイコン
55…2軸ジャイロセンサ
56…1軸ジャイロセンサ
DESCRIPTION OF SYMBOLS 1 ... Game system 2 ... Monitor 2a ... Speaker 3 ... Game device 4 ... Optical disk 5 ... Controller 7 ... Gyro sensor unit 8 ... Input device 10 ... CPU
11 ... System LSI
11a: I / O processor 11b: GPU
11c DSP
11d ... VRAM
11e ... internal main memory 12 ... external main memory 13 ... ROM / RTC
14 ... Disk drive 15 ... AV-IC
16 ... AV connector 17 ... Flash memory 18 ... Wireless communication module 19 ... Wireless controller module 20 ... Expansion connector 21 ... External memory card connector 22 ... Antenna 23 ... Antenna 24 ... Power button 25 ... Reset button 26 ... Eject button 30 ... Substrate 31 ... Housing 32 ... Operation unit 33 ... Connector 34 ... LED
35 ... Imaging information calculation unit 36 ... Communication unit 37 ... Acceleration sensor 38 ... Infrared filter 39 ... Lens 40 ... Imaging element 41 ... Image processing circuit 42 ... Microcomputer 43 ... Memory 44 ... Wireless module 45 ... Antenna 48 ... Vibrator 49 ... Speaker 53 ... Plug 54 ... Microcomputer 55 ... 2-axis gyro sensor 56 ... 1-axis gyro sensor

Claims (33)

ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲーム装置のコンピュータに実行させるゲームプログラムであって、
前記コンピュータを、
前記検出手段で検出された姿勢動き情報を取得する姿勢動き情報取得手段と、
前記姿勢動き情報に基づいて前記入力装置の姿勢を算出する姿勢算出手段と、
所定のタイミングで、前記姿勢動き情報に基づいて所定の平面を基準平面として実空間内に仮想的に設定する基準平面設定手段と、
前記基準平面に対する前記入力装置の姿勢に応じて、前記オブジェクトを移動させるための所定の処理を実行する処理手段として機能させる、ゲームプログラム。
A game program to be executed by a computer of a game device that moves an object in a virtual space based on posture motion information acquired from predetermined detection means for detecting the posture or motion of an input device operated by a user,
The computer,
Posture movement information acquisition means for acquiring posture movement information detected by the detection means;
Posture calculating means for calculating the posture of the input device based on the posture movement information;
A reference plane setting means for virtually setting a predetermined plane as a reference plane in a real space based on the posture movement information at a predetermined timing;
A game program that functions as a processing unit that executes a predetermined process for moving the object according to a posture of the input device with respect to the reference plane.
前記所定の検出手段は前記入力装置に備えられている所定の動きセンサである、請求項1に記載のゲームプログラム。   The game program according to claim 1, wherein the predetermined detection means is a predetermined motion sensor provided in the input device. 前記基準平面設定手段は、前記姿勢算出手段で算出された前記入力装置の姿勢に基づいて前記基準平面を設定する、請求項1に記載のゲームプログラム。   The game program according to claim 1, wherein the reference plane setting unit sets the reference plane based on the attitude of the input device calculated by the attitude calculation unit. 前記基準平面設定手段は、ユーザが前記入力装置を操作した時の姿勢に基づいて前記基準平面を設定する、請求項3に記載のゲームプログラム。   The game program according to claim 3, wherein the reference plane setting means sets the reference plane based on a posture when a user operates the input device. 前記ゲームプログラムは、前記コンピュータを、
前記入力装置の姿勢と前記基準平面とのなす角度を算出する角度算出手段と、
前記入力装置の姿勢と前記基準平面とのなす角度が所定の条件を満たしたか否かを判定する判定手段として更に機能させ、
前記処理手段は、前記判定手段において所定の条件を満たしたと判定された時に、所定の処理を実行する、請求項3に記載のゲームプログラム。
The game program causes the computer to
An angle calculating means for calculating an angle formed between the posture of the input device and the reference plane;
Further function as a determination means for determining whether an angle formed between the posture of the input device and the reference plane satisfies a predetermined condition;
The game program according to claim 3, wherein the processing unit executes a predetermined process when the determination unit determines that a predetermined condition is satisfied.
前記判定手段は、前記角度算出手段で算出された角度に基づいて、前記入力装置の姿勢と前記基準平面とが水平になったか否かを判定する、請求項5に記載のゲームプログラム。   The game program according to claim 5, wherein the determination unit determines whether or not the attitude of the input device and the reference plane are horizontal based on the angle calculated by the angle calculation unit. 前記ゲームプログラムは、前記コンピュータに、前記判定手段によって前記入力装置の姿勢と前記基準平面とのなす角度が所定の条件を満たしたと判定されるまで、前記姿勢動き情報取得手段と、前記姿勢算出手段と、前記角度算出手段と、前記判定手段による処理を繰り返し実行させる、請求項5に記載のゲームプログラム。 The game program includes the posture movement information acquisition unit and the posture calculation unit until the computer determines that the angle between the posture of the input device and the reference plane satisfies a predetermined condition by the determination unit. When the the angle calculating means, the determining means repeatedly by treatment causes execution, a game program according to claim 5. 前記判定手段は、前記角度算出手段で算出された角度に基づいて、前記入力装置の姿勢と前記基準平面とのなす角度の符号が反転したか否かを判定する、請求項7に記載のゲームプログラム。   The game according to claim 7, wherein the determination unit determines whether a sign of an angle formed between the attitude of the input device and the reference plane is inverted based on the angle calculated by the angle calculation unit. program. 前記入力装置には、それぞれ直交する3軸が定義されており、
前記基準平面設定手段は、前記姿勢算出手段で算出された入力装置の姿勢において、前記定義されている3軸のうちの所定の2軸方向それぞれにかかる姿勢に基づいて前記基準平面を設定する、請求項8に記載のゲームプログラム。
In the input device, three orthogonal axes are defined,
The reference plane setting means sets the reference plane based on attitudes in each of predetermined two axis directions of the three defined axes in the attitude of the input device calculated by the attitude calculation means; The game program according to claim 8.
前記基準平面設定手段は、
前記所定の2軸方向それぞれの姿勢に基づき、前記基準平面を設定するための2つの平面を算出する、候補平面算出手段を含み、
前記候補平面算出手段で算出された2つの平面に基づいて前記基準平面を設定する、請求項9に記載のゲームプログラム。
The reference plane setting means includes
Candidate plane calculating means for calculating two planes for setting the reference plane based on the postures in the predetermined two axial directions;
The game program according to claim 9, wherein the reference plane is set based on two planes calculated by the candidate plane calculation means.
前記候補平面算出手段は、前記定義されている3軸のうちの所定の1軸と重力方向とを含む平面を前記2つの平面のうちの1つとして算出する、請求項10に記載のゲームプログラム。   The game program according to claim 10, wherein the candidate plane calculation means calculates a plane including a predetermined one of the three defined axes and the direction of gravity as one of the two planes. . 前記候補平面算出手段は、前記入力装置の長手方向の軸として定義されている軸と重力方向とを含む平面を前記2つの平面のうちの1つとして算出する、請求項11に記載のゲームプログラム。   12. The game program according to claim 11, wherein the candidate plane calculation means calculates a plane including an axis defined as a longitudinal axis of the input device and a gravity direction as one of the two planes. . 前記候補平面算出手段は、前記入力装置の上下方向の軸として定義されている軸と重力方向とを含む平面を前記2つの平面のうちの1つとして算出する、請求項10に記載のゲームプログラム。   The game program according to claim 10, wherein the candidate plane calculation unit calculates a plane including an axis defined as an axis in the vertical direction of the input device and a gravity direction as one of the two planes. . 前記候補平面算出手段は、前記入力装置の長手方向の軸として定義されている軸を重力方向に向けるような回転を前記入力装置の上下方向の軸として定義されている軸に加えることで算出される仮想軸と重力方向とを含む平面を前記2つの平面のうちの1つとして算出する、請求項10に記載のゲームプログラム。   The candidate plane calculation means is calculated by applying a rotation that orients an axis defined as a longitudinal axis of the input device in a gravitational direction to an axis defined as a vertical axis of the input device. The game program according to claim 10, wherein a plane including a virtual axis and a gravity direction is calculated as one of the two planes. 前記基準平面設定手段は、前記候補平面算出手段が算出した2つの平面に対して、それぞれ所定の条件に基づく重み付けを行い、当該2つの平面の加重平均となる平面を算出し、前記基準平面として設定する、請求項10に記載のゲームプログラム。   The reference plane setting unit weights the two planes calculated by the candidate plane calculation unit based on a predetermined condition, calculates a plane that is a weighted average of the two planes, and serves as the reference plane. The game program according to claim 10, which is set. 前記基準平面設定手段は、前記候補平面算出手段が算出した2つの平面のうち、直前に設定された基準平面により近い位置にある平面に対して、より重く重み付けを行う、請求項15に記載のゲームプログラム。   16. The reference plane setting unit according to claim 15, wherein the reference plane setting unit weights a plane closer to a reference plane set immediately before, out of the two planes calculated by the candidate plane calculation unit. Game program. 前記基準平面設定手段は、前記候補平面算出手段が算出した2つの平面のうち、重力方向からより遠い位置にある軸に基づいて算出された平面に対して、より重く重み付けを行う、請求項15に記載のゲームプログラム。   16. The reference plane setting unit weights a plane calculated based on an axis located farther from the direction of gravity among the two planes calculated by the candidate plane calculation unit, more heavily. The game program described in. 前記基準平面設定手段は、前記入力装置に定義されている所定の2軸方向の軸のうち、重力方向からより遠い位置にある軸を算出用軸として選択し、当該算出用軸にかかる姿勢に基づいて前記基準平面を設定する、請求項9に記載のゲームプログラム。   The reference plane setting means selects, as a calculation axis, an axis that is farther from the gravitational direction among predetermined two-axis directions defined in the input device, and takes an attitude related to the calculation axis. The game program according to claim 9, wherein the reference plane is set based on the game program. 前記基準平面設定手段は、前記算出用軸に基づいて算出用軸平面を設定し、当該算出用軸平面に基づいて前記基準平面を設定する、請求項18に記載のゲームプログラム。   19. The game program according to claim 18, wherein the reference plane setting means sets a calculation axis plane based on the calculation axis, and sets the reference plane based on the calculation axis plane. 前記基準平面設定手段は、直前に設定された基準平面である旧基準平面、および、前記算出用軸平面に基づいて前記基準平面を設定する、請求項19に記載のゲームプログラム。   The game program according to claim 19, wherein the reference plane setting means sets the reference plane based on an old reference plane that is a reference plane set immediately before and the calculation axis plane. 前記基準平面設定手段は、前記旧基準平面、および、前記算出用軸平面のそれぞれに対して所定の条件に基づく重み付けを行い、当該2つの平面の加重平均となる面を算出し、前記基準平面として設定する、請求項20記載のゲームプログラム。   The reference plane setting means performs weighting based on a predetermined condition for each of the old reference plane and the calculation axis plane, calculates a plane that is a weighted average of the two planes, and calculates the reference plane. The game program according to claim 20, wherein the game program is set as follows. 前記基準平面設定手段は、前記旧基準平面に対して、より重く重み付けを行う、請求項21に記載のゲームプログラム。   The game program according to claim 21, wherein the reference plane setting means weights the old reference plane more heavily. 前記基準平面設定手段は、前記算出用軸が重力方向から遠い位置にあるほど、より重く重み付けを行う、請求項21に記載のゲームプログラム。   The game program according to claim 21, wherein the reference plane setting means weights more heavily as the calculation axis is farther from the direction of gravity. 前記基準平面設定手段は、前記候補平面算出手段が算出した2つの平面のうち、直前に設定された基準平面である旧基準平面により近い方の平面に基づいて前記基準平面を設定する、請求項10に記載のゲームプログラム。   The reference plane setting means sets the reference plane based on a plane closer to an old reference plane, which is a reference plane set immediately before, of the two planes calculated by the candidate plane calculation means. 10. The game program according to 10. 前記基準平面設定手段は、前記旧基準平面により近い方の平面、および、当該旧基準平面に対して、それぞれ所定の条件に基づく重み付けを行い、当該2つの平面の加重平均となる面を算出し、前記基準平面として設定する、請求項24に記載のゲームプログラム。   The reference plane setting means weights a plane closer to the old reference plane and the old reference plane based on a predetermined condition, and calculates a plane that is a weighted average of the two planes. The game program according to claim 24, set as the reference plane. 前記基準平面設定手段は、前記旧基準平面に対して、より重く重み付けを行う、請求項25に記載のゲームプログラム。   The game program according to claim 25, wherein the reference plane setting means weights the old reference plane more heavily. ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲーム装置のコンピュータに実行させるゲームプログラムであって、
前記コンピュータを、
前記検出手段で検出された姿勢動き情報を取得する姿勢動き情報取得手段と、
前記姿勢動き情報に基づいて前記入力装置の姿勢を算出する姿勢算出手段と、
所定のタイミングで、前記姿勢動き情報に基づいて所定の平面を基準平面として実空間内に仮想的に、かつ、固定的な平面として設定する基準平面設定手段と、
所定のタイミングで、前記姿勢動き情報に基づいて前記入力装置の姿勢の補正値を算出する姿勢補正値算出手段と、
実空間内に仮想的に設定された所定の基準平面に対する前記入力装置の姿勢を前記補正値で補正した姿勢に応じて前記オブジェクトを移動させるための所定の処理を実行する処理手段として機能させ、
前記検出手段は、少なくとも加速度センサおよび角速度センサを含み、
前記姿勢補正値算出手段は、前記加速度センサで検出された姿勢動き情報に基づいて前記角速度センサで検出された姿勢動き情報を補正することで前記入力装置の姿勢の補正値を算出する、ゲームプログラム。
A game program to be executed by a computer of a game device that moves an object in a virtual space based on posture motion information acquired from predetermined detection means for detecting the posture or motion of an input device operated by a user,
The computer,
Posture movement information acquisition means for acquiring posture movement information detected by the detection means;
Posture calculating means for calculating the posture of the input device based on the posture movement information;
A reference plane setting means for setting a predetermined plane as a reference plane virtually in real space and as a fixed plane based on the posture movement information at a predetermined timing;
Posture correction value calculating means for calculating a posture correction value of the input device based on the posture motion information at a predetermined timing;
Function as processing means for executing a predetermined process for moving the object in accordance with an attitude obtained by correcting the attitude of the input device with respect to a predetermined reference plane virtually set in real space with the correction value;
The detection means includes at least an acceleration sensor and an angular velocity sensor,
The posture correction value calculating means calculates a posture correction value of the input device by correcting posture motion information detected by the angular velocity sensor based on posture motion information detected by the acceleration sensor. .
ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲーム装置であって、
前記検出手段で検出された姿勢動き情報を取得する姿勢動き情報取得手段と、
前記姿勢動き情報に基づいて前記入力装置の姿勢を算出する姿勢算出手段と、
所定のタイミングで、前記姿勢動き情報に基づいて所定の平面を基準平面として実空間内に仮想的に設定する基準平面設定手段と、
前記基準平面に対する前記入力装置の姿勢に応じて、前記オブジェクトを移動させるための所定の処理を実行する処理手段とを備える、ゲーム装置。
A game device that moves an object in a virtual space based on posture movement information acquired from predetermined detection means for detecting the posture or movement of an input device operated by a user,
Posture movement information acquisition means for acquiring posture movement information detected by the detection means;
Posture calculating means for calculating the posture of the input device based on the posture movement information;
A reference plane setting means for virtually setting a predetermined plane as a reference plane in a real space based on the posture movement information at a predetermined timing;
A game device comprising: processing means for executing a predetermined process for moving the object in accordance with an attitude of the input device with respect to the reference plane.
ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲーム装置であって、
前記検出手段で検出された姿勢動き情報を取得する姿勢動き情報取得手段と、
前記姿勢動き情報に基づいて前記入力装置の姿勢を算出する姿勢算出手段と、
所定のタイミングで、前記姿勢動き情報に基づいて所定の平面を基準平面として実空間内に仮想的に、かつ、固定的な平面として設定する基準平面設定手段と、
所定のタイミングで、前記姿勢動き情報に基づいて前記入力装置の姿勢の補正値を算出する姿勢補正値算出手段と、
実空間内に仮想的に設定された所定の基準平面に対する前記入力装置の姿勢を前記補正値で補正した姿勢に応じて前記オブジェクトを移動させるための所定の処理を実行する処理手段とを備え、
前記検出手段は、少なくとも加速度センサおよび角速度センサを含み、
前記姿勢補正値算出手段は、前記加速度センサで検出された姿勢動き情報に基づいて前記角速度センサで検出された姿勢動き情報を補正することで前記入力装置の姿勢の補正値を算出する、ゲーム装置。
A game device that moves an object in a virtual space based on posture movement information acquired from predetermined detection means for detecting the posture or movement of an input device operated by a user,
Posture movement information acquisition means for acquiring posture movement information detected by the detection means;
Posture calculating means for calculating the posture of the input device based on the posture movement information;
A reference plane setting means for setting a predetermined plane as a reference plane virtually in real space and as a fixed plane based on the posture movement information at a predetermined timing;
Posture correction value calculating means for calculating a posture correction value of the input device based on the posture motion information at a predetermined timing;
Processing means for executing a predetermined process for moving the object in accordance with an attitude obtained by correcting the attitude of the input device with respect to a predetermined reference plane virtually set in a real space with the correction value;
The detection means includes at least an acceleration sensor and an angular velocity sensor,
The posture correction value calculating means calculates a posture correction value of the input device by correcting posture motion information detected by the angular velocity sensor based on posture motion information detected by the acceleration sensor. .
ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲームシステムであって、
前記検出手段で検出された姿勢動き情報を取得する姿勢動き情報取得手段と、
前記姿勢動き情報に基づいて前記入力装置の姿勢を算出する姿勢算出手段と、
所定のタイミングで、前記姿勢動き情報に基づいて所定の平面を基準平面として実空間内に仮想的に設定する基準平面設定手段と、
前記基準平面に対する前記入力装置の姿勢に応じて、前記オブジェクトを移動させるための所定の処理を実行する処理手段とを備える、ゲームシステム。
A game system for moving an object in a virtual space based on posture movement information acquired from predetermined detection means for detecting the posture or movement of an input device operated by a user,
Posture movement information acquisition means for acquiring posture movement information detected by the detection means;
Posture calculating means for calculating the posture of the input device based on the posture movement information;
A reference plane setting means for virtually setting a predetermined plane as a reference plane in a real space based on the posture movement information at a predetermined timing;
A game system comprising: processing means for executing a predetermined process for moving the object in accordance with an attitude of the input device with respect to the reference plane.
ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲームシステムであって、
前記検出手段で検出された姿勢動き情報を取得する姿勢動き情報取得手段と、
前記姿勢動き情報に基づいて前記入力装置の姿勢を算出する姿勢算出手段と、
所定のタイミングで、前記姿勢動き情報に基づいて所定の平面を基準平面として実空間内に仮想的に、かつ、固定的な平面として設定する基準平面設定手段と、
所定のタイミングで、前記姿勢動き情報に基づいて前記入力装置の姿勢の補正値を算出する姿勢補正値算出手段と、
実空間内に仮想的に設定された所定の基準平面に対する前記入力装置の姿勢を前記補正値で補正した姿勢に応じて前記オブジェクトを移動させるための所定の処理を実行する処理手段とを備え、
前記検出手段は、少なくとも加速度センサおよび角速度センサを含み、
前記姿勢補正値算出手段は、前記加速度センサで検出された姿勢動き情報に基づいて前記角速度センサで検出された姿勢動き情報を補正することで前記入力装置の姿勢の補正値を算出する、ゲームシステム。
A game system for moving an object in a virtual space based on posture movement information acquired from predetermined detection means for detecting the posture or movement of an input device operated by a user,
Posture movement information acquisition means for acquiring posture movement information detected by the detection means;
Posture calculating means for calculating the posture of the input device based on the posture movement information;
A reference plane setting means for setting a predetermined plane as a reference plane virtually in real space and as a fixed plane based on the posture movement information at a predetermined timing;
Posture correction value calculating means for calculating a posture correction value of the input device based on the posture motion information at a predetermined timing;
Processing means for executing a predetermined process for moving the object in accordance with an attitude obtained by correcting the attitude of the input device with respect to a predetermined reference plane virtually set in a real space with the correction value;
The detection means includes at least an acceleration sensor and an angular velocity sensor,
The posture correction value calculating means calculates a posture correction value of the input device by correcting posture motion information detected by the angular velocity sensor based on posture motion information detected by the acceleration sensor. .
ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲーム装置を制御するコンピュータが実行するゲーム装置制御方法であって、
前記コンピュータは、
前記検出手段で検出された姿勢動き情報を取得する姿勢動き情報取得ステップと、
前記姿勢動き情報に基づいて前記入力装置の姿勢を算出する姿勢算出ステップと、
所定のタイミングで、前記姿勢動き情報に基づいて所定の平面を基準平面として実空間内に仮想的に設定する基準平面設定ステップと、
前記基準平面に対する前記入力装置の姿勢に応じて、前記オブジェクトを移動させるための所定の処理を実行する処理ステップとを実行する、ゲーム装置制御方法。
A game device control method executed by a computer that controls a game device that moves an object in a virtual space based on posture motion information acquired from predetermined detection means for detecting the posture or motion of an input device operated by a user. And
The computer
Posture movement information acquisition step for acquiring posture movement information detected by the detection means;
A posture calculation step of calculating a posture of the input device based on the posture movement information;
A reference plane setting step that virtually sets a predetermined plane as a reference plane in real space based on the posture movement information at a predetermined timing;
In accordance with the attitude of the input device with respect to the reference plane, and a process step of executing a predetermined processing for moving the object, a game device control method.
ユーザが操作する入力装置の姿勢または動きを検出する所定の検出手段から取得する姿勢動き情報に基づいて、仮想空間内のオブジェクトを移動させるゲーム装置を制御するコンピュータが実行するゲーム装置制御方法であって、
前記コンピュータは、
前記検出手段で検出された姿勢動き情報を取得する姿勢動き情報取得ステップと、
前記姿勢動き情報に基づいて前記入力装置の姿勢を算出する姿勢算出ステップと、
所定のタイミングで、前記姿勢動き情報に基づいて所定の平面を基準平面として実空間内に仮想的に、かつ、固定的な平面として設定する基準平面設定ステップと、
所定のタイミングで、前記姿勢動き情報に基づいて前記入力装置の姿勢の補正値を算出する姿勢補正値算出ステップと、
実空間内に仮想的に設定された所定の基準平面に対する前記入力装置の姿勢を前記補正値で補正した姿勢に応じて前記オブジェクトを移動させるための所定の処理を実行する処理ステップとを実行し
前記検出手段は、少なくとも加速度センサおよび角速度センサを含み、
前記姿勢補正値算出ステップでは、前記加速度センサで検出された姿勢動き情報に基づいて前記角速度センサで検出された姿勢動き情報を補正することで前記入力装置の姿勢の補正値を算出する、ゲーム装置制御方法。
A game device control method executed by a computer that controls a game device that moves an object in a virtual space based on posture motion information acquired from predetermined detection means for detecting the posture or motion of an input device operated by a user. And
The computer
Posture movement information acquisition step for acquiring posture movement information detected by the detection means;
A posture calculation step of calculating a posture of the input device based on the posture movement information;
A reference plane setting step for setting a predetermined plane as a reference plane virtually and in a real space based on the posture movement information at a predetermined timing; and
A posture correction value calculating step of calculating a correction value of the posture of the input device based on the posture motion information at a predetermined timing;
Perform the process step of executing a predetermined processing for moving the object in accordance with the attitude of the attitude of the input device and corrected by the correction value for the virtually set predetermined reference plane in the real space ,
The detection means includes at least an acceleration sensor and an angular velocity sensor,
In the posture correction value calculating step calculates a correction value of the orientation of the input device by correcting the attitude motion information detected by the angular velocity sensor based on the detected posture motion information by the acceleration sensor, the game apparatus Control method.
JP2009096501A 2009-03-30 2009-04-10 GAME PROGRAM AND GAME DEVICE Active JP5612826B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009096501A JP5612826B2 (en) 2009-04-10 2009-04-10 GAME PROGRAM AND GAME DEVICE
US12/539,957 US9427657B2 (en) 2009-03-30 2009-08-12 Computer readable storage medium having game program stored thereon and game apparatus
EP09167808.6A EP2236179B1 (en) 2009-03-30 2009-08-13 Computer readable storage medium having game program stored thereon and game apparatus
US15/217,776 US9724604B2 (en) 2009-03-30 2016-07-22 Computer readable storage medium having game program stored thereon and game apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009096501A JP5612826B2 (en) 2009-04-10 2009-04-10 GAME PROGRAM AND GAME DEVICE

Publications (2)

Publication Number Publication Date
JP2010246610A JP2010246610A (en) 2010-11-04
JP5612826B2 true JP5612826B2 (en) 2014-10-22

Family

ID=43309691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009096501A Active JP5612826B2 (en) 2009-03-30 2009-04-10 GAME PROGRAM AND GAME DEVICE

Country Status (1)

Country Link
JP (1) JP5612826B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11707678B2 (en) 2020-12-11 2023-07-25 Nintendo Co., Ltd. Storage medium, game apparatus and game control method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4028708B2 (en) * 2001-10-19 2007-12-26 株式会社コナミデジタルエンタテインメント GAME DEVICE AND GAME SYSTEM
JP2008136694A (en) * 2006-12-01 2008-06-19 Namco Bandai Games Inc Program, information storage medium and game apparatus
JP5293603B2 (en) * 2007-07-06 2013-09-18 ソニー株式会社 Input device, control device, control system, control method, and handheld device
JP5286267B2 (en) * 2007-08-03 2013-09-11 株式会社キャメロット Game device, game program, and object operation method
JP2009247763A (en) * 2008-04-10 2009-10-29 Namco Bandai Games Inc Game system, program and information memory medium

Also Published As

Publication number Publication date
JP2010246610A (en) 2010-11-04

Similar Documents

Publication Publication Date Title
JP5624726B2 (en) GAME PROGRAM AND GAME DEVICE
US9724604B2 (en) Computer readable storage medium having game program stored thereon and game apparatus
US8956229B2 (en) Computer readable storage medium having game program stored thereon and game apparatus
US8974301B2 (en) Computer readable storage medium having game program stored thereon and game apparatus
US8888594B2 (en) Storage medium storing information processing program, information processing apparatus and information processing method
JP5289031B2 (en) GAME DEVICE AND GAME PROGRAM
JP5612827B2 (en) GAME PROGRAM AND GAME DEVICE
JP5005627B2 (en) Information processing program and information processing apparatus
US8979653B2 (en) Computer readable storage medium having information processing program stored thereon and information processing apparatus
JP5758085B2 (en) GAME PROGRAM, GAME DEVICE, GAME SYSTEM, AND GAME PROCESSING METHOD
JP6742388B2 (en) Control program, game device, and control method
JP5612828B2 (en) GAME PROGRAM AND GAME DEVICE
JP5525177B2 (en) Information processing program and information processing apparatus
JP5612826B2 (en) GAME PROGRAM AND GAME DEVICE
JP7421737B2 (en) Control program, game device, and control method
JP5480526B2 (en) Information processing program and information processing apparatus
JP5443041B2 (en) GAME DEVICE AND GAME PROGRAM
JP5496150B2 (en) GAME DEVICE, GAME CONTROL METHOD, AND GAME CONTROL PROGRAM
JP5704770B2 (en) GAME DEVICE, GAME PROGRAM, GAME SYSTEM, AND GAME PROCESSING METHOD
JP5443042B2 (en) GAME DEVICE AND GAME PROGRAM
JP5420954B2 (en) GAME DEVICE AND GAME PROGRAM
JP5420955B2 (en) GAME DEVICE AND GAME PROGRAM

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110902

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140715

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: 20140828

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140905

R150 Certificate of patent or registration of utility model

Ref document number: 5612826

Country of ref document: JP

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