(57)【要約】【課題】ユーザの重心位置に基づいて所定の処理を行う情報処理プログラムおよび情報処理装置において、ユーザの操作感を向上させること。【解決手段】重心位置が右入力領域に進入すると、仮想ゲーム空間におけるキャラクタが自転車の右ペダルを踏み下ろすモーションが開始されるとともに、自転車が加速され、さらに、重心位置に徐々に近づくように基準位置が移動し、それに連動して遊び領域と左入力領域の境界も重心位置に徐々に近づくように移動する。重心位置が左入力領域に進入すると、仮想ゲーム空間におけるキャラクタが自転車の左ペダルを踏み下ろすモーションが開始されるとともに、自転車が加速され、さらに、重心位置に徐々に近づくように基準位置が移動し、それに連動して遊び領域と右入力領域の境界も重心位置に徐々に近づくように移動する。【選択図】図１４
2010233705.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータを、
重心位置検出装置からの信号に基づいてユーザの重心位置を検出する重心位置検出手段、
記憶領域に記憶されている基準位置に対する前記重心位置検出手段によって検出される重心位置の相対位置に基づいて所定の処理を行う処理手段、および、
前記重心位置検出手段によって検出される重心位置に基づいて前記記憶領域に記憶されている基準位置を更新する基準位置更新手段、として機能させるための情報処理プログラム。
【請求項２】
前記基準位置更新手段は、前記重心位置検出手段によって逐次検出される重心位置に基づいて、前記記憶領域に記憶されている基準位置を逐次更新する、請求項１に記載の情報処理プログラム。
【請求項３】
前記基準位置更新手段は、前記重心位置検出手段によって検出される重心位置に近づくように、前記記憶領域に記憶されている基準位置を更新する、請求項１または２に記載の情報処理プログラム。
【請求項４】
前記基準位置更新手段は、前記重心位置検出手段によって検出される重心位置に段階的に近づくように、前記記憶領域に記憶されている基準位置を段階的に更新する、請求項３に記載の情報処理プログラム。
【請求項５】
前記基準位置更新手段は、前記記憶領域に記憶されている基準位置を、当該基準位置と前記重心位置検出手段によって検出される重心位置との間の位置へと更新する処理を繰り返す、請求項３に記載の情報処理プログラム。
【請求項６】
前記基準位置更新手段は、前記重心位置検出手段によって検出される重心位置に所定の割合で近づくように、前記記憶領域に記憶されている基準位置を更新する、請求項４に記載の情報処理プログラム。
【請求項７】
前記処理手段は、（ａ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置から第１の方向に一定距離以上離れたときに第１の処理を行い、（ｂ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置に対して前記第１の方向とは異なる第２の方向に一定距離以上離れたときに第２の処理を行う、請求項１〜６のいずれかに記載の情報処理プログラム。
【請求項８】
前記基準位置更新手段は、（ａ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置から第１の方向に一定距離以上離れたときに、前記記憶領域に記憶されている基準位置を前記第１の方向に移動させ、（ｂ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置に対して前記第１の方向とは反対の方向である第２の方向に一定距離以上離れたときに、前記記憶領域に記憶されている基準位置を前記第２の方向に移動させる、請求項７に記載の情報処理プログラム。
【請求項９】
前記処理手段は、（ａ）前記第１の処理が行われてから、その後に前記第２の処理が行われるまでの間は、前記第１の処理および前記第２の処理のうち、前記第２の処理のみを実行可能であり、（ｂ）前記第２の処理が行われてから、その後に前記第１の処理が行われるまでの間は、前記第１の処理および前記第２の処理のうち、前記第１の処理のみを実行可能である、請求項７または８に記載の情報処理プログラム。
【請求項１０】
前記処理手段は、（ａ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置に対して第１の方向に位置するときに、当該重心位置と基準位置の間の距離に応じた第１の処理を行い、（ｂ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置に対して前記第１の方向とは異なる第２の方向に位置するときに、当該重心位置と基準位置の間の距離に応じた第２の処理を行う、請求項１〜６のいずれかに記載の情報処理プログラム。
【請求項１１】
前記基準位置更新手段は、（ａ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置に対して第１の方向に位置するときに、前記記憶領域に記憶されている基準位置を前記第１の方向に移動させ、（ｂ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置に対して前記第１の方向とは反対の方向である第２の方向に位置するときに、前記記憶領域に記憶されている基準位置を前記第２の方向に移動させる、請求項１０に記載の情報処理プログラム。
【請求項１２】
前記基準位置更新手段は、前記重心位置検出手段によって検出される重心位置に、所定の接近限界位置を限度として近づくように、前記記憶領域に記憶されている基準位置を更新する、請求項１０または１１に記載の情報処理プログラム。
【請求項１３】
前記情報処理プログラムは、前記重心位置検出手段によって検出される重心位置に基づいて前記接近限界位置を決定する接近限界位置決定手段として前記コンピュータをさらに機能させる、請求項１２に記載の情報処理プログラム。
【請求項１４】
前記情報処理プログラムは、前記重心位置検出手段によって検出される重心位置と前記基準位置更新手段によって更新された後の基準位置とを示す画像を生成して表示装置に出力する表示制御手段として前記コンピュータをさらに機能させる、請求項１〜１３のいずれかに記載の情報処理プログラム。
【請求項１５】
前記情報処理プログラムは、前記ユーザによって把持される操作装置からの信号に基づいて当該操作装置の動きを検出する動き検出手段として前記コンピュータをさらに機能させ、
前記処理手段は、前記重心位置検出手段によって検出される前記相対位置と、前記動き検出手段によって検出される前記操作装置の動きの両方に基づいて前記所定の処理を行う、請求項１〜１４のいずれかに記載の情報処理プログラム。
【請求項１６】
重心位置検出装置からの信号に基づいてユーザの重心位置を検出する重心位置検出手段、
記憶領域に記憶されている基準位置に対する前記重心位置検出手段によって検出される重心位置の相対位置に基づいて所定の処理を行う処理手段、および、
前記重心位置検出手段によって検出される重心位置に基づいて前記記憶領域に記憶されている基準位置を更新する基準位置更新手段を備えた情報処理装置。
【請求項１７】
情報処理装置のコンピュータを、
重心位置検出装置からの信号に基づいてユーザの重心位置を検出する重心位置検出手段、
前記重心位置検出手段によって検出される重心位置が、基準領域、前記基準領域に隣接する第１領域、および前記基準領域に隣接し且つ前記第１領域と離れた第２領域、のいずれの領域に位置するかを判定する判定手段、
前記重心位置が前記第１領域に進入したことに応じて、第１の処理を実行し且つ前記重心位置検出手段によって検出される重心位置に近づくように前記基準領域の位置を更新する第１処理手段、および、
前記重心位置が前記第２領域に進入したことに応じて、第２の処理を実行し且つ前記重心位置検出手段によって検出される重心位置に近づくように前記基準領域の位置を更新する第２処理手段、として機能させるための情報処理プログラム。
【請求項１８】
重心位置検出装置からの信号に基づいてユーザの重心位置を検出する重心位置検出手段、
前記重心位置検出手段によって検出される重心位置が、基準領域、前記基準領域に隣接する第１領域、および前記基準領域に隣接し且つ前記第１領域と離れた第２領域、のいずれの領域に位置するかを判定する判定手段、
前記重心位置が前記第１領域に進入したことに応じて、第１の処理を実行し且つ前記重心位置検出手段によって検出される重心位置に近づくように前記基準領域の位置を更新する第１処理手段、および、
前記重心位置が前記第２領域に進入したことに応じて、第２の処理を実行し且つ前記重心位置検出手段によって検出される重心位置に近づくように前記基準領域の位置を更新する第２処理手段を備えた情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラムおよび情報処理装置に関し、特に例えば、ユーザの重心位置に基づいて所定の処理を行う情報処理プログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
従来、ユーザの重心位置に基づいて画面に表示されているキャラクタを移動させる情報処理プログラムが知られている（例えば、特許文献１参照）。この情報処理プログラムでは、所定のニュートラルエリアを設定し、重心位置がニュートラルエリアから出た場合にキャラクタの移動が開始され、重心位置がニュートラルエリアから出ていない場合にはキャラクタは移動しないようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３３４０８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載された情報処理プログラムにおいては、ユーザの重心位置は個々に異なる可能性があるため、ユーザがキャラクタを移動させたいのに重心位置が所定のニュートラルエリアから出ないためにキャラクタが移動しない場合や、ユーザがキャラクタを移動させたくないのに重心位置が所定のニュートラルエリアから出るためにキャラクタが移動してしまう場合があり、ユーザの意図通りにキャラクタを移動させることができず、ユーザにとって良好な操作感を得られないという問題があった。
【０００５】
ゆえに、本発明の目的は、ユーザの重心位置に基づいて所定の処理を行う情報処理プログラムおよび情報処理装置において、ユーザの操作感を向上させることである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号、図番号および補足説明は、本発明の理解を助けるために、後述する実施例との対応関係の一例を記したものであって、本発明の範囲を何ら限定するものではない。
【０００７】
本発明の情報処理プログラムの一例は、情報処理装置（１２）のコンピュータ（４０）を、重心位置検出手段、処理手段および基準位置更新手段として機能させるための情報処理プログラム（９０，９５）である。
上記重心位置検出手段は、重心位置検出装置（３６）からの信号に基づいてユーザの重心位置を検出する（Ｓ１３）。
上記処理手段は、記憶領域（４６）に記憶されている基準位置（９２）に対する前記重心位置検出手段によって検出される重心位置の相対位置に基づいて所定の処理を行う（Ｓ２２，Ｓ２３，Ｓ２８，Ｓ２９，Ｓ５１，Ｓ５３）。
上記基準位置更新手段は、前記重心位置検出手段によって検出される重心位置に基づいて前記記憶領域に記憶されている基準位置を更新する（Ｓ１５）。
【０００８】
なお、前記基準位置更新手段は、前記重心位置検出手段によって逐次検出される重心位置に基づいて、前記記憶領域に記憶されている基準位置を逐次更新してもよい。
これにより、ユーザの重心位置を用いた処理を行っている最中に（例えば重心位置を利用したゲームのプレイ中に）、ユーザが意図している位置からユーザの重心位置が無意識にずれてしまった場合（例えば、ユーザ自身は荷重コントローラの中央で足踏みをしていると思っていても、実際には無意識に徐々に右側に移動してしまっている場合など）でも、逐次、より適切な位置に基準位置を更新することができる。
【０００９】
また、前記基準位置更新手段は、前記重心位置検出手段によって検出される重心位置に近づくように、前記記憶領域に記憶されている基準位置を更新してもよい（Ｓ４２，Ｓ４５，Ｓ６２，Ｓ６５）。
これにより、ユーザの個人差による重心位置の偏りや、ユーザの無意識の重心位置の移動の問題があっても、それらの問題を解消するように基準位置を更新することができる。また、例えばユーザが基準位置に対して重心位置を或る方向に移動させて或る処理を指示した後に、続いて、基準位置に対して重心位置を反対の方向に移動させて別の処理を指示する場合には、基準位置が重心位置に近づくことにより、或る処理を指示してから別の処理を指示するときに必要となる重心の移動距離が短縮され、より素早く別の処理を指示することが可能となり、応答性が向上する。
【００１０】
また、前記基準位置更新手段は、前記重心位置検出手段によって検出される重心位置に段階的に近づくように、前記記憶領域に記憶されている基準位置を段階的に更新してもよい（図１４〜図１６，図１８〜図２０）。
【００１１】
また、前記基準位置更新手段は、前記記憶領域に記憶されている基準位置を、当該基準位置と前記重心位置検出手段によって検出される重心位置との間の位置（図２５における「１回の移動量」を示す矢印の先端位置）へと更新する処理を繰り返してもよい。
【００１２】
また、前記基準位置更新手段は、前記重心位置検出手段によって検出される重心位置に所定の割合（５％）で近づくように、前記記憶領域に記憶されている基準位置を更新してもよい（図２５）。
【００１３】
また、前記処理手段は、（ａ）前記重心位置検出手段によって検出される重心位置（９１）が前記記憶領域（９２）に記憶されている基準位置から第１の方向（Ｓ軸正方向）に一定距離（０．２）以上離れたときに第１の処理（Ｓ２２）を行い、（ｂ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置に対して前記第１の方向とは異なる第２の方向（Ｓ軸負方向）に一定距離（０．２）以上離れたときに第２の処理（Ｓ２８）を行ってもよい。
これにより、ユーザが重心位置検出装置を用いて第１の処理と第２の処理の一方を指示した後、それに続いて他方を指示する際の応答性が向上する。
【００１４】
また、前記基準位置更新手段は、（ａ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置から第１の方向に一定距離以上離れたときに、前記記憶領域に記憶されている基準位置を前記第１の方向に移動させ（Ｓ４２）、（ｂ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置に対して前記第１の方向とは反対の方向である第２の方向に一定距離以上離れたときに、前記記憶領域に記憶されている基準位置を前記第２の方向に移動させてもよい（Ｓ４５）。
これにより、ユーザが重心位置検出装置を用いて第１の処理と第２の処理の一方を指示した後、それに続いて他方を指示する際の応答性が向上する。
【００１５】
また、前記処理手段は、（ａ）前記第１の処理が行われてから、その後に前記第２の処理が行われるまでの間は、前記第１の処理および前記第２の処理のうち、前記第２の処理のみを実行可能であり（Ｓ２１、Ｓ２４、Ｓ３１）、（ｂ）前記第２の処理が行われてから、その後に前記第１の処理が行われるまでの間は、前記第１の処理および前記第２の処理のうち、前記第１の処理のみを実行可能であってもよい（Ｓ２５、Ｓ２７、Ｓ３０）。
【００１６】
また、前記処理手段は、（ａ）前記重心位置検出手段によって検出される重心位置（９６）が前記記憶領域に記憶されている基準位置（９７）に対して第１の方向（Ｔ軸正方向）に位置するときに、当該重心位置と基準位置の間の距離に応じた第１の処理（Ｓ５１）を行い、（ｂ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置に対して前記第１の方向とは異なる第２の方向（Ｔ軸負方向）に位置するときに、当該重心位置と基準位置の間の距離に応じた第２の処理（Ｓ５３）を行ってもよい。
これにより、ユーザが重心位置検出装置を用いて第１の処理と第２の処理の一方を指示した後、それに続いて他方を指示する際の応答性が向上する。
【００１７】
また、前記基準位置更新手段は、（ａ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置に対して第１の方向に位置するときに、前記記憶領域に記憶されている基準位置を前記第１の方向に移動させ（Ｓ６２）、（ｂ）前記重心位置検出手段によって検出される重心位置が前記記憶領域に記憶されている基準位置に対して前記第１の方向とは反対の方向である第２の方向に位置するときに、前記記憶領域に記憶されている基準位置を前記第２の方向に移動させてもよい（Ｓ６５）。
これにより、ユーザが重心位置検出装置を用いて第１の処理と第２の処理の一方を指示した後、それに続いて他方を指示する際の応答性が向上する。
【００１８】
また、前記基準位置更新手段は、前記重心位置検出手段によって検出される重心位置に、所定の接近限界位置を限度として近づくように、前記記憶領域に記憶されている基準位置を更新してもよい。
これにより、基準位置が重心位置に完全に重なるまで接近することがないので、ユーザは、第１の処理と第２の処理のいずれか一方の処理の指示を、重心位置検出装置を用いて継続的に入力することができる。
【００１９】
また、前記情報処理プログラムは、前記重心位置検出手段によって検出される重心位置に基づいて前記接近限界位置を決定する接近限界位置決定手段として前記コンピュータをさらに機能させてもよい。
これにより、接近限界位置を適切な位置に適応的に設定することができる。
【００２０】
また、前記情報処理プログラムは、前記重心位置検出手段によって検出される重心位置と前記基準位置更新手段によって更新された後の基準位置とを示す画像（図１３〜図２０、図２７〜図３１）を生成して表示装置に出力する表示制御手段（Ｓ１６）として前記コンピュータをさらに機能させてもよい。
これにより、基準位置が刻々と変化する様子をユーザに提示することができる。
【００２１】
また、前記情報処理プログラムは、前記ユーザによって把持される操作装置（２２）からの信号に基づいて当該操作装置の動きを検出する動き検出手段として前記コンピュータをさらに機能させ、前記処理手段は、前記重心位置検出手段によって検出される前記相対位置と、前記動き検出手段によって検出される前記操作装置の動きの両方に基づいて前記所定の処理を行ってもよい。
これにより、操作装置に対する操作によってプレイヤの体の一部が動くことによりプレイヤの重心位置が無意識に移動してしまったとしても、より適切な位置に基準位置を更新することができる。
【００２２】
本発明の情報処理装置の一例は、重心位置検出手段（４０，９０，９５）、処理手段（４０，９０，９５）および基準位置更新手段（４０，９０，９５）を備えた情報処理装置である。
上記重心位置検出手段は、重心位置検出装置（３６）からの信号に基づいてユーザの重心位置を検出する（Ｓ１３）。
上記処理手段は、記憶領域（４６）に記憶されている基準位置（９２）に対する前記重心位置検出手段によって検出される重心位置の相対位置に基づいて所定の処理を行う（９２）。
上記基準位置更新手段は、前記重心位置検出手段によって検出される重心位置に基づいて前記記憶領域に記憶されている基準位置を更新する（Ｓ１５）。
【００２３】
本発明の情報処理プログラムの他の一例は、情報処理装置のコンピュータを、重心位置検出手段、判定手段、第１処理手段および第２処理手段として機能させるための情報処理プログラムである。
上記重心位置検出手段は、重心位置検出装置からの信号に基づいてユーザの重心位置を検出する。
上記判定手段は、前記重心位置検出手段によって検出される重心位置が、基準領域、前記基準領域に隣接する第１領域、および前記基準領域に隣接し且つ前記第１領域と離れた第２領域、のいずれの領域に位置するかを判定する。
上記第１処理手段は、前記重心位置が前記第１領域に進入したことに応じて、第１の処理を実行し且つ前記重心位置検出手段によって検出される重心位置に近づくように前記基準領域の位置を更新する。
上記第２処理手段は、前記重心位置が前記第２領域に進入したことに応じて、第２の処理を実行し且つ前記重心位置検出手段によって検出される重心位置に近づくように前記基準領域の位置を更新する。
【００２４】
本発明の情報処理装置の他の一例は、重心位置検出手段、判定手段、第１処理手段および第２処理手段を備えた情報処理装置である。
上記重心位置検出手段は、重心位置検出装置からの信号に基づいてユーザの重心位置を検出する。
上記判定手段は、前記重心位置検出手段によって検出される重心位置が、基準領域、前記基準領域に隣接する第１領域、および前記基準領域に隣接し且つ前記第１領域と離れた第２領域、のいずれの領域に位置するかを判定する。
上記第１処理手段は、前記重心位置が前記第１領域に進入したことに応じて、第１の処理を実行し且つ前記重心位置検出手段によって検出される重心位置に近づくように前記基準領域の位置を更新する。
上記第２処理手段は、前記重心位置が前記第２領域に進入したことに応じて、第２の処理を実行し且つ前記重心位置検出手段によって検出される重心位置に近づくように前記基準領域の位置を更新する。
【発明の効果】
【００２５】
本発明によれば、ユーザの重心位置に基づいて所定の処理を行う情報処理プログラムおよび情報処理装置において、ユーザの操作感を向上させることができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態のゲームシステムを示す図
【図２】ゲームシステムの電気的な構成の一例を示すブロック図
【図３】コントローラの外観を示す図
【図４】コントローラの電気的な構成の一例を示すブロック図
【図５】荷重コントローラを示す斜視図
【図６】荷重コントローラの図５のＶＩ−ＶＩ断面を示す図
【図７】荷重コントローラの電気的な構成の一例を示すブロック図
【図８】コントローラおよび荷重コントローラを用いてゲームプレイするときの状態を概説する図
【図９】マーカ部およびコントローラの視野角を説明するための図
【図１０】対象画像を含む撮像画像の一例を示す図
【図１１】第１のビデオゲームのゲーム画像例
【図１２】荷重コントローラからの信号に基づいて計算される重心位置の一例
【図１３】第１のビデオゲームの実行時の基準位置の更新方法を示す図
【図１４】第１のビデオゲームの実行時の基準位置の更新方法を示す図
【図１５】第１のビデオゲームの実行時の基準位置の更新方法を示す図
【図１６】第１のビデオゲームの実行時の基準位置の更新方法を示す図
【図１７】第１のビデオゲームの実行時の基準位置の更新方法を示す図
【図１８】第１のビデオゲームの実行時の基準位置の更新方法を示す図
【図１９】第１のビデオゲームの実行時の基準位置の更新方法を示す図
【図２０】第１のビデオゲームの実行時の基準位置の更新方法を示す図
【図２１】第１のビデオゲームの実行時の外部メインメモリのメモリマップ
【図２２】第１のビデオゲームの実行時のＣＰＵの処理の流れを示すフローチャート
【図２３】第１のビデオゲームの実行時の入力判定処理の詳細を示すフローチャート
【図２４】第１のビデオゲームの実行時の基準位置更新処理の詳細を示すフローチャート
【図２５】第１のビデオゲームの実行時の基準位置の移動量を示す図
【図２６】第２のビデオゲームのゲーム画像例
【図２７】第２のビデオゲームの実行時の基準位置の更新方法を示す図
【図２８】第２のビデオゲームの実行時の基準位置の更新方法を示す図
【図２９】第２のビデオゲームの実行時の基準位置の更新方法を示す図
【図３０】第２のビデオゲームの実行時の基準位置の更新方法を示す図
【図３１】第２のビデオゲームの実行時の基準位置の更新方法を示す図
【図３２】第２のビデオゲームの実行時の外部メインメモリのメモリマップ
【図３３】第２のビデオゲームの実行時の入力判定処理の詳細を示すフローチャート
【図３４】第２のビデオゲームの実行時の基準位置更新処理の詳細を示すフローチャート
【図３５】第２のビデオゲームの実行時の基準位置の移動量を示す図
【発明を実施するための形態】
【００２７】
以下、本発明の実施形態について、図面を参照しながら説明する。
【００２８】
（ゲームシステム）
まず、本実施形態で利用されるゲームシステムについて説明する。図１において、ゲームシステム１０は、ビデオゲーム装置（以下、単に「ゲーム装置」という。）１２、コントローラ２２および荷重コントローラ３６を含む。なお、図示は省略するが、この実施例のゲーム装置１２は、最大４つのコントローラ（２２，３６）と通信可能に設計されている。また、ゲーム装置１２と各コントローラ（２２，３６）とは、無線によって接続される。たとえば、無線通信は、Ｂｌｕｅｔｏｏｔｈ規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格に従って実行されてもよい。
【００２９】
ゲーム装置１２は、略直方体のハウジング１４を含み、ハウジング１４の前面にはディスクスロット１６が設けられる。ディスクスロット１６から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク１８が挿入されて、ハウジング１４内のディスクドライブ５４（図２参照）に装着される。ディスクスロット１６の周囲には、ＬＥＤと導光板が配置され、さまざまな処理に応答させて点灯させることが可能である。
【００３０】
また、ゲーム装置１２のハウジング１４の前面であり、その上部には、電源ボタン２０ａおよびリセットボタン２０ｂが設けられ、その下部には、イジェクトボタン２０ｃが設けられる。さらに、リセットボタン２０ｂとイジェクトボタン２０ｃとの間であり、ディスクスロット１６の近傍には、外部メモリカード用コネクタカバー２８が設けられる。この外部メモリカード用コネクタカバー２８の内側には、外部メモリカード用コネクタ６２（図２参照）が設けられ、図示しない外部メモリカード（以下、単に「メモリカード」という。）が挿入される。メモリカードは、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置１２の内部に設けられるフラッシュメモリ４４（図２参照）のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。
【００３１】
なお、メモリカードとしては、汎用のＳＤカードを用いることができるが、メモリスティックやマルチメディアカード（登録商標）のような他の汎用のメモリカードを用いることもできる。
【００３２】
ゲーム装置１２のハウジング１４の後面には、ＡＶコネクタ５８（図２参照）が設けられ、そのＡＶコネクタ５８を用いて、ＡＶケーブル３２ａを通してゲーム装置１２にモニタ３４およびスピーカ３４ａを接続する。このモニタ３４およびスピーカ３４ａは典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２ａは、ゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ（モニタ）３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ３４の周辺（この実施例では、モニタ３４の上側）には、２つの赤外ＬＥＤ（マーカ）３４０ｍ，３４０ｎを備えるマーカ部３４ｂが設けられる。このマーカ部３４ｂは、電源ケーブル３２ｂを通してゲーム装置１２に接続される。したがって、マーカ部３４ｂには、ゲーム装置１２から電源が供給される。これによって、マーカ３４０ｍ，３４０ｎは発光し、それぞれモニタ３４の前方に向けて赤外光を出力する。
【００３３】
なお、ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置１２は、家庭用電源（商用電源）を、駆動に適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００３４】
このゲームシステム１０において、ユーザ（以下、プレイヤとも言う）がゲーム（またはゲームに限らず、他のアプリケーション）をプレイするために、ユーザはまずゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）のプログラムを記録している適宜の光ディスク１８を選択し、その光ディスク１８をゲーム装置１２のディスクドライブ５４にローディングする。応じて、ゲーム装置１２がその光ディスク１８に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置１２に入力を与えるためにコントローラ２２を操作する。たとえば、入力手段２６のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段２６に対する操作以外にも、コントローラ２２自体を動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３Ｄのゲーム世界におけるユーザの視点（カメラ位置）を変化させることができる。
【００３５】
図２はゲームシステム１０の電気的な構成を示すブロック図である。図示は省略するが、ハウジング１４内の各コンポーネントは、プリント基板に実装される。図２に示すように、ゲーム装置１２には、ＣＰＵ４０が設けられる。このＣＰＵ４０は、ゲームプロセッサとして機能する。このＣＰＵ４０には、システムＬＳＩ４２が接続される。このシステムＬＳＩ４２には、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８、ディスクドライブ５４およびＡＶＩＣ５６が接続される。
【００３６】
外部メインメモリ４６は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりし、ＣＰＵ４０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ４８は、いわゆるブートＲＯＭであり、ゲーム装置１２の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ５４は、光ディスク１８からプログラムデータやテクスチャデータ等を読み出し、ＣＰＵ４０の制御の下で、後述する内部メインメモリ４２ｅまたは外部メインメモリ４６に書き込む。
【００３７】
システムＬＳＩ４２には、入出力プロセッサ（Ｉ／Ｏプロセッサ）４２ａ、ＧＰＵ(Graphics  Processor  Unit)４２ｂ，ＤＳＰ(Digital  Signal  Processor)４２ｃ，ＶＲＡＭ４２ｄおよび内部メインメモリ４２ｅが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【００３８】
入出力プロセッサ４２ａは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後で詳細に説明する。
【００３９】
ＧＰＵ４２ｂは、描画手段の一部を形成し、ＣＰＵ４０からのグラフィクスコマンド（作画命令）を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵ４０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ４２ｂに与える。
【００４０】
図示は省略するが、上述したように、ＧＰＵ４２ｂにはＶＲＡＭ４２ｄが接続される。ＧＰＵ４２ｂが作画コマンドを実行するにあたって必要なデータ（画像データ：ポリゴンデータやテクスチャデータなどのデータ）は、ＧＰＵ４２ｂがＶＲＡＭ４２ｄにアクセスして取得する。なお、ＣＰＵ４０は、描画に必要な画像データを、ＧＰＵ４２ｂを介してＶＲＡＭ４２ｄに書き込む。ＧＰＵ４２ｂは、ＶＲＡＭ４２ｄにアクセスして描画のためのゲーム画像データを作成する。
【００４１】
なお、この実施例では、ＧＰＵ４２ｂがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、ＧＰＵ４２ｂは当該任意のアプリケーションについての画像データを生成する。
【００４２】
また、ＤＳＰ４２ｃは、オーディオプロセッサとして機能し、内部メインメモリ４２ｅや外部メインメモリ４６に記憶されるサウンドデータや音波形（音色）データを用いて、スピーカ３４ａから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【００４３】
上述のように生成されたゲーム画像データおよびオーディオデータは、ＡＶＩＣ５６によって読み出され、ＡＶコネクタ５８を介してモニタ３４およびスピーカ３４ａに出力される。したがって、ゲーム画面がモニタ３４に表示され、ゲームに必要な音（音楽）がスピーカ３４ａから出力される。
【００４４】
また、入出力プロセッサ４２ａには、フラッシュメモリ４４、無線通信モジュール５０および無線コントローラモジュール５２が接続されるとともに、拡張コネクタ６０および外部メモリカード用コネクタ６２が接続される。また、無線通信モジュール５０にはアンテナ５０ａが接続され、無線コントローラモジュール５２にはアンテナ５２ａが接続される。
【００４５】
入出力プロセッサ４２ａは、無線通信モジュール５０を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ４２ａは、定期的にフラッシュメモリ４４にアクセスし、ネットワークへ送信する必要があるデータ（送信データとする）の有無を検出し、当該送信データが有る場合には、無線通信モジュール５０およびアンテナ５０ａを介してネットワークに送信する。また、入出力プロセッサ４２ａは、他のゲーム装置から送信されるデータ（受信データとする）を、ネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、受信データをフラッシュメモリ４４に記憶する。ただし、一定の場合には、受信データをそのまま破棄する。さらに、入出力プロセッサ４２ａは、ダウンロードサーバからダウンロードしたデータ（ダウンロードデータとする）をネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、ダウンロードデータをフラッシュメモリ４４に記憶する。
【００４６】
また、入出力プロセッサ４２ａは、コントローラ２２や荷重コントローラ３６から送信される入力データをアンテナ５２ａおよび無線コントローラモジュール５２を介して受信し、内部メインメモリ４２ｅまたは外部メインメモリ４６のバッファ領域に記憶（一時記憶）する。入力データは、ＣＰＵ４０のゲーム処理によって利用された後、バッファ領域から消去される。
【００４７】
なお、この実施例では、上述したように、無線コントローラモジュール５２は、Ｂｌｕｅｔｏｏｔｈ規格にしたがってコントローラ２２や荷重コントローラ３６との間で通信を行う。
【００４８】
また、図面の都合上、図２では、コントローラ２２と荷重コントローラ３６とをまとめて記載してある。
【００４９】
さらに、入出力プロセッサ４２ａには、拡張コネクタ６０および外部メモリカード用コネクタ６２が接続される。拡張コネクタ６０は、ＵＳＢやＳＣＳＩのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ６０に有線ＬＡＮアダプタを接続し、無線通信モジュール５０に代えて当該有線ＬＡＮを利用することもできる。外部メモリカード用コネクタ６２には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ４２ａは、拡張コネクタ６０や外部メモリカード用コネクタ６２を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００５０】
詳細な説明は省略するが、図１にも示したように、ゲーム装置１２（ハウジング１４）には、電源ボタン２０ａ，リセットボタン２０ｂおよびイジェクトボタン２０ｃが設けられる。電源ボタン２０ａは、システムＬＳＩ４２に接続される。この電源ボタン２０ａがオンされると、ゲーム装置１２の各コンポーネントに図示しないＡＣアダプタを経て電源が供給され、システムＬＳＩ４２は、通常の通電状態となるモード（通常モードと呼ぶこととする）を設定する。一方、電源ボタン２０ａがオフされると、ゲーム装置１２の一部のコンポーネントのみに電源が供給され、システムＬＳＩ４２は、消費電力を必要最低限に抑えるモード（以下、「スタンバイモード」という。）を設定する。この実施例では、スタンバイモードが設定された場合には、システムＬＳＩ４２は、入出力プロセッサ４２ａ、フラッシュメモリ４４、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８および無線通信モジュール５０、無線コントローラモジュール５２以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、このスタンバイモードは、ＣＰＵ４０によってアプリケーションの実行が行われないモードである。
【００５１】
なお、システムＬＳＩ４２には、スタンバイモードにおいても電源が供給されるが、ＧＰＵ４２ｂ、ＤＳＰ４２ｃおよびＶＲＡＭ４２ｄへのクロックの供給を停止することにより、これらを駆動させないようにして、消費電力を低減するようにしてある。
【００５２】
また、図示は省略するが、ゲーム装置１２のハウジング１４内部には、ＣＰＵ４０やシステムＬＳＩ４２などのＩＣの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
【００５３】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン２０ａがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【００５４】
また、通常モードとスタンバイモードの切り替えは、コントローラ２２の電源スイッチ２６ｈ（図３参照）のオン／オフの切り替えによっても遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール５２ａへの電源供給を行わない設定にしてもよい。
【００５５】
リセットボタン２０ｂもまた、システムＬＳＩ４２に接続される。リセットボタン２０ｂが押されると、システムＬＳＩ４２は、ゲーム装置１２の起動プログラムを再起動する。イジェクトボタン２０ｃは、ディスクドライブ５４に接続される。イジェクトボタン２０ｃが押されると、ディスクドライブ５４から光ディスク１８が排出される。
【００５６】
（コントローラ）
図３（Ａ）ないし図３（Ｅ）は、コントローラ２２の外観の一例を示す。図３（Ａ）はコントローラ２２の先端面を示し、図３（Ｂ）はコントローラ２２の上面を示し、図３（Ｃ）はコントローラ２２の右側面を示し、図３（Ｄ）はコントローラ２２の下面を示し、そして、図３（Ｅ）はコントローラ２２の後端面を示す。
【００５７】
図３（Ａ）ないし図３（Ｅ）を参照して、コントローラ２２は、たとえばプラスチック成型によって形成されたハウジング２２ａを有している。ハウジング２２ａは、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング２２ａ（コントローラ２２）には、入力手段（複数のボタンないしスイッチ）２６が設けられる。具体的には、図３（Ｂ）に示すように、ハウジング２２ａの上面には、十字キー２６ａ，１ボタン２６ｂ，２ボタン２６ｃ，Ａボタン２６ｄ，−ボタン２６ｅ，ＨＯＭＥボタン２６ｆ，＋ボタン２６ｇおよび電源スイッチ２６ｈが設けられる。また、図３（Ｃ）および図３（Ｄ）に示すように、ハウジング２２ａの下面に傾斜面が形成されており、この傾斜面に、Ｂトリガースイッチ２６ｉが設けられる。
【００５８】
十字キー２６ａは、４方向プッシュスイッチであり、矢印で示す４つの方向、前（または上）、後ろ（または下）、右および左の操作部を含む。この操作部のいずれか１つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト（プレイヤキャラクタまたはプレイヤオブジェクト）の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００５９】
１ボタン２６ｂおよび２ボタン２６ｃは、それぞれ、押しボタンスイッチである。たとえば３次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。または、１ボタン２６ｂおよび２ボタン２６ｃは、Ａボタン２６ｄおよびＢトリガースイッチ２６ｉと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
【００６０】
Ａボタンスイッチ２６ｄは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
【００６１】
−ボタン２６ｅ、ＨＯＭＥボタン２６ｆ、＋ボタン２６ｇおよび電源スイッチ２６ｈもまた、押しボタンスイッチである。−ボタン２６ｅは、ゲームモードを選択するために使用される。ＨＯＭＥボタン２６ｆは、ゲームメニュー（メニュー画面）を表示するために使用される。＋ボタン２６ｇは、ゲームを開始（再開）したり、一時停止したりするなどのために使用される。電源スイッチ２６ｈは、ゲーム装置１２の電源を遠隔操作によってオン／オフするために使用される。
【００６２】
なお、この実施例では、コントローラ２２自体をオン／オフするための電源スイッチは設けておらず、コントローラ２２の入力手段２６のいずれかを操作することによってコントローラ２２はオンとなり、一定時間（たとえば、３０秒）以上操作しなければ自動的にオフとなるようにしてある。
【００６３】
Ｂトリガースイッチ２６ｉもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ２２で選択した位置を指定したりするために使用される。また、Ｂトリガースイッチ２６ｉを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Ｂトリガースイッチ２６ｉは、通常のＢボタンと同様に機能し、Ａボタン２６ｄによって決定したアクションを取り消すなどのために使用される。
【００６４】
また、図３（Ｅ）に示すように、ハウジング２２ａの後端面に外部拡張コネクタ２２ｂが設けられ、また、図３（Ｂ）に示すように、ハウジング２２ａの上面であり、後端面側にはインジケータ２２ｃが設けられる。外部拡張コネクタ２２ｂは、図示しない別の拡張コントローラを接続するためなどに使用される。インジケータ２２ｃは、たとえば、４つのＬＥＤで構成され、４つのうちのいずれか１つを点灯することにより、点灯ＬＥＤに対応するコントローラ２２の識別情報（コントローラ番号）を示したり、点灯させるＬＥＤの個数によってコントローラ２２の電源残量を示したりすることができる。
【００６５】
さらに、コントローラ２２は、撮像情報演算部８０（図４参照）を有しており、図３（Ａ）に示すように、ハウジング２２ａの先端面には撮像情報演算部８０の光入射口２２ｄが設けられる。また、コントローラ２２は、スピーカ８６（図４参照）を有しており、このスピーカ８６は、図３（Ｂ）に示すように、ハウジング２２ａの上面であり、１ボタン２６ｂとＨＯＭＥボタン２６ｆとの間に設けられる音抜き孔２２ｅに対応して、ハウジング２２ａ内部に設けられる。
【００６６】
なお、図３（Ａ）ないし図３（Ｅ）に示したコントローラ２２の形状や、各入力手段２６の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。
【００６７】
図４はコントローラ２２の電気的な構成を示すブロック図である。この図４を参照して、コントローラ２２はプロセッサ７０を含み、このプロセッサ７０には、内部バス（図示せず）によって、外部拡張コネクタ２２ｂ、入力手段２６、メモリ７２、加速度センサ７４、無線モジュール７６、撮像情報演算部８０、ＬＥＤ８２（インジケータ２２ｃ）、バイブレータ８４、スピーカ８６および電源回路８８が接続される。また、無線モジュール７６には、アンテナ７８が接続される。
【００６８】
プロセッサ７０は、コントローラ２２の全体制御を司り、入力手段２６、加速度センサ７４および撮像情報演算部８０によって入力された情報（入力情報）を、入力データとして無線モジュール７６およびアンテナ７８を介してゲーム装置１２に送信（入力）する。このとき、プロセッサ７０は、メモリ７２を作業領域ないしバッファ領域として用いる。
【００６９】
上述した入力手段２６（２６ａ−２６ｉ）からの操作信号（操作データ）は、プロセッサ７０に入力され、プロセッサ７０は操作データを一旦メモリ７２に記憶する。
【００７０】
また、加速度センサ７４は、コントローラ２２の縦方向（ｙ軸方向）、横方向（ｘ軸方向）および前後方向（長軸方向）（ｚ軸方向）の３軸で各々の加速度を検出する。この加速度センサ７４は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【００７１】
たとえば、加速度センサ７４は、第１所定時間毎に、ｘ軸，ｙ軸，ｚ軸の各々についての加速度（ａｘ，ａｙ，ａｚ）を検出し、検出した加速度のデータ（加速度データ）をプロセッサ７０に入力する。たとえば、加速度センサ７４は、各軸方向の加速度を、−２．０ｇ〜２．０ｇ（ｇは重力加速度である。以下、同じ。）の範囲で検出する。プロセッサ７０は、加速度センサ７４から与えられる加速度データを、第２所定時間毎に検出し、一旦メモリ７２に記憶する。プロセッサ７０は、操作データ、加速度データおよび後述するマーカ座標データの少なくとも１つを含む入力データを作成し、作成した入力データを、第３所定時間（たとえば、５ｍｓｅｃ）毎にゲーム装置１２に送信する。
【００７２】
なお、図３（Ａ）−図３（Ｅ）では省略したが、この実施例では、加速度センサ７４は、ハウジング２２ａ内部の基板上の十字キー２６ａが配置される付近に設けられる。
【００７３】
無線モジュール７６は、たとえばＢｌｕｅｔｏｏｔｈの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ７８から放射する。つまり、入力データは、無線モジュール７６によって微弱電波信号に変調されてアンテナ７８（コントローラ２２）から送信される。この微弱電波信号が上述したゲーム装置１２に設けられた無線コントローラモジュール５２によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置１２（ＣＰＵ４０）は、コントローラ２２からの入力データを取得することができる。そして、ＣＰＵ４０は、取得した入力データとプログラム（ゲームプログラム）とに従ってゲーム処理を行う。
【００７４】
さらに、上述したように、コントローラ２２には、撮像情報演算部８０が設けられる。この撮像情報演算部８０は、赤外線フィルタ８０ａ、レンズ８０ｂ、撮像素子８０ｃおよび画像処理回路８０ｄによって構成される。赤外線フィルタ８０ａは、コントローラ２２の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ３４の表示画面近傍（周辺）に配置されるマーカ３４０ｍおよび３４０ｎは、モニタ３４の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ８０ａを設けることによってマーカ３４０ｍおよび３４０ｎの画像をより正確に撮像することができる。レンズ８０ｂは、赤外線フィルタ８０ａを透過した赤外線を集光して撮像素子８０ｃへ出射する。撮像素子８０ｃは、たとえばＣＭＯＳセンサあるいはＣＣＤのような固体撮像素子であり、レンズ８０ｂによって集光された赤外線を撮像する。したがって、撮像素子８０ｃは、赤外線フィルタ８０ａを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子８０ｃによって撮像された画像を撮像画像と呼ぶ。撮像素子８０ｃによって生成された画像データは、画像処理回路８０ｄで処理される。画像処理回路８０ｄは、撮像画像内における撮像対象（マーカ３４０ｍおよび３４０ｎ）の位置を算出し、第４所定時間毎に、当該位置を示す各座標値を撮像データとしてプロセッサ７０に出力する。なお、画像処理回路８０ｄにおける処理については後述する。
【００７５】
（荷重コントローラ）
図５は図１に示した荷重コントローラ３６の外観を示す斜視図である。図５に示すように、荷重コントローラ３６は、プレイヤがその上に乗る（プレイヤの足を乗せる）台３６ａ、および台３６ａにかかる荷重を検出するための少なくとも４つの荷重センサ３６ｂを備える。なお、各荷重センサ３６ｂは台３６ａに内包されており（図７参照）、図５においてはその配置が点線で示されている。
【００７６】
台３６ａは、略直方体に形成されており、上面視で略長方形状である。たとえば長方形の短辺が３０ｃｍ程度に設定され、その長辺が５０ｃｍ程度に設定される。プレイヤが乗る台３６ａの上面は平坦にされる。台３６ａの４隅の側面は、部分的に円柱状に張り出すように形成されている。
【００７７】
この台３６ａにおいて、４つの荷重センサ３６ｂは、所定の間隔を置いて配置される。この実施例では、４つの荷重センサ３６ｂは、台３６ａの周縁部に、具体的には４隅にそれぞれ配置される。荷重センサ３６ｂの間隔は、台３６ａに対するプレイヤの荷重のかけ方によるゲーム操作の意図をより精度良く検出できるように適宜な値に設定される。
【００７８】
図６は、図５に示した荷重コントローラ３６のVI−VI断面図を示すとともに、荷重センサ３６ｂの配置された隅の部分が拡大表示されている。この図６から分かるように、台３６ａは、プレイヤが乗るための支持板３６０と脚３６２を含む。脚３６２は、荷重センサ３６ｂが配置される箇所に設けられる。この実施例では４つの荷重センサ３６ｂが４隅に配置されるので、４つの脚３６２が４隅に設けられる。脚３６２は、たとえばプラスチック成型によって略有底円筒状に形成されており、荷重センサ３６ｂは、脚３６２内の底面に設けられた球面部品３６２ａ上に配置される。支持板３６０は、この荷重センサ３６ｂを介して脚３６２に支持される。
【００７９】
支持板３６０は、上面と側面上部とを形成する上層板３６０ａ、下面と側面下部とを形成する下層板３６０ｂ、および上層板３６０ａと下層板３６０ｂとの間に設けられる中層板３６０ｃを含む。上層板３６０ａと下層板３６０ｂとは、たとえばプラスチック成型により形成されており、接着等により一体化される。中層板３６０ｃは、たとえば１枚の金属板のプレス成型により形成されている。この中層板３６０ｃが、４つの荷重センサ３６ｂの上に固定される。上層板３６０ａは、その下面に格子状のリブ（図示しない）を有しており、当該リブを介して中層板３６０ｃに支持されている。したがって、台３６ａにプレイヤが乗ったときには、その荷重は、支持板３６０、荷重センサ３６ｂおよび脚３６２を伝達する。図６に矢印で示したように、入力される荷重によって生じた床からの反作用は、脚３６２から、球面部品３６２ａ、荷重センサ３６ｂ、中層板３６０ｃを介して、上層板３６０ａに伝達する。
【００８０】
荷重センサ３６ｂは、たとえば歪ゲージ（歪センサ）式ロードセルであり、入力された荷重を電気信号に変換する荷重変換器である。荷重センサ３６ｂでは、荷重入力に応じて、起歪体３７０ａが変形して歪が生じる。この歪が、起歪体３７０ａに貼り付けられた歪センサ３７０ｂによって、電気抵抗の変化に変換され、さらに電圧変化に変換される。したがって、荷重センサ３６ｂは、入力荷重を示す電圧信号を出力端子から出力する。
【００８１】
なお、荷重センサ３６ｂは、音叉振動式、弦振動式、静電容量式、圧電式、磁歪式、またはジャイロ式のような他の方式の荷重センサであってもよい。
【００８２】
図５に戻って、荷重コントローラ３６には、さらに、電源ボタン３６ｃが設けられる。この電源ボタン３６ｃがオンされると、荷重コントローラ３６の各回路コンポーネント（図７参照）に電源が供給される。ただし、荷重コントローラ３６は、ゲーム装置１２からの指示に従ってオンされる場合もある。また、荷重コントローラ３６は、プレイヤが乗っていない状態が一定時間（たとえば、３０秒）以上継続すると、電源がオフされる。ただし、荷重コントローラ３６が起動されている状態で、電源ボタン３６ｃをオンしたときに、電源がオフされてもよい。
【００８３】
図７のブロック図には、荷重コントローラ３６の電気的な構成の一例が示される。なお、この図７では、信号および通信の流れは実線矢印で示される。破線矢印は、電源の供給を示している。
【００８４】
荷重コントローラ３６は、その動作を制御するためのマイクロコンピュータ（マイコン）１００を含む。マイコン１００は図示しないＣＰＵ、ＲＯＭおよびＲＡＭ等を含み、ＣＰＵはＲＯＭに記憶されたプログラムに従って荷重コントローラ３６の動作を制御する。
【００８５】
マイコン１００には、電源ボタン３６ｃ、ＡＤコンバータ１０２、ＤＣ−ＤＣコンバータ１０４および無線モジュール１０６が接続される。さらに、無線モジュール１０６には、アンテナ１０６ａが接続される。また、４つの荷重センサ３６ｂは、図３ではロードセル３６ｂとして示される。４つの荷重センサ３６ｂは、それぞれ、増幅器１０８を介してＡＤコンバータ１０２に接続される。
【００８６】
また、荷重コントローラ３６には電源供給のために電池１１０が収容されている。他の実施例では、電池に代えてＡＣアダプタを接続し、商用電源を供給するようにしてもよい。かかる場合には、ＤＣ−ＤＣコンバータに代えて、交流を直流に変換し、直流電圧を降圧および整流する電源回路を設ける必要がある。この実施例では、マイコン１００および無線モジュール１０６への電源の供給は、電池から直接的に行われる。つまり、マイコン１００内部の一部のコンポーネント（ＣＰＵ）と無線モジュール１０６とには、常に電源が供給されており、電源ボタン３６ｃがオンされたか否か、ゲーム装置１２から電源オン（荷重検出）のコマンドが送信されたか否かを検出する。一方、荷重センサ３６ｂ、ＡＤコンバータ１０２および増幅器１０８には、電池１１０からの電源がＤＣ−ＤＣコンバータ１０４を介して供給される。ＤＣ−ＤＣコンバータ１０４は、電池１１０からの直流電流の電圧値を異なる電圧値に変換して、荷重センサ３６ｂ、ＡＤコンバータ１０２および増幅器１０８に与える。
【００８７】
これら荷重センサ３６ｂ、ＡＤコンバータ１０２および増幅器１０８への電源供給は、マイコン１００によるＤＣ−ＤＣコンバータ１０４の制御によって、必要に応じて行われるようにしてよい。つまり、マイコン１００は、荷重センサ３６ｂを動作させて荷重を検出する必要があると判断されるときに、ＤＣ−ＤＣコンバータ１０４を制御して、各荷重センサ３６ｂ、ＡＤコンバータ１０２および各増幅器１０８に電源を供給するようにしてよい。
【００８８】
電源が供給されると、各荷重センサ３６ｂは、入力された荷重を示す信号を出力する。当該信号は各増幅器１０８で増幅され、ＡＤコンバータ１０２でアナログ信号からディジタルデータに変換されて、マイコン１００に入力される。各荷重センサ３６ｂの検出値には各荷重センサ３６ｂの識別情報が付与されて、いずれの荷重センサ３６ｂの検出値であるかが識別可能にされる。このようにして、マイコン１００は、同一時刻における４つの荷重センサ３６ｂのそれぞれの荷重検出値を示すデータを取得することができる。
【００８９】
一方、マイコン１００は、荷重センサ３６ｂを動作させる必要がないと判断されるとき、つまり、荷重検出タイミングでないとき、ＤＣ−ＤＣコンバータ１０４を制御して、荷重センサ３６ｂ、ＡＤコンバータ１０２および増幅器１０８への電源の供給を停止する。このように、荷重コントローラ３６では、必要なときにだけ、荷重センサ３６ｂを動作させて荷重の検出を行うことができるので、荷重検出のための電力消費を抑制することができる。
【００９０】
荷重検出の必要なときとは、典型的には、ゲーム装置１２（図１）が荷重データを取得したいときである。たとえば、ゲーム装置１２が荷重情報を必要とするとき、ゲーム装置１２は荷重コントローラ３６に対して荷重取得命令を送信する。マイコン１００は、ゲーム装置１２から荷重取得命令を受信したときに、ＤＣ−ＤＣコンバータ１０４を制御して、荷重センサ３６ｂ等に電源を供給し、荷重を検出する。一方、マイコン１００は、ゲーム装置１２から荷重取得命令を受信していないときには、ＤＣ−ＤＣコンバータ１０４を制御して、電源供給を停止する。
【００９１】
あるいは、マイコン１００は、一定時間ごとに荷重検出タイミングであると判断して、ＤＣ−ＤＣコンバータ１０４を制御するようにしてもよい。このような周期的な荷重検出を行う場合、周期情報は、たとえば、初めにゲーム装置１２から荷重コントローラ３６のマイコン１００に与えられて記憶されてよいし、または、予めマイコン１００に記憶されてよい。
【００９２】
荷重センサ３６ｂからの検出値を示すデータは、荷重コントローラ３６の操作データ（入力データ）として、マイコン１００から無線モジュール１０６およびアンテナ１０６ａを介してゲーム装置１２（図１）に送信される。たとえば、ゲーム装置１２からの命令を受けて荷重検出を行った場合、マイコン１００は、ＡＤコンバータ１０２から荷重センサ３６ｂの検出値データを受信したときに、当該検出値データをゲーム装置１２に送信する。あるいは、マイコン１００は、一定時間ごとに検出値データをゲーム装置１２に送信するようにしてもよい。荷重の検出周期よりも送信周期が長い場合には、送信タイミングまでに検出された複数の検出タイミングの荷重値を含むデータが送信される。
【００９３】
なお、無線モジュール１０６は、ゲーム装置１２の無線コントローラモジュール５２と同じ無線規格（Ｂｌｕｅｔｏｏｔｈ、無線ＬＡＮなど）で通信可能にされる。したがって、ゲーム装置１２のＣＰＵ４０は、無線コントローラモジュール５２等を介して荷重取得命令を荷重コントローラ３６に送信することができる。荷重コントローラ３６のマイコン１００は、無線モジュール１０６およびアンテナ１０６ａを介して、ゲーム装置１２からの命令を受信し、また、各荷重センサ３６ｂの荷重検出値（または荷重算出値）を含む入力データをゲーム装置１２に送信することができる。
【００９４】
たとえば４つの荷重センサ３６ｂで検出される４つの荷重値の単なる合計値に基づいて実行されるようなゲームの場合には、プレイヤは荷重コントローラ３６の４つの荷重センサ３６ｂに対して任意の位置をとることができ、つまり、プレイヤは台３６ａの上の任意の位置に任意の向きで乗ってゲームをプレイすることができる。しかし、ゲームの種類によっては、各荷重センサ３６ｂで検出される荷重値がプレイヤから見ていずれの方向の荷重値であるかを識別して処理を行う必要があり、つまり、荷重コントローラ３６の４つの荷重センサ３６ｂとプレイヤとの位置関係が把握されている必要がある。この場合、たとえば、４つの荷重センサ３６ｂとプレイヤとの位置関係を予め規定しておき、当該所定の位置関係が得られるようにプレイヤが台３６ａ上に乗ることが前提とされてよい。典型的には、台３６ａの中央に乗ったプレイヤの前後左右にそれぞれ荷重センサ３６ｂが２つずつ存在するような位置関係、つまり、プレイヤが荷重コントローラ３６の台３６ａの中央に乗ったとき、プレイヤの中心から右前、左前、右後および左後の方向にそれぞれ荷重センサ３６ｂが存在するような位置関係が規定される。この場合、この実施例では、荷重コントローラ３６の台３６ａが平面視で矩形状に形成されるとともにその矩形の１辺（長辺）に電源ボタン３６ｃが設けられているので、この電源ボタン３６ｃを目印として利用して、プレイヤには電源ボタン３６ｃの設けられた長辺が所定の方向（前、後、左または右）に存在するようにして台３６ａに乗ってもらうことを予め決めておく。このようにすれば、各荷重センサ３６ｂで検出される荷重値は、プレイヤから見て所定の方向（右前、左前、右後および左後）の荷重値となる。したがって、荷重コントローラ３６およびゲーム装置１２は、荷重検出値データに含まれる各荷重センサ３６ｂの識別情報と、予め設定（記憶）された各荷重センサ３６ｂのプレイヤに対する位置ないし方向を示す配置データとに基づいて、各荷重検出値がプレイヤから見ていずれの方向に対応するかを把握することができる。これにより、たとえば前後左右の操作方向のようなプレイヤによるゲーム操作の意図を把握することが可能になる。
【００９５】
なお、各荷重センサ３６ｂのプレイヤに対する配置は予め規定せずに、初期設定やゲーム中の設定などでプレイヤの入力によって配置が設定されるようにしてもよい。たとえば、プレイヤから見て所定の方向（左前、右前、左後または右後など）の部分に乗るようにプレイヤに指示する画面を表示するとともに荷重値を取得することによって、各荷重センサ３６ｂのプレイヤに対する位置関係を特定することができるので、この設定による配置データを生成して記憶するようにしてよい。あるいは、モニタ３４の画面上に、荷重コントローラ３６の配置を選択するための画面を表示して、目印（電源ボタン３６ｃ）がプレイヤから見てどの方向に存在するかをコントローラ２２による入力によって選択してもらい、この選択に応じて各荷重センサ３６ｂの配置データを生成して記憶するようにしてよい。
【００９６】
（ゲームプレイ）
図８は、コントローラ２２および荷重コントローラ３６を用いてゲームプレイするときの状態を概説する図解図である。図８に示すように、ゲームシステム１０でコントローラ２２および荷重コントローラ３６を用いてゲームをプレイする際、プレイヤは、荷重コントローラ３６の上に乗り、一方の手でコントローラ２２を把持する。厳密に言うと、プレイヤは、コントローラ２２の先端面（撮像情報演算部８０が撮像する光の入射口２２ｄ側）がマーカ３４０ｍおよび３４０ｎの方を向く状態で、荷重コントローラ３６に乗り、コントローラ２２を把持する。ただし、図１からも分かるように、マーカ３４０ｍおよび３４０ｎは、モニタ３４の画面の横方向と平行に配置されている。この状態で、プレイヤは、コントローラ２２が指示する画面上の位置を変更したり、コントローラ２２と各マーカ３４０ｍおよび３４０ｎとの距離を変更したりすることによってゲーム操作を行う。
【００９７】
なお、図８では、モニタ３４の画面に対して荷重コントローラ３６を縦置き（長辺方向が画面を向くような配置）にしてプレイヤが画面に対して横向きになっている場合を示しているが、画面に対する荷重コントローラ３６の配置やプレイヤの向きはゲームの種類に応じて適宜変更可能であり、たとえば、荷重コントローラ３６を画面に対して横置き（長辺方向が画面に平行になるような配置）にしてプレイヤが画面に対して正面を向くようにしてもよい。
【００９８】
（ポインティング）
図９は、マーカ３４０ｍおよび３４０ｎと、コントローラ２２との視野角を説明するための図である。図９に示すように、マーカ３４０ｍおよび３４０ｎは、それぞれ、視野角θ１の範囲で赤外光を放射する。また、撮像情報演算部８０の撮像素子８０ｃは、コントローラ２２の視線方向を中心とした視野角θ２の範囲で入射する光を受光することができる。たとえば、マーカ３４０ｍおよび３４０ｎの視野角θ１は、共に３４°（半値角）であり、一方、撮像素子８０ｃの視野角θ２は４１°である。プレイヤは、撮像素子８０ｃが２つのマーカ３４０ｍおよび３４０ｎからの赤外光を受光することが可能な位置および向きとなるように、コントローラ２２を把持する。具体的には、撮像素子８０ｃの視野角θ２の中に少なくとも一方のマーカ３４０ｍおよび３４０ｎが存在し、かつ、マーカ３４０ｍまたは３４０ｎの少なくとも一方の視野角θ１の中にコントローラ２２が存在する状態となるように、プレイヤはコントローラ２２を把持する。この状態にあるとき、コントローラ２２は、マーカ３４０ｍおよび３４０ｎの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ２２の位置および向きを変化させることによってゲーム操作を行うことができる。
【００９９】
なお、コントローラ２２の位置および向きがこの範囲外となった場合、コントローラ２２の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、上記範囲を「操作可能範囲」と呼ぶ。
【０１００】
操作可能範囲内でコントローラ２２が把持される場合、撮像情報演算部８０によって各マーカ３４０ｍおよび３４０ｎの画像が撮像される。すなわち、撮像素子８０ｃによって得られる撮像画像には、撮像対象である各マーカ３４０ｍおよび３４０ｎの画像（対象画像）が含まれる。図１０は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路８０ｄは、各マーカ３４０ｍおよび３４０ｎの撮像画像における位置を表す座標（マーカ座標）を算出する。
【０１０１】
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路８０ｄは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路８０ｄは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である２つのマーカ３４０ｍおよび３４０ｎの画像３４０ｍ’および３４０ｎ’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像であるマーカ３４０ｍおよび３４０ｎの画像３４０ｍ’および３４０ｎ’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【０１０２】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路８０ｄは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子８０ｃの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子８０ｃによって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、マーカ座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。
【０１０３】
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをＹ軸正方向とし、右向きをＸ軸正方向とする座標系（ＸＹ座標系）で表現されるものとする。
【０１０４】
また、対象画像が正しく検出される場合には、判定処理によって２つの高輝度部分が対象画像として判定されるので、２箇所のマーカ座標が算出される。画像処理回路８０ｄは、算出された２箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ（マーカ座標データ）は、上述したように、プロセッサ７０によって入力データに含まれ、ゲーム装置１２に送信される。
【０１０５】
ゲーム装置１２（ＣＰＵ４０）は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ３４の画面上におけるコントローラ２２の指示位置（指示座標）と、コントローラ２２からマーカ３４０ｍおよび３４０ｎまでの各距離とを算出することができる。具体的には、２つのマーカ座標の中点の位置から、コントローラ２２の向いている位置すなわち指示位置が算出される。したがって、コントローラ２２は、モニタ３４の画面内の任意の位置を指示するポインティングデバイスとして機能する。また、撮像画像における対象画像間の距離が、コントローラ２２と、マーカ３４０ｍおよび３４０ｎとの距離に応じて変化するので、２つのマーカ座標間の距離を算出することによって、ゲーム装置１２はコントローラ２２とマーカ３４０ｍおよび３４０ｎとの間の距離を把握できる。
【０１０６】
（第１の実施例）
次に、第１の実施例として、ゲームシステム１０において第１のビデオゲームを実行する場合について説明する。
【０１０７】
なお、第１の実施例においてゲームシステム１０において実行される第１のビデオゲームと、後述する第２の実施例においてゲームシステム１０において実行される第２のビデオゲームは、例えば、ゲームシステム１０を用いてユーザが種々のトレーニング（またはエクササイズ）を行うことを可能にするためのアプリケーションソフトウェア（トレーニングプログラム）によって実現されるものであってもよい。この場合、当該トレーニングプログラムを実行するＣＰＵ４０を含むゲーム装置１２は、トレーニング装置として機能する。
【０１０８】
図１１は、第１のビデオゲームの実行時にモニタ３４の画面に表示されるゲーム画像を示している。第１のビデオゲームでは、コントローラ２２を手に持ったプレイヤが、荷重コントローラ３６上に乗ってゲームをプレイする。
【０１０９】
モニタ３４の画面には、プレイヤによって操作されるキャラクタを含む仮想ゲーム空間が表示され、このキャラクタは自転車に乗っている。プレイヤが荷重コントローラ３６上で足踏みをする（すなわち、右足での片足立ちと左足での片足立ちを交互に繰り返す）と、それに連動して自転車に乗ったキャラクタが自転車のペダルをこぐ。より具体的には、プレイヤが荷重コントローラ３６の上で右足で片足立ちをする（すなわち右方向に重心を移動させる）と、キャラクタは自転車の右ペダルを踏み下ろし、プレイヤが荷重コントローラ３６の上で左足で片足立ちをする（すなわち左方向に重心を移動させる）と、キャラクタは自転車の左ペダルを踏み下ろす。したがって、プレイヤはあたかも自分が実際に自転車をこいでいるような感覚で仮想ゲーム空間の自転車を操作することができる。
【０１１０】
また、プレイヤは、両手で把持したコントローラ２２の傾き角度を変えることによって、自転車に乗ったキャラクタの進行方向を変えることができるので、あたかも自転車のハンドルを操作しているかのように、仮想ゲーム空間の自転車の進行方向を制御することができる。このような制御は、コントローラ２２に設けられた加速度センサ７４の出力信号に基づいてコントローラ２２の姿勢を算出することによって実現される。具体的には、コントローラ２２の長軸方向が水平線と平行になるようにプレイヤがコントローラ２２を把持している場合には仮想ゲーム空間の自転車が直進し、コントローラ２２の長軸方向と水平線との角度がより大きいほど仮想ゲーム空間の自転車がより大きく曲がるように（すなわち自転車の軌道の曲率がより大きくなるように）、仮想ゲーム空間の自転車の進行方向が制御される。水平線に対するコントローラ２２の長軸方向の傾き度合いは、例えば、コントローラ２２に設けられた加速度センサ７４によって検出される加速度に基づいて判断することができる。例えば、コントローラ２２の長軸方向が水平線と平行となるようにコントローラ２２が把持されている場合には、コントローラ２２の長軸方向に関する加速度データの値（すなわち、前述のｚ軸についての加速度ａｚの値）は０となり、コントローラ２２の長軸方向と水平線との角度が大きくなるほど、重力加速度の影響により、コントローラ２２の長軸方向に関する加速度データの値の絶対値が大きくなる。また、仮想ゲーム空間の自転車の旋回方向（右旋回か左旋回か）は、コントローラ２２の長軸方向に関する加速度データの値の符号により決定される。
【０１１１】
以下、荷重コントローラ３６からの信号に基づくキャラクタのペダル踏み下ろし動作の制御方法の詳細について説明する。なお、コントローラ２２からの信号に基づく自転車の進行方向の制御方法については、本発明には特に関係しないため、ここでは詳しい説明を省略する。
【０１１２】
図１２は、荷重コントローラ３６からの信号に基づいて検出されるプレイヤの重心位置の一例を示している。プレイヤの重心位置は、Ｓ座標値とＴ座標値で表される。ＳＴ座標空間の原点は、荷重コントローラ３６の台３６ａの中心に対応している。また、Ｓ軸正方向は荷重コントローラ３６の左側端部（電源ボタン３６ｃの設けられた長辺と向かい合うようにして荷重コントローラ３６の後方に立つプレイヤから見た場合の左側端部）から右側端部へ向かう方向に対応し、Ｔ軸正方向は荷重コントローラ３６の後側端部から前側端部へ向かう方向に対応している。
【０１１３】
上記のようなプレイヤの重心位置は、荷重コントローラ３６に設けられた４つの荷重センサ３６ｂによってそれぞれ検出される４つの荷重値に基づいて計算される。具体的には、プレイヤから見て電源ボタン３６ｃが後方に位置するようにプレイヤが荷重コントローラ３６の台３６ａの上に乗っていると想定したときに、プレイヤから見て右後方に位置する荷重センサ３６ｂの荷重値をａ、左後方に位置する荷重センサ３６ｂの荷重値をｂ、右前方に位置する荷重センサ３６ｂの荷重値をｃ、左前方に位置する荷重センサ３６ｂの荷重値をｄとした場合、重心のＳ座標（ｓ０）及びＴ座標（ｔ０）は、以下の数式によりそれぞれ算出される。
ｓ０＝（（ａ＋ｃ）−（ｂ＋ｄ））×ｍ
ｔ０＝（（ｃ＋ｄ）−（ａ＋ｂ））×ｎ
ここで、ｍ及びｎは定数であり、−１≦ｓ０≦１、−１≦ｔ０≦１である。このように、ｓ０は、プレイヤから見て左側に位置する２つの荷重センサ３６ｂの荷重値の和と、プレイヤから見て右側に位置する２つの荷重センサ３６ｂの荷重値の和との差分に基づいて算出される。同様に、ｇ０は、プレイヤから見て前方に位置する２つの荷重センサ３６ｂの荷重値の和と、プレイヤから見て後方に位置する２つの荷重センサ３６ｂの荷重値の和との差分に基づいて算出される。
【０１１４】
次に、図１３〜図２０を参照して、プレイヤの重心位置に基づく入力判定処理について説明する。
【０１１５】
荷重コントローラ３６からの信号に基づくキャラクタのペダル踏み下ろし動作の制御は、上記のようにして検出されるプレイヤの重心位置のｓ座標値（ｓ０）のみを利用して行われる。
【０１１６】
図１３に示すように、ＳＴ座標空間には基準位置が設定される。基準位置とは、その位置にプレイヤの重心位置が位置しているときにはプレイヤによる意図的な重心移動が行われていないと判断されるような位置である。言い換えると、プレイヤの重心位置が基準位置に一致している場合には、プレイヤによる意図的な重心移動が行われていないと判断され、プレイヤの重心位置が基準位置からずれている場合には、プレイヤによる意図的な重心移動が行われていると判断される。ここでは、基準位置はＳ座標値（ｓ１）のみで表されるものとする。基準位置（すなわちｓ１）の初期値は０であるが、プレイヤが第１のビデオゲームをプレイしている最中に逐次検出されるプレイヤの重心位置に応じて、基準位置は逐次更新される。基準位置の更新処理の詳細については後述する。
【０１１７】
ＳＴ座標空間には、基準位置に基づいて、右入力領域、左入力領域および遊び領域が設定される。右入力領域と遊び領域の境界は基準位置に連動し、そのｓ座標値はｓ１＋０．２となる。また、左入力領域と遊び領域の境界も基準位置に連動し、そのｓ座標値はｓ１−０．２となる。
【０１１８】
重心位置が右入力領域に進入すると、それに応じて、仮想ゲーム空間のキャラクタが自転車の右ペダルを踏み下ろす。また、重心位置が左入力領域に進入すると、それに応じて、仮想ゲーム空間のキャラクタが自転車の左ペダルを踏み下ろす。なお、第１のビデオゲームでは、現実世界における自転車の操縦と同様に、仮想ゲーム空間のキャラクタは、同一のペダル（右ペダルまたは左ペダル）を２回以上連続して踏み下ろすことができないように制限されている。したがって、仮想ゲーム世界における自転車を進めるために、プレイヤは、重心位置を右入力領域と左入力領域に交互に進入させる必要がある。
【０１１９】
以下、第１の実施例におけるプレイヤの重心位置の移動に伴う基準位置の更新処理について説明する。
【０１２０】
ゲームが開始されてから重心位置が図１３に示すように遊び領域に位置している間は、基準位置は移動しない。
【０１２１】
重心位置が右入力領域または左入力領域に進入すると、重心位置に近づくように基準位置が移動する。例えば、図１４のように、重心位置が右入力領域に進入した場合には、仮想ゲーム空間のキャラクタが自転車の右ペダルを踏み下ろし、基準位置が重心位置に向かって移動する。ただし、基準位置は重心位置に向かって瞬時に移動するのではなく、後述するように、重心位置に徐々に近づくように、重心位置に向かって段階的に移動する。図１５および図１６は、図１４の状態から基準位置が重心位置に向かって徐々に近づいている様子を示している。
【０１２２】
図１５の状態では、基準位置が重心位置に近づいた結果、重心位置は右入力領域から外れて遊び領域に位置している。第１の実施例では、基本的に、重心位置が右入力領域および左入力領域のいずれか一方の領域に進入した場合には、その後、重心位置がいずれか他方の領域に進入するまでは、基準位置が重心位置に近づくように制御される。したがって、図１５の状態では、重心位置はまだ左入力領域に進入していないので、基準位置は、引き続き、重心位置に徐々に近づくことになる。そして、図１６に示すように、基準位置は最終的に重心位置に到達する。
【０１２３】
図１７は、図１６の状態から重心が少し左方向（Ｓ軸負方向）に移動したときの状態を示している。この状態では、重心位置は遊び領域に位置している。前述のように、第１の実施例では、“基本的に”、重心位置が右入力領域および左入力領域のいずれか一方の領域に進入した場合には、その後、重心位置がいずれか他方の領域に進入するまでは、基準位置が重心位置に近づくように制御される。しかしながら、図１７のような状態において基準位置を重心位置に近づけてしまうと、それに連動して左入力領域と遊び領域の境界が重心位置から遠ざかってしまうため、プレイヤが重心位置を左入力領域に進入させづらくなってしまう。このような問題を回避するために、第１の実施例では、重心位置が右入力領域に進入してから、続いて左入力領域に進入するまでの間は、“重心位置が基準位置よりも右側（Ｓ軸正方向）に位置している場合に限って”、基準位置が重心位置に近づくように制御される。同様に、重心位置が左入力領域に進入してから、続いて右入力領域に進入するまでの間は、“重心位置が基準位置よりも左側（Ｓ軸負方向）に位置している場合に限って”、基準位置が重心位置に近づくように制御される。したがって、図１７の状態では、基準位置が重心位置に近づくことはなく、左入力領域と遊び領域の境界が重心位置から遠ざかってしまうこともない。
【０１２４】
図１８のように、図１７の状態から重心位置がさらに左方向（Ｓ軸負方向）に移動して、重心位置が左入力領域に進入した場合には、仮想ゲーム空間のキャラクタが自転車の左ペダルを踏み下ろし、基準位置が重心位置に向かって徐々に移動する。図１９および図２０は、図１８の状態から基準位置が重心位置に向かって徐々に近づいている様子を示している。
【０１２５】
図１９の状態では、基準位置が重心位置に近づいた結果、重心位置は右入力領域から外れて遊び領域に位置している。この状態では、重心位置は左入力領域に進入した後、まだ右入力領域に進入していないので、基準位置は、引き続き、重心位置に徐々に近づくことになる。そして、図２０に示すように、基準位置は最終的に重心位置に到達する。
【０１２６】
以上のような基準位置の更新処理により、重心位置が右入力領域に進入した後、基準位置が重心位置に近づき、それに連動して左入力領域と遊び領域の境界が重心位置に近づくので、プレイヤが重心位置が右入力領域に進入させた後、続いて重心位置を左入力領域に進入させるのに必要となる重心の移動距離が短縮され、より素早く別の処理を指示することが可能となり、応答性が向上する。プレイヤが重心位置が左入力領域に進入させた後、続いて重心位置を右入力領域に進入させる場合についても同様である。
【０１２７】
また、プレイヤによって重心位置に偏りがある場合（すなわち、或るプレイヤは重心位置が右に偏りがちで、別のプレイヤは重心位置が左に偏りがちである場合）でも、基準位置が重心位置に近づくように逐次更新されるため、そのようなプレイヤ毎の重心位置の偏りの問題が解消され、全てのプレイヤにとって快適な操作感が得られる。
【０１２８】
また、ビデオゲームのプレイ中に、プレイヤが意図している位置からプレイヤの重心位置が無意識にずれてしまった場合（例えば、プレイヤ自身は荷重コントローラ３６の台３６ａの中央で足踏みをしていると思っていても、実際には徐々に中央からずれてしまっている場合や、仮想ゲーム空間の自転車を目一杯に右方向に転回させようとするあまり、コントローラ２２を持つ両手が体から大きく右側に離れてしまって重心位置が無意識に右寄りになってしまっている場合など）でも、逐次、より適切な位置に基準位置を更新することができる。
【０１２９】
次に、第１の実施例におけるゲーム装置１２のＣＰＵ４０の処理の流れについて説明する。
【０１３０】
図２１は、第１の実施例において外部メインメモリ４６に記憶されるコンピュータプログラム及びデータの一例を示している。なお、外部メインメモリ４６の代わりに内部メインメモリ４２ｅやその他のメモリが利用されても構わない。
【０１３１】
情報処理プログラム９０は、ＣＰＵ４０に第１のビデオゲームを実行させるための複数のプログラムコードから成るコンピュータプログラムであって、第１のビデオゲームの実行に先立って、光ディスク１８やフラッシュメモリ４４等のコンピュータ読み取り可能な記憶媒体からロードされて外部メインメモリ４６に格納される。なお、情報処理プログラム９０は無線通信モジュール５０等を介して他のコンピュータシステム（例えば、ゲームプログラム配信サーバや、他のゲーム装置）からゲーム装置１２に供給されても構わない。
【０１３２】
重心位置９１は、荷重コントローラ３６の台３６ａ上におけるプレイヤの重心位置を示す２次元座標データ（ｓ０，ｔ０）である。なお、重心位置９１は必ずしも２次元座標データである必要はなく、情報処理プログラム９０において重心位置のＳ座標値しか利用しない場合には、外部メインメモリ４６にＳ座標値のみ記憶するようにしても構わない。
【０１３３】
基準位置９２は、基準位置のＳ座標値を示すデータ（ｓ１）である。
【０１３４】
右入力フラグ９３は、重心位置が右入力領域に進入したときにオンに設定され、重心位置が左入力領域に進入したときにオフに設定されるフラグである。
【０１３５】
左入力フラグ９４は、重心位置が左入力領域に進入したときにオンに設定され、重心位置が右入力領域に進入したときにオフに設定されるフラグである。
【０１３６】
以下、図２２〜図２４のフローチャートを参照して、情報処理プログラム９０に基づくＣＰＵ４０の処理の流れを説明する。
【０１３７】
情報処理プログラム９０の実行が開始されると、図２２のステップＳ１０において、ＣＰＵ４０は初期化処理を行う。初期化処理には、基準位置９２を初期値“０“に設定する処理や、右入力フラグ９３および左入力フラグ９４をオフに設定する処理などが含まれる。
【０１３８】
ステップＳ１１において、ＣＰＵ４０は、コントローラ２２の姿勢を算出する。具体的には、ＣＰＵ４０は、コントローラ２２の加速度センサ７４によって検出された加速度データに基づいて、コントローラ２２の姿勢（例えば、水平線に対するコントローラ２２の長軸方向の傾き度合い）を算出する。
【０１３９】
ステップＳ１２において、ＣＰＵ４０は、ステップＳ１１で検出されたコントローラ２２の姿勢に応じて、仮想ゲーム空間における自転車の進行方向を決定する。
【０１４０】
ステップＳ１３において、ＣＰＵ４０は、プレイヤの重心位置を検出する。具体的には、ＣＰＵ４０は、荷重コントローラ３６からの信号に基づいて、当該信号に含まれる４つの荷重センサ３６ｂの荷重値から重心位置を計算し、外部メインメモリ４６に記憶されている重心位置９１を更新する。
【０１４１】
ステップＳ１４において、ＣＰＵ４０は、入力判定処理を行う。入力判定処理は、重心位置が右入力領域または左入力領域に進入したかどうかを判定して、その判定結果に応じて仮想ゲーム空間のキャラクタの動き等を制御するための処理である。入力判定処理の詳細については後述する。
【０１４２】
ステップＳ１５において、ＣＰＵ４０は、基準位置更新処理を行う。基準位置更新処理は、ステップＳ１３で検出された重心位置に応じて、外部メインメモリ４６に記憶されている基準位置９２を更新する処理である。基準位置更新処理の詳細については後述する。
【０１４３】
ステップＳ１６において、ＣＰＵ４０は、ステップＳ１４におけるキャラクタの動き等の制御結果を反映したゲーム画像を生成し、当該ゲーム画像に対応する映像信号をモニタ３４に出力する。このとき、現在の重心位置と現在の基準位置とを示す画像（例えば、図１３等に示したような画像）を生成して、ゲーム画像の所定の領域（例えばゲーム画像の右上領域）に重畳もしくは合成（半透明表示）するようにしてもよい。これにより、基準位置が刻々と変化する様子をプレイヤに提示することができる。
【０１４４】
ステップＳ１７において、ＣＰＵ４０は、ゲームが終了したかどうかを判断し、ゲームが終了した場合には情報処理プログラム９０の実行を終了し、ゲームが続行している場合にはステップＳ１１に戻る。
【０１４５】
ゲームが続行している間、ＣＰＵ４０は、ステップＳ１１〜Ｓ１７の処理を一定の周期（例えば、６０分の１秒）で繰り返す。
【０１４６】
次に、図２３を参照して、図２２のステップＳ１４の入力判定処理の詳細を説明する。
【０１４７】
入力判定処理が開始されると、ステップＳ２０において、ＣＰＵ４０は、外部メインメモリ４６に記憶されている重心位置９１と基準位置９２を参照し、重心位置が右入力領域内かどうかを判断する。この判断は、具体的には、ｓ０とｓ１＋０．２の大きさを比較することによって行われる。そして、重心位置が右入力領域内であると判断された場合にはステップＳ２１に進み、そうでない場合にはステップＳ２６に進む。
【０１４８】
ステップＳ２１において、ＣＰＵ４０は、右入力フラグ９３がオフであるかどうかを判断し、右入力フラグ９３がオフである場合にはステップＳ２２に進み、そうでない場合にはステップＳ２６に進む。
【０１４９】
ステップＳ２２において、ＣＰＵ４０は、仮想ゲーム空間におけるキャラクタが自転車の右ペダルを踏み下ろすモーションを開始させる。
【０１５０】
ステップＳ２３において、ＣＰＵ４０は、仮想ゲーム空間におけるキャラクタを、自転車とともに加速させる。なお、このときの加速方向は、プレイヤによって把持されているコントローラ２２の姿勢に基づいて決定される。
【０１５１】
ステップＳ２４において、ＣＰＵ４０は、右入力フラグ９３をオンに設定する。
【０１５２】
ステップＳ２５において、ＣＰＵ４０は、左入力フラグ９４をオフに設定する。
【０１５３】
ステップＳ２６において、ＣＰＵ４０は、外部メインメモリ４６に記憶されている重心位置９１と基準位置９２を参照し、重心位置が左入力領域内かどうかを判断する。この判断は、具体的には、ｓ０とｓ１−０．２の大きさを比較することによって行われる。そして、重心位置が左入力領域内であると判断された場合にはステップＳ２７に進み、そうでない場合には入力判定処理を終了する。
【０１５４】
ステップＳ２７において、ＣＰＵ４０は、左入力フラグ９４がオフであるかどうかを判断し、左入力フラグ９４がオフである場合にはステップＳ２８に進み、そうでない場合には入力判定処理を終了する。
【０１５５】
ステップＳ２８において、ＣＰＵ４０は、仮想ゲーム空間におけるキャラクタが自転車の左ペダルを踏み下ろすモーションを開始させる。
【０１５６】
ステップＳ２９において、ＣＰＵ４０は、仮想ゲーム空間におけるキャラクタを、自転車とともに加速させる。なお、このときの加速方向は、前述のステップＳ１２で決定された自転車の進行方向に基づいて決定される。
【０１５７】
ステップＳ３０において、ＣＰＵ４０は、左入力フラグ９４をオンに設定する。
【０１５８】
ステップＳ３１において、ＣＰＵ４０は、右入力フラグ９３をオフに設定する。そして、入力判定処理を終了する。
【０１５９】
次に、図２４を参照して、図２２のステップＳ１５の基準位置更新処理の詳細を説明する。
【０１６０】
基準位置更新処理が開始されると、ステップＳ４０において、ＣＰＵ４０は、右入力フラグ９３がオンであるかどうかを判断し、オンである場合にはステップＳ４１に進み、そうでない場合にはステップＳ４３に進む。
【０１６１】
ステップＳ４１において、ＣＰＵ４０は、外部メインメモリ４６に記憶されている重心位置９１と基準位置９２を参照し、重心位置が基準位置よりも右側（すなわちＳ軸正方向）に位置するかどうかを判断する。この判断は、具体的には、ｓ０とｓ１の大きさを比較することによって行われる。そして、重心位置が基準位置よりも右側に位置すると判断された場合にはステップＳ４２に進み、そうでない場合にはステップＳ４３に進む。
【０１６２】
ステップＳ４２において、ＣＰＵ４０は、基準位置が重心位置に近づくように、外部メインメモリ４６に記憶されている基準位置９２を更新する。具体的には、図２５に示すように、現在の基準位置から重心位置までの距離の５％分だけ基準位置を重心位置に近づける。したがって、現在の基準位置をｓ１とすると、更新後の基準位置は、ｓ１＋（（ｓ０−ｓ１）×０．０５）となる。
【０１６３】
ステップＳ４３において、ＣＰＵ４０は、左入力フラグ９４がオンであるかどうかを判断し、オンである場合にはステップＳ４４に進み、そうでない場合には基準位置更新処理を終了する。
【０１６４】
ステップＳ４４において、ＣＰＵ４０は、外部メインメモリ４６に記憶されている重心位置９１と基準位置９２を参照し、重心位置が基準位置よりも左側（すなわちＳ軸負方向）に位置するかどうかを判断する。この判断は、具体的には、ｓ０とｓ１の大きさを比較することによって行われる。そして、重心位置が基準位置よりも左側に位置すると判断された場合にはステップＳ４５に進み、そうでない場合には基準位置更新処理を終了する。
【０１６５】
ステップＳ４５において、ＣＰＵ４０は、基準位置が重心位置に近づくように、外部メインメモリ４６に記憶されている基準位置９２を更新する。具体的には、現在の基準位置から重心位置までの距離の５％分だけ基準位置を重心位置に近づける。したがって、現在の基準位置をｓ１とすると、更新後の基準位置は、ｓ１−（（ｓ１−ｓ０）×０．０５）となる。そして、入力判定処理を終了する。
【０１６６】
以上のようなＣＰＵ４０の処理により、図１３〜図２０を参照して説明したような基準位置の更新処理が実現される。
【０１６７】
なお、図２２〜図２４のフローチャートは単なる一例に過ぎず、同様の結果が得られるのであれば、これらのフローチャートとは異なるフローチャートにしたがってＣＰＵ４０を動作させても構わない。
【０１６８】
また、上述した各種定数（図１３の“０．２”や図２５の“５％”等は、単なる一例に過ぎず、必要に応じて他の値を採用しても構わない。
【０１６９】
（第２の実施例）
次に、第２の実施例として、ゲームシステム１０において第２のビデオゲームを実行する場合について説明する。
【０１７０】
図２６は、第２のビデオゲームの実行時にモニタ３４の画面に表示されるゲーム画像を示している。第２のビデオゲームでは、コントローラ２２を手に持ったプレイヤが、荷重コントローラ３６上に乗ってゲームをプレイする。
【０１７１】
モニタ３４の画面には、プレイヤによって操作されるキャラクタを含む仮想ゲーム空間が表示され、このキャラクタは架空の乗り物に乗っている。プレイヤが荷重コントローラ３６の上で前方に重心を移動させると、キャラクタを乗せた乗り物が前進方向に加速し、プレイヤが荷重コントローラ３６の上で後方に重心を移動させると、キャラクタを乗せた乗り物が後退方向に加速する。このとき、プレイヤが荷重コントローラ３６の上で重心をより前方に移動させるほど、乗り物は前進方向により大きく加速し、プレイヤが荷重コントローラ３６の上で重心をより後方に移動させるほど、乗り物は後退方向により大きく加速する。
【０１７２】
また、プレイヤは、両手で把持したコントローラ２２の傾き角度を変えることによって、乗り物の進行方向を変えることができる。
【０１７３】
以下、荷重コントローラ３６からの信号に基づく乗り物の移動制御方法の詳細について説明する。なお、コントローラ２２からの信号に基づく乗り物の進行方向の制御方法については、本発明には特に関係しないため、ここでは詳しい説明を省略する。
【０１７４】
次に、図２７〜図３１を参照して、プレイヤの重心位置に基づく入力判定処理について説明する。
【０１７５】
荷重コントローラ３６からの信号に基づく乗り物の移動制御は、前述のようにして検出されるプレイヤの重心位置のｔ座標値（ｔ０）のみを利用して行われる。
【０１７６】
図２７に示すように、ＳＴ座標空間には基準位置が設定される。ここでは、基準位置はＴ座標値（ｔ１）のみで表されるものとする。基準位置（すなわちｔ１）の初期値は０であるが、プレイヤが第２のビデオゲームをプレイしている最中に逐次検出されるプレイヤの重心位置に応じて、基準位置は逐次更新される。基準位置の更新処理の詳細については後述する。
【０１７７】
ＳＴ座標空間には、基準位置に基づいて、前入力領域および後入力領域が設定される。前入力領域と後入力領域の境界は常に基準位置に一致する。したがって、基準位置が移動すると、それに連動して前入力領域と後入力領域の境界も移動する。
【０１７８】
重心位置が前入力領域に進入すると、それに応じて、仮想ゲーム空間においてキャラクタを乗せた乗り物が前進方向に加速する。このときの加速度の大きさは、重心位置と基準位置との間の距離（すなわち、（ｔ０−ｔ１）の絶対値）に応じて変化し、重心位置と基準位置との間の距離が大きいほど、乗り物は前進方向により大きく加速する。また、重心位置が後入力領域に進入すると、それに応じて、仮想ゲーム空間においてキャラクタを乗せた乗り物が後退方向に加速する。このときの加速度の大きさも、重心位置と基準位置との間の距離（すなわち、（ｔ０−ｔ１）の絶対値）に応じて変化し、重心位置と基準位置との間の距離が大きいほど、乗り物は後退方向により大きく加速する。
【０１７９】
以下、第２の実施例におけるプレイヤの重心位置の移動に伴う基準位置の更新処理について説明する。
【０１８０】
重心位置が前入力領域または後入力領域に進入すると、重心位置に近づくように基準位置が移動する。例えば、図２８のように、重心位置が前入力領域に進入した場合には、仮想ゲーム空間においてキャラクタを乗せた乗り物が前進方向に加速するとともに、基準位置が重心位置に向かって移動する。ただし、第１の実施例のように最終的に重心位置と同じ位置にまで基準位置が移動してしまうと、乗り物に加えられる前進方向の力の大きさが最終的に０になってしまい、プレイヤが乗り物を前進方向に継続的に加速させ続けることができないという問題がある。このような問題を回避するために、第２の実施例では、基準位置が“所定の接近限界位置を限度として”重心位置に近づくように制御される。具体的には、図２８に示すように、ｔ０×０．８のＴ座標値で示される位置が接近限界位置として設定され、基準位置は、この接近限界位置に徐々に近づくように、接近限界位置に向かって段階的に移動する。そして、図２９に示すように、基準位置は最終的に接近限界位置に到達し、重心位置にそれ以上近づくことはない。したがって、ユーザは、このときの重心位置と基準位置の間の距離（すなわち、ｔ０×０．２）に応じた大きさの加速度で、乗り物を前進方向に継続的に加速させることができる。
【０１８１】
図３０のように、図２９の状態から重心位置が後ろ方向（Ｔ軸負方向）に移動して、重心位置が後入力領域に進入した場合には、仮想ゲーム空間においてキャラクタを乗せた乗り物が後退方向に加速するとともに、基準位置が重心位置に向かって移動する。この場合も、基準位置が“所定の接近限界位置を限度として”重心位置に近づくように制御される。具体的には、図３０に示すように、ｔ０×０．８のＴ座標値で示される位置が接近限界位置として設定され、基準位置は、この接近限界位置に徐々に近づくように、接近限界位置に向かって段階的に移動する。そして、図３１に示すように、基準位置は最終的に接近限界位置に到達し、重心位置にそれ以上近づくことはない。したがって、ユーザは、このときの重心位置と基準位置の間の距離（すなわち、ｔ０×０．２）に応じた大きさの加速度で、乗り物を後退方向に継続的に加速させることができる。
【０１８２】
図３２は、第２の実施例において外部メインメモリ４６に記憶されるコンピュータプログラム及びデータの一例を示している。
【０１８３】
情報処理プログラム９５は、ＣＰＵ４０に第２のビデオゲームを実行させるための複数のプログラムコードから成るコンピュータプログラムである。
【０１８４】
重心位置９６は、荷重コントローラ３６の台３６ａ上におけるプレイヤの重心位置を示す２次元座標データ（ｓ０，ｔ０）である。なお、重心位置９６は必ずしも２次元座標データである必要はなく、情報処理プログラム９５において重心位置のＴ座標値しか利用しない場合には、外部メインメモリ４６にＴ座標値のみ記憶するようにしても構わない。
【０１８５】
基準位置９７は、基準位置のＴ座標値を示すデータ（ｔ１）である。
【０１８６】
以下、図３３〜図３４のフローチャートを参照して、情報処理プログラム９５に基づくＣＰＵ４０の処理の流れを説明する。ただし、第２の実施例が第１の実施例と異なる点は、図２２のフローチャートにおけるステップＳ１４の入力判定処理とステップＳ１５の基準位置更新処理のみである。したがって、ここでは第２の実施例の入力判定処理および基準位置更新処理のみを説明する。
【０１８７】
まず、図３３を参照して、第２の実施例における入力判定処理の詳細を説明する。
【０１８８】
入力判定処理が開始されると、ステップＳ５０において、ＣＰＵ４０は、外部メインメモリ４６に記憶されている重心位置９６と基準位置９７を参照し、重心位置が前入力領域内かどうかを判断する。この判断は、具体的には、ｔ０とｔ１の大きさを比較することによって行われる。そして、重心位置が前入力領域内であると判断された場合にはステップＳ５１に進み、そうでない場合にはステップＳ５２に進む。
【０１８９】
ステップＳ５１において、ＣＰＵ４０は、仮想ゲーム空間におけるキャラクタを乗せた乗り物を、重心位置９６と基準位置９７の間の距離に応じた大きさの加速度で前進方向に加速させる。なお、このときの加速方向は、プレイヤによって把持されているコントローラ２２の姿勢に基づいて決定される。
【０１９０】
ステップＳ５２において、ＣＰＵ４０は、外部メインメモリ４６に記憶されている重心位置９６と基準位置９７を参照し、重心位置が後入力領域内かどうかを判断する。この判断は、具体的には、ｔ０とｔ１の大きさを比較することによって行われる。そして、重心位置が後入力領域内であると判断された場合にはステップＳ５３に進み、そうでない場合には入力判定処理を終了する。
【０１９１】
ステップＳ５３において、ＣＰＵ４０は、仮想ゲーム空間におけるキャラクタを乗せた乗り物を、重心位置９６と基準位置９７の間の距離に応じた大きさの加速度で後退方向に加速させる。なお、このときの加速方向は、プレイヤによって把持されているコントローラ２２の姿勢に基づいて決定される。
【０１９２】
次に、図３４を参照して、第２の実施例における基準位置更新処理の詳細を説明する。
【０１９３】
基準位置更新処理が開始されると、ステップＳ６０において、ＣＰＵ４０は、外部メインメモリ４６に記憶されている重心位置９６と基準位置９７を参照し、重心位置が前入力領域内かどうかを判断する。この判断は、具体的には、ｔ０とｔ１の大きさを比較することによって行われる。そして、重心位置が前入力領域内であると判断された場合にはステップＳ６１に進み、そうでない場合にはステップＳ６３に進む。
【０１９４】
ステップＳ６１において、ＣＰＵ４０は、外部メインメモリ４６に記憶されている重心位置９６と基準位置９７を参照し、重心位置９６に応じて決定される接近限界位置が、基準位置よりも前側（すなわちＴ軸正方向）に位置するかどうかを判断する。この判断は、具体的には、ｔ０×０．８とｔ１の大きさを比較することによって行われる。そして、接近限界位置が基準位置よりも前側に位置すると判断された場合にはステップＳ６２に進み、そうでない場合にはステップＳ６３に進む。
【０１９５】
ステップＳ６２において、ＣＰＵ４０は、基準位置が接近限界位置に近づくように、外部メインメモリ４６に記憶されている基準位置９７を更新する。具体的には、図３５に示すように、現在の基準位置から接近限界位置までの距離の７％分だけ基準位置を接近限界位置に近づける。したがって、現在の基準位置をｔ１とすると、更新後の基準位置は、ｔ１＋（（ｔ０×０．８−ｔ１）×０．０７）となる。
【０１９６】
ステップＳ６３において、ＣＰＵ４０は、外部メインメモリ４６に記憶されている重心位置９６と基準位置９７を参照し、重心位置が後入力領域内かどうかを判断する。この判断は、具体的には、ｔ０とｔ１の大きさを比較することによって行われる。そして、重心位置が後入力領域内であると判断された場合にはステップＳ６４に進み、そうでない場合には基準位置更新処理を終了する。
【０１９７】
ステップＳ６４において、ＣＰＵ４０は、外部メインメモリ４６に記憶されている重心位置９６と基準位置９７を参照し、重心位置９６に応じて決定される接近限界位置が、基準位置よりも後側（すなわちＴ軸負方向）に位置するかどうかを判断する。この判断は、具体的には、ｔ０×０．８とｔ１の大きさを比較することによって行われる。そして、接近限界位置が基準位置よりも後側に位置すると判断された場合にはステップＳ６５に進み、そうでない場合には基準位置更新処理を終了する。
【０１９８】
ステップＳ６５において、ＣＰＵ４０は、基準位置が接近限界位置に近づくように、外部メインメモリ４６に記憶されている基準位置９７を更新する。具体的には、現在の基準位置から接近限界位置までの距離の７％分だけ基準位置を接近限界位置に近づける。したがって、現在の基準位置をｔ１とすると、更新後の基準位置は、ｔ１−（（ｔ１−ｔ０×０．８）×０．０７）となる。
【０１９９】
以上のようなＣＰＵ４０の処理により、図２７〜図３１を参照して説明したような基準位置の更新処理が実現される。
【０２００】
なお、図３３〜図３４のフローチャートは単なる一例に過ぎず、同様の結果が得られるのであれば、これらのフローチャートとは異なるフローチャートにしたがってＣＰＵ４０を動作させても構わない。
【０２０１】
また、上述した各種定数（図２８の“０．８”や図３５の“７％”等は、単なる一例に過ぎず、必要に応じて他の値を採用しても構わない。
【０２０２】
以上のように、上記第１の実施例および第２の実施例によれば、重心位置に基づいて基準位置が更新されるので、プレイヤの操作感を向上させることができる。
【０２０３】
また、逐次検出される重心位置に基づいて基準位置が逐次更新されるので、第１のビデオゲームや第２のビデオゲームのプレイ中に、プレイヤが意図している位置からプレイヤの重心位置が無意識にずれてしまった場合（例えば、プレイヤ自身は荷重コントローラの中央で足踏みをしていると思っていても、実際には無意識に徐々に右側に移動してしまっている場合など）でも、逐次、より適切な位置に基準位置を更新することができる。
【０２０４】
また、重心位置に近づくように基準位置が更新されるので、プレイヤの個人差による重心位置の偏りや、プレイヤの無意識の重心位置の移動の問題があっても、それらの問題を解消するように基準位置を更新することができる。
【０２０５】
また、重心位置に近づくように基準位置が更新されるので、応答性が向上する。例えば、第１の実施例では、プレイヤが重心位置を右入力領域に進入させてキャラクタに右ペダルを踏み下ろさせた後に、続いて、重心位置を左入力領域に進入させてキャラクタに左ペダルを踏み下ろさせる場合に、基準位置が重心位置に近づくことにより、キャラクタに右ペダルを踏み下ろさせた後に左ペダルを踏み下ろさせるときに必要となる重心の移動距離が短縮され、より素早くキャラクタに左ペダルを踏み下ろさせることが可能となる。
【０２０６】
また、特に第２の実施例では、所定の接近限界位置を限度として重心位置に近づくように基準位置が更新されるので、基準位置が重心位置に完全に重なるまで接近することがなく、プレイヤは、乗り物を前進方向に加速させる前進指示もしくは乗り物を後退方向に加速させる後退指示のいずれか一方の指示を継続的に入力することができる。また、重心位置に基づいて接近限界位置が決定されるので、接近限界位置を適切な位置に適応的に設定することができる。
【０２０７】
また、特に第１の実施例では、仮想ゲーム空間の自転車を目一杯に右方向に転回させようとするあまり、コントローラ２２を持つプレイヤの両手が体から大きく右側に離れてしまってプレイヤの重心位置が無意識に右寄りになってしまっている場合など、コントローラ２２に対する操作によってプレイヤの体の一部が動くことによりプレイヤの重心位置が無意識に移動してしまったとしても、逐次、より適切な位置に基準位置を更新することができる。
【０２０８】
以上、本発明の一実施形態について説明したが、本発明は、ビデオゲームに限らず、他の任意の情報処理システムに適用可能である。
【０２０９】
また、本実施形態では重心位置を２次元的に検出可能な荷重コントローラ３４を利用する例を説明したが、このような荷重コントローラ３４の代わりに、重心位置を１次元的にのみ検出可能（すなわち、特定の一方向に関する重心位置のみを検出可能）な重心位置検出装置を利用しても構わない。
【０２１０】
また、本実施形態では基準位置を重心位置に徐々に近づける例を説明したが、本発明はこれに限らず、何らかの特定の条件を満たしたときに（例えば、重心位置が図１３における右領域または左領域に進入したときに）、基準位置を重心位置と同じ位置に瞬時に移動させるようにしても構わない。
【符号の説明】
【０２１１】
１０    ゲームシステム
１２    ゲーム装置
１８    光ディスク
２２    コントローラ
３４    モニタ
３４ａ    スピーカ
３６    荷重コントローラ
３６ｂロードセル（荷重センサ）
４０    ＣＰＵ
４２    システムＬＳＩ
４２ａ    入出力プロセッサ
４２ｂ    ＧＰＵ
４２ｃ    ＤＳＰ
４２ｄ    ＶＲＡＭ
４２ｅ    内部メインメモリ
４４    フラッシュメモリ
４６    外部メインメモリ
４８    ＲＯＭ／ＲＴＣ
５２    無線コントローラモジュール
５４    ディスクドライブ
５６    ＡＶＩＣ
５８    ＡＶコネクタ
６０    拡張コネクタ
１００    マイコン
１０２    ＡＤコンバータ
１０４    ＤＣ−ＤＣコンバータ
１０６    無線モジュール
１０８    増幅器
【図１】
2010233705.tif 000003
【図２】
2010233705.tif 000004
【図３】
2010233705.tif 000005
【図４】
2010233705.tif 000006
【図５】
2010233705.tif 000007
【図６】
2010233705.tif 000008
【図７】
2010233705.tif 000009
【図８】
2010233705.tif 000010
【図９】
2010233705.tif 000011
【図１０】
2010233705.tif 000012
【図１１】
2010233705.tif 000013
【図１２】
2010233705.tif 000014
【図１３】
2010233705.tif 000015
【図１４】
2010233705.tif 000016
【図１５】
2010233705.tif 000017
【図１６】
2010233705.tif 000018
【図１７】
2010233705.tif 000019
【図１８】
2010233705.tif 000020
【図１９】
2010233705.tif 000021
【図２０】
2010233705.tif 000022
【図２１】
2010233705.tif 000023
【図２２】
2010233705.tif 000024
【図２３】
2010233705.tif 000025
【図２４】
2010233705.tif 000026
【図２５】
2010233705.tif 000027
【図２６】
2010233705.tif 000028
【図２７】
2010233705.tif 000029
【図２８】
2010233705.tif 000030
【図２９】
2010233705.tif 000031
【図３０】
2010233705.tif 000032
【図３１】
2010233705.tif 000033
【図３２】
2010233705.tif 000034
【図３３】
2010233705.tif 000035
【図３４】
2010233705.tif 000036
【図３５】
2010233705.tif 000037