JP5785844B2 - Information processing program, information processing apparatus, information processing system, and information processing method - Google Patents
Information processing program, information processing apparatus, information processing system, and information processing method Download PDFInfo
- Publication number
- JP5785844B2 JP5785844B2 JP2011225538A JP2011225538A JP5785844B2 JP 5785844 B2 JP5785844 B2 JP 5785844B2 JP 2011225538 A JP2011225538 A JP 2011225538A JP 2011225538 A JP2011225538 A JP 2011225538A JP 5785844 B2 JP5785844 B2 JP 5785844B2
- Authority
- JP
- Japan
- Prior art keywords
- user
- information processing
- center
- data
- input device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Position Input By Displaying (AREA)
Description
本発明は、情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関し、特に例えば、ユーザの動作に基づいた処理を行う情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関する。 The present invention relates to an information processing program, an information processing apparatus, an information processing system, and an information processing method, and more particularly, for example, an information processing program, an information processing apparatus, an information processing system, and an information processing method for performing processing based on user operations. About.
従来、ユーザが加える荷重の変化に基づいてゲームを行うことができるゲームシステムがある(例えば、特許文献1参照)。一例として、上記特許文献1で開示されたゲームシステムは、荷重センサを備えたボード型コントローラ上にユーザが乗ることによって当該荷重センサが検出した荷重値に基づいてゲーム処理が実行される。
Conventionally, there is a game system in which a game can be performed based on a change in load applied by a user (see, for example, Patent Document 1). As an example, in the game system disclosed in
しかしながら、上記特許文献1で開示されたゲームシステムでは、ボード型コントローラの方向とボード型コントローラ上にユーザが乗るユーザの方向とが予め固定的に定義付けた上でゲーム処理が実行されている。したがって、ユーザは、上記定義付けられた方向に合わせた操作が常に要求され、操作方法が限定されてしまうことになる。例えば、ユーザが上記定義付けられた方向とは異なる方向に向いた状態でボード型コントローラ上に載って操作した場合、ユーザが行った操作をゲーム装置に正確に入力することができないため、ユーザが所望したゲーム処理を行うことができない。
However, in the game system disclosed in
それ故に、本発明の目的は、ユーザの動作を正確に判定して当該動作に応じた処理を行うことができる情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供することである。 Therefore, an object of the present invention is to provide an information processing program, an information processing apparatus, an information processing system, and an information processing method capable of accurately determining a user's operation and performing processing according to the operation. is there.
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。 In order to achieve the above object, the present invention may employ the following configuration, for example. When interpreting the description of the claims, it is understood that the scope should be interpreted only by the description of the claims, and the description of the claims and the description in this column are contradictory. In that case, priority is given to the claims.
本発明の情報処理プログラムの一構成例は、ユーザの身体を乗せることが可能な入力装置から出力される当該入力装置に加わる荷重に基づいたデータが利用可能であり、当該入力装置から得られたデータを処理する情報処理装置のコンピュータで実行される。情報処理プログラムは、重心位置取得手段、ユーザ方向算出手段、および処理手段として、コンピュータを機能させる。重心位置取得手段は、入力装置から出力されたデータに基づいて、入力装置に加わる荷重における重心位置を繰り返し取得する。ユーザ方向算出手段は、重心位置を用いて、入力装置上で足踏みするユーザ方向を算出する。処理手段は、ユーザ方向に基づいて、所定の処理を行う。 In one configuration example of the information processing program of the present invention, data based on a load applied to the input device, which is output from the input device capable of carrying the user's body, can be used and obtained from the input device. It is executed by a computer of an information processing apparatus that processes data. The information processing program causes the computer to function as a center-of-gravity position acquisition unit, a user direction calculation unit, and a processing unit. The center-of-gravity position acquisition unit repeatedly acquires the center-of-gravity position of the load applied to the input device based on the data output from the input device. The user direction calculation means calculates a user direction to step on the input device using the position of the center of gravity. The processing means performs predetermined processing based on the user direction.
上記によれば、入力装置上におけるユーザ方向を判定して、当該ユーザ方向に応じた処理が可能となる。 According to the above, it is possible to determine the user direction on the input device and perform processing according to the user direction.
また、上記ユーザ方向算出手段は、重心位置の移動方向に基づいて、ユーザ方向を算出してもよい。 Further, the user direction calculation means may calculate the user direction based on the moving direction of the center of gravity position.
上記によれば、入力装置に加わる荷重の重心位置の移動方向によって、容易にユーザ方向を算出することができる。 Based on the above, the user direction can be easily calculated based on the moving direction of the center of gravity position of the load applied to the input device.
また、上記ユーザ方向算出手段は、重心位置取得手段によって異なるタイミングで取得された2つの重心位置を結ぶ直線に垂直な方向候補を用いて、ユーザ方向を算出してもよい。 The user direction calculation means may calculate the user direction using a direction candidate perpendicular to a straight line connecting two centroid positions acquired at different timings by the centroid position acquisition means.
上記によれば、異なるタイミングで取得された2つの重心位置を結ぶ直線に垂直な方向を用いて、容易にユーザ方向を算出することができる。 Based on the above, it is possible to easily calculate the user direction using a direction perpendicular to a straight line connecting two centroid positions acquired at different timings.
また、上記ユーザ方向算出手段は、重心位置取得手段によって異なるタイミングで連続して取得された2つの重心位置を結ぶ直線に垂直な方向候補を用いて、ユーザ方向を算出してもよい。 Further, the user direction calculation means may calculate the user direction using a direction candidate perpendicular to a straight line connecting two gravity center positions acquired successively at different timings by the gravity center position acquisition means.
上記によれば、異なるタイミングで連続して取得された2つの重心位置を結ぶ直線に垂直な方向を用いて、容易にユーザ方向を算出することができる。 Based on the above, it is possible to easily calculate the user direction using a direction perpendicular to a straight line connecting two centroid positions acquired successively at different timings.
また、上記ユーザ方向算出手段は、前回の処理で決定されたユーザ方向を、方向候補が示す方向へ所定の割合で近づけることによって、ユーザ方向を更新してもよい。 The user direction calculation means may update the user direction by bringing the user direction determined in the previous process closer to the direction indicated by the direction candidate at a predetermined rate.
上記によれば、新たに得られた方向候補が示す方向に所定割合近づけることによって、当該方向候補が有する誤差等を取り除きながら、ユーザ動作に応じたユーザ方向に更新することができる。 According to the above, by approaching the direction indicated by the newly obtained direction candidate by a predetermined ratio, it is possible to update the user direction according to the user operation while removing an error or the like of the direction candidate.
また、上記ユーザ方向算出手段は、方向候補が得られた重心位置間の距離が長いほど、割合を大きく設定してもよい。 Further, the user direction calculation means may set the ratio larger as the distance between the gravity center positions where the direction candidates are obtained is longer.
上記によれば、重心位置の移動量が大きい場合にユーザ方向を大きく変化させる重み付けを行って、ユーザ方向をより正確に推定することができる。 According to the above, it is possible to estimate the user direction more accurately by performing weighting that greatly changes the user direction when the movement amount of the gravity center position is large.
また、上記ユーザ方向算出手段は、方向候補が得られた重心位置間の距離が所定の長さより短い場合、前回の処理で決定されたユーザ方向を変化させなくてもよい。 The user direction calculation means may not change the user direction determined in the previous process when the distance between the gravity center positions where the direction candidates are obtained is shorter than a predetermined length.
上記によれば、方向候補を用いてユーザ方向を推定する際の誤差を取り除くことができる。 Based on the above, it is possible to remove an error in estimating the user direction using the direction candidates.
また、上記ユーザ方向算出手段は、異なるタイミングで繰り返し取得された2つの重心位置を結ぶ直線に垂直な方向候補を繰り返し算出し、当該繰り返し算出された複数の方向候補に基づいて1つの方向候補を算出してもよい。 Further, the user direction calculation means repeatedly calculates a direction candidate perpendicular to a straight line connecting two centroid positions repeatedly acquired at different timings, and selects one direction candidate based on the plurality of repeatedly calculated direction candidates. It may be calculated.
上記によれば、複数の方向候補を用いて1つの方向候補を算出することによって、突発的に方向候補に生じる誤差がユーザ方向の推定に与える影響を少なくすることができる。 According to the above, by calculating one direction candidate using a plurality of direction candidates, it is possible to reduce the influence of an error that occurs suddenly in the direction candidate on the estimation of the user direction.
また、上記ユーザ方向算出手段は、直線に垂直な一対の方向のうち、現時点で設定されているユーザ方向に近い方を方向候補として算出してもよい。 The user direction calculation means may calculate a direction candidate that is closer to the currently set user direction from among a pair of directions perpendicular to the straight line.
上記によれば、ユーザ方向が急激に変化しないことを利用して、ユーザ方向をより正確に判定することができる。 According to the above, it is possible to determine the user direction more accurately using the fact that the user direction does not change abruptly.
また、上記ユーザ方向算出手段は、直線に垂直な一対の方向のうち、一方の方向が所定の範囲内である場合、他方の方向を方向候補として算出してもよい。 The user direction calculation means may calculate the other direction as a direction candidate when one direction is within a predetermined range from a pair of directions perpendicular to the straight line.
上記によれば、入力装置上でユーザが取りにくい姿勢におけるユーザ方向を除外することによって、ユーザ方向の判定精度を向上させることができる。 According to the above, it is possible to improve the determination accuracy of the user direction by excluding the user direction in a posture that is difficult for the user to take on the input device.
また、上記ユーザ方向算出手段は、異なるタイミングで繰り返し取得された2つの重心位置を結ぶ直線に垂直な方向で、かつ、当該2つの重心位置の距離を大きさとした方向候補ベクトルを繰り返し算出し、当該繰り返し算出された複数の方向候補ベクトルを加算した1つのベクトルの方向を方向候補として算出してもよい。 Further, the user direction calculation means repeatedly calculates a direction candidate vector in a direction perpendicular to a straight line connecting two centroid positions repeatedly acquired at different timings and having a distance between the two centroid positions. The direction of one vector obtained by adding the plurality of direction candidate vectors calculated repeatedly may be calculated as a direction candidate.
上記によれば、加算されたベクトルの方向が重心の移動量で重み付けされた方向となるため、ユーザ方向をより正確に推定することができる。 According to the above, since the direction of the added vector is a direction weighted by the moving amount of the center of gravity, the user direction can be estimated more accurately.
また、上記ユーザ方向算出手段は、直線に垂直な一対の方向のうち、現時点で設定されているユーザ方向に近い方を方向候補ベクトルの方向として算出してもよい。 Further, the user direction calculation means may calculate a direction candidate vector direction that is closer to the currently set user direction from a pair of directions perpendicular to the straight line.
上記によれば、ユーザ方向が急激に変化しないことを利用して、ユーザ方向をより正確に判定することができる。 According to the above, it is possible to determine the user direction more accurately using the fact that the user direction does not change abruptly.
また、上記ユーザ方向算出手段は、直線に垂直な一対の方向のうち、一方の方向が所定の範囲内である場合、他方の方向を方向候補ベクトルの方向として算出してもよい。 The user direction calculation means may calculate the other direction as the direction of the direction candidate vector when one of the pair of directions perpendicular to the straight line is within a predetermined range.
上記によれば、入力装置上でユーザが取りにくい姿勢におけるユーザ方向を除外することによって、ユーザ方向の判定精度を向上させることができる。 According to the above, it is possible to improve the determination accuracy of the user direction by excluding the user direction in a posture that is difficult for the user to take on the input device.
また、判定線設定手段として、さらにコンピュータを機能させてもよい。上記判定線設定手段は、上記ユーザ方向算出手段が算出したユーザ方向に延びる少なくとも1つの判定線を設定する。この場合、上記処理手段は、重心位置取得手段が繰り返し取得する重心位置が判定線を横断した場合、入力装置上でユーザが足踏みしたと判定し、当該判定に基づいて所定の処理を行ってもよい。 Further, the computer may further function as the determination line setting means. The determination line setting unit sets at least one determination line extending in the user direction calculated by the user direction calculation unit. In this case, the processing means determines that the user has stepped on the input device when the gravity center position repeatedly acquired by the gravity center position acquisition means crosses the determination line, and performs predetermined processing based on the determination. Good.
上記によれば、ユーザ方向を入力装置上の足踏み判定に用いることができる。 Based on the above, the user direction can be used for stepping determination on the input device.
また、足踏み中心位置算出手段として、さらにコンピュータを機能させてもよい。上記足踏み中心位置算出手段は、重心位置取得手段が取得する重心位置に基づいて、入力装置上で足踏みするユーザの足踏み中心位置を算出する。この場合、上記判定線設定手段は、ユーザ方向へ足踏み中心位置を基準とした位置に判定線を設定してもよい。 Further, the computer may further function as stepping center position calculating means. The stepping center position calculating unit calculates the stepping center position of the user who steps on the input device based on the center of gravity position acquired by the center of gravity position acquiring unit. In this case, the determination line setting means may set the determination line at a position with reference to the stepping center position in the user direction.
上記によれば、足踏み判定で用いる判定線を適切な位置に設定することができる。 Based on the above, it is possible to set the determination line used for the stepping determination at an appropriate position.
また、上記判定線設定手段は、足踏み中心位置を中心として所定の間隙を有する位置にそれぞれユーザ方向へ延びる2つの判定線を設定してもよい。上記処理手段は、重心位置が間隙から判定線の一方を横断した場合、入力装置上でユーザが一方の足で足踏みしたと判定し、重心位置が間隙から判定線の他方を横断した場合、入力装置上でユーザが他方の足で足踏みしたと判定し、当該判定に基づいて所定の処理を行ってもよい。 The determination line setting means may set two determination lines extending in the user direction at positions having a predetermined gap with the stepping center position as a center. The processing means determines that the user has stepped on one foot on the input device when the center of gravity position crosses one of the determination lines from the gap, and inputs when the center of gravity position crosses the other of the determination lines from the gap. It may be determined that the user has stepped on the other foot on the device, and a predetermined process may be performed based on the determination.
上記によれば、左足の足踏みおよび右足の足踏みをそれぞれ異なる判定線で判定することによって、より正確な足踏み動作の判定が可能となる。 According to the above, it is possible to determine the stepping motion more accurately by determining the stepping on the left foot and the stepping on the right foot using different determination lines.
また、上記足踏み中心位置算出手段は、重心位置取得手段が繰り返し取得する重心位置に所定の割合で追従する位置に足踏み中心位置を設定してもよい。 Further, the stepping center position calculating means may set the stepping center position at a position that follows the center of gravity repeatedly acquired by the center of gravity position acquiring means at a predetermined rate.
また、上記足踏み中心位置算出手段は、重心位置取得手段が所定期間内に繰り返し取得した重心位置を平均した位置に足踏み中心位置を設定してもよい。 In addition, the stepping center position calculating unit may set the stepping center position at a position obtained by averaging the barycentric positions repeatedly acquired by the barycentric position acquiring unit within a predetermined period.
上記によれば、足踏み中心位置を容易に算出することができる。 Based on the above, the stepping center position can be easily calculated.
また、上記判定線設定手段は、所定の基準方向に対するユーザ方向の角度に応じて、間隙の幅を変化させてもよい。 The determination line setting means may change the width of the gap according to the angle of the user direction with respect to a predetermined reference direction.
上記によれば、入力装置の形状等に合わせて、適切な判定線を設定することができる。 According to the above, an appropriate determination line can be set according to the shape of the input device and the like.
また、上記処理手段は、ユーザ方向に基づいて、仮想世界に設定されたオブジェクトおよび仮想カメラの少なくとも一方の方向を変化させることによって、所定の処理を行ってもよい。 Further, the processing means may perform predetermined processing by changing a direction of at least one of an object set in the virtual world and a virtual camera based on a user direction.
上記によれば、ユーザ方向によって仮想世界におけるオブジェクトや仮想カメラの方向を変化させることができる。 According to the above, the direction of the object or the virtual camera in the virtual world can be changed according to the user direction.
また、本発明は、上記各手段を備える情報処理装置および情報処理システムや上記各手段で行われる動作を含む情報処理方法の形態で実施されてもよい。 In addition, the present invention may be implemented in the form of an information processing apparatus and an information processing system including the above-described units and an information processing method including operations performed by the above units.
本発明によれば、入力装置上におけるユーザ方向を判定して、当該ユーザ方向に応じた処理が可能となる。 According to the present invention, it is possible to determine the user direction on the input device and perform processing according to the user direction.
図1を参照して、本発明の一実施形態に係る情報処理プログラムを実行する情報処理装置および当該情報処理装置を含む情報処理システムについて説明する。以下、説明を具体的にするために、当該情報処理装置の一例として据置型のゲーム装置本体5を用い、ゲーム装置本体5を含むゲームシステムを用いて説明する。なお、図1は、据置型のゲーム装置3を含むゲームシステム1の一例を示す外観図である。図2は、ゲーム装置本体5の一例を示すブロック図である。以下、当該ゲームシステム1について説明する。
With reference to FIG. 1, an information processing apparatus that executes an information processing program according to an embodiment of the present invention and an information processing system including the information processing apparatus will be described. Hereinafter, for the sake of specific explanation, a stationary
図1において、ゲームシステム1は、表示手段の一例である家庭用テレビジョン受像機(以下、モニタと記載する)2と、モニタ2に接続コードを介して接続する据置型のゲーム装置3とから構成される。モニタ2は、ゲーム装置3から出力された音声信号を音声出力するためのスピーカを備える。また、ゲーム装置3は、本願発明の情報処理プログラムの一例となるプログラム(例えば、ゲームプログラム)を記録した光ディスク4と、光ディスク4のプログラムを実行してゲーム画面をモニタ2に表示出力させるためのコンピュータを搭載したゲーム装置本体5と、表示画面に表示されたオブジェクト等を操作するために必要な操作情報をゲーム装置本体5に与えるためのコントローラ7と、ボード型コントローラ9とを含む。なお、ゲームシステム1は、少なくともボード型コントローラ9を用いたゲーム操作に基づいて、ゲーム装置本体5においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をモニタ2等の表示装置に表示するものである。なお、ゲーム装置本体5とコントローラ7およびボード型コントローラ9とは、無線によって無線通信可能に接続される。例えば、上記無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。
In FIG. 1, a
ゲーム装置本体5は、無線コントローラモジュール19(図2参照)を内蔵する。無線コントローラモジュール19は、コントローラ7および/またはボード型コントローラ9から無線送信されるデータを受信し、ゲーム装置本体5からコントローラ7へデータを送信して、コントローラ7および/またはボード型コントローラ9とゲーム装置本体5とを無線通信によって接続する。また、ゲーム装置本体5には、ゲーム装置本体5に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着される。
The
ゲーム装置本体5には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ17(図2参照)が搭載される。ゲーム装置本体5は、光ディスク4に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ2に表示する。ゲームプログラム等は、光ディスク4に限らず、フラッシュメモリ17に予め記録されたものを実行するようにしてもよい。また、ゲーム装置本体5は、フラッシュメモリ17に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のユーザは、モニタ2等に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
The
コントローラ7およびボード型コントローラ9は、無線コントローラモジュール19を内蔵するゲーム装置本体5へ、例えばBluetoothの技術を用いて操作情報等の送信データをそれぞれ無線送信する。コントローラ7は、主にモニタ2の表示画面に表示された選択肢の選択等をするための操作手段である。コントローラ7は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン(十字キー等を含む)とが設けられている。
The
なお、他の実施形態においてはコントローラ7および/またはボード型コントローラ9とゲーム装置本体5とは有線で接続されてもよい。また、本実施形態では、ゲームシステム1に含まれるコントローラ7およびボード型コントローラ9はそれぞれ1つとするが、ゲーム装置本体5は複数のコントローラ7および複数のボード型コントローラ9と通信可能であり、所定台数のコントローラ7およびボード型コントローラ9をそれぞれ同時に使用することによって複数人でゲームをプレイすることが可能である。
In other embodiments, the
コントローラ7は、例えばプラスチック成型によって形成されたハウジングを有しており、当該ハウジングに複数の操作部(操作ボタン)が設けられている。そして、コントローラ7は、操作部に対する入力状態(各操作ボタンが押下されたか否か)を示す操作データをゲーム装置本体5に送信する。なお、後述する本発明の実施形態においては、コントローラ7を用いることなくゲームをプレイすることが可能である。ボード型コントローラ9の詳細な構成については後述する。
The
次に、図2を参照して、ゲーム装置本体5の内部構成について説明する。図2は、ゲーム装置本体5の構成の一例を示すブロック図である。ゲーム装置本体5は、CPU(Central Processing Unit)10、システムLSI(Large Scale Integration)11、外部メインメモリ12、ROM/RTC(Read Only Memory/Real Time Clock)13、ディスクドライブ14、およびAV−IC(Audio Video−Integrated Circuit)15等を有する。
Next, the internal configuration of the
CPU10は、光ディスク4に記憶されたプログラムを実行することによって処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSI11の内部構成については、後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたプログラムや、フラッシュメモリ17から読み出されたプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置本体5の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ35または外部メインメモリ12に読み出したデータを書き込む。
The
システムLSI11には、入出力プロセッサ31、GPU(Graphics Processor Unit)32、VRAM(Video RAM)34、および内部メインメモリ35が設けられる。図示は省略するが、これらの構成要素31、32、34、および35は、内部バスによって互いに接続される。
The system LSI 11 is provided with an input /
GPU32は、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM34は、GPU32がグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU32は、VRAM34に記憶されたデータを用いて画像データを作成する。
The
上述のように生成された画像データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをモニタ2に出力する。また、AV−IC15は、システムLSI11において生成された音声データを読み出し、モニタ2のスピーカに出力する。これによって、画像がモニタ2に表示されるとともに音がスピーカから出力される。
The image data generated as described above is read by the AV-
入出力プロセッサ(I/Oプロセッサ)31は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ31は、フラッシュメモリ17、および無線コントローラモジュール19に接続される。無線コントローラモジュール19にはアンテナ23が接続される。
The input / output processor (I / O processor) 31 transmits / receives data to / from components connected thereto and downloads data from an external device. The input /
入出力プロセッサ31は、アンテナ23および無線コントローラモジュール19を介して、コントローラ7および/またはボード型コントローラ9から送信される操作データ等を受信し、内部メインメモリ35または外部メインメモリ12のバッファ領域に記憶(一時記憶)する。なお、内部メインメモリ35には、外部メインメモリ12と同様に、光ディスク4から読み出されたプログラムや、フラッシュメモリ17から読み出されたプログラムを記憶したり、各種データを記憶したりしてもよく、CPU10のワーク領域やバッファ領域として用いられてもかまわない。
The input /
入出力プロセッサ31は、図示しない無線通信モジュールやアンテナを介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。また、入出力プロセッサ31は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、上記アンテナ、および上記無線通信モジュールを介して受信し、受信したデータをフラッシュメモリ17に記憶する。フラッシュメモリ17には、ゲーム装置本体5と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体5を利用してプレイしたゲームのセーブデータ(処理の結果データまたは途中データ)が記憶されてもよい。
The input /
次に、図3および図4を参照して、ボード型コントローラ9の構成について説明する。図3は、図1に示したボード型コントローラ9の外観の一例を示す斜視図である。図3に示されるように、ボード型コントローラ9は、ユーザがその上に乗る(ユーザの足を乗せる)台9a、台9aに掛かる荷重を検出するための少なくとも4つの荷重センサ94a〜94dを備える。各荷重センサ94a〜94dは、それぞれ台9aに内包されており、図3においてはそれらの配置位置がそれぞれ破線で示されている。なお、以下の説明において、4つの荷重センサ94a〜94dを総称して説明する場合、荷重センサ94と記載することがある。
Next, the configuration of the
台9aは、略直方体に形成されており、上面視で略長方形状である。例えば、台9aは、長方形状の短辺が30cm程度に設定され、長辺が50cm程度に設定される。台9aの上面は、平坦に形成され、ユーザが両足裏をそれぞれ置いて乗るための一対の面が設定されている。具体的には、台9aの上面には、電源ボタン9cが設けられている方向が初期設定においてユーザの後方となるように配置された場合に、ユーザが左足を乗せるための面(図3における左奥側に2重線で囲まれた領域)および左足を乗せるための面(図3における右手前側に2重線で囲まれた領域)がそれぞれ設定されている。そして、台9aの4隅の側面は、例えば部分的に円柱状に張り出すように形成されている。
The base 9a is formed in a substantially rectangular parallelepiped and has a substantially rectangular shape when viewed from above. For example, the base 9a has a rectangular short side set to about 30 cm and a long side set to about 50 cm. The upper surface of the base 9a is formed flat, and a pair of surfaces are set for the user to put on both feet and ride. Specifically, the surface on which the user puts his left foot when the direction in which the
台9aにおいて、4つの荷重センサ94a〜94dは、所定の間隔を置いて配置される。当該実施例では、4つの荷重センサ94a〜94dは、台9aの周縁部に、具体的には4隅にそれぞれ配置される。荷重センサ94a〜94dの間隔は、台9aに対するユーザの荷重のかけ方によるゲーム操作の意図をより精度良く検出できるように適宜な値に設定される。例えば、荷重センサ94a〜94dは、ボード型コントローラ9の4隅下部に設けられた4つの脚が配置される箇所にそれぞれ設けられる。
In the table 9a, the four load sensors 94a to 94d are arranged at a predetermined interval. In this embodiment, the four load sensors 94a to 94d are arranged at the peripheral edge of the base 9a, specifically at the four corners. The interval between the load sensors 94a to 94d is set to an appropriate value so that the intention of the game operation according to the user's load applied to the table 9a can be detected with higher accuracy. For example, the load sensors 94 a to 94 d are provided at locations where four legs provided at the lower corners of the board-
荷重センサ94は、例えば歪ゲージ(歪センサ)式ロードセルであり、入力された荷重を電気信号に変換する荷重変換器である。荷重センサ94では、荷重入力に応じて、起歪体が変形して歪が生じる。この歪が、起歪体に貼り付けられた歪センサによって電気抵抗の変化に変換され、さらに電圧変化に変換される。したがって、荷重センサ94は、入力荷重を示す電圧信号を出力端子から出力することができる。 The load sensor 94 is, for example, a strain gauge (strain sensor) type load cell, and is a load converter that converts an input load into an electric signal. In the load sensor 94, the strain generating body is deformed and distorted in response to the load input. This strain is converted into a change in electrical resistance by a strain sensor attached to the strain generating body, and further converted into a change in voltage. Therefore, the load sensor 94 can output a voltage signal indicating the input load from the output terminal.
なお、荷重センサ94は、音叉振動式、弦振動式、静電容量式、圧電式、磁歪式、またはジャイロ式のような他の方式の荷重センサであってもよい。 The load sensor 94 may be another type of load sensor such as a tuning fork vibration type, a string vibration type, a capacitance type, a piezoelectric type, a magnetostrictive type, or a gyro type.
図3に戻って、ボード型コントローラ9には、さらに、電源ボタン9cが設けられる。ボード型コントローラ9が起動していない状態で電源ボタン9cが操作(例えば、電源ボタン9cの押下)されると、ボード型コントローラ9の各回路コンポーネント(図4参照)に電力が供給される。ただし、ボード型コントローラ9は、ゲーム装置本体5からの指示に従って電源オンされて各回路コンポーネントに電力供給が開始される場合もある。なお、ボード型コントローラ9は、ユーザが乗っていない状態が一定時間(例えば、30秒)以上継続すると、自動的に電源がオフされてもよい。また、ボード型コントローラ9が起動している状態で、電源ボタン9cが再度操作された場合、電源がオフされて各回路コンポーネントへの電力供給が停止されてもよい。
Returning to FIG. 3, the board-
図4は、ボード型コントローラ9の電気的な構成の一例を示すブロック図である。なお、図4では、信号およびデータの流れは実線矢印で示され、電力の供給が破線矢印で示されている。
FIG. 4 is a block diagram showing an example of the electrical configuration of the
図4において、ボード型コントローラ9は、その動作を制御するためのマイクロコンピュータ(マイコン)100を含む。マイコン100は、図示しないCPU、ROM、およびRAM等を含み、CPUがROMに記憶されたプログラムに従ってボード型コントローラ9の動作を制御する。
In FIG. 4, the
マイコン100には、電源ボタン9c、ADコンバータ102、および無線モジュール106が接続される。さらに、無線モジュール106には、アンテナ106aが接続される。4つの荷重センサ94a〜94dは、それぞれADコンバータ102に接続される。
The
荷重センサ94a〜94dは、入力された荷重を示す信号をそれぞれ出力する。これらの信号は、ADコンバータ102でアナログ信号からデジタルデータに変換されて、マイコン100に入力される。荷重センサ94a〜94dの検出値には荷重センサ94a〜94dの識別情報が付与されて、いずれの荷重センサ94a〜94dの検出値であるかが識別可能にされる。このようにして、マイコン100は、同一時刻における4つの荷重センサ94a〜94dそれぞれの荷重検出値を示すデータを取得することができる。
The load sensors 94a to 94d each output a signal indicating the input load. These signals are converted from analog signals to digital data by the
荷重センサ94a〜94dからの検出値を示すデータは、ボード型コントローラ9のボード操作データ(入力データ)として、マイコン100から無線モジュール106およびアンテナ106aを介してゲーム装置本体5に送信される。例えば、ゲーム装置本体5からの命令を受けて荷重検出を行った場合、マイコン100は、ADコンバータ102から荷重センサ94a〜94dの検出値データを受信したことに応じて、当該検出値データをゲーム装置本体5に送信する。なお、マイコン100は、一定時間ごとに上記検出値データをゲーム装置本体5に送信するようにしてもよい。荷重の検出周期よりも送信周期が長い場合には、送信タイミングまでに検出された複数の検出タイミングの荷重値を含むデータを送信すればよい。
Data indicating detection values from the load sensors 94a to 94d is transmitted from the
なお、無線モジュール106は、ゲーム装置本体5の無線コントローラモジュール19と同じ無線規格(Bluetooth、無線LANなど)で通信可能にされる。したがって、ゲーム装置本体5のCPU10は、無線コントローラモジュール19等を介して情報取得命令をボード型コントローラ9に送信することができる。このように、ボード型コントローラ9は、無線モジュール106およびアンテナ106aを介して、ゲーム装置本体5からの命令を受信することができる。また、ボード型コントローラ9は、荷重センサ94a〜94dの荷重検出値(または荷重算出値)を含むボード操作データをゲーム装置本体5に送信することができる。
The
例えば4つの荷重センサ94a〜94dで検出される4つの荷重値の単なる合計値を用いて実行されるようなゲームの場合には、ユーザはボード型コントローラ9の4つの荷重センサ94a〜94dに対して任意の位置をとることができる。つまり、ユーザは、台9aの上の任意の位置に任意の向きで乗ってゲームをプレイすることができる。しかしながら、ゲームの種類によっては、4つの荷重センサ94で検出される荷重値がボード型コントローラ9に対してどのような位置に加えられたのかを識別し、ボード型コントローラ9に対してユーザがどのような方向に向いて乗っているのかを識別して処理を行ってもよい。この場合、ボード型コントローラ9の4つの荷重センサ94から得られた荷重値を用いて、ボード型コントローラ9とユーザとの位置関係を推定し、当該ユーザ方向を方向入力に用いて処理することが可能となる。
For example, in the case of a game that is executed using a mere total value of four load values detected by the four load sensors 94a to 94d, the user performs the four load sensors 94a to 94d of the
しかしながら、ボード型コントローラ9を用いて方向入力を行う場合、初期設定としてボード型コントローラ9とユーザとの位置関係が把握されている必要がある。この場合、例えば、初期設定において4つの荷重センサ94とユーザとの位置関係を予め規定しておき、当該初期設定においては当該所定の位置関係が得られるようにユーザが台9a上に乗ることが前提とされてもよい。典型的には、台9aの中央に乗ったユーザの前後左右にそれぞれ荷重センサ94a〜94dが2つずつ存在するような位置関係、つまり、ユーザがボード型コントローラ9の台9aの中央に乗った位置関係が初期設定において規定される。この場合、当該実施例では、ボード型コントローラ9の台9aが平面視で矩形状に形成されるとともにその矩形の1辺(長辺)に電源ボタン9cが設けられているので、この電源ボタン9cを目印として利用して、ユーザには電源ボタン9cの設けられた長辺が所定の方向(前、後、左または右)に存在するようにして初期設定において台9aに乗ってもらうことを予め決めておく。このようにすれば、荷重センサ94a〜94dで初期設定において検出される荷重値は、ユーザから見て所定の方向(右前、左前、右後および左後)の荷重値となる。具体的には、電源ボタン9cの設けられた長辺がユーザの後方左右となるように、初期設定においてユーザに台9aに乗ってもらう。この場合、荷重センサ94a〜94dで初期設定において検出される荷重値は、それぞれユーザから見て右後ろの荷重値、左後ろの荷重値、右前の荷重値、および左前の荷重値となる。そして、初期設定後においては、4つの荷重センサ94a〜94dから得られた荷重値を用いて、ボード型コントローラ9に乗っているユーザ方向の変化を推定し、当該ユーザ方向を用いて所定の処理が行われる。
However, when the direction input is performed using the
次に、ゲーム装置本体5が行う具体的な処理を説明する前に、図5〜図9を用いてゲーム装置本体5で行う情報処理の概要について説明する。なお、図5は、ボード型コントローラ9を用いて操作するユーザの様子の一例を示す図である。図6は、モニタ2に表示される画像の一例を示す図である。図7は、ボード型コントローラ9上においてユーザが足踏みする方向を変えた場合にプレイヤオブジェクト正面方向(移動方向)が変化する一例を示す図である。図8は、重心位置の移動に応じて推定方向ベクトルが算出される一例を示す図である。図9は、算出されたユーザ正面方向ベクトルに応じて設定される足踏み判定線の一例を示す図である。
Next, before describing specific processing performed by the
図5に示すように、ユーザは、ボード型コントローラ9上に乗って操作する。そして、ユーザは、モニタ2に表示された画像を見て、ボード型コントローラ9上でのユーザの正面方向を変化させながらボード型コントローラ9上で動作(例えば、足踏み動作や屈伸動作)することによってプレイする。そして、モニタ2には、ボード型コントローラ9上におけるユーザの正面方向(ユーザ方向)と、ボード型コントローラ9上におけるユーザ動作とに応じて、仮想世界においてプレイヤオブジェクトPoが動作(例えば、移動方向や姿勢が変化する動作や移動速度が変化する動作)し、プレイヤオブジェクトPoの位置や方向に応じて仮想世界に設定される仮想カメラの位置や方向を変化させたゲーム画像が表現される。一例として、図5においては、仮想世界内をウォーキング、ジョギング、またはランニングするプレイヤオブジェクトPoが表示されている。そして、ユーザは、ボード型コントローラ9上で、ウォーキング、ジョギング、またはランニングするように足踏みする。この場合、ユーザの足踏み動作に応じた速度で、プレイヤオブジェクトPoが仮想世界内を移動するとともに、ボード型コントローラ9上におけるユーザ方向に応じて仮想世界内におけるプレイヤオブジェクトPoの移動方向が変化する。
As shown in FIG. 5, the user rides on the
例えば、ボード型コントローラ9上でユーザが足踏みするような動作をした場合、当該足踏み動作に応じた速度でプレイヤオブジェクトPoがウォーキング、ジョギング、またはランニングして仮想世界内を移動する。また、ボード型コントローラ9上でユーザが屈伸するような動作をした場合、当該屈伸動作に応じたジャンプ力でプレイヤオブジェクトPoが仮想世界内をジャンプして移動する。このように、ユーザは、ボード型コントローラ9上の動作によって、プレイヤオブジェクトPoの移動方法や移動速度を変化させることができる。
For example, when the user performs a stepping action on the
上述したように、ボード型コントローラ9からはボード型コントローラ9上のユーザ動作に応じた荷重検出値が出力される。そして、上記荷重検出値を用いれば、ボード型コントローラ9に加わっている合計荷重やボード型コントローラ9に加わっている荷重の重心位置の算出が可能である。また、上記合計荷重の変化や重心位置の変化を用いれば、ユーザがボード型コントローラ9上でどのような動作をしているのか推定することが可能となる。このようなボード型コントローラ9上で推定されるユーザ動作に応じて、プレイヤオブジェクトPoの移動方法や移動速度が設定される。
As described above, the
また、ボード型コントローラ9上におけるユーザ方向に応じて、仮想世界内におけるプレイヤオブジェクトPoの方向(例えば、プレイヤオブジェクトPoの正面方向や移動方向)が変化する。一例として、図7に示すように、ユーザがボード型コントローラ9上で足踏みしている方向を左に変えた場合(すなわち、ユーザ方向が左方向へ変化した場合)、プレイヤオブジェクトPoが移動する方向(プレイヤオブジェクトPoの正面方向)がプレイヤオブジェクトPoから見て左に変化する。また、ユーザがボード型コントローラ9上で足踏みしている方向を右に変えた場合(すなわち、ユーザ方向が右方向へ変化した場合)、プレイヤオブジェクトPoが移動する方向がプレイヤオブジェクトPoから見て右に変化する。このように、ボード型コントローラ9上におけるユーザ方向をプレイヤオブジェクトPoの姿勢や移動方向に連動させることによって、ユーザはボード型コントローラ9上で仮想世界内を自分自身が移動しているかのようなリアリティある操作が可能となる。なお、プレイヤオブジェクトPoを含む仮想世界画像を生成してモニタ2に表示するための仮想カメラの位置や方向については、上記プレイヤオブジェクトPoの姿勢や移動方向が変化(すなわち、ボード型コントローラ9上におけるユーザ方向が変化)することに応じて変化させてもいいし、変化させなくてもよい。前者の場合、プレイヤオブジェクトPoの方向や位置を上記仮想カメラの向きや位置に連動させることによって、ユーザはさらにモニタ2を介してあたかも仮想世界内を移動しているかのような感覚を味わうことができる。
Further, the direction of the player object Po in the virtual world (for example, the front direction or the moving direction of the player object Po) changes according to the user direction on the board-
ボード型コントローラ9上におけるユーザ方向を推定する際、ボード型コントローラ9に加わっている荷重の重心位置の動きに基づいて算出される推定方向ベクトルが用いられる。例えば、図8に示すように、推定方向ベクトルは、ボード型コントローラ9の台9a上の位置に対応する所定の座標系(例えば、台9aの中心を原点、台9aの長辺方向をX1軸方向、短辺方向をY1軸方向とするX1Y1座標系)において、異なる時点で得られた2つの上記重心位置(典型的には、連続して得られた2つの重心位置)を結ぶ直線に垂直で、かつ、ボード型コントローラ9の上面に平行(例えば、水平方向)な方向で、当該直線の長さに設定される。すなわち、推定方向ベクトルは、上記重心位置の移動量の長さで、当該重心位置の移動方向に対して垂直方向に設定される。ここで、推定方向ベクトルが設定される上記方向は、上記移動方向に対して左水平方向および右水平方向の2方向が考えられる。後述により明らかとなるが、推定方向ベクトルは、上記2方向のうち、後述の処理において設定されるユーザ方向ベクトルの方向に近い方が選択される。そして、上記ユーザ方向は、上述したように設定された推定方向ベクトルを所定数(例えば、30フレーム分)加算することによって算出されるユーザ方向ベクトルによって推定される。具体的には、上記推定方向ベクトルを得られた時系列順に所定数加算して正規化することによってユーザ方向ベクトルを算出し、当該ユーザ方向ベクトルの方向がボード型コントローラ9上における現時点のユーザ方向であると推定する。
When the user direction on the
また、ユーザがボード型コントローラ9上で足踏みする動作の判定においても上記重心位置が用いられる。例えば、上記座標系に、ユーザが足踏み動作において左足を上げて右足を下げた場合に上記重心位置が移動する領域(右足領域)と、ユーザが足踏み動作において右足を上げて左足を下げた場合に上記重心位置が移動する領域(左足領域)とが設定される。例えば、電源ボタン9cが設けられている長辺が後方となるようにユーザがボード型コントローラ9上に乗って足踏みする場合、台9a上における左右(例えば、電源ボタン9cを後方にした左右)に左足領域および右足領域が設定され、左足領域および右足領域の間にはユーザの前後方向に延びる所定幅の中立領域が設定される。そして、上記重心位置が中立領域から右足領域に移動した場合にユーザが左足を上げたと判断し、上記重心位置が中立領域から左足領域に移動した場合にユーザが右足を上げたと判断する。
In addition, the position of the center of gravity is also used in determining the operation of the user stepping on the
なお、ユーザは、ボード型コントローラ9上で向きを変えながら足踏みをすることが考えられる。この場合、図9に示すように、ボード型コントローラ9上においてユーザが足踏みしている動作を判定する際にも上記ユーザ方向ベクトルが用いられる。ここで、上記左足領域、上記右足領域、および上記中立領域それぞれの位置を固定していると、ユーザがボード型コントローラ9上で向きを変えると正確な足踏み判定ができなくなる。このような場合、上記座標系における重心位置の移動を用いて算出されるユーザ方向ベクトルに基づいて、上記座標系における上記左足領域、上記右足領域、および上記中立領域を移動させればよい。例えば、上記中立領域が延びる方向をユーザ方向ベクトルの方向に変化させるとともに、上記中立領域の中心位置がユーザの足踏み中心位置と一致するように上記中立領域を移動させる。そして、当該中立領域の移動に応じて上記左足領域および上記右足領域を移動させる。このように上記左足領域、上記右足領域、および上記中立領域を移動させることによって、ボード型コントローラ9上で向きを変えながらユーザが足踏みしたとしても、正確に足踏み判定を行うことができる。
Note that it is conceivable that the user steps on the
次に、ゲームシステム1において行われる情報処理の詳細を説明する。まず、図10を参照して、当該情報処理において用いられる主なデータについて説明する。なお、図10は、ゲーム装置本体5の外部メインメモリ12および/または内部メインメモリ35(以下、2つのメインメモリを総称して、単にメインメモリと記載する)に記憶される主なデータおよびプログラムの一例を示す図である。
Next, details of information processing performed in the
図10に示すように、メインメモリのデータ記憶領域には、操作データDa、荷重値データDb、重心位置データDc、推定方向ベクトルデータDd、ユーザ方向ベクトル候補データDe、ユーザ方向ベクトルデータDf、重心移動量データDg、足踏み中心位置データDh、足踏み判定線データDi、オブジェクト動作データDj、走行速度データDk、走行距離データDm、足踏みフラグデータDn、および画像データDo等が記憶される。なお、メインメモリには、図10に示す情報に含まれるデータの他、モニタ2に表示される他のオブジェクト等に関するデータ等、処理に必要なデータ等が適宜記憶される。また、メインメモリのプログラム記憶領域には、情報処理プログラムを構成する各種プログラム群Paが記憶される。
As shown in FIG. 10, the data storage area of the main memory includes operation data Da, load value data Db, centroid position data Dc, estimated direction vector data Dd, user direction vector candidate data De, user direction vector data Df, centroid Movement amount data Dg, stepping center position data Dh, stepping determination line data Di, object motion data Dj, travel speed data Dk, travel distance data Dm, stepping flag data Dn, image data Do, and the like are stored. In addition to the data included in the information shown in FIG. 10, data necessary for processing, such as data related to other objects displayed on the
操作データDaは、コントローラ7やボード型コントローラ9から送信データとして送信されてくる一連の操作情報が格納され、最新の操作データに更新される。例えば、操作データDaは、荷重データDa1等を含んでいる。荷重データDa1は、ボード型コントローラ9の荷重センサ94a〜94dがそれぞれ検出した荷重検出値を示すデータである。
The operation data Da stores a series of operation information transmitted as transmission data from the
なお、ゲーム装置本体5に備える無線コントローラモジュール19は、コントローラ7やボード型コントローラ9から所定周期(例えば、1/200秒毎)に送信される操作情報に含まれるデータ(例えば、荷重検出値を示すデータ)を受信し、無線コントローラモジュール19に備える図示しないバッファに蓄えられる。その後、上記バッファに蓄えられたデータが処理周期である1フレーム毎(例えば、1/60秒毎)に読み出されて、メインメモリの操作データDa(例えば、荷重データDa1)がそれぞれ更新される。
Note that the
このとき、操作情報を受信する周期と処理周期とが異なるために、上記バッファには複数の時点に受信した操作情報が記述されていることになる。後述する処理の説明においては、後述する各ステップにおいて、複数の時点に受信した操作情報のうち最新の操作情報のみを用いて処理して、次のステップに進める態様を用いる。 At this time, since the cycle for receiving the operation information is different from the processing cycle, the operation information received at a plurality of times is described in the buffer. In the description of the processing to be described later, a mode is used in which processing is performed using only the latest operation information among the operation information received at a plurality of points in time and proceeds to the next step in each step to be described later.
また、後述する処理フローでは、荷重データDa1が処理周期である1フレーム毎に更新される例を用いて説明するが、他の処理周期で更新されてもかまわない。例えば、ボード型コントローラ9からの送信周期毎に荷重データDa1をそれぞれ更新し、当該更新された荷重データDa1を処理周期毎に利用する態様でもかまわない。この場合、荷重データDa1を更新する周期と、他の処理周期とが異なることになる。
Further, in the processing flow to be described later, the load data Da1 will be described by using an example in which the load data Da1 is updated for each frame that is a processing cycle. However, the load data Da1 may be updated in another processing cycle. For example, the load data Da1 may be updated for each transmission cycle from the board-
荷重値データDbは、ボード型コントローラ9が検出する荷重値を示すデータの集合である。例えば、荷重値データDbは、荷重センサ94a〜94dがそれぞれ検出した荷重の合計値(合計荷重値)を示すデータの集合である。具体的には、荷重値データDbは、時系列的に算出された所定期間内(例えば、30フレーム分)の上記合計荷重値を示すデータの配列であり、配列の各要素に上記合計荷重値を示すデータが時系列に格納される。
The load value data Db is a set of data indicating load values detected by the
重心位置データDcは、ボード型コントローラ9に加わっている荷重の重心位置を示すデータの集合である。例えば、重心位置データDcは、荷重センサ94a〜94dがそれぞれ検出した荷重値から所定の数式を用いて算出される重心位置を示すデータの集合である。具体的には、重心位置データDcは、時系列的に算出された所定期間内(例えば、31フレーム分以上)の上記重心位置を示すデータの配列であり、配列の各要素に上記重心位置を示すデータが時系列に格納される。
The centroid position data Dc is a set of data indicating the centroid position of the load applied to the
推定方向ベクトルデータDdは、上記重心位置の動きに基づいて設定される推定方向ベクトル(図8参照)を示すデータの集合である。例えば、推定方向ベクトルデータDdは、前回の処理で算出された重心位置と時系列的に連続する今回の処理で算出された重心位置とを用いて繰り返し算出される推定方向ベクトルを示すデータの集合である。具体的には、推定方向ベクトルデータDdは、時系列的に算出された所定期間内(例えば、30フレーム分)の上記推定方向ベクトルを示すデータの配列であり、配列の各要素に上記推定方向ベクトルを示すデータが時系列に格納される。 The estimated direction vector data Dd is a set of data indicating an estimated direction vector (see FIG. 8) set based on the motion of the center of gravity. For example, the estimated direction vector data Dd is a set of data indicating estimated direction vectors that are repeatedly calculated using the centroid position calculated in the previous process and the centroid position calculated in the current process in time series. It is. Specifically, the estimated direction vector data Dd is an array of data indicating the estimated direction vector within a predetermined period (for example, 30 frames) calculated in time series, and the estimated direction vector is included in each element of the array. Data indicating vectors is stored in time series.
ユーザ方向ベクトル候補データDeは、現時点から所定時間内(例えば、30フレーム分)に得られた推定方向ベクトルを足し合わせて正規化することによって得られるユーザ方向ベクトル候補を示すデータである。 The user direction vector candidate data De is data indicating user direction vector candidates obtained by adding and normalizing estimated direction vectors obtained within a predetermined time (for example, 30 frames) from the present time.
ユーザ方向ベクトルデータDfは、ボード型コントローラ9上におけるユーザ方向を推定したユーザ方向ベクトルを示すデータである。後述により明らかとなるが、ユーザ方向ベクトルの方向は、上記ユーザ方向ベクトル候補の方向に所定の条件に基づいて近づけることによって、逐次更新される。
The user direction vector data Df is data indicating a user direction vector obtained by estimating the user direction on the
重心移動量データDgは、所定期間内における上記重心位置の移動量を示す重心移動量を示すデータである。 The centroid movement amount data Dg is data indicating the centroid movement amount indicating the movement amount of the centroid position within a predetermined period.
足踏み中心位置データDhは、ボード型コントローラ9上において足踏みしているユーザの足踏み中心位置を示すデータである。足踏み判定線データDiは、ユーザ方向ベクトルおよび足踏み中心位置に基づいて算出され、ユーザの足踏み動作を判定するために用いられる各判定線(判定基準線、左足踏み判定線、右足踏み判定線)を示すデータである。
The stepping center position data Dh is data indicating the stepping center position of the user who is stepping on the
オブジェクト動作データDjは、仮想世界におけるプレイヤオブジェクトPoの動作、位置、および方向を示すデータである。走行速度データDkは、仮想世界内を走行(歩行)するプレイヤオブジェクトPoの速度を示すデータである。走行距離データDmは、仮想世界内を走行(歩行)したプレイヤオブジェクトPoの距離を示すデータである。 The object motion data Dj is data indicating the motion, position, and direction of the player object Po in the virtual world. The traveling speed data Dk is data indicating the speed of the player object Po traveling (walking) in the virtual world. The travel distance data Dm is data indicating the distance of the player object Po that has traveled (walked) in the virtual world.
足踏みフラグデータDnは、ボード型コントローラ9上においてユーザが左足を上げて右足で足踏みするような動作をした場合にオンに設定され、右足を上げて左足で足踏みするような動作をした場合にオフに設定される足踏みフラグを示すデータである。
The stepping flag data Dn is set to ON when the user performs an operation such as raising the left foot and stepping with the right foot on the board-
画像データDoは、プレイヤオブジェクトデータDo1および背景画像データDo2等を含んでいる。プレイヤオブジェクトデータDo1は、仮想世界にプレイヤオブジェクトPoを配置してゲーム画像を生成するためのデータである。背景画像データDo2は、仮想世界に背景を配置してゲーム画像を生成するためのデータである。 The image data Do includes player object data Do1, background image data Do2, and the like. The player object data Do1 is data for arranging the player object Po in the virtual world and generating a game image. The background image data Do2 is data for arranging a background in the virtual world and generating a game image.
次に、図11〜図16を参照して、ゲーム装置本体5において行われる情報処理の詳細を説明する。なお、図11は、ゲーム装置本体5において実行される情報処理の一例を示すフローチャートである。図12は、図11におけるステップ44の推定方向ベクトル算出処理の一例を示すサブルーチンである。図13は、図11におけるステップ45のユーザ方向ベクトル算出処理の一例を示すサブルーチンである。図14は、図11におけるステップ46の足踏み判定線設定処理の一例を示すサブルーチンである。図15は、図11におけるステップ47の動作設定処理の一例を示すサブルーチンである。図16は、推定方向ベクトルの方向を反転させる反転範囲の一例を示す図である。ここで、図11〜図15に示すフローチャートにおいては、情報処理のうち、ボード型コントローラ9を用いたユーザの操作に応じて、プレイヤオブジェクトPoが動作して表示される処理について主に説明し、本願発明と直接関連しない他の処理については詳細な説明を省略する。また、図11〜図15では、CPU10が実行する各ステップを「S」と略称する。
Next, details of information processing performed in the
ゲーム装置本体5の電源が投入されると、ゲーム装置本体5のCPU10は、ROM/RTC13に記憶されている起動用のプログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶された情報処理プログラムがメインメモリに読み込まれ、CPU10によって当該プログラムの実行が開始される。図11〜図15に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
When the power of the
図11において、CPU10は、処理の初期設定を行い(ステップ41)、次のステップに処理を進める。例えば、上記ステップ41における初期設定において、CPU10は、仮想世界の設定やプレイヤオブジェクトPoの配置および方向等の初期設定を行って、オブジェクト動作データDj等を更新する。また、上記ステップ41における初期設定では、CPU10は、モニタ2に表示する画像やスピーカから出力する音声を用いて、ボード型コントローラ9の前方方向(例えば、図3に示す電源ボタン9cが設けられている側面を後方側面として、当該後方側面から当該後方側面と相対する前方側面へ向かう方向)をユーザの正面方向としてボード型コントローラ9上に乗るようにユーザを促す。そして、CPU10は、ユーザ方向ベクトルをボード型コントローラ9の前面方向に設定し、ユーザ方向ベクトルデータDfを更新する。さらに、上記ステップ41における初期設定では、以下の情報処理を行うために他のパラメータを初期化する。例えば、CPU10は、上述したメインメモリに格納される各データが示す他のパラメータをそれぞれ所定値(例えば0、空値、またはNull値)に初期化する。
In FIG. 11, the
次に、CPU10は、操作データを取得して(ステップ42)、次のステップに処理を進める。例えば、CPU10は、ボード型コントローラ9から受信した操作データを用いて、当該操作データに含まれる荷重検出値を示すデータを用いて荷重データDa1を更新する。ここで、上記操作データには、荷重センサ94a〜94dがそれぞれ検出した荷重検出値を示すデータが含まれており、荷重センサ94a〜94dの識別情報によって区別された当該データをそれぞれ用いて、荷重データDa1が更新される。なお、操作データを受信する周期と上記ステップ42を行う処理周期とが異なるために、当該処理周期の間に複数回の操作データが受信されてバッファに格納されている。上記ステップ42においては、上記複数回受信された操作データのうち最新の操作データのみを用いて操作データDaが更新される例を用いる。
Next, the
次に、CPU10は、荷重値および重心位置を算出して(ステップ43)、次のステップに処理を進める。例えば、CPU10は、荷重データDa1が示す荷重検出値を合計して合計荷重値を算出し、当該合計荷重値を示すデータを用いて荷重値データDbにおける時系列データ配列のうち最新のデータを更新する。具体的には、荷重データDa1は、荷重センサ94a〜94dがそれぞれ検出した最新の荷重検出値を示しているため、当該荷重検出値を合計することによって、上記合計荷重値が算出される。また、CPU10は、荷重データDa1が示す荷重検出値を用いて重心位置を算出し、当該重心位置を示すデータを用いて重心位置データDcにおける時系列データ配列のうち最新のデータを更新する。以下、重心位置の算出方法の一例を説明する。
Next, the
上記重心位置は、ボード型コントローラ9の台9aに加わる荷重の重心位置であり、各荷重センサ94a〜94d(図3参照)が検出する荷重値によって定められる。例えば、上記重心位置は、ボード型コントローラ9の台9a上の位置に対応する所定の座標系(例えば、台9aの中心を原点、台9aの長辺方向をX軸方向、短辺方向をY軸方向とするXY座標系)に基づいた座標値によって表される。そして、荷重センサ94aが検出する荷重値をa、荷重センサ94bが検出する荷重値をb、荷重センサ94cが検出する荷重値をc、荷重センサ94dが検出する荷重値をdとした場合、重心のX軸座標値(X)およびY軸座標値(Y)は、以下の数式を用いて算出することができる。
X=((a+c)―(b+d))×m
Y=((c+d)―(a+b))×n
ここで、mおよびnは、それぞれ予め定められた定数である。このようにして算出される重心位置は、ボード型コントローラ9上のユーザ動作や体重移動(姿勢)に応じて変化する。例えば、ユーザが左足を上げた場合に重心位置のX軸座標値が正の値となり、ユーザが右足を上げた場合に重心位置のX軸座標値が負の値となる。なお、上記重心位置の算出式は単なる一例であり、その他の方法によって重心位置が算出されてもよい。
The position of the center of gravity is the position of the center of gravity of the load applied to the base 9a of the
X = ((a + c) − (b + d)) × m
Y = ((c + d) − (a + b)) × n
Here, m and n are predetermined constants. The center-of-gravity position calculated in this way changes according to the user operation on the board-
次に、CPU10は、推定方向ベクトルを算出して(ステップ44)、次のステップに処理を進める。以下、図12を参照して、上記ステップ44で行う推定方向ベクトル算出処理について説明する。
Next, the
図12において、CPU10は、前回の処理において重心位置が算出されているか否かを判断する(ステップ51)。例えば、CPU10は、重心位置データDcを参照して、前回の処理ループにおけるステップ43において重心位置が算出されているか否かを判断する。そして、CPU10は、前回の処理において重心位置が算出されている場合、次のステップ52に処理を進める。一方、CPU10は、前回の処理において重心位置が算出されていない場合、当該サブルーチンによる処理を終了する。
In FIG. 12, the
ステップ52において、CPU10は、差分ベクトルを算出し、次のステップに処理を進める。例えば、CPU10は、上記座標系において、前回の処理ループにおいて算出された重心位置から今回の処理ループにおいて算出された重心位置までの差分ベクトルを算出する。
In
次に、CPU10は、上記差分ベクトルを用いて推定方向ベクトルを算出し(ステップ53)、次のステップに処理を進める。例えば、CPU10は、上記座標系において、上記ステップ52で算出された差分ベクトルに直交する方向で、当該差分ベクトルと同じ長さを有するベクトルを、推定方向ベクトルとして算出する。なお、差分ベクトルに直交する方向は一対の2方向が考えられるが、CPU10は、当該2方向のうち、上記座標系においてユーザ方向ベクトルデータDfが示すユーザ方向ベクトルの方向に近い方向を推定方向ベクトルとして選択する。そして、CPU10は、算出された推定方向ベクトルを示すデータを用いて、推定方向ベクトルデータDdにおける時系列データ配列のうち最新のデータを更新する。
Next, the
次に、CPU10は、上記ステップ53で算出された推定方向ベクトルが反転範囲内か否かを判断する(ステップ54)。例えば、図16に示すように、ボード型コントローラ9の後方方向付近(例えば、当該後方方向を中心に左右それぞれ15°の範囲)に、推定方向ベクトルの方向を反転させる反転範囲が設定されている。そして、CPU10は、推定方向ベクトルが上記反転範囲内である場合、次のステップ55に処理を進める。一方、CPU10は、推定方向ベクトルが反転範囲内にない場合、当該サブルーチンによる処理を終了する。
Next, the
ステップ55において、CPU10は、上記ステップ53において算出された推定方向ベクトルの方向を反転させ、反転させた推定方向ベクトルを用いて推定方向ベクトルデータDdにおける時系列データ配列のうち最新のデータを更新して、当該サブルーチンによる処理を終了する。ここで、上記反転範囲は、ボード型コントローラ9の後方方向付近に設けられている。これは、モニタ2を見ながらユーザがプレイすることが基本の遊技姿勢とし、一般的にボード型コントローラ9の前方方向がモニタ2への方向となることを想定している。この場合、ユーザがモニタ2を背にしてボード型コントローラ9の後方方向に向くような遊技姿勢となることが考えにくいため、当該方向に推定方向ベクトルの方向が設定された場合にボード型コントローラ9の前方方向付近に当該方向を反転させることによって、ユーザ方向の判定精度を向上させることができる。このような効果を期待しない場合、上記推定方向ベクトルの方向を反転させる処理は行わなくてもかまわない。この場合、推定方向ベクトルが全方向に設定可能となり、ユーザ方向も全方向へ重み付けされることなく設定されることになるため、ユーザ自身も全方向へ任意に方向指示することが可能となる。
In
図11に戻り、上記ステップ44における推定方向ベクトル算出処理の後、CPU10は、ユーザ方向ベクトルを算出して、次のステップに処理を進める(ステップ45)。以下、図13を参照して、上記ステップ45で行うユーザ方向ベクトル算出処理について説明する。
Returning to FIG. 11, after the estimated direction vector calculation process in step 44, the
図13において、CPU10は、所定フレーム分の推定方向ベクトルを加算し(ステップ61)、次のステップに処理を進める。例えば、CPU10は、推定方向ベクトルデータDdに格納されている時系列データ配列のうち最新の所定フレーム分(例えば、30フレーム分)のデータを取得し、当該データが示す推定方向ベクトルを足し合わせることによって1つのベクトルを算出する。なお、推定方向ベクトルデータDdに格納されている時系列データ配列の数が上記所定フレーム数未満の場合、当該時系列データ配列分のデータが示す推定方向ベクトルを足し合わせることによって1つのベクトルを算出すればよい。
In FIG. 13, the
次に、CPU10は、上記ステップ61において算出したベクトルを正規化してユーザ方向ベクトル候補を算出し(ステップ62)、次のステップに処理を進める。例えば、CPU10は、上記ステップ61において算出したベクトルを長さ1に正規化してユーザ方向ベクトル候補を算出し、当該ユーザ方向ベクトル候補を用いてユーザ方向ベクトル候補データDeを更新する。なお、ユーザ方向ベクトル候補の方向は、所定フレーム分の推定方向ベクトルを足し合わせたベクトル方向となるが、上述したように推定方向ベクトルの長さが重心位置の移動量に基づいて設定されているため、結果的に重心の移動量で重み付けされた方向となる。
Next, the
次に、CPU10は、所定フレーム分(例えば、30フレーム分)の重心移動量Mgを算出し(ステップ63)、次のステップに処理を進める。例えば、CPU10は、重心位置データDcに格納されている時系列データ配列のうち、上記重心移動量Mgを算出するための所定フレーム分に1を加えた最新のフレーム分(例えば、最新の31フレーム分)の重心位置を取得する。そして、CPU10は、連続して取得された重心位置間の移動距離を、それぞれ上記所定フレーム分累積して重心移動量Mgを算出し、算出された重心移動量Mgを用いて重心移動量データDgを更新する。なお、重心位置データDcに格納されている時系列データ配列の数が上記所定フレーム数に1を加えた数未満の場合、当該時系列データ配列分のデータが示す重心位置を取得して、当該重心位置間の移動距離を累積して重心移動量Mgを算出すればよい。
Next, the
次に、CPU10は、重心移動量Mgが閾値a1以上で閾値a2未満であるか否かを判断する(ステップ64)。そして、CPU10は、重心移動量Mgが閾値a1以上で閾値a2未満である場合、次のステップ65に処理を進める。一方、CPU10は、重心移動量Mgが閾値a1以上で閾値a2未満でない場合、次のステップ66に処理を進める。ここで、a1<a2であり、例えばボード型コントローラ9の長辺方向の長さを2とした場合、閾値a1=0.75、閾値a2=1.00に設定される。
Next, the
ステップ65において、CPU10は、重心移動量Mgによって決められる割合P%だけ、ユーザ方向ベクトルの方向がユーザ方向ベクトル候補の方向に近づくようにユーザ方向ベクトルを更新し、当該サブルーチンによる処理を終了する。例えば、ボード型コントローラ9の長辺方向の長さを2とした場合、CPU10は、割合Pを
P={(Mg−a1)/(a2−a1)}*100
で算出する。具体的には、ボード型コントローラ9の長辺方向の長さを2とした場合、割合Pは、
P={(Mg−0.75)/0.25}*100
となる。そして、CPU10は、ユーザ方向ベクトル候補データDeおよびユーザ方向ベクトルデータDfを参照して、ユーザ方向ベクトルの方向がユーザ方向ベクトル候補の方向に割合P%だけ近づくようにユーザ方向ベクトルの方向を変化させ、変化させたユーザ方向ベクトルを用いてユーザ方向ベクトルデータDfを更新する。
In
Calculate with Specifically, when the length of the long side direction of the board-
P = {(Mg-0.75) /0.25} * 100
It becomes. Then, the
一方、ステップ66において、CPU10は、重心移動量Mgが閾値a2以上であるか否かを判断する。そして、CPU10は、重心移動量Mgが閾値a2以上である場合、次のステップ67に処理を進める。一方、CPU10は、重心移動量Mgが閾値a1未満である場合、ユーザ方向ベクトルを変化させることなく当該サブルーチンによる処理を終了する。
On the other hand, in
ステップ67において、CPU10は、ユーザ方向ベクトル候補をそのままユーザ方向ベクトルとしてユーザ方向ベクトルデータDfを更新し、当該サブルーチンによる処理を終了する。
In step 67, the
なお、上述した処理では、重心移動量Mgに応じてユーザ方向ベクトルをユーザ方向候補に近づける割合を変化させる例を用いた。これは、ユーザが足踏みした場合に重心位置がユーザの左右に移動する特性を利用してユーザ方向を推定しているためであり、重心位置の移動量が大きい場合にユーザ方向を変化させる重み付けを行ってユーザ方向をより正確に推定するためである。したがって、このような重み付けが可能となる他のパラメータに応じて、上記割合を変化させてもかまわない。例えば、上記ステップ61において所定フレーム分の推定方向ベクトルを加算した1つのベクトルの長さに応じて、上記割合を変化させてもかまわない。当該ベクトルの長さについても、加算されている推定方向ベクトルの長さが重心位置の移動量に基づいて設定されているため、結果的に重心の移動量に基づいた重み付けが可能なパラメータとして取り扱うことができる。
In the above-described processing, an example is used in which the ratio of the user direction vector to the user direction candidate is changed according to the center-of-gravity movement amount Mg. This is because the user direction is estimated using the characteristic that the gravity center position moves to the left and right of the user when the user steps on, and weighting that changes the user direction when the movement amount of the gravity center position is large. This is in order to estimate the user direction more accurately. Therefore, the ratio may be changed in accordance with other parameters that enable such weighting. For example, the ratio may be changed according to the length of one vector obtained by adding estimated direction vectors for a predetermined frame in
また、ユーザ方向ベクトルをユーザ方向候補に近づける割合は、0%および100%から選択的に選ばれてもかまわない。例えば、重心移動量Mgが所定の閾値(例えば、閾値a1や閾値a2、またはその間の値)未満であった場合、上記割合を0%に設定、すなわちユーザ方向ベクトルが全くユーザ方向ベクトル候補に近づかないためにユーザ方向ベクトルがそのまま設定される。また、重心移動量Mgが所定の閾値以上であった場合、上記割合を100%に設定、すなわちユーザ方向ベクトル候補がそのままユーザ方向ベクトルとなって設定される。 Further, the ratio of bringing the user direction vector close to the user direction candidate may be selectively selected from 0% and 100%. For example, when the center-of-gravity movement amount Mg is less than a predetermined threshold value (for example, the threshold value a1 or the threshold value a2 or a value therebetween), the above ratio is set to 0%, that is, the user direction vector is completely close to the user direction vector candidate. Therefore, the user direction vector is set as it is. When the center-of-gravity movement amount Mg is equal to or greater than a predetermined threshold, the above ratio is set to 100%, that is, the user direction vector candidate is set as the user direction vector as it is.
図11に戻り、ステップ45におけるユーザ方向ベクトル算出処理の後、CPU10は、足踏み判定線を設定する処理を行い(ステップ46)、次のステップに処理を進める。以下、図14を参照して、上記ステップ46で行う足踏み判定線設定処理について説明する。
Returning to FIG. 11, after the user direction vector calculation processing in step 45, the
図14において、CPU10は、足踏み中心位置を算出して(ステップ71)、次のステップに処理を進める。例えば、CPU10は、上記座標系(X1,Y1)における足踏み中心位置(MX1,MY1)を
MX1=(b2*MX1a+GX1)/b1
MY1=(b2*MY1a+GY1)/b1
で算出し、算出された足踏み中心位置(MX1,MY1)を用いて足踏み中心位置データDhを更新する。ここで、MX1aおよびMY1aは、前回の処理で算出された足踏み中心位置のX1座標値およびY1座標値を示している。GX1およびGY1は、上記ステップ43で算出された最新の重心位置のX1座標値およびY1座標値を示している。そして、b1およびb2は、それぞれ予め定められた定数であり、例えばb1=180、b2=b1−1=179で設定される。上記数式から明らかなように、当該数式に基づいて算出される足踏み中心位置(MX1,MY1)は、ボード型コントローラ9に加わっている最新の荷重の重心位置に所定の割合(b2/b1)で追従するようにその位置が変化する。このように上記重心位置に所定の割合で追従する位置を算出することによって、ボード型コントローラ9上で足踏みしているユーザの足踏み中心位置を求めることができる。
In FIG. 14, the
MY1 = (b2 * MY1a + GY1) / b1
The stepping center position data Dh is updated using the calculated stepping center position (MX1, MY1). Here, MX1a and MY1a indicate the X1 coordinate value and the Y1 coordinate value of the stepping center position calculated in the previous process. GX1 and GY1 indicate the X1 coordinate value and the Y1 coordinate value of the latest center-of-gravity position calculated in
なお、足踏み中心位置は、他の方法で求めてもかまわない。例えば、直前の所定期間中に得られた重心位置を平均した位置を足踏み中心位置として設定してもかまわない。このように所定期間内の重心位置を平均した位置であっても、ボード型コントローラ9上で足踏みしているユーザの足踏み中心位置を求めることができる。
The stepping center position may be obtained by other methods. For example, a position obtained by averaging the positions of the center of gravity obtained during the immediately preceding predetermined period may be set as the stepping center position. Thus, even if it is the position which averaged the gravity center position in a predetermined period, the stepping center position of the user who is stepping on the
また、足踏み中心位置は、ユーザが足踏みする際に左足を乗せる位置と右足を乗せる位置との中間点を推定するための位置である。すなわち、足踏み中心位置は、ボード型コントローラ9に乗っているユーザの身体中心(身体の重心)から鉛直方向へ延びる直線が、ボード型コントローラ9の台9aと交わる位置を推定するための位置として定義されてもかまわない。このような定義に基づいて、上記足踏み中心位置を他の方法で求めてもかまわない。
Further, the stepping center position is a position for estimating an intermediate point between the position where the user puts the left foot and the position where the right foot is put when the user steps. That is, the stepping center position is defined as a position for estimating a position where a straight line extending in the vertical direction from the body center (the center of gravity of the body) of the user riding on the board-
次に、CPU10は、足踏み中心位置を通るユーザ方向へ判定基準線を設定し(ステップ72)、次のステップに処理を進める。例えば、CPU10は、ユーザ方向ベクトルデータDfおよび足踏み中心位置データDhを参照して、現時点のユーザ方向ベクトルおよび足踏み中心位置を取得し、上記座標系において当該足踏み中心位置を通ってユーザ方向ベクトルの方向(ユーザ方向)に延びる判定基準線(図9参照)を設定する。そして、CPU10は、設定された判定基準線を用いて、足踏み判定線データDiに含まれる判定基準線を示すデータを更新する。
Next, the
次に、CPU10は、足踏み中心位置およびユーザ方向に応じて、中立領域幅を算出し(ステップ73)、次のステップに処理を進める。例えば、CPU10は、ユーザ方向(ユーザ方向ベクトルの方向)の直線とボード型コントローラ9の前方方向の直線とで成す角のうち、小さい方の角度が大きいほど、中立領域幅を小さく設定する。また、CPU10は、足踏み中心位置がボード型コントローラ9の台9aの中心(すなわち、上記座標系の原点)から離れるほど、中立領域幅を小さく設定する。例えば、ボード型コントローラ9の台9aの大きさは有限であり、台9aの端で足踏みする場合に足踏みすることが難しくなることがある。このような場合であっても、中立領域幅を小さく設定することによって、足踏み判定を正確に行うことができる。
Next, the
次に、CPU10は、中立領域幅に基づいて、左足踏み判定線および右足踏み判定線を設定し(ステップ74)、当該サブルーチンによる処理を終了する。例えば、CPU10は、上記判定基準線を中心として両側平行に左足踏み判定線および右足踏み判定線を設定する。なお、CPU10は、ユーザ方向に向かって上記判定基準線の左側に左足踏み判定線を設定し、ユーザ方向に向かって上記判定基準線の右側に右足踏み判定線を設定するとともに、左足踏み判定線と右足踏み判定線との間隙幅が上記中立領域幅となるように左足踏み判定線および右足踏み判定線(図9参照)を設定する。そして、CPU10は、設定された左足踏み判定線および右足踏み判定線を用いて、足踏み判定線データDiに含まれる左足踏み判定線および右足踏み判定線を示すデータを更新する。
Next, the
図11に戻り、上記ステップ46における足踏み判定線設定処理の後、CPU10は、動作設定処理を行い(ステップ47)、次のステップに処理を進める。以下、図15を参照して、ステップ47で行う動作設定処理について説明する。
Returning to FIG. 11, after the stepping determination line setting process in
図15において、CPU10は、足踏みフラグデータDnを参照して、足踏みフラグがオフに設定されているか否かを判断する(ステップ111)。そして、CPU10は、足踏みフラグがオフに設定されている場合、次のステップ112に処理を進める。一方、CPU10は、足踏みフラグがオンに設定されている場合、次のステップ116に処理を進める。
In FIG. 15, the
ステップ112において、CPU10は、最新の重心位置が中立領域から右足領域へ移動したか否かを判断する。例えば、CPU10は、重心位置データDcが示す最新の重心位置および足踏み判定線データDiが示す右足踏み判定線を用いて、左足踏み判定線および右足踏み判定線で挟まれた中立領域から右足踏み判定線を越えて右足領域へ重心位置が移動したか否かを判断する。そして、CPU10は、最新の重心位置が中立領域から右足領域へ移動した場合、次のステップ113に処理を進める。一方、CPU10は、最新の重心位置が中立領域から右足領域へ移動していない場合、次のステップ116に処理を進める。
In
ステップ113において、CPU10は、左足を上げる動作にプレイヤオブジェクトPoの動作を設定し、次のステップに処理を進める。例えば、CPU10は、プレイヤオブジェクトPoが左足を上げた状態で、走る、歩く、またはその場で停止するように、プレイヤオブジェクトPoの動作を設定してオブジェクト動作データDjを更新する。ここで、プレイヤオブジェクトPoが走っているのか、歩いているのか、その場で停止しているのかについては、走行速度データDkが示す速度に基づいて設定される。また、CPU10は、ユーザ方向ベクトルデータDfが示すユーザ方向ベクトルの方向に応じて、仮想世界におけるプレイヤオブジェクトPoの方向を設定してオブジェクト動作データDjを更新する。なお、ユーザ方向ベクトルの方向やプレイヤオブジェクトPoの方向に応じて、仮想世界に設定されている仮想カメラの方向や位置を変化させる場合、上記ステップ113において仮想カメラに関するデータが更新される。
In
次に、CPU10は、走行速度および走行距離を算出して(ステップ114)、次のステップに処理を進める。例えば、CPU10は、右足を上げる動作に設定されてから現時点までを処理対象期間として、当該処理対象期間の長さ(時間)、当該処理対象期間における合計荷重値の推移、および当該処理対象期間における重心位置の推移の少なくとも1つを用いて、走行速度および走行距離を算出する。
Next, the
一例として、CPU10は、上記処理対象期間の長さ(時間)に基づいて、走行速度(プレイヤオブジェクトPoが移動する速度)を算出し、算出された速度を用いて走行速度データDkを更新する。具体的には、CPU10は、上記処理対象期間の長さが短い程、プレイヤオブジェクトPoが移動する速度を速く算出する。この場合、ユーザがボード型コントローラ9上で足踏みするピッチが短いほどプレイヤオブジェクトPoが仮想世界内を移動する速度が速くなることになる。
As an example, the
また、処理対象期間の長さ(時間)および上述のように算出されたプレイヤオブジェクトPoの移動速度に基づいて、走行距離(プレイヤオブジェクトPoが移動した距離)が算出され、算出された距離を用いて走行距離データDmが更新される。具体的には、CPU10は、処理対象期間の長さおよびプレイヤオブジェクトPoの移動速度に基づいて、当該処理対象期間中にプレイヤオブジェクトPoが仮想世界内を移動した距離を算出する。そして、CPU10は、走行距離データDmが示す走行距離に算出された移動距離を加算することによって新たな走行距離を算出し、当該新たな走行距離を用いて走行距離データDmを更新する。なお、CPU10は、上記新たな走行距離およびプレイヤオブジェクトPoの方向に基づいて、プレイヤオブジェクトPoの仮想世界における新たな配置位置を算出し、当該新たな配置位置を用いてオブジェクト動作データDjを更新する。
Further, a travel distance (a distance traveled by the player object Po) is calculated based on the length (time) of the processing target period and the movement speed of the player object Po calculated as described above, and the calculated distance is used. Thus, the travel distance data Dm is updated. Specifically, the
次に、CPU10は、足踏みフラグをオンに設定して足踏みフラグデータDnを更新し(ステップ115)、当該サブルーチンによる処理を終了する。
Next, the
ステップ116において、CPU10は、足踏みフラグデータDnを参照して、足踏みフラグがオンに設定されているか否かを判断する。そして、CPU10は、足踏みフラグがオンに設定されている場合、次のステップ117に処理を進める。一方、CPU10は、足踏みフラグがオフに設定されている場合、次のステップ121に処理を進める。
In
ステップ117において、CPU10は、最新の重心位置が中立領域から左足領域へ移動したか否かを判断する。例えば、CPU10は、重心位置データDcが示す最新の重心位置および足踏み判定線データDiが示す左足踏み判定線を用いて、中立領域から左足踏み判定線を越えて左足領域へ重心位置が移動したか否かを判断する。そして、CPU10は、最新の重心位置が中立領域から左足領域へ移動した場合、次のステップ118に処理を進める。一方、CPU10は、最新の重心位置が中立領域から左足領域へ移動していない場合、次のステップ121に処理を進める。
In
ステップ118において、CPU10は、右足を上げる動作にプレイヤオブジェクトPoの動作を設定し、次のステップに処理を進める。例えば、CPU10は、プレイヤオブジェクトPoが右足を上げた状態で、走る、歩く、またはその場で停止するように、プレイヤオブジェクトPoの動作を設定してオブジェクト動作データDjを更新する。ここで、プレイヤオブジェクトPoが走っているのか、歩いているのか、その場で停止しているのかについては、上記ステップ113と同様に走行速度データDkが示す速度に基づいて設定される。また、CPU10は、ユーザ方向ベクトルデータDfが示すユーザ方向ベクトルの方向に応じて、仮想世界におけるプレイヤオブジェクトPoの方向を設定してオブジェクト動作データDjを更新する。なお、ユーザ方向ベクトルの方向やプレイヤオブジェクトPoの方向に応じて、仮想世界に設定されている仮想カメラの方向や位置を変化させる場合、上記ステップ113において仮想カメラに関するデータが更新される。
In step 118, the
次に、CPU10は、走行速度および走行距離を算出して(ステップ119)、次のステップに処理を進める。例えば、CPU10は、左足を上げる動作に設定されてから現時点までを処理対象期間として、当該処理対象期間の長さ(時間)、当該処理対象期間における合計荷重値の推移、および当該処理対象期間における重心位置の推移の少なくとも1つを用いて、上記ステップ114と同様に、走行速度および走行距離を算出する。
Next, the
次に、足踏みフラグをオフに設定して足踏みフラグデータDnを更新し(ステップ120)、当該サブルーチンによる処理を終了する。 Next, the stepping flag is set to OFF and the stepping flag data Dn is updated (step 120), and the processing by the subroutine is terminated.
一方、ボード型コントローラ9上においてユーザが右足で足踏みするような動作や左足で足踏みするような動作をしていない場合(例えば、足踏み動作において一方の足を上げている状態や両足を下ろして静止している状態である場合)、CPU10は、現在設定されている動作を継続する動作に設定し(ステップ121)、次のステップに処理を進める。例えば、CPU10は、現時点においてオブジェクト動作として設定されている上げ足はそのままプレイヤオブジェクトPoの動作として設定し、走行速度データDkが示す速度に基づいて、走る、歩く、またはその場で停止する動作を設定して、設定された動作を用いてオブジェクト動作データDjを更新する。また、CPU10は、ユーザ方向ベクトルデータDfが示すユーザ方向ベクトルの方向に応じて、仮想世界におけるプレイヤオブジェクトPoの方向を設定してオブジェクト動作データDjを更新する。なお、ユーザ方向ベクトルの方向やプレイヤオブジェクトPoの方向に応じて、仮想世界に設定されている仮想カメラの方向や位置を変化させる場合、上記ステップ113において仮想カメラに関するデータが更新される。
On the other hand, when the user does not perform an operation of stepping with the right foot or a stepping with the left foot on the board-type controller 9 (for example, a state where one foot is raised or both feet are lowered in the stepping motion) In this case, the
次に、CPU10は、走行速度および走行距離を算出して(ステップ122)、当該サブルーチンによる処理を終了する。例えば、CPU10は、走行速度データDkが示す速度を所定値だけ減衰させ、減衰後の速度を用いて走行速度データDkを更新する。具体的には、CPU10は、プレイヤオブジェクトPoの速度に基づいて、プレイヤオブジェクトPoが仮想世界内を移動した距離を算出し、走行距離データDmが示す走行距離に算出された移動距離を加算することによって新たな走行距離を算出して、当該新たな走行距離を用いて走行距離データDmを更新する。また、CPU10は、上記新たな走行距離およびプレイヤオブジェクトPoの方向に基づいて、プレイヤオブジェクトPoの仮想世界における新たな配置位置を算出し、当該新たな配置位置を用いてオブジェクト動作データDjを更新する。
Next, the
図11に戻り、上記ステップ47における動作設定処理の後、CPU10は、表示制御処理を行って(ステップ48)、次のステップに処理を進める。例えば、CPU10は、オブジェクト動作データDjが示すオブジェクトの動作、位置、および方向に基づいて、プレイヤオブジェクトPoを動作させて仮想世界に配置してモニタ2に表示する。また、CPU10は、走行速度データDkおよび走行距離データDmに基づいて、走行情報(例えば、文字情報)を生成してモニタ2に表示してもよい。
Returning to FIG. 11, after the operation setting process in
次に、CPU10は、ゲームを終了するか否かを判断する(ステップ49)。ゲームを終了する条件としては、例えば、ゲームオーバーやゲームクリアとなる条件が満たされたことや、ユーザがゲームを終了する操作を行ったこと等がある。CPU10は、ゲームを終了しない場合に上記ステップ42に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。
Next, the
このように、上述した処理によれば、ユーザがボード型コントローラ9上で足踏みしている方向を判定できるため、ユーザの動作を正確に判定することが可能である。例えば、当該方向を方向入力とすることによって、様々な情報処理に対する操作入力として用いることが可能となる。
As described above, according to the above-described processing, the direction in which the user is stepping on the board-
なお、上述した実施例では、ユーザがボード型コントローラ9上で足踏みしているユーザ方向に応じて、仮想世界におけるプレイヤオブジェクトPoの方向を変化させる処理を行う例を用いたが、当該ユーザ方向に応じて他の処理を行ってもかまわない。例えば、上記ユーザ方向に応じて、モニタ2に表示する仮想世界を生成するための仮想カメラの方向を変化させる処理を行ってもかまわない。この場合、ユーザがボード型コントローラ9上で足踏みしている方向に応じて仮想世界に対する視線方向が変化するため、ユーザが仮想世界を歩いた場合に見える仮想世界をモニタ2に表示することが可能となり、あたかも仮想世界内にいるかのような画像を表示することが可能となる。このように、上記ユーザ方向は、仮想世界における様々なキャラクタ、オブジェクト、仮想カメラ等の方向を制御するために用いることができる。
In the above-described embodiment, the example in which the process of changing the direction of the player object Po in the virtual world according to the user direction in which the user is stepping on the
また、上述した実施例では、上記ユーザ方向に応じて、足踏み判定線(中立領域)の方向を変化させることによって、ボード型コントローラ9上で足踏みしているユーザ動作を正確に判定している。すなわち、足踏み判定線(中立領域)を固定した状態で足踏み動作を判定する場合、ユーザがボード型コントローラ9上で足踏み方向を変えた場合に正確な動作判定が困難となるが、当該方向変化に応じて足踏み判定線(中立領域)を変化させることによって正確な動作判定が可能となる。このように、上記ユーザ方向は、仮想世界におけるオブジェクトや仮想カメラの方向を制御するだけでなく、ユーザ動作を判定するための判定ラインの制御にも有効であり、他の判定処理の条件変更に用いることができることは言うまでもない。
In the embodiment described above, the user's stepping on the
一例として、上述した足踏み判定線(中立領域)を、ユーザがボード型コントローラ9上で屈伸(ジャンプ)する動作の判定に用いることができる。例えば、最新の中心位置が中立領域内にあり、かつ、合計荷重値が所定の閾値(例えば、ユーザの体重に所定の割合を加算した値)以上に到達した場合に、ユーザがボード型コントローラ9上で屈伸する動作を行ったと判断する。このような動作判定においても、中立領域がユーザ方向に応じて変化させることができるため、当該動作判定をより正確に行うことができる。
As an example, the above-described stepping determination line (neutral region) can be used to determine an operation in which the user bends and stretches (jumps) on the
また、上述した説明では、ユーザがボード型コントローラ9上で足踏みしているユーザ方向に応じて、即時にオブジェクトや仮想カメラの方向制御が連動するような処理例を用いた。しかしながら、ユーザ方向の変化に応じて、所定の時間遅れてオブジェクトや仮想カメラの方向制御が行われるような処理でもかまわない。この場合、ユーザ方向が変わった後に、所定時間遅れて当該向きの変化に追従してオブジェクトや仮想カメラの方向が変化することになる。
Further, in the above description, a processing example is used in which the direction control of the object or the virtual camera is immediately linked in accordance with the direction of the user who is stepping on the
また、上述した情報処理例では、推定方向ベクトルの方向が反転範囲内である場合に当該推定方向ベクトルの方向を反転させて判定精度を向上させているが、他の処理段階において方向を反転させる処理を行ってもかまわない。例えば、上記ステップ65またはステップ67の処理においてユーザ方向ベクトルの方向を更新する際、新たに設定されるユーザ方向ベクトルの方向が上記反転範囲内である場合に、当該ユーザ方向ベクトルの方向を反転させてもかまわない。この場合、上記ステップ54およびステップ55における推定方向ベクトルの方向反転処理に、ユーザ方向ベクトルの方向反転処理をさらに加えてもいいし、推定方向ベクトルの方向反転処理の代わりにユーザ方向ベクトルの方向反転処理を行ってもかまわない。
In the information processing example described above, when the direction of the estimated direction vector is within the inversion range, the direction of the estimated direction vector is inverted to improve the determination accuracy. However, the direction is inverted in another processing stage. Processing may be performed. For example, when updating the direction of the user direction vector in the process of
また、上述した情報処理例では、推定方向ベクトルを複数加算することによってユーザ方向ベクトル候補の方向を算出しているが、1つの推定方向ベクトルの方向をそのままユーザ方向ベクトル候補の方向としてもかまわない。この場合、上記ステップ44で推定方向ベクトルが算出された後、ステップ45の処理を行い、ステップ61の処理を行わずにステップ62において当該推定方向ベクトルを正規化してユーザ方向ベクトル候補が算出される。このような場合であっても、ユーザ方向ベクトル候補を得た1つの推定方向ベクトルを算出するために用いられた2つの重心間長さを、重心移動量Mgに設定することによって、重心間長さが長い場合にユーザ方向を変化させる重み付けが可能となる。
In the information processing example described above, the direction of the user direction vector candidate is calculated by adding a plurality of estimated direction vectors. However, the direction of one estimated direction vector may be used as the direction of the user direction vector candidate as it is. . In this case, after the estimated direction vector is calculated in step 44, the process of step 45 is performed, and the estimated direction vector is normalized in
また、上述した処理例では、異なるタイミングで連続して算出された2つの重心位置を結ぶ差分ベクトルを用いて、繰り返し推定方向ベクトルを算出している。しかしながら、推定方向ベクトルは、他の重心位置を用いて算出されてもかまわない。例えば、異なるタイミングで算出された2つの重心位置であれば連続して算出されたものでなくてもよく、1つの重心位置と、当該重心位置が算出されてから所定時間後に算出された重心位置とを用いて推定方向ベクトルを算出してもかまわない。 Further, in the above-described processing example, the repeatedly estimated direction vector is calculated using a difference vector connecting two centroid positions continuously calculated at different timings. However, the estimated direction vector may be calculated using other barycentric positions. For example, two centroid positions calculated at different timings may not be calculated continuously, and one centroid position and the centroid position calculated a predetermined time after the centroid position is calculated. The estimated direction vector may be calculated using.
また、上述した処理例では、2本の判定線(左足踏み判定線、右足踏み判定線)を用いて、ユーザがボード型コントローラ9上で足踏みする動作の判定を行っている。このように中立領域を設けることによって、判定線付近を重心位置が様々な方向へ移動する場合であっても、何度も足踏み判定することを防止することができる。なお、このような効果を期待しない場合、ユーザの足踏みを判定するための判定線は、1本(例えば、基準判定線;図9参照)でもかまわない。この場合、当該判定線を一方から他方へ重心位置が横断した場合にユーザが一方の足で足踏みしたと判定し、当該判定線を他方から一方へ重心位置が横断した場合にユーザが他方の足で足踏みしたと判定する。
Further, in the processing example described above, the operation of the user stepping on the board-
また、上述したゲーム例では、プレイヤオブジェクトPoを少なくとも含む仮想世界の画像をモニタ2に表示したが、他の態様の仮想世界の画像をモニタ2に表示してもかまわない。例えば、プレイヤオブジェクトPoを表示せずに、プレイヤオブジェクトPoから見た主観視点の仮想世界画像をモニタ2に表示してもよい。この場合、モニタ2に主観視点で表示されている仮想世界の奥行方向は、プレイヤオブジェクトPoの移動方向と同じであってもいいし、プレイヤオブジェクトPoの移動方向と異なっていてもよい。モニタ2に主観視点で表示されている仮想世界の奥行方向と、プレイヤオブジェクトPoの移動方向と同じである場合、移動方向を奥行方向とした仮想世界がモニタ2に表示されるために、移動方向を設定する操作が直感的で当該移動方向をユーザが所望する方向に合わせることが容易となることは言うまでもない。
Further, in the above-described game example, the virtual world image including at least the player object Po is displayed on the
また、上述したシステム例では、仮想世界を表示するために1つの据置型の画像表示装置(モニタ2)を用いているが、可搬型の画像表示装置を用いてもかまわない。例えば、ユーザが可搬型の画像表示装置を把持して当該画像表示装置の画像を見ながら、ボード型コントローラ9上で足踏みする操作を行う場合、足踏みする方向を変えた場合であっても把持している画像表示装置自体の方向も変えることができるため、ユーザにとって仮想世界の画像が見やすく、ゲームの臨場感も高まることが考えられる。この場合、上述した1つの据置型の画像表示装置(モニタ2)に代えて可搬型の画像表示装置を用いてもいいし、据置型の画像表示装置に加えて可搬型の画像表示装置も用いるシステムであってもかまわない。
In the system example described above, one stationary image display device (monitor 2) is used to display the virtual world. However, a portable image display device may be used. For example, when the user performs a stepping operation on the board-
また、上述した処理例においては、ボード型コントローラ9を用いて判定されたユーザ動作に応じて、プレイヤオブジェクトPoが仮想世界内を走ったり歩いたりする画像がモニタ2に表示される例を用いたが、他の情報処理にも本発明が適用できることは言うまでもない。例えば、ボード型コントローラ9を用いて判定されたユーザ動作に応じて、プレイヤオブジェクトPoが仮想世界内で自転車や一輪車等の乗り物を操って移動する画像がモニタ2に表示されてもかまわない。
Further, in the processing example described above, an example is used in which an image in which the player object Po runs or walks in the virtual world is displayed on the
また、上述した説明では、ボード型コントローラ9に4つの荷重センサ94を設けているが、上記処理においてボード型コントローラ9に加わっている荷重の重心位置の情報が取得できれば、荷重センサ94を5つ以上も設けてもいいし、荷重センサ94を3つ設けてもかまわない。
In the above description, the
上述した説明では、コントローラ7とゲーム装置本体5とが無線通信によって接続されるとともに、ボード型コントローラ9とゲーム装置本体5とが無線通信によって接続された態様を用いたが、他の態様によって無線通信が行われてもかまわない。第1の例として、ボード型コントローラ9の操作データがコントローラ7へ無線送信され、ボード型コントローラ9から受信した操作データと共にコントローラ7の操作データを、コントローラ7がゲーム装置本体5へ無線送信する。この場合、コントローラ7とゲーム装置本体5とが無線通信によって直接的に接続されるが、ボード型コントローラ9とゲーム装置本体5とはコントローラ7を介した無線通信によって接続されることになる。第2の例として、コントローラ7の操作データがボード型コントローラ9へ無線送信され、コントローラ7から受信した操作データと共にボード型コントローラ9の操作データを、ボード型コントローラ9がゲーム装置本体5へ無線送信する。この場合、ボード型コントローラ9とゲーム装置本体5とが無線通信によって直接的に接続されるが、コントローラ7とゲーム装置本体5とはボード型コントローラ9を介した無線通信によって接続されることになる。第3の例として、コントローラ7とボード型コントローラ9とがケーブルを介して電気的に接続され、ボード型コントローラ9の操作データが当該ケーブルを介してコントローラ7へ送信される。そして、ボード型コントローラ9から上記ケーブルを介して受信した操作データと共にコントローラ7の操作データを、コントローラ7がゲーム装置本体5へ無線送信する。第4の例として、コントローラ7とボード型コントローラ9とがケーブルを介して電気的に接続され、コントローラ7の操作データが当該ケーブルを介してボード型コントローラ9へ送信される。そして、コントローラ7から上記ケーブルを介して受信した操作データと共にボード型コントローラ9の操作データを、ボード型コントローラ9がゲーム装置本体5へ無線送信する。
In the above description, the
また、コントローラ7および/またはボード型コントローラ9とゲーム装置本体5とがケーブルを介して電気的に接続されてもかまわない。この場合、コントローラ7および/またはボード型コントローラ9に接続されたケーブルをゲーム装置本体5の接続端子に接続する。第1の例として、コントローラ7とゲーム装置本体5とが第1のケーブルを介して電気的に接続され、ボード型コントローラ9とゲーム装置本体5とも第2のケーブルを介して電気的に接続される。第2の例として、コントローラ7とゲーム装置本体5との間のみがケーブルを介して電気的に接続される。この場合、ボード型コントローラ9の操作データは、コントローラ7へ無線送信された後に上記ケーブルを介してゲーム装置本体5に送信されてもいいし、ボード型コントローラ9から直接ゲーム装置本体5に無線送信されてもよい。第3の例として、ボード型コントローラ9とゲーム装置本体5との間のみがケーブルを介して電気的に接続される。この場合、コントローラ7の操作データは、ボード型コントローラ9へ無線送信された後に上記ケーブルを介してゲーム装置本体5に送信されてもいいし、コントローラ7から直接ゲーム装置本体5に無線送信されてもよい。
Further, the
また、上記実施例では、据置型のゲーム装置3を用いて説明したが、携帯型のゲーム装置や一般的なパーソナルコンピュータ等の情報処理装置で本発明の情報処理プログラムを実行して、本発明を実現してもかまわない。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、PDA(Personal Digital Assistant)や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。何れの装置であっても、当該装置とボード型コントローラ9とを無線または有線で接続することによって、本発明を実現することができる。
In the above embodiment, the
また、上述した説明では情報処理をゲーム装置本体5で行う例を用いたが、上記情報処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置本体5が他の装置(例えば、サーバや他のゲーム装置)と通信可能に構成されている場合、上記情報処理における処理ステップは、ゲーム装置本体5および当該他の装置が協働することによって実行してもよい。一例として、他の装置において、プレイヤオブジェクトPoおよび仮想世界等を設定する処理が行われ、ゲーム装置本体5からオブジェクト動作データ、走行速度データ、走行距離データ等が他の装置へ送信されて、上記情報処理が行われることが考えられる。そして、他の装置で生成された仮想世界を示す画像データがゲーム装置本体5へ送信され、当該仮想世界がモニタ2に表示される。このように、上記情報処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した情報処理と同様の処理が可能となる。なお、上記情報処理における処理ステップの少なくとも一部をボード型コントローラ9(マイコン100)で行ってもよい。また、上述した情報処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置本体5のCPU10が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置本体5が備える専用回路によって上記処理の一部または全部が行われてもよい。
Moreover, although the example which performs information processing with the game device
また、上述したゲーム装置本体5の形状や、コントローラ7やボード型コントローラ9の形状および各種操作ボタンやセンサの形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した情報処理で用いられる処理順序、設定値、表示態様、判定に用いられる値等は、単なる一例に過ぎず他の順序、表示態様、値であっても、本発明を実現できることは言うまでもない。
In addition, the shape of the
また、上記情報処理プログラム(ゲームプログラム)は、光ディスク4等の外部記憶媒体を通じてゲーム装置本体5に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置本体5に供給されてもよい。また、情報処理プログラムは、ゲーム装置本体5内部の不揮発性記憶装置に予め記録されていてもよい。なお、情報処理プログラムを記憶する情報記憶媒体としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープなどでもよい。また、上記情報処理プログラムを記憶する情報記憶媒体としては、不揮発性半導体メモリや揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
The information processing program (game program) may be supplied not only to the
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。 Although the present invention has been described in detail above, the above description is merely illustrative of the present invention in all respects and is not intended to limit the scope thereof. It goes without saying that various improvements and modifications can be made without departing from the scope of the present invention. It is understood that the scope of the present invention should be construed only by the claims. Moreover, it is understood that those skilled in the art can implement an equivalent range from the description of the specific embodiments of the present invention based on the description of the present invention and the common general technical knowledge. In addition, it is to be understood that the terms used in the present specification are used in the meaning normally used in the art unless otherwise specified. Thus, unless defined otherwise, all technical and technical terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. In case of conflict, the present specification, including definitions, will control.
本発明に係る情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法は、ユーザの動作を正確に判定することができ、ユーザの動作に基づいた処理等を行う情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法として有用である。 An information processing program, an information processing apparatus, an information processing system, and an information processing method according to the present invention can accurately determine a user's operation and perform processing based on the user's operation. It is useful as an apparatus, an information processing system, and an information processing method.
1…ゲームシステム
2…モニタ
706…スピーカ
3…ゲーム装置
4…光ディスク
5…ゲーム装置本体
10…CPU
11…システムLSI
12…外部メインメモリ
13…ROM/RTC
14…ディスクドライブ
15…AV−IC
16…AVコネクタ
17…フラッシュメモリ
19…無線コントローラモジュール
23…アンテナ
31…入出力プロセッサ
32…GPU
34…VRAM
35…内部メインメモリ
7…コントローラ
100…マイコン
106…無線モジュール
9…ボード型コントローラ
94…荷重センサ
102…ADコンバータ
DESCRIPTION OF
11 ... System LSI
12 ... External
14 ...
16 ...
34 ... VRAM
35 ... Internal
Claims (23)
前記コンピュータを
前記入力装置から出力されたデータに基づいて、当該入力装置に加わる荷重における重心位置を繰り返し取得する重心位置取得手段と、
前記重心位置を用いて、前記入力装置上で足踏みするユーザ方向を算出するユーザ方向算出手段と、
前記ユーザ方向に基づいて、所定の処理を行う処理手段として機能させる、情報処理プログラム。 Data based on the load applied to the input device that is output from the input device that can carry the user's body is available, and is executed by the computer of the information processing device that processes the data obtained from the input device. An information processing program,
Centroid position acquisition means for repeatedly acquiring the centroid position of the load applied to the input device based on the data output from the input device;
User direction calculation means for calculating a user direction to step on the input device using the center of gravity position;
An information processing program that functions as processing means for performing predetermined processing based on the user direction.
前記処理手段は、前記重心位置取得手段が繰り返し取得する重心位置が前記判定線を横断した場合、前記入力装置上でユーザが足踏みしたと判定し、当該判定に基づいて前記所定の処理を行う、請求項1乃至13のいずれか1つに記載の情報処理プログラム。 The computer further functions as determination line setting means for setting at least one determination line extending in the user direction calculated by the user direction calculation means,
The processing means determines that the user has stepped on the input device when the gravity center position repeatedly acquired by the gravity center position acquisition means crosses the determination line, and performs the predetermined processing based on the determination. The information processing program according to any one of claims 1 to 13.
前記判定線設定手段は、前記ユーザ方向へ前記足踏み中心位置を基準とした位置に前記判定線を設定する、請求項14に記載の情報処理プログラム。 Based on the center-of-gravity position acquired by the center-of-gravity position acquisition unit, the computer further functions as a stepping center position calculating unit that calculates a stepping center position of a user stepping on the input device,
The information processing program according to claim 14, wherein the determination line setting means sets the determination line at a position with respect to the stepping center position in the user direction.
前記処理手段は、前記重心位置が前記間隙から前記判定線の一方を横断した場合、前記入力装置上でユーザが一方の足で足踏みしたと判定し、前記重心位置が前記間隙から前記判定線の他方を横断した場合、前記入力装置上でユーザが他方の足で足踏みしたと判定し、当該判定に基づいて前記所定の処理を行う、請求項15に記載の情報処理プログラム。 The determination line setting means sets the two determination lines extending in the user direction at positions having a predetermined gap around the stepping center position,
The processing means determines that the user has stepped on one foot on the input device when the position of the center of gravity crosses one of the determination lines from the gap, and the center of gravity position of the determination line extends from the gap. The information processing program according to claim 15, wherein when crossing the other, it is determined that the user has stepped on the other foot on the input device, and the predetermined processing is performed based on the determination.
前記入力装置から出力されたデータに基づいて、当該入力装置に加わる荷重における重心位置を繰り返し取得する重心位置取得手段と、
前記重心位置を用いて、前記入力装置上で足踏みするユーザ方向を算出するユーザ方向算出手段と、
前記ユーザ方向に基づいて、所定の処理を行う処理手段とを備える、情報処理装置。 Data based on the load applied to the input device that is output from the input device that can carry the user's body is available, and is an information processing device that processes data obtained from the input device,
Based on the data output from the input device, center of gravity position acquisition means for repeatedly acquiring the center of gravity position in the load applied to the input device;
User direction calculation means for calculating a user direction to step on the input device using the center of gravity position;
An information processing apparatus comprising processing means for performing predetermined processing based on the user direction.
前記入力装置から出力されたデータに基づいて、当該入力装置に加わる荷重における重心位置を繰り返し取得する重心位置取得手段と、
前記重心位置を用いて、前記入力装置上で足踏みするユーザ方向を算出するユーザ方向算出手段と、
前記ユーザ方向に基づいて、所定の処理を行う処理手段とを備える、情報処理システム。 A plurality of devices are configured to be communicable, and data based on the load applied to the input device that is output from the input device that can carry the user's body is available, and the data obtained from the input device can be used. An information processing system for processing,
Based on the data output from the input device, center of gravity position acquisition means for repeatedly acquiring the center of gravity position in the load applied to the input device;
User direction calculation means for calculating a user direction to step on the input device using the center of gravity position;
An information processing system comprising processing means for performing predetermined processing based on the user direction.
前記入力装置から出力されたデータに基づいて、当該入力装置に加わる荷重における重心位置を繰り返し取得する重心位置取得ステップと、
前記重心位置を用いて、前記入力装置上で足踏みするユーザ方向を算出するユーザ方向算出ステップと、
前記ユーザ方向に基づいて、所定の処理を行う処理ステップとを含む、情報処理方法。 Data based on a load applied to the input device that is output from the input device that can carry the user's body is available, and at least one information that can process the data obtained from the input device An information processing method executed by cooperation between one processor or a plurality of processors included in an information processing system constituted by a processing device,
Based on the data output from the input device, a center-of-gravity position acquisition step of repeatedly acquiring the center-of-gravity position in the load applied to the input device;
A user direction calculating step of calculating a user direction to step on the input device using the barycentric position;
A processing step of performing a predetermined process based on the user direction.
Priority Applications (16)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011225538A JP5785844B2 (en) | 2011-10-13 | 2011-10-13 | Information processing program, information processing apparatus, information processing system, and information processing method |
EP11194630.7A EP2497547B1 (en) | 2011-03-08 | 2011-12-20 | Information processing program, information processing apparatus, information processing system, and information processing method |
US13/333,045 US9205327B2 (en) | 2011-03-08 | 2011-12-21 | Storage medium having information processing program stored thereon, information processing apparatus, information processing system, and information processing method |
US13/343,913 US9345962B2 (en) | 2011-03-08 | 2012-01-05 | Storage medium having stored thereon information processing program, information processing apparatus, information processing system, and information processing method |
EP12150272.8A EP2497548A3 (en) | 2011-03-08 | 2012-01-05 | Information processing program, information processing apparatus, information processing system, and information processing method |
US13/352,091 US9370712B2 (en) | 2011-03-08 | 2012-01-17 | Information processing system, information processing apparatus, storage medium having information processing program stored therein, and image display method for controlling virtual objects based on at least body state data and/or touch position data |
EP12153067.9A EP2497549B1 (en) | 2011-03-08 | 2012-01-30 | Information processing program, information processing apparatus, information processing system, and information processing method |
US13/362,289 US9522323B2 (en) | 2011-03-08 | 2012-01-31 | Storage medium having stored thereon information processing program, information processing apparatus, information processing system, and information processing method |
US13/362,381 US8845430B2 (en) | 2011-03-08 | 2012-01-31 | Storage medium having stored thereon game program, game apparatus, game system, and game processing method |
US13/362,255 US20120231882A1 (en) | 2011-03-08 | 2012-01-31 | Storage medium having stored thereon game program, game apparatus, game system, and game processing method |
US13/401,054 US9492742B2 (en) | 2011-03-08 | 2012-02-21 | Storage medium having stored thereon information processing program, information processing apparatus, information processing system, and information processing method |
US13/400,944 US9526981B2 (en) | 2011-03-08 | 2012-02-21 | Storage medium having stored thereon information processing program, information processing apparatus, information processing system, and information processing method |
US13/402,026 US9492743B2 (en) | 2011-03-08 | 2012-02-22 | Storage medium having stored thereon information processing program, information processing apparatus, information processing system, and information processing method |
EP12156630.1A EP2497551B1 (en) | 2011-03-08 | 2012-02-23 | Information processing program, information processing apparatus, information processing system, and information processing method |
EP12156629A EP2497550A3 (en) | 2011-03-08 | 2012-02-23 | Information processing program, information processing apparatus, information processing system, and information processing method |
EP14166174.4A EP2781244A3 (en) | 2011-03-08 | 2012-02-23 | Information processing program, information processing apparatus, information processing system and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011225538A JP5785844B2 (en) | 2011-10-13 | 2011-10-13 | Information processing program, information processing apparatus, information processing system, and information processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013088838A JP2013088838A (en) | 2013-05-13 |
JP5785844B2 true JP5785844B2 (en) | 2015-09-30 |
Family
ID=48532736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011225538A Active JP5785844B2 (en) | 2011-03-08 | 2011-10-13 | Information processing program, information processing apparatus, information processing system, and information processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5785844B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019040555A (en) * | 2017-08-29 | 2019-03-14 | ソニー株式会社 | Information processing apparatus, information processing method, and program |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3314314B2 (en) * | 1993-07-23 | 2002-08-12 | 日本電信電話株式会社 | Information processing device |
JP5356765B2 (en) * | 2008-10-01 | 2013-12-04 | 株式会社バンダイナムコゲームス | PROGRAM, INFORMATION STORAGE MEDIUM, AND GAME DEVICE |
JP5436909B2 (en) * | 2009-03-30 | 2014-03-05 | 任天堂株式会社 | Information processing program, information processing apparatus, information processing system, and information processing method |
-
2011
- 2011-10-13 JP JP2011225538A patent/JP5785844B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013088838A (en) | 2013-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9205327B2 (en) | Storage medium having information processing program stored thereon, information processing apparatus, information processing system, and information processing method | |
JP5792971B2 (en) | Information processing system, information processing program, and information processing method | |
US9480918B2 (en) | Computer-readable storage medium having information processing program stored therein and information processing apparatus | |
JP5689705B2 (en) | Information processing system, information processing program, information processing device, input device, and information processing method | |
US11446564B2 (en) | Information processing system, storage medium storing information processing program, information processing apparatus, and information processing method | |
JP5610735B2 (en) | Information processing program, information processing apparatus, information processing method, and information processing system | |
US9561442B2 (en) | Storage medium having image processing program stored thereon and image processing apparatus | |
EP2392990A2 (en) | Input for computer device using pattern-based computer vision | |
JP2008136694A (en) | Program, information storage medium and game apparatus | |
US8523678B2 (en) | Game apparatus and game program | |
JP5785844B2 (en) | Information processing program, information processing apparatus, information processing system, and information processing method | |
JP6041466B2 (en) | Information processing program, information processing apparatus, information processing system, and information processing method | |
JP5806510B2 (en) | Information processing program, information processing apparatus, information processing system, and information processing method | |
JP5687545B2 (en) | Information processing program, information processing system, and information processing method | |
JP6246991B2 (en) | Information processing program, information processing apparatus, information processing system, and information processing method | |
JP2010082341A (en) | Program, information storage medium, and game console | |
JP5864121B2 (en) | Information processing program, information processing system, and information processing method | |
JP5759233B2 (en) | Information processing program, information processing system, and information processing method | |
JP2012252469A (en) | Information processing program, information processor, information processing system, and information processing method | |
JP2023166045A (en) | Information processing program, information processing device, information processing system and information processing method | |
CN117180744A (en) | Game operation method based on bar-shaped somatosensory controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140825 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150520 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150521 |
|
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: 20150716 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150727 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5785844 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 |