説明

ゲーム装置及びコンピュータプログラム

【課題】臨場感のある操作を実現し得るゲーム装置及びコンピュータプログラムを提供する。
【解決手段】プレイヤを支持する支持部78の右前部に設けられる第1の荷重センサ82aの出力に基づく第1の荷重データと、支持部の右後部に設けられる第2の荷重センサ82bの出力に基づく第2の荷重データとの差に基づいて、第1の値を算出し、支持部の左前部に設けられる第3の荷重センサ82cの出力に基づく第3の荷重データと、支持部の左後部に設けられる第4の荷重センサ82dの出力に基づく第4の荷重データとの差に基づいて、第2の値を算出し、算出した第1の値と第2の値とに基づいて、表示画面上に表示されるオブジェクトの挙動を決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム装置及びコンピュータプログラムに係り、特に、コントローラを用いたゲーム装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
近時、複数の荷重センサが設けられたコントローラ上にプレイヤが乗り、コントローラ上においてプレイヤが荷重のかけ方を変化させることにより、ゲームの入力操作を行う技術が提案されている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−264195号公報
【特許文献2】特開2008−119211号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、かかるコントローラを用いた場合には、必ずしも臨場感のある操作を実現し得ない場合があった。
【0005】
本発明の目的は、臨場感のある操作を実現し得るゲーム装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明の一観点によれば、プレイヤを支持する支持部と、前記支持部の右前部に設けられ、前記支持部からの荷重を検出する第1の荷重センサと、前記支持部の右後部に設けられ、前記支持部からの荷重を検出する第2の荷重センサと、前記支持部の左前部に設けられ、前記支持部からの荷重を検出する第3の荷重センサと、前記支持部の左後部に設けられ、前記支持部からの荷重を検出する第4の荷重センサとを有するコントローラを用いたゲーム装置としてコンピュータを機能させるためのコンピュータプログラムであって、前記コンピュータを、前記第1の荷重センサの出力に基づく第1の荷重データと前記第2の荷重センサの出力に基づく第2の荷重データとの差に基づいて第1の値を算出し、前記第3の荷重センサの出力に基づく第3の荷重データと前記第4の荷重センサの出力に基づく第4の荷重データとの差に基づいて第2の値を算出し、前記第1の値と前記第2の値とに基づいて、表示画面上に表示されるオブジェクトの挙動を決定する挙動決定手段として機能させるためのコンピュータプログラムが提供される。
【0007】
また、本発明の他の観点によれば、プレイヤを支持する支持部と、前記支持部の右前部に設けられ、前記支持部からの荷重を検出する第1の荷重センサと、前記支持部の右後部に設けられ、前記支持部からの荷重を検出する第2の荷重センサと、前記支持部の左前部に設けられ、前記支持部からの荷重を検出する第3の荷重センサと、前記支持部の左後部に設けられ、前記支持部からの荷重を検出する第4の荷重センサとを有するコントローラを用いたゲーム装置であって、前記第1の荷重センサの出力に基づく第1の荷重データと前記第2の荷重センサの出力に基づく第2の荷重データとの差に基づいて第1の値を算出し、前記第3の荷重センサの出力に基づく第3の荷重データと前記第4の荷重センサの出力に基づく第4の荷重データとの差に基づいて第2の値を算出し、前記第1の値と前記第2の値とに基づいて、表示画面上に表示されるオブジェクトの挙動を決定する挙動決定手段を有することを特徴とするゲーム装置が提供される。
【発明の効果】
【0008】
本発明によれば、プレイヤが支持される支持部の右前部に設けられる第1の荷重センサの出力に基づく第1の荷重データと、支持部の右後部に設けられる第2の荷重センサの出力に基づく第2の荷重データとの差に基づいて、第1の値を算出する。また、支持部の左前部に設けられる第3の荷重センサの出力に基づく第3の荷重データと、左後部の第4の荷重センサの出力に基づく第4の荷重データとの差に基づいて、第2の値を算出する。そして、これら第1の値と第2の値とに基づいて、表示画面上に表示されるオブジェクトの挙動を決定する。従って、本発明によれば、オブジェクトの旋回等を行うことも可能となり、臨場感のあるゲームを楽しむことができる。
【図面の簡単な説明】
【0009】
【図1】本発明の一実施形態によるゲーム装置の外観図である。
【図2】本発明の一実施形態において用いられるコントローラを示す上面図及び下面図である。
【図3】本発明の一実施形態によるゲーム装置を示すブロック図である。
【図4】プレイヤが第1のコントローラ上に乗っている状態を示す斜視図である。
【図5】本発明の一実施形態によるゲーム装置の表示画面の例を示す図である。
【図6】システムメモリに設けられる各メモリを示す図である。
【図7】ローカル座標系とオブジェクトとの関係を示す図である。
【図8】オブジェクトの挙動の決定の処理を示すフローチャートである。
【図9】プレイヤの足による第1のコントローラの操作を示す図である。
【図10】プレイヤが右足のつま先側及び左足のつま先側に体重を加えた場合を示す図である。
【図11】プレイヤが右足のかかと側及び左足のかかと側に体重を加えた場合を示す図である。
【図12】プレイヤが右足のかかと側及び左足のつま先側に体重をかけた場合を示す図である。
【図13】プレイヤが左足のかかと側及び右足のつま先側に体重をかけた場合を示す図である。
【図14】オブジェクトの挙動の具体例(その1)を示す図である。
【図15】オブジェクトの挙動の具体例(その2)を示す図である。
【図16】オブジェクトの挙動の具体例(その3)を示す図である。
【図17】オブジェクトの挙動の具体例(その4)を示す図である。
【図18】オブジェクトの挙動の具体例(その5)を示す図である。
【発明を実施するための形態】
【0010】
[一実施形態]
本発明の一実施形態によるゲーム装置及びコンピュータプログラムを図1乃至図17を用いて説明する。
【0011】
(ゲーム装置の外観)
まず、本実施形態のゲーム装置10の外観について説明する。図1は、本実施形態によるゲーム装置の外観図である。
【0012】
本実施形態のゲーム装置10は、テレビ台2上に設置されたテレビモニタ(表示部、表示手段)4に接続されて使用される。
【0013】
ゲーム装置10は、ゲーム装置本体12と、プレイヤ(遊戯者)により操作される第1のコントローラ20と、プレイヤにより操作される第2のコントローラ22とを有している。
【0014】
ゲーム装置本体12とテレビモニタ4とはケーブルにより接続されている。ゲーム装置本体12と第1のコントローラ20とは無線により通信可能である。また、ゲーム装置本体12と第2のコントローラ22とは無線により通信可能である。
【0015】
図2は、本実施形態において用いられるコントローラを示す上面図及び下面図である。図2(a)は上面図であり、図2(b)は下面図である。
【0016】
図2に示すように、第1のコントローラ20は、プレイヤの足が乗せられる支持部78と、支持部78の四隅に設けられ、支持部20に加わる荷重を検出するための4つの荷重センサ82a〜82dとを有している。コントローラ20は、荷重センサ82a〜82dにより検出される荷重検出値を、ゲーム装置本体12に送信する。プレイヤは、第1のコントローラ20に乗っている状態で、体重のかけ方を調整することにより、テレビモニタ4上に表示されるオブジェクト等の挙動を操作してゲームを行う。
【0017】
第2のコントローラ22は、プレイヤの例えば手23により操作される。第2のコントローラ22の操作面上には、電源ボタン28a、十字ボタン28b等の各種操作ボタン28(図3参照)が設けられている。プレイヤは、第2のコントローラ22を用いて、ゲームのスタート等の指示をゲーム装置本体12に入力することができる。
【0018】
(ゲーム装置の構成)
次に、本実施形態のゲーム装置の構成について説明する。図3は、本実施形態によるゲーム装置を示すブロック図である。
【0019】
図3に示すように、ゲーム装置10には、ゲームプログラムの実行やシステム全体の制御や画像表示のための座標計算等を行うCPU40と、CPU40が処理を行うのに必要なプログラムやデータを格納するバッファメモリとして利用されるシステムメモリ(RAM)42とがバスラインにより共通接続され、バスアービタ44に接続されている。バスアービタ44は、ゲーム装置10の各ブロックや外部に接続される機器とのプログラムやデータの流れを制御する。
【0020】
ゲームプログラムやデータ(映像データや音楽データも含む)が格納されたプログラムデータ記憶装置又は記憶媒体(ゲーム用記録媒体であるCD−ROM等を駆動する光ディスクや光ディスクドライブ等も含む)46と、ゲーム装置10を起動するためのプログラムやデータが格納されているBOOTROM48とがバスラインを介してバスアービタ44に接続されている。
【0021】
表示画像を生成するためには、システムメモリ42内に、表示するオブジェクトを構成する三次元ローカル座標データを有するポリゴンデータ(頂点データ)や、NURBS(Non Uniform Rational B-Spline)データ(曲面や制御点データ)を格納しておき、CPU40やジオメトリプロセッサ(図示しない)によって、これを三次元仮想空間のワールド座標系に配置してローカル座標をワールド座標系に変換する。
【0022】
更に、ワールド座標系に、プレイヤの操作やゲームの進行に伴って生成される視点座標を設定して、この視点から所定の視方向および画角でみた視野範囲にあるオブジェクトを、視点座標を原点とした視点座標系に変換して、この変換されたオブジェクトの座標をレンダリングプロセッサ50に送信する。
【0023】
レンダリングプロセッサ50は、送られてきたオブジェクトの座標に対して、まず、光源処理などの補間処理や、グラフィックメモリ52に格納されたテクスチャーデータをオブジェクトに貼り付けてオブジェクトの表面にディテールを施す。さらにレンダリングプロセッサ50は、三次元の立体オブジェクトから、テレビモニタ4に表示するために2次元平面(スクリーン)にオブジェクト(ポリゴン)を投影して2次元座標データ(スクリーン座標系)に変換し、Z座標の深さが浅いポリゴン即ち視点座標に近いポリゴンから優先的に表示するようにして2次元画像を生成して、これをCRTや液晶表示装置等のテレビモニタ4に出力する。
【0024】
バスアービタ44を介して、プログラムデータ記憶装置又は記憶媒体46から読み出した映像(MOVIE)データを再生したり、プレイヤの操作やゲーム進行に応じて画像表示のための画像を生成したりするレンダリングプロセッサ50と、そのレンダリングプロセッサ50が画像生成を行うために必要なグラフィックデータ等を格納しておくグラフィックメモリ52とが接続されている。レンダリングプロセッサ50から出力される画像信号は、ビデオDAC54によりデジタル信号からアナログ信号に変換され、テレビモニタ4により表示される。
【0025】
バスアービタ44を介して、プログラムデータ記憶装置又は記憶媒体46から読み出した音楽データを再生したり、プレイヤによる操作やゲーム進行に応じて効果音や音声を生成したりするサウンドプロセッサ56と、そのサウンドプロセッサ56により効果音や音声を生成するために必要なサウンドデータ等を格納しておくサウンドメモリ58とが接続されている。サウンドプロセッサ56から出力される音声信号は、オーディオDAC60によりデジタル信号からアナログ信号に変換され、テレビモニタ4のスピーカから出力される。
【0026】
バスアービタ44には、通信インターフェース62が接続されている。通信インターフェース62はLANアダプタ64を介して電話回線等の外部ネットワークに接続される。ゲーム装置本体12はLANアダプタ64によりインターネットに接続され、他のゲーム装置やネットワークサーバ等との通信が可能となる。
【0027】
なお、通信インターフェース62及びLANアダプタ64は電話回線を使用するものであるが、電話回線を使用するターミナルアダプタ(TA)やルータ、ケーブルテレビ回線を使用するケーブルモデム、携帯電話やPHSを利用して無線通信手段、光ファイバを用いた光ファイバ通信手段等の他の通信方法を利用してもよい。
【0028】
バスアービタ44には、コントローラ20及びリモートコントローラ22と無線通信するための無線受信部68が接続されている。無線受信部68は、第1のコントローラ20から送信される情報及び第2のコントローラ22から送信される情報を受信する。
【0029】
バスアービタ44には、ペリフェラルI/F(インターフェース)70が接続されている。ペリフェラルI/F70を介して、様々な周辺機器を接続することができる。
【0030】
なお、ゲーム装置10は、家庭用のゲーム装置に限定されるものではなく、パーソナルコンピュータや、携帯型電子ゲーム機、携帯電話やPDA等の電子装置、アミューズメント施設やゲームカフェ等の店舗に設置されるゲーム装置等の情報処理装置でもよい。
【0031】
(コントローラ)
次に、本実施形態において用いられる第1のコントローラについて図1乃至図4を用いて説明する。
【0032】
本実施形態による第1のコントローラ20は、ゲームの操作装置(操作手段)として機能する。コントローラ20は、プレイヤが乗るための支持部(支持板)78と、支持部78にかかる荷重を検出する荷重センサ82a〜82dとを有している。荷重センサ82a〜82dは、支持部78の四隅に配置されている。
【0033】
より具体的には、支持部78の右前部には第1の荷重センサ82aが配置されており、支持部78の右後部には第2の荷重センサ82bが配置されており、支持部78の左前部には第3の荷重センサ82cが配置されており、支持部78の左後部には第4の荷重センサ82dが配置されている。
【0034】
第1のコントローラ20の四隅には、脚80a〜80dが設けられている。各々の脚80a〜80dは例えば円柱状に形成されている。第1の荷重センサ82aは脚80aにより支持されており、第2の荷重センサ82bは脚80bにより支持されており、第3の荷重センサ82cは脚80cにより支持されており、第4の荷重センサ82dは脚80dにより支持されている。即ち、支持部78は、四隅に設けられた4つの荷重センサ82a〜82dを介して、4つの脚80a〜80dにより支持されている。
【0035】
図4は、プレイヤが第1のコントローラ上に乗っている状態を示す斜視図である。
【0036】
図4に示すようにプレイヤ6が第1のコントローラ20の支持部78上に乗った際には、プレイヤ6による荷重が、第1のコントローラ20の支持部78を介して荷重センサ82a〜82dに伝達される。
【0037】
荷重センサ82a〜82dとしては、例えば歪ゲージ式のロードセル等を用いることができる。荷重センサ82a〜82dは、加えられた荷重に応じた大きさの電気信号を出力する。
【0038】
なお、第1のコントローラ20は、支持部に加わる荷重を検出する複数の荷重センサを有するコントローラを適宜用いることができる。
【0039】
図3に示すように、第1のコントローラ20は、第1のコントローラ20全体の動作を制御するCPU88を有している。CPU88には、図示しないROMやRAM等が接続されている。CPU88は、ROMに記憶されたコンピュータプログラムにより、第1のコントローラ20の動作を制御する。
【0040】
各々の荷重センサ82a〜82dは、それぞれ増幅器84a〜84dを介して、ADコンバータ86に接続されている。
【0041】
無線送信部90は、第1のコントローラ20からゲーム装置本体12に対してデータの送信を行うためのものである。無線送信部90は、例えば第1のコントローラ20の内部に設けられている。荷重センサ82a〜82d、増幅器84a〜84d、ADコンバータ86、CPU88及び無線送信部90には、所定の電圧が電池等のバッテリー(図示せず)等により供給される。
【0042】
各々の荷重センサ82a〜82dは、入力された荷重を示す信号を出力する。各々の荷重センサ82a〜82dから出力された電気信号は、増幅器84によりそれぞれ増幅され、ADコンバータ86によりアナログ信号からデジタルデータに変換されて、CPU88に入力される。各々の荷重センサ82a〜82dによる検出値のデータには、各々の荷重センサ82〜82dの識別情報が付与され、いずれの荷重センサ82a〜82dによる荷重検出値であるかが識別可能となる。
【0043】
CPU88は、各々の荷重センサ82a〜82dによる荷重検出値を示すデータf1〜f4を取得する。f1は第1の荷重センサ82aによる荷重検出値を示すデータであり、f2は、第2の荷重センサ82bによる荷重検出値を示すデータであり、f3は第3の荷重センサ82cによる荷重検出値を示すデータであり、f4は第4の荷重センサ82dによる荷重検出値を示すデータである。
【0044】
荷重センサ82a〜82dによる荷重検出値を示すデータf1〜f4は、第1のコントローラ20の操作入力データとして、CPU88から無線送信部90を介してゲーム装置本体12に送信される。CPU88は、例えば1フレーム毎に荷重センサ82a〜82dによる荷重検出値を示すデータf1〜f4を送信する。
【0045】
(ゲーム実行処理)
本実施形態によるゲーム装置によるゲーム実行処理について説明する。
【0046】
図5は、本実施形態によるゲーム装置の表示画面の例を示す図である。
【0047】
本実施形態によるゲームは、プレイヤが、テレビモニタ(表示部、表示装置)2に表示されるホバーマシン(オブジェクト)100の向き(進行方向)やスピード(移動速度、進行速度)を、第1のコントローラ20を用いて操作し、テレビモニタ2に表示される旗(得点対象)102にホバーマシン100を到達させて旗102を取得することにより、得点を獲得していくゲームである。
【0048】
例えば、設けられた旗102のすべてを取得し終わるとゲームセットとなる。プレイヤは、すべての旗102を取得し終わるまでの時間の短さを競うことにより、ゲームを楽しむことができる。
【0049】
テレビモニタ4の画面の例えば左上部には、これまでに行われたゲームのうちの最高記録(BEST RECORD)104が表示される。また、テレビモニタ4の画面の中央上部には、残りの旗の本数106が表示される。また、テレビモニタ4の画面の右上部には、ゲームをスタートしてからの経過時間108が表示される。また、テレビモニタ4の画面には、得点付与の対象となる旗102が表示される。
【0050】
また、テレビモニタ4の画面には、プレイヤにより三次元仮想空間上において操作されるオブジェクト(ホバーマシン)100が表示される。テレビモニタ4の画面には、ホバーマシン100に操縦者(キャラクタ)110が搭乗している状態が表示される。
【0051】
ホバーマシン100の右前部、右後部、左前部、右後部には、それぞれジェットエンジン112a〜112dが設けられている。ジェットエンジン112a〜112dは、ホバーマシン100に推進力を付与するためのものである。ホバーマシン100は、仮想的な氷の上をジェットエンジン112a〜112dによる推進力を用いて走行する。右側のジェットエンジン112a、112bと左側のジェットエンジン112c、112dとは、独立して制御される。右前部のジェットエンジン112aと右後部のジェットエンジン112bは、同時にジェット噴射されることはない。また、左前部のジェットエンジン112cと左後部のジェットエンジン112dは、同時に噴射されることはない。
【0052】
例えば、右後部のジェットエンジン112bと左後部のジェットエンジン112dの両方からジェット噴射が行われれば、右後部のジェットエンジン112bと左後部のジェットエンジン112dとにより前方向の推進力がホバーマシン100に付与され、ホバーマシン100は前進する。
【0053】
また、右前部のジェットエンジン112aと左前部のジェットエンジン112cの両方からジェット噴射が行われれば、右前部のジェットエンジン112aと左前部のジェットエンジン112cとにより後ろ方向の推進力がホバーマシン100に付与され、ホバーマシン100は後退する。
【0054】
また、右前部のジェットエンジン112aと左後部のジェットエンジン112dとからジェット噴射が行われれば、右前部のジェットエンジン112aと左後部のジェットエンジン112dとにより推進力がホバーマシン100に付与される。右前部のジェットエンジン112aによる推進力の大きさと左後部のジェットエンジン112dによる推進力の大きさとが等しい場合には、ホバーマシン100は、中心の位置を変化させることなく、その場で右旋回する。右前部のジェットエンジン112aによる推進力の大きさが左後部のジェットエンジン112dによる推進力の大きさより大きい場合には、ホバーマシン100は右回転しながら後退する。左後部のジェットエンジン112dによる推進力の大きさが、右前部のジェットエンジン112aによる推進力の大きさより大きい場合には、ホバーマシン100は、右回転しながら前進する。
【0055】
また、右後部のジェットエンジン112bと左前部のジェットエンジン112cからジェット噴射が行われれば、右後部のジェットエンジン112bと左前部のジェットエンジン112cとにより推進力がホバーマシンに付与される。右後部のジェットエンジン112bによる推進力の大きさと左前部のジェットエンジン112cによる推進力の大きさとが等しい場合には、ホバーマシン100は、中心の位置を移動させることなく、その場で左旋回する。右後部のジェットエンジン112bによる推進力の大きさが左前部のジェットエンジン112cによる推進力の大きさより大きい場合には、ホバーマシン100は、左回転しながら前進する。左前部のジェットエンジン112cによる推進力の大きさが右後部のジェットエンジン112bによる推進力の大きさより大きい場合には、ホバーマシン100は、左回転しながら後退する。
【0056】
また、テレビモニタ4の画面には、ホバーマシン100の進行を阻害する障害物114も表示される。
【0057】
(体重データの取得)
ゲームを開始する前には、プレイヤに対して第1のコントローラ20上に乗ることを促す画面が、テレビモニタ4に表示される。
【0058】
プレイヤが第1のコントローラ20上に乗ると、プレイヤの体重の測定が行われる。具体的には、4つの荷重センサ82a〜82dによる荷重検出値を示すデータf〜fの合計値がプレイヤの体重のデータFとして認定される。プレイヤの体重Fは、以下のような式により表される。
【0059】
F=f+ f +f +f
図6は、システムメモリに設けられる各メモリを示す図である。
【0060】
CPU40は、プレイヤの体重のデータFを、システムメモリ42に設けられるプレイヤ体重メモリ(図6参照)に記憶する。
【0061】
(正規化係数の取得)
次に、CPU40は、データf〜fを正規化するための係数aを算出する。f〜fを正規化するための係数(正規化係数)aは、以下のような式により表される。
【0062】
a=1/F
CPU40は、正規化係数aを、システムメモリ42に設けられる正規化係数メモリ(図6参照)に記憶する。
【0063】
各々の荷重センサ82a〜82dによる荷重検出値のデータf〜fは、1フレーム毎に取得される。CPU40は、取得された荷重検出値のデータf〜fを、システムメモリ42に設けられるf〜fメモリに記憶する(図6参照)。
【0064】
nフレーム目のデータf1(n)〜f4(n)を正規化することにより得られる荷重検出値のデータg1(n)〜g4(n)は、以下のような式により表される。
【0065】
1(n)= f1(n) × a
2(n)= f2(n) × a
3(n)= f3(n) × a
4(n)= f4(n) × a
なお、データg1(n)〜g4(n)は正規化されているため、データg1(n)〜g4(n)の総和は1.0である。
【0066】
CPU40は、正規化されたデータg〜gを、システムメモリ42に設けられるg〜gメモリに記憶する(図6参照)。
【0067】
(荷重データの算出)
本実施形態では、プレイヤが第1のコントローラ20上に直立不動で乗っている際に、正規化された荷重検出値を示すデータg〜gがいずれも0.25となるような補正係数(補正値)b〜bが、予め決定されている。かかる補正係数b〜bは、プレイヤ毎に決定するわけではなく、すべてのプレイヤに対して一律に適用される。
【0068】
なお、ここでは、かかる補正係数b〜bをすべてのプレイヤに対して一律に適用する場合を例に説明するが、プレイヤ毎に補正係数b〜bを決定するようにしてもよい。
【0069】
正規化及び補正が行われた荷重検出値を示すデータ(荷重データ)W1(n)〜W4(n)は、以下のような式により表される。
【0070】
1(n)= g1(n) × b = f1(n) × a × b
2(n)= g2(n) × b = f2(n) × a × b
3(n)= g3(n) × b = f3(n) × a × b
4(n)= g4(n) × b = f4(n) × a × b
CPU40は、算出された荷重データW1(n)〜W4(n)を、システムメモリ42に設けられるW〜Wメモリに記憶する(図6参照)。
【0071】
(オブジェクトの配置)
ワールド座標系におけるオブジェクト(ホバーマシン)100のnフレーム目における位置座標P(n)は、以下のように表される。
【0072】
(n)= (PX(n),PY(n),PZ(n)
位置座標P(n)は、システムメモリ42内に設けられる位置座標メモリに記憶される(図6参照)。
【0073】
なお、ここでは、ワールド座標系におけるXZ平面は仮想的な地面と平行な面とし、ワールド座標系におけるY軸は仮想的な地面の法線方向とする。
【0074】
図7は、ローカル座標系とオブジェクトとの関係を示す図である。図7における紙面左右方向は、ローカル座標系におけるX軸方向に対応している。図7における紙面右方向がX軸の正の方向であり、図7における紙面左方向がX軸の負の方向である。図7における紙面上下方向は、ローカル座標系におけるZ軸方向に対応している。図7における紙面下方向がZ軸の正の方向であり、図7における紙面上方向がZ軸の負の方向である。図7の紙面の法線方向は、ローカル座標系におけるY軸方向に対応している。図7における紙面手前方向はY軸の正の方向であり、図7における紙面奥行き方向はY軸の負の方向である。
【0075】
ゲームの初期状態においては、オブジェクト100の左右方向における中心線とX軸方向とが一致している。より具体的には、ゲームの初期状態においては、オブジェクト100の右方向がX軸の正の方向と一致しており、オブジェクト100の左方向がX軸の負の方向と一致している。
【0076】
また、ゲームの初期状態においては、オブジェクト100の前後方向における中心線とZ軸方向とが一致している。より具体的には、ゲームの初期状態においては、オブジェクト100の後ろ方向がZ軸の正の方向と一致しており、オブジェクト100の前方向がZ軸の負の方向と一致している。
【0077】
また、オブジェクト100が水平面上に位置している状態においては、オブジェクト100の上下方向における中心線とY軸とが一致している。より具体的には、オブジェクト100が水平面上に位置している状態においては、オブジェクト100の下方向がY軸の正の方向と一致しており、オブジェクト100の上方向がY軸の負の方向と一致している。
【0078】
(オブジェクトの挙動の決定)
図8は、オブジェクトの挙動の決定の処理を示すフローチャートである。
【0079】
ゲームの実行が開始された場合には、CPU40は、荷重センサ82a〜82dによる荷重検出値を示すデータf1(n)〜f4(n)に基づいて、上記のようにして、正規化係数aを用いた正規化、及び、補正係数b〜bを用いた補正を行い、各々の荷重データW1(n)〜W4(n)を算出する(ステップS1)。CPU40による各々の荷重データW1(n)〜W4(n)の算出は、1フレーム毎に行われる。
【0080】
CPU40は、算出された荷重データW1(n)〜W4(n)を、システムメモリ42に設けられるW〜Wメモリに記憶する(図6参照)。
【0081】
次に、CPU40は、第2の荷重データW2(n)から第1の荷重データW1(n)を減算することにより、第1の値WR(n)を算出する(ステップS2)。第1の値WR(n)は、1フレーム毎に算出される。
【0082】
第1の値WR(n)は、以下のような式により表される。
【0083】
R(n)= W2(n) − W1(n)
CPU40は、算出された第1の値WR(n)を、システムメモリ42に設けられるWR(n)メモリに記憶する(図6参照)。
【0084】
また、CPU40は、第4の荷重データW4(n)から第3の荷重データW3(n)を減算することにより、第2の値WL(n)を算出する(ステップS3)。第2の値WL(n)は、1フレーム毎に算出される。
【0085】
第2の値WL(n)は、以下のような式により表される。
【0086】
L(n)= W4(n) − W3(n)
CPU40は、算出された第2の値WL(n)を、システムメモリ42に設けられるWL(n)メモリに記憶する(図6参照)。
【0087】
次に、CPU40は、第1の値WR(n)の絶対値が所定の閾値cより小さい場合(ステップS4)には、第1の値WR(n)に対して補正を行う(ステップS5)。具体的には、第1の値WR(n)の絶対値が所定の閾値cより小さい場合には、第1の値WR(n)に対して所定の補正係数dを乗算する。所定の閾値cは、例えば0.05とする。所定の補正係数dは、例えば0.02とする。このような処理を行うのは、プレイヤが意図していないにも拘わらず、わずかな荷重の変化によりオブジェクト100が挙動してしまうのを防止するためである。これにより、プレイヤが直立不動にしている場合には、オブジェクト100の挙動が著しく抑制される。
【0088】
また、CPU40は、第2の値WL(n)の絶対値が所定の閾値cより小さい場合には(ステップS6)、第2の値WL(n)に対して補正を行う(ステップS7)。具体的には、第2の値WL(n)の絶対値が所定の閾値cより小さい場合には、第2の値WL(n)に対して所定の補正係数dを乗算する。
【0089】
次に、CPU40は、第1の値WR(n)と第2の値WL(n)との積、即ち、(WR(n)×WL(n))の値を求める(ステップS8)。(WR(n)×WL(n))の値が負であり、且つ、(WR(n)×WL(n))の値が所定の閾値eより小さい場合には(ステップS9)、後述するオブジェクトを旋回させる処理が行われる(ステップS11〜S15)。(WR(n)×WL(n))が正である場合、又は、(WR(n)×WL(n))の値が負であっても、所定の閾値e以上の場合には、第1の値WR(n)と第2の値WL(n)とに基づいて、以下のようにして、オブジェクト100の挙動を決定する(ステップS10)。所定の閾値eは、例えば−0.01とすることができる。なお、このような所定の閾値eを用いるのは、プレイヤが意図していないにも拘わらず、わずかな荷重の変化によりオブジェクト100が旋回等してしまうのを防止するためである。
【0090】
CPU40は、第1の値WR(n)と第2の値WL(n)とに基づいて、以下のようにしてオブジェクト100の挙動を決定する。
【0091】
ローカル座標系におけるオブジェクト100のnフレーム目における回転角のデータA(n)は、以下のように表される。
【0092】
(n)= (AX(n),AY(n),AZ(n)
X(n)は、X軸を回転軸としたオブジェクト100の回転角を示すデータである。AY(n)は、Y軸を回転軸としたオブジェクト100の回転角を示すデータである。AZ(n)は、Z軸を回転軸としたオブジェクト100の回転角を示すデータである。回転軸に対して右回りの回転を正とし、回転軸に対して左回りの回転を負とする。
【0093】
オブジェクト100が移動する面が水平の場合には、X軸を回転軸とした回転及びZ軸を回転軸とした回転は行われず、Y軸を回転軸とした回転のみが行われる。ここでは、説明の煩雑化を防止すべく、オブジェクト100が移動する面が水平の場合を例に説明する。従って、ここでは、AX(n)及びAZ(n)の値は、それぞれ0とする。オブジェクト100の前後方向の中心線とZ軸とが並行であり、且つ、オブジェクト100の前方向がZ軸の負の方向と一致しているとき、AY(n)は0である。
【0094】
なお、オブジェクト100が傾斜面を移動するようにしてもよい。オブジェクト100が傾斜面を移動する場合には、AY(n)のみならず、AX(n)及びAZ(n)をも考慮すればよい。
【0095】
ローカル座標系における回転角AY(n)は、以下のような式により求められる。
【0096】
Y(n)= AY(n−1) + (WL(n) − WR(n)
なお、AY(n−1)はn−1フレーム目における回転角のデータであり、AY(n)はnフレーム目の回転角のデータである。n−1フレーム目の回転角のデータAY(n−1)は、システムメモリ42内に設けられる回転角メモリに記憶されている(図6参照)。
【0097】
また、(WL(n)− WR(n))の最小値は−1.0、最大値は1.0である。
【0098】
このようにして求められたnフレーム目の回転角A(n)を示すデータは、システムメモリ42内に設けられる回転角メモリに記憶される(図6参照)。
【0099】
なお、ワールド座標系にオブジェクト100を表示する際には、所定の換算式等を用いて、回転角を示すデータA(n)が角度の値A(n)′に変換される。
【0100】
かかる所定の換算式としては、例えば、以下のような換算式を用いることができる。
【0101】
(n)′ = k × A(n) × π
なお、kは、所定の係数である。
【0102】
ワールド座標系におけるオブジェクト100のnフレーム目におけるスピードV(n)は、以下のように表される。
【0103】
(n)= (VX(n),VY(n),VZ(n)
オブジェクト100のX軸方向のスピードVX(n)は、以下のように表される。
【0104】
X(n)= (WR(n)+WL(n)) × sin(AY(n)′)
オブジェクト100が移動する面が水平の場合には、オブジェクト100のY軸方向のスピードを示すVY(n)は0である。
【0105】
オブジェクト100のZ軸方向のスピードVZ(n)は、以下のように表される。
【0106】
Z(n)= (WR(n)+WL(n)) × cos(AY(n)′)
なお、ワールド座標系にオブジェクト100を表示する際には、所定の換算式等を用いて、VX(n)、VY(n)、VZ(n)に対して換算等が行われる。
【0107】
図9は、プレイヤの足による第1のコントローラの操作を示す図である。
【0108】
プレイヤの右足8aの重心が前側にも後ろ側にもなっていない場合には(図9(a)参照)、第1の値WR(n)は、WR(n)=0となる。この場合には、右前部のジェットエンジン112a及び右後部のジェットエンジン112bからはジェット噴射が行われない。
【0109】
プレイヤの左足8bの重心が前側にも後ろ側にもなっていない場合には(図9(a)参照)、第2の値WL(n)は、WL(n)=0となる。この場合には、左前部のジェットエンジン112c及び左後部のジェットエンジン112dからはジェット噴射が行われない。
【0110】
プレイヤが右足8aのつま先側に体重を加えた場合には(図9(b)参照)、第1の値WR(n)は、WR(n)<0となる。この場合には、右後部のジェットエンジン112bからジェット噴射が行われる。ジェット噴射の大きさは、第1の値WR(n)の絶対値の大きさに基づいて設定される。
【0111】
プレイヤが左足8bのつま先側に体重を加えた場合には(図9(b)参照)、第2の値WL(n)は、WL(n)<0となる。この場合には、左後部のジェットエンジン112dからジェット噴射が行われる。ジェット噴射の大きさは、第2の値WL(n)の絶対値の大きさに基づいて設定される。
【0112】
プレイヤが右足8aのかかと側に体重を加えた場合には(図9(c)参照)、第1の値WR(n)は、WR(n)>0となる。この場合には、右前部のジェットエンジン112aからジェット噴射が行われる。ジェット噴射の大きさは、第1のWR(n)の絶対値の大きさに基づいて設定される。
【0113】
プレイヤが左足8bのかかと側に体重を加えた場合には(図9(c)参照)、第2の値WL(n)は、WL(n)>0となる。この場合には、左前部のジェットエンジン112cからジェット噴射が行われる。ジェット噴射の大きさは、第2のWL(n)の絶対値の大きさに基づいて設定される。
【0114】
図10は、プレイヤが右足のつま先側及び左足のつま先側に体重を加えた場合を示す図である。図10におけるハッチングは、体重をかける箇所を示している。図10(a)は、第1のコントローラに加える荷重を示す平面図であり、図10(b)は、オブジェクトの挙動を示す表示画面の例である。
【0115】
プレイヤが右足8aのつま先側に体重を加えるとともに、左足8bのつま先側にも体重を加えた場合には、CPU40は、右後部のジェットエンジン112bからジェット噴射を行われ、左後部のジェットエンジン112dからもジェット噴射が行われる様子を、テレビモニタ4に表示する。なお、オブジェクト100の挙動は、上記のようにして決定される。
【0116】
図11は、プレイヤが右足のかかと側及び左足のかかと側に体重を加えた場合を示す図である。図11におけるハッチングは、体重をかける箇所を示している。図11(a)は、第1のコントローラに加える荷重を示す平面図であり、図11(b)は、オブジェクトの挙動を示す表示画面の例である。
【0117】
プレイヤが右足8aのかかと側に体重を加えるとともに、左足8bのかかと側にも体重を加えた場合には、CPU40は、右前部のジェットエンジン112aからジェット噴射が行われるとともに、左前部のジェットエンジン112bからもジェット噴射が行われる様子を、テレビモニタ4に表示する。なお、オブジェクト100の挙動は、上記のようにして決定される。
【0118】
上述したステップS9(図8参照)において、(WR(n)×WL(n))の値が負であり、且つ、(WR(n)×WL(n))の値が所定の閾値eより小さい場合には、以下のようにして、オブジェクト100の旋回処理が行われる。
【0119】
図12は、プレイヤが右足のかかと側及び左足のつま先側に体重をかけた場合を示す図である。図12におけるハッチングは、体重をかける箇所を示している。図12(a)は、第1のコントローラに加える荷重を示す平面図であり、図12(b)は、オブジェクトの挙動を示す表示画面の例である。
【0120】
図12に示すように、プレイヤが右足8aのかかと側に体重をかけつつ、左足8bのつま先側に体重をかけた場合には、第1の値WR(n)、第2の値WL(n)は、以下のようになる。
【0121】
R(n)> 0
L(n)< 0
このように、第1の値WR(n)が正であり、第2の値WL(n)が負である場合には(ステップS11)、オブジェクト100は右旋回することとなる。
【0122】
ところが、この場合には、左足8bについてつま先側に体重をかけるのは比較的容易である一方、右足8aについてかかと側に体重を十分にかけるのは必ずしも容易ではない。従って、この場合には、第1の値WR(n)に対して補正を行う(ステップS12)。具体的には、第1の値WR(n)に対して所定の補正係数hを乗算する。所定の補正係数hは、例えば2とすることができる。
【0123】
補正された第1の値WR(n)′は、以下のように表される。
【0124】
R(n)′ = WR(n) × h
CPU40は、補正された第1の値WR(n)′を、システムメモリ42に設けられるWR(n)′メモリに記憶する(図6参照)。
【0125】
オブジェクト100を右旋回させる場合には、補正された第1の値WR(n)′と補正されていない第2の値WL(n)とを用いて、以下のようにして、オブジェクト100の挙動が決定される(ステップS13)。
【0126】
ローカル座標系における回転角のデータAY(n)は、以下のような式により求められる。
【0127】
Y(n)= AY(n−1) + (WL(n) − WR(n)′)
なお、AY(n−1)はn−1フレーム目における回転角のデータであり、AY(n)はnフレーム目の回転角のデータである。n−1フレーム目の回転角のデータは、システムメモリ42内に設けられる回転角メモリに記憶されている(図6参照)。
【0128】
このようにして求められたnフレーム目の回転角AY(n)のデータは、システムメモリ内42に設けられる回転角メモリに記憶される(図6参照)。
【0129】
オブジェクト100のX軸方向のスピードVX(n)は、以下のように表される。
【0130】
X(n)= (WR(n)′+WL(n)) × sin(AY(n)′)
オブジェクト100が移動する面が水平の場合には、オブジェクト100のY軸方向のスピードVY(n)は0である。
【0131】
オブジェクト100のZ軸方向のスピードVZ(n)は、以下のように表される。
【0132】
Z(n)= (WR(n)′+WL(n)) × cos(AY(n)′)
CPU40は、右前部のジェットエンジン112aからジェット噴射が行われるとともに、左後部のジェットエンジン112dからもジェット噴射が行われる状態を示す画面を、テレビモニタ4に表示する。各々のジェット噴射の大きさは、第1の値WR(n)の絶対値の大きさ、第2の値WL(n)の絶対値の大きさに基づいてそれぞれ設定される。
【0133】
図13は、プレイヤが左足のかかと側及び右足のつま先側に体重をかけた場合を示す図である。図13におけるハッチングは、体重をかける箇所を示している。図13(a)は、第1のコントローラに加える荷重を示す平面図であり、図13(b)は、オブジェクトの挙動を示す表示画面の例である。
【0134】
図13のように、プレイヤが左足8bのかかと側に体重をかけつつ、右足8aのつま先側に体重をかけた場合には、第1の値WR(n)、第2の値WL(n)は、以下のようになる。
【0135】
R(n)< 0
L(n)> 0
このように第1の値WR(n)が負であり、第2の値WL(n)が正である場合には、オブジェクト100を左旋回させることとなる。
【0136】
ところが、この場合には、右足8aのつま先側に体重をかけるのは比較的容易である一方、左足8bのかかと側に体重を十分にかけるのは必ずしも容易ではない。従って、この場合には、第2の値WL(n)に対して補正を行う(ステップS14)。具体的には、第2の値WL(n)に対して所定の補正係数hを乗算する。所定の補正係数hは、上述したように、例えば2とすることができる。
【0137】
補正された第2の値WL(n)′は、以下のように表される。
【0138】
L(n)′ = WL(n) × h
CPU40は、補正された第2の値WL(n)′を、システムメモリ42に設けられるWL(n)′メモリに記憶する(図6参照)。
【0139】
オブジェクト100を左旋回させる場合には、補正されていない第1の値WR(n)と補正された第2の値WL(n)′とを用いて、以下のようにして、オブジェクト100の挙動が決定される(ステップS15)。
【0140】
ローカル座標系における回転角のデータAY(n)は、以下のような式により求められる。
【0141】
Y(n)= AY(n−1) + (WL(n)′ − WR(n)
なお、AY(n−1)はn−1フレーム目における回転角を示すデータであり、AY(n)はnフレーム目の回転角を示すデータである。n−1フレーム目の回転角を示すデータAY(n−1)は、システムメモリ42内に設けられる回転角メモリに記憶されている(図6参照)。
【0142】
このようにして求められたnフレーム目の回転角AY(n)のデータは、システムメモリ42内に設けられる回転角メモリに記憶される(図6参照)。
【0143】
オブジェクト100のX軸方向のスピードVX(n)は、以下のように表される。
【0144】
X(n)= (WR(n)+WL(n)′) × sin(AY(n)′)
オブジェクト100が移動する面が水平の場合には、オブジェクト100のY軸方向のスピードVY(n)は0である。
【0145】
オブジェクト100のZ軸方向のスピードVZ(n)は、以下のように表される。
【0146】
Z(n)= (WR(n)+WL(n)′) × cos(AY(n)′)
CPU40は、左前部のジェットエンジン112cからジェット噴射が行われるとともに、右後部のジェットエンジン112bからもジェット噴射が行われる状態を示す画面を、テレビモニタ4に表示する。各々のジェット噴射の大きさは、第1の値WR(n)の絶対値の大きさ、第2の値WL(n)の絶対値の大きさに基づいてそれぞれ設定される。
【0147】
このようにして、オブジェクト100の挙動が1フレーム毎に決定される。
【0148】
図8に示すオブジェクトの挙動を決定する処理は、ゲームが終了するまで繰り返し行われる。
【0149】
次に、オブジェクト100の挙動について、図14乃至図17を用いてより具体的に説明する。
【0150】
図14は、オブジェクトの挙動の具体例(その1)を示す図である。図14(a)は、第1のコントローラに加える荷重を示す平面図であり、図14(b)は、オブジェクトの挙動を示す平面図である。
【0151】
図14では、n−1フレーム目の回転角のデータAY(n−1)が0であり、第1の値WR(n)が−0.3であり、第2の値WL(n)も−0.3である。
【0152】
第2の値WL(n)から第1の値WR(n)を減算した値が0であるため、nフレーム目の回転角のデータAY(n)は、n−1フレーム目の回転角のデータAY(n−1)と同じ値である。従って、オブジェクト100の向きは変化しない。
【0153】
また、第1の値WR(n)と第2の値WL(n)との加算値が−0.6であるため、オブジェクト100は0.6の大きさに対応する速度で、Z軸の負の方向に進行する。
【0154】
図15は、オブジェクトの挙動の具体例(その2)を示す図である。図15(a)は、第1のコントローラに加える荷重を示す平面図であり、図15(b)は、オブジェクトの挙動を示す平面図である。
【0155】
図15は、n−1フレーム目の回転角のデータAY(n−1)が0ではなく、かつ、第1の値WR(n)が−0.3であり、第2の値WL(n)も−0.3である場合である。
【0156】
第2の値WL(n)から第1の値WR(n)を減算した値が0であるため、nフレーム目の回転角のデータAY(n)は、n−1フレーム目の回転角のデータAY(n−1)と同じ値である。このため、オブジェクト100の向きは、n−1フレーム目のオブジェクトの向きと同じ向きに維持される。
【0157】
第1の値WR(n)と第2の値WL(n)との加算値が−0.6であるため、図15の場合には、オブジェクト100は、回転角のデータAY(n)に対応する方向に、0.6の大きさに対応する速度で進行する。
【0158】
図16は、オブジェクトの挙動の具体例(その3)を示す図である。図16(a)は、第1のコントローラに加える荷重を示す平面図であり、図16(b)は、オブジェクトの挙動を示す平面図である。
【0159】
図16は、第1の値WR(n)′が0.3であり、第2の値WL(n)が−0.3である場合である。
【0160】
第2の値WL(n)から第1の値WR(n)′を減算した値が−0.6であるため、nフレーム目の回転角のデータAY(n)は、n−1フレーム目の回転角のデータAY(n−1)に対して、−0.6だけ変化する。より具体的には、上記の換算式を用いた場合には、−0.6kπだけ回転角の値が変化する。図16における紙面手前方向がY軸の正の方向であり、紙面奥行き方向がY軸の負の方向であり、回転軸に対して左回りの回転が負である。従って、図16を正面から見た場合には、オブジェクト100の回転方向は右回りとなる。
【0161】
また、第1の値WR(n)′と第2の値WL(n)との加算値が0であるため、オブジェクト100の中心の位置座標は変化しない。
【0162】
従って、図16の場合には、オブジェクト100は、移動することなく、その場で、0.6の大きさに対応する角度だけ右旋回することとなる。
【0163】
図17は、オブジェクトの挙動の具体例(その4)を示す図である。図17(a)は、第1のコントローラに加える荷重を示す平面図であり、図17(b)は、オブジェクトの挙動を示す平面図である。
【0164】
図17は、第1の値WR(n)が−0.3であり、第2の値WL(n)が−0.1である場合である。
【0165】
第2の値WL(n)から第1の値WR(n)を減算した値が0.2であるため、nフレーム目の回転角のデータAY(n)は、n−1フレーム目の回転角のデータAY(n−1)に対して、+0.2だけ変化する。より具体的には、上記の換算式を用いた場合には、+0.2kπだけ回転角の値が変化する。図17における紙面手前方向がY軸の正の方向であり、紙面奥行き方向がY軸の負の方向であり、回転軸に対して右回りの回転が正である。従って、図17を正面から見た場合には、オブジェクト100の回転方向は左回りとなる。
【0166】
また、第1の値WR(n)と第2の値WL(n)との加算値は−0.4である。
【0167】
従って、図17の場合には、オブジェクト100は、0.2に対応する角度だけ左回りに回転しながら、0.4の大きさに対応する速度で進行する。
【0168】
図18は、オブジェクトの挙動の具体例(その5)を示す図である。図18(a)は、第1のコントローラに加える荷重を示す平面図であり、図18(b)は、オブジェクトの挙動を示す平面図である。
【0169】
図18は、第1の値WR(n)が−0.3であり、第2の値WL(n)′が0.1である場合である。
【0170】
第2の値WL(n)′から第1の値WR(n)を減算した値が0.4であるため、nフレーム目の回転角のデータAY(n)は、n−1フレーム目の回転角のデータAY(n−1)に対して、+0.4だけ変化する。より具体的には、上記の換算式を用いた場合には、+0.4kπだけ回転角の値が変化する。図18における紙面手前方向がY軸の正の方向であり、紙面奥行き方向がY軸の負の方向であり、回転軸に対して右回りの回転が正である。従って、図18を正面から見た場合には、オブジェクト100の回転方向は左回りとなる。
【0171】
また、第1の値WR(n)と第2の値WL(n)′との加算値は−0.2である。
【0172】
従って、図18の場合には、オブジェクト100は、0.4に対応する角度だけ左回りに回転しながら、0.2の大きさに対応する速度で進行する。
【0173】
このようにして、オブジェクト100の挙動が決定され、決定された挙動に対応するように、テレビモニタ4の画面のオブジェクト100が挙動する。
【0174】
本実施形態におけるゲームにおいては、すべての旗102を獲得し終わると、ゲームセットとなる。
【0175】
このように、本実施形態によれば、プレイヤが支持される支持部78の右前部に設けられる第1の荷重センサ82aの出力に基づく第1の荷重データと、支持部78の右後部に設けられる第2の荷重センサ82bの出力に基づく第2の荷重データとの差に基づいて、第1の値を算出し、支持部78の左前部に設けられる第3の荷重センサ82cの出力に基づく第3の荷重データと、支持部78の左後部の第4の荷重センサ82dの出力に基づく第4の荷重データとの差に基づいて、第2の値を算出する。そして、これら第1の値と第2の値とに基づいて、表示画面上に表示されるオブジェクトの挙動を決定する。従って、本実施形態によれば、オブジェクト100の旋回等をも行うことも可能となり、臨場感のあるゲームを楽しむことができる。
【0176】
[変形実施形態]
上記実施形態に限らず種々の変形が可能である。
【0177】
例えば、上記実施形態では、コントローラによりホバーマシンの挙動を決定する場合を例に説明したが、挙動が決定される対象となるオブジェクトはホバーマシンに限定されるものではない。例えば、四輪車、二輪車、一輪車等の挙動を決定する場合にも本発明を適用することができる。例えば、第1の値と第2の値との和が正の場合に四輪車、二輪車、一輪車等のオブジェクトを前進させ、第1の値と第2の値との和が負の場合に四輪車、二輪車、一輪車等のオブジェクトを後退させるようにしてもよい。また、第1の値と第2の値との和が負の場合に四輪車、二輪車、一輪車等のオブジェクトを前進させ、第1の値と第2の値との和が正の場合に四輪車、二輪車、一輪車等のオブジェクトを後退させるようにしてもよい。即ち、上記実施形態において例示したオブジェクトと同様の方向に、オブジェクトを移動させてもよいし、上記実施形態において例示したオブジェクトと反対方向にオブジェクトを移動させてもよい。また、上記実施形態において例示したオブジェクトと同様に、オブジェクトの向きを変化させてもよいし、上記実施形態において例示したオブジェクトと反対にオブジェクトの向きを変化させてもよい。
【符号の説明】
【0178】
2…テレビ台
4…テレビモニタ
6…プレイヤ
8a、8b…足
10…ゲーム装置
12…ゲーム装置本体
20…第1のコントローラ
22…第2のコントローラ
28…各種操作ボタン
28a…電源ボタン
28b…十字ボタン
40…CPU
42…システムメモリ(RAM)
44…バスアービタ
46…プログラムデータ記憶装置又は記憶媒体
48…BOOTROM
50…レンダリングプロセッサ
52…グラフィックメモリ
54…ビデオDAC
56…サウンドプロセッサ
58…サウンドメモリ
60…オーディオDAC
62…通信インターフェース
64…LANアダプタ
68…無線受信部
70…ペリフェラルインターフェース
78…支持部
80a〜80d…脚
82a〜82d…荷重センサ
84a〜84d…増幅器
86…ADコンバータ
88…CPU
90…無線送信部
100…オブジェクト
102…旗
104…最高記録
106…残りの旗の本数
108…経過時間
110…キャラクタ
112a〜112d…ジェットエンジン
114…障害物

【特許請求の範囲】
【請求項1】
プレイヤを支持する支持部と、前記支持部の右前部に設けられ、前記支持部からの荷重を検出する第1の荷重センサと、前記支持部の右後部に設けられ、前記支持部からの荷重を検出する第2の荷重センサと、前記支持部の左前部に設けられ、前記支持部からの荷重を検出する第3の荷重センサと、前記支持部の左後部に設けられ、前記支持部からの荷重を検出する第4の荷重センサとを有するコントローラを用いたゲーム装置としてコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、前記第1の荷重センサの出力に基づく第1の荷重データと前記第2の荷重センサの出力に基づく第2の荷重データとの差に基づいて第1の値を算出し、前記第3の荷重センサの出力に基づく第3の荷重データと前記第4の荷重センサの出力に基づく第4の荷重データとの差に基づいて第2の値を算出し、前記第1の値と前記第2の値とに基づいて、表示画面上に表示されるオブジェクトの挙動を決定する挙動決定手段
として機能させるためのコンピュータプログラム。
【請求項2】
請求項1記載のコンピュータプログラムにおいて、
前記第1の値と前記第2の値との差に基づいて、前記オブジェクトの向きを変化させる
ことを特徴とするコンピュータプログラム。
【請求項3】
請求項1又は2記載のコンピュータプログラムにおいて、
前記第1の値と前記第2の値との和に基づいて、前記オブジェクトの速度を決定する
ことを特徴とするコンピュータプログラム。
【請求項4】
請求項1乃至3のいずれか1項に記載のコンピュータプログラムにおいて、
前記第1の値は、前記第2の荷重データから前記第1の荷重データを減算した値であり、
前記第2の値は、前記第4の荷重データから前記第3の荷重データを減算した値であり、
前記挙動決定手段は、前記第1の値が正であり、且つ、前記第2の値が負である場合には、前記第1の値を所定の補正係数により補正し、補正された前記第1の値と補正されていない前記第2の値との差に基づいて前記オブジェクトの向きを変化させ、
前記挙動決定手段は、前記第1の値が負であり、且つ、前記第2の値が正である場合には、前記第2の値を前記所定の補正係数により補正し、補正されていない前記第1の値と補正された前記第2の値との差に基づいて前記オブジェクトの向きを変化させる
ことを特徴とするコンピュータプログラム。
【請求項5】
請求項1乃至3のいずれか1項に記載のコンピュータプログラムにおいて、
前記第1の値は、前記第2の荷重データから前記第1の荷重データを減算した値であり、
前記第2の値は、前記第4の荷重データから前記第3の荷重データを減算した値であり、
前記挙動決定手段は、前記第1の値が正であり、且つ、前記第2の値が負である場合には、前記第1の値を所定の補正係数により補正し、補正された前記第1の値と補正されていない前記第2の値との和に基づいて前記オブジェクトの速度を決定し、
前記挙動決定手段は、前記第1の値が負であり、且つ、前記第2の値が正である場合には、前記第2の値を前記所定の補正係数により補正し、補正されていない前記第1の値と補正された前記第2の値との和に基づいて前記オブジェクトの速度を決定する
ことを特徴とするコンピュータプログラム。
【請求項6】
請求項1乃至5のいずれか1項に記載のコンピュータプログラムにおいて、
前記第1の値と前記第2の値との和の符号に基づいて、前記オブジェクトを前進又は後退させる
ことを特徴とするコンピュータプログラム。
【請求項7】
請求項1乃至6のいずれか1項に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項8】
プレイヤを支持する支持部と、前記支持部の右前部に設けられ、前記支持部からの荷重を検出する第1の荷重センサと、前記支持部の右後部に設けられ、前記支持部からの荷重を検出する第2の荷重センサと、前記支持部の左前部に設けられ、前記支持部からの荷重を検出する第3の荷重センサと、前記支持部の左後部に設けられ、前記支持部からの荷重を検出する第4の荷重センサとを有するコントローラを用いたゲーム装置であって、
前記第1の荷重センサの出力に基づく第1の荷重データと前記第2の荷重センサの出力に基づく第2の荷重データとの差に基づいて第1の値を算出し、前記第3の荷重センサの出力に基づく第3の荷重データと前記第4の荷重センサの出力に基づく第4の荷重データとの差に基づいて第2の値を算出し、前記第1の値と前記第2の値とに基づいて、表示画面上に表示されるオブジェクトの挙動を決定する挙動決定手段を有する
ことを特徴とするゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2011−19817(P2011−19817A)
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2009−169062(P2009−169062)
【出願日】平成21年7月17日(2009.7.17)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】