情報処理プログラムおよび情報処理装置
【課題】複雑な行動時の平衡機能をゲーム感覚で検定する。
【解決手段】ゲーム装置12はCPU(40)を含む。CPU(40)は、ユーザによって操作されるコントローラ22からの信号に基づいてモニタ34の画面上で指示された座標位置を検出し(S7)、ユーザを乗せた荷重コンローラ36からの信号に基づいてユーザの重心位置を検出し(S9)、そして検出された座標位置と検出された重心位置とに基づいて平衡機能の検定およびゲームの進行に関連する処理を行う(S13,S19,S25〜S39)。
【解決手段】ゲーム装置12はCPU(40)を含む。CPU(40)は、ユーザによって操作されるコントローラ22からの信号に基づいてモニタ34の画面上で指示された座標位置を検出し(S7)、ユーザを乗せた荷重コンローラ36からの信号に基づいてユーザの重心位置を検出し(S9)、そして検出された座標位置と検出された重心位置とに基づいて平衡機能の検定およびゲームの進行に関連する処理を行う(S13,S19,S25〜S39)。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報処理プログラムおよび情報処理装置に関し、特にたとえば、ユーザの重心位置に基づいて所定の処理を行う、情報処理プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
この種の従来の装置ないしプログラムとしては、たとえば特許文献1に開示されたものが知られている。この背景技術では、ユーザの歩行に伴う重心移動を検出台で検出し、検出結果に基づいて歩行時の平衡機能を検定している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−334083号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1の背景技術では、重心移動のみに注目して情報処理を行うので、歩行のような単純な行動時の平衡機能しか検定できなかった。
【0005】
それゆえに、この発明の主たる目的は、新規な、情報処理プログラムおよび情報処理装置を提供することである。
【0006】
この発明の他の目的は、複雑な行動時の平衡機能も検定できる、情報処理プログラムおよび情報処理装置を提供することである。
【課題を解決するための手段】
【0007】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0008】
第1の発明は、情報処理装置のコンピュータに、ユーザによって操作される座標入力手段からの信号に基づいて画面上の座標位置を検出する座標位置検出ステップ、重心位置検出手段からの信号に基づいてユーザの重心位置を検出する重心位置検出ステップ、および座標位置検出ステップで検出された座標位置と重心位置検出ステップで検出された重心位置とに基づいて所定の処理を行う処理ステップを実行させるための、情報処理プログラムである。
【0009】
第1の発明では、情報処理プログラムは、情報処理装置(12)のコンピュータ(40)に、座標位置検出ステップ(S7)、重心位置検出ステップ(S9)、および処理ステップ(S13,S19,S25〜S39)を実行させる。座標位置検出ステップは、ユーザによって操作される座標入力手段(22)からの信号に基づいて、画面(34)上の座標位置を検出する。重心位置検出ステップは、重心位置検出手段(36)からの信号に基づいて、ユーザの重心位置を検出する。処理ステップ(S13,S19,S25〜S39)は、座標位置検出ステップで検出された座標位置と重心位置検出ステップで検出された重心位置とに基づいて、所定の処理を行う。
【0010】
第1の発明によれば、座標入力手段の操作に伴ってユーザの重心位置が移動する一方、情報処理装置は、座標位置と重心位置とに基づいて所定の処理を実行するので、所定の処理に平衡機能の検定に関連する処理(S13,S19)を含めることで、座標入力手段の操作のような複雑な行動時の平衡機能も検定できるようになる。
【0011】
第2の発明は、第1の発明に従属する情報処理プログラムであって、処理ステップは、重心位置検出ステップで検出された重心位置が所定の範囲内(たとえば中心円C内)にあるときに、座標位置検出ステップで検出された座標位置に基づいて、所定の処理を行う。
【0012】
第2の発明では、情報処理装置に所定の処理を実行させるには、ユーザは、座標入力手段を操作しつつ、重心位置が所定の範囲からはみ出さないように体重移動をも同時に行う技量が求められる。このため、ユーザを飽きさせずに検定が行える。また、所定の処理にゲームの進行に関連する処理(S25〜S39)をさらに含めることで、ゲーム感覚で検定が行えるようになる。
【0013】
第3の発明は、第2の発明に従属する情報処理プログラムであって、重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、ユーザが指示するための指示画像を表示する画像表示ステップをコンピュータにさらに実行させ、処理ステップは、座標位置検出ステップで検出された座標位置が、画像表示ステップで表示された指示画像に対応する範囲内に入ったときに、特定の処理を行う。
【0014】
第3の発明では、情報処理プログラムは画像表示ステップ(S17)をコンピュータにさらに実行させる。画像表示ステップは、重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、ユーザが指示するための指示画像(たとえば数字ボタン)を表示する。処理ステップは、座標位置検出ステップで検出された座標位置が、画像表示ステップで表示された指示画像に対応する範囲内に入ったときに、特定の処理(S29)を行う。
【0015】
第4の発明は、第3の発明に従属する情報処理プログラムであって、画像表示ステップで指示画像が表示された後に、重心位置検出ステップで検出された重心位置が所定の範囲外となったとき、画像表示ステップで表示されている指示画像を消去する画像消去ステップ(S21)をコンピュータにさらに実行させる。
【0016】
第4の発明では、情報処理プログラムは、画像消去ステップ(S21)をコンピュータにさらに実行させる。画像消去ステップは、画像表示ステップで指示画像が表示された後に、重心位置検出ステップで検出された重心位置が所定の範囲外となったとき、画像表示ステップで表示されている指示画像を消去する。
【0017】
第3および第4の発明によれば、重心位置が所定の範囲内にあるときに指示画像を表示し、表示した指示画像への入力があった場合に特定の処理(たとえば入力があった数字ボタンをカラー表示からグレー表示に変更する、といったゲーム成功処理)を行うので、重心位置を所定の範囲内に収めながら、座標入力装置で指示画像への入力を行うというゲーム性が、検定に付加される。
【0018】
第5の発明は、第3または第4の発明に従属する情報処理プログラムであって、画像表示ステップは、重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、複数の指示画像を表示する。
【0019】
第5の発明によれば、複数の入力すべき指示画像の選択が可能となり、ゲームの幅が広がる。
【0020】
第6の発明は、第5の発明に従属する情報処理プログラムであって、画像表示ステップは、重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、それぞれに大きさが設定されている複数の指示画像を表示する。
【0021】
第6の発明によれば、指示画像の大きさが異なるので、指示画像選択の困難性に変化をもたせることができる。
【0022】
第7の発明は、第5または第6の発明に従属する情報処理プログラムであって、画像表示ステップは、重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、それぞれに順番が設定されている複数の指示画像を表示し、処理ステップは、座標位置検出ステップで検出された座標位置が、画像表示ステップで表示された指示画像に設定されている順番で当該指示画像に対応する範囲内に入ったときに、特定の処理を行う。
【0023】
第7の発明では、指示画像の選択順序を設定することで、ゲームの困難性が高まると共に、ユーザによる座標入力手段の操作パターン(たとえば手の動き)をコントロールしつつ検定が行えるようになる。
【0024】
第8の発明は、第2ないし第7のいずれかの発明に従属する情報処理プログラムであって、画像表示ステップは、所定の範囲に対応する画像を画面に表示するとともに、指示画像を所定の範囲に対応する画像の周辺に表示する。
【0025】
第9の発明は、第8の発明に従属する情報処理プログラムであって、画像表示ステップは、所定の範囲に対応する画像を画面の所定の領域の略中央に表示するとともに、指示画像を所定の範囲に対応する画像の周辺に表示する。
【0026】
第8,第9の発明では、指示画像を所定の範囲に対応する画像の周辺に表示するので、ユーザは、所定の範囲に対応する画像を中心視野で、指示画像を周辺視野で、同時に視認することとなり、操作および体重移動の困難性が高まる。
【0027】
第10の発明は、第1ないし第9のいずれかの発明に従属する情報処理プログラムであって、座標位置検出ステップで検出された座標位置を示す座標位置ポインタおよび重心位置検出ステップで検出された重心位置を示す重心位置ポインタを画面に表示するポインタ表示ステップをコンピュータにさらに実行させる。
【0028】
第10の発明では、情報処理プログラムは、ポインタ表示ステップ(S11)をコンピュータにさらに実行させる。ポインタ表示ステップは、座標位置検出ステップで検出された座標位置を示す座標位置ポインタ(P1)および重心位置検出ステップで検出された重心位置を示す重心位置ポインタ(P2)を画面に表示する。
【0029】
第10の発明によれば、2つのポインタを表示することで、ユーザに操作および体重移動を的確に行わせることができる。
【0030】
第11の発明は、第10の発明に従属する情報処理プログラムであって、ポインタ表示ステップは、重心位置検出ステップで検出された重心位置が、ユーザが平衡状態を保っていることを示すときに、重心位置ポインタを所定の範囲に対応する画像内に表示する。
【0031】
第12の発明は、ユーザによって操作される座標入力手段(22)からの信号に基づいて画面(34)上の座標位置を検出する座標位置検出手段(S7)、重心位置検出手段(36)からの信号に基づいてユーザの重心位置を検出する重心位置検出手段(S9)、および座標位置検出手段で検出された座標位置と重心位置検出手段で検出された重心位置とに基づいて所定の処理を行う処理手段(S13,S19,S25〜S39)を備える、情報処理装置(12)である。
【0032】
第12の発明でも、第1の発明と同様に、複雑な行動時の平衡機能も検定できるようになる。
【発明の効果】
【0033】
この発明によれば、複雑な行動時の平衡機能も検定できる、情報処理プログラムおよび情報処理装置が実現される。
【0034】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0035】
【図1】この発明のゲームシステムの一実施例を示す図解図である。
【図2】ゲームシステムの電気的な構成を示すブロック図である。
【図3】コントローラの外観を説明するための図解図である。
【図4】コントローラの電気的な構成を示すブロック図である。
【図5】荷重コントローラの外観を説明するための図解図である。
【図6】荷重コントローラの断面図である。
【図7】荷重コントローラの電気的な構成を示すブロック図である。
【図8】コントローラおよび荷重コントローラを用いて仮想ゲームをプレイするときの状態を概説するための図解図である。
【図9】マーカおよびコントローラの視野角を説明するための図解図である。
【図10】コントローラによる撮像画像の一例を示す図解図である。
【図11】ゲーム画面の一例を示す図解図である。
【図12】ゲーム画面の他の一例を示す図解図である。
【図13】ゲーム画面のその他の一例を示す図解図である。
【図14】ゲーム画面のさらにその他の一例を示す図解図である。
【図15】ゲーム画面の他の一例を示す図解図である。
【図16】ゲーム画面のその他の一例を示す図解図である。
【図17】メモリマップの一例を示す図解図である。
【図18】CPU動作の一部を示すフロー図である。
【図19】CPU動作の他の一部を示すフロー図である。
【図20】CPU動作のその他の一部を示すフロー図である。
【発明を実施するための形態】
【0036】
図1を参照して、この発明の一実施例であるゲームシステム10は、ビデオゲーム装置(以下、単に「ゲーム装置」という)12、コントローラ22および荷重コントローラ36を含む。なお、図示は省略するが、この実施例のゲーム装置12は、最大4つのコントローラ(22,36)と通信可能に設計されている。また、ゲーム装置12と各コントローラ(22,36)とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。
【0037】
ゲーム装置12は、略直方体のハウジング14を含み、ハウジング14の前面にはディスクスロット16が設けられる。ディスクスロット16から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク18が挿入されて、ハウジング14内のディスクドライブ54(図2参照)に装着される。ディスクスロット16の周囲には、LEDと導光板が配置され、さまざまな処理に応答させて点灯させることが可能である。
【0038】
また、ゲーム装置12のハウジング14の前面であり、その上部には、電源ボタン20aおよびリセットボタン20bが設けられ、その下部には、イジェクトボタン20cが設けられる。さらに、リセットボタン20bとイジェクトボタン20cとの間であり、ディスクスロット16の近傍には、外部メモリカード用コネクタカバー28が設けられる。この外部メモリカード用コネクタカバー28の内側には、外部メモリカード用コネクタ62(図2参照)が設けられ、図示しない外部メモリカード(以下、単に「メモリカード」という)が挿入される。メモリカードは、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。
【0039】
なお、メモリカードとしては、汎用のSDカードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。
【0040】
ゲーム装置12のハウジング14の後面には、AVケーブルコネクタ58(図2参照)が設けられ、そのAVコネクタ58を用いて、AVケーブル32aを通してゲーム装置12にモニタ34およびスピーカ34aを接続する。このモニタ34およびスピーカ34aは典型的にはカラーテレビジョン受像機であり、AVケーブル32aは、ゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)34の画面上にたとえば3次元(3D)ビデオゲームのゲーム画像が表示され、左右のスピーカ34aからゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ34の周辺(この実施例では、モニタ34の上側)には、2つの赤外LED(マーカ)340m,340nを備えるマーカ部34bが設けられる。このマーカ部34bは、電源ケーブル32bを通してゲーム装置12に接続される。したがって、マーカ部34bには、ゲーム装置12から電源が供給される。これによって、マーカ340m,340nは発光し、それぞれモニタ34の前方に向けて赤外光を出力する。
【0041】
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【0042】
このゲームシステム10において、ユーザまたはプレイヤがゲーム(またはゲームに限らず、他のアプリケーション)をプレイするために、ユーザはまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)のプログラムを記録している適宜の光ディスク18を選択し、その光ディスク18をゲーム装置12のディスクドライブ54にローディングする。応じて、ゲーム装置12がその光ディスク18に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置12に入力を与えるためにコントローラ22を操作する。たとえば、入力手段26のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段26に対する操作以外にも、コントローラ22自体を動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(カメラ位置)を変化させることができる。
【0043】
図2は図1実施例のビデオゲームシステム10の電気的な構成を示すブロック図である。図示は省略するが、ハウジング14内の各コンポーネントは、プリント基板に実装される。図2に示すように、ゲーム装置12には、CPU40が設けられる。このCPU40は、ゲームプロセッサとして機能する。このCPU40には、システムLSI42が接続される。このシステムLSI42には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV IC56が接続される。
【0044】
外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりし、CPU40のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク18からプログラムデータやテクスチャデータ等を読み出し、CPU40の制御の下で、後述する内部メインメモリ42eまたは外部メインメモリ46に書き込む。
【0045】
システムLSI42には、入出力プロセッサ42a、GPU(Graphics Processor Unit)42b,DSP(Digital Signal Processor)42c,VRAM42dおよび内部メインメモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【0046】
入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後で詳細に説明する。
【0047】
GPU42bは、描画手段の一部を形成し、CPU40からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU40は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU42bに与える。
【0048】
図示は省略するが、上述したように、GPU42bにはVRAM42dが接続される。GPU42bが作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU42bがVRAM42dにアクセスして取得する。なお、CPU40は、描画に必要な画像データを、GPU42bを介してVRAM42dに書き込む。GPU42bは、VRAM42dにアクセスして描画のためのゲーム画像データを作成する。
【0049】
なお、この実施例では、GPU42bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU42bは当該任意のアプリケーションについての画像データを生成する。
【0050】
また、DSP42cは、オーディオプロセッサとして機能し、内部メインメモリ42eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ34aから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【0051】
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ34およびスピーカ34aに出力される。したがって、ゲーム画面がモニタ34に表示され、ゲームに必要な音(音楽)がスピーカ34aから出力される。
【0052】
また、入出力プロセッサ42aには、フラッシュメモリ44、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60およびメモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
【0053】
入出力プロセッサ42aは、無線通信モジュール50を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ42aは、定期的にフラッシュメモリ44にアクセスし、ネットワークへ送信する必要があるデータ(送信データとする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ42aは、他のゲーム装置から送信されるデータ(受信データとする)を、ネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、受信データをフラッシュメモリ44に記憶する。ただし、一定の場合には、受信データをそのまま破棄する。さらに、入出力プロセッサ42aは、ダウンロードサーバからダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、ダウンロードデータをフラッシュメモリ44に記憶する。
【0054】
また、入出力プロセッサ42aは、コントローラ22や荷重コントローラ36から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ42eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU40のゲーム処理によって利用された後、バッファ領域から消去される。
【0055】
なお、この実施例では、上述したように、無線コントローラモジュール52は、Bluetooth規格にしたがってコントローラ22や荷重コントローラ36との間で通信を行う。
【0056】
また、図面の都合上、図2では、コントローラ22と荷重コントローラ36とをまとめて記載してある。
【0057】
さらに、入出力プロセッサ42aには、拡張コネクタ60およびメモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。メモリカード用コネクタ62には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ42aは、拡張コネクタ60やメモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0058】
詳細な説明は省略するが、図1にも示したように、ゲーム装置12(ハウジング14)には、電源ボタン20a、リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI42に接続される。この電源ボタン20aがオンされると、システムLSI42は、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、通常の通電状態となるモード(通常モードと呼ぶこととする)を設定する。一方、電源ボタン20aがオフされると、システムLSI42は、ゲーム装置12の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード(以下、「スタンバイモード」という)を設定する。この実施例では、スタンバイモードが設定された場合には、システムLSI42は、入出力プロセッサ42a、フラッシュメモリ44、外部メインメモリ46、ROM/RTC48および無線通信モジュール50、無線コントローラモジュール52以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、このスタンバイモードは、CPU40によってアプリケーションの実行が行われないモードである。
【0059】
なお、システムLSI42には、スタンバイモードにおいても電源が供給されるが、GPU42b、DSP42cおよびVRAM42dへのクロックの供給を停止することにより、これらを駆動させないようにして、消費電力を低減するようにしてある。
【0060】
また、図示は省略するが、ゲーム装置12のハウジング14内部には、CPU40やシステムLSI42などのICの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
【0061】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン20aがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【0062】
また、通常モードとスタンバイモードの切り替えは、コントローラ22の電源スイッチ26hのオン/オフの切り替えによっても遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール52aへの電源供給を行わない設定にしてもよい。
【0063】
リセットボタン20bもまた、システムLSI42に接続される。リセットボタン20bが押されると、システムLSI42は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク18が排出される。
【0064】
図3(A)ないし図3(E)は、コントローラ22の外観の一例を示す。図3(A)はコントローラ22の先端面を示し、図3(B)はコントローラ22の上面を示し、図3(C)はコントローラ22の右側面を示し、図3(D)はコントローラ22の下面を示し、そして、図3(E)はコントローラ22の後端面を示す。
【0065】
図3(A)ないし図3(E)を参照して、コントローラ22は、たとえばプラスチック成型によって形成されたハウジング22aを有している。ハウジング22aは、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング22a(コントローラ22)には、入力手段(複数のボタンないしスイッチ)26が設けられる。具体的には、図3(B)に示すように、ハウジング22aの上面には、十字キー26a、1ボタン26b、2ボタン26c、Aボタン26d、−ボタン26e、HOMEボタン26f、+ボタン26gおよび電源スイッチ26hが設けられる。また、図3(C)および図3(D)に示すように、ハウジング22aの下面に傾斜面が形成されており、この傾斜面に、Bトリガースイッチ26iが設けられる。
【0066】
十字キー26aは、4方向プッシュスイッチであり、矢印で示す4つの方向、前(または上)、後ろ(または下)、右および左の操作部を含む。この操作部のいずれか1つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト(プレイヤキャラクタまたはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【0067】
1ボタン26bおよび2ボタン26cは、それぞれ、押しボタンスイッチである。たとえば3次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。または、1ボタン26bおよび2ボタン26cは、Aボタン26dおよびBトリガースイッチ26iと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
【0068】
Aボタン26dは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
【0069】
−ボタン26e、HOMEボタン26f、+ボタン26gおよび電源スイッチ26hもまた、押しボタンスイッチである。−ボタン26eは、ゲームモードを選択するために使用される。HOMEボタン26fは、ゲームメニュー(メニュー画面)を表示するために使用される。+ボタン26gは、ゲームを開始(再開)したり、一時停止したりするなどのために使用される。電源スイッチ26hは、ゲーム装置12の電源を遠隔操作によってオン/オフするために使用される。
【0070】
なお、この実施例では、コントローラ22自体をオン/オフするための電源スイッチは設けておらず、コントローラ22の入力手段26のいずれかを操作することによってコントローラ22はオンとなり、一定時間(たとえば、30秒)以上操作しなければ自動的にオフとなるようにしてある。
【0071】
Bトリガースイッチ26iもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ22で選択した位置を指示したりするために使用される。また、Bトリガースイッチ26iを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Bトリガースイッチ26iは、通常のBボタンと同様に機能し、Aボタン26dによって決定したアクションを取り消すなどのために使用される。
【0072】
また、図3(E)に示すように、ハウジング22aの後端面に外部拡張コネクタ22bが設けられ、また、図3(B)に示すように、ハウジング22aの上面であり、後端面側にはインジケータ22cが設けられる。外部拡張コネクタ22bは、図示しない別の拡張コントローラを接続するためなどに使用される。インジケータ22cは、たとえば、4つのLEDで構成され、4つのうちのいずれか1つを点灯することにより、点灯LEDに対応するコントローラ22の識別情報(コントローラ番号)を示したり、点灯させるLEDの個数によってコントローラ22の電源残量を示したりすることができる。
【0073】
さらに、コントローラ22は、撮像情報演算部80(図4参照)を有しており、図3(A)に示すように、ハウジング22aの先端面には撮像情報演算部80の光入射口22dが設けられる。また、コントローラ22は、スピーカ86(図4参照)を有しており、このスピーカ86は、図3(B)に示すように、ハウジング22aの上面であり、1ボタン26bとHOMEボタン26fとの間に設けられる音抜き孔22eに対応して、ハウジング22a内部に設けられる。
【0074】
なお、図3(A)ないし図3(E)に示したコントローラ22の形状や、各入力手段26の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。
【0075】
図4はコントローラ22の電気的な構成を示すブロック図である。この図4を参照して、コントローラ22はプロセッサ70を含み、このプロセッサ70には、内部バス(図示せず)によって、外部拡張コネクタ22b、入力手段26、メモリ72、加速度センサ74、無線モジュール76、撮像情報演算部80、LED82(インジケータ22c)、バイブレータ84、スピーカ86および電源回路88が接続される。また、無線モジュール76には、アンテナ78が接続される。
【0076】
プロセッサ70は、コントローラ22の全体制御を司り、入力手段26、加速度センサ74および撮像情報演算部80によって入力された情報(入力情報)を、入力データとして無線モジュール76およびアンテナ78を介してゲーム装置12に送信(入力)する。このとき、プロセッサ70は、メモリ72を作業領域ないしバッファ領域として用いる。
【0077】
上述した入力手段26(26a−26i)からの操作信号(操作データ)は、プロセッサ70に入力され、プロセッサ70は操作データを一旦メモリ72に記憶する。
【0078】
また、加速度センサ74は、コントローラ22の縦方向(y軸方向)、横方向(x軸方向)および前後方向(z軸方向)の3軸で各々の加速度を検出する。この加速度センサ74は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【0079】
たとえば、加速度センサ74は、第1所定時間毎に、x軸,y軸,z軸の各々についての加速度(ax,ay,az)を検出し、検出した加速度のデータ(加速度データ)をプロセッサ70に入力する。たとえば、加速度センサ74は、各軸方向の加速度を、−2.0g〜2.0g(gは重力加速度である。以下、同じ。)の範囲で検出する。プロセッサ70は、加速度センサ74から与えられる加速度データを、第2所定時間毎に検出し、一旦メモリ72に記憶する。プロセッサ70は、操作データ、加速度データおよび後述するマーカ座標データの少なくとも1つを含む入力データを作成し、作成した入力データを、第3所定時間(たとえば、5msec)毎にゲーム装置12に送信する。
【0080】
なお、図3(A)−図3(E)では省略したが、この実施例では、加速度センサ74は、ハウジング22a内部の基板上の十字キー26aが配置される付近に設けられる。
【0081】
無線モジュール76は、たとえばBluetoothの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ78から放射する。つまり、入力データは、無線モジュール76によって微弱電波信号に変調されてアンテナ78(コントローラ22)から送信される。この微弱電波信号が上述したゲーム装置12に設けられた無線コントローラモジュール52によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置12(CPU40)は、コントローラ22からの入力データを取得することができる。そして、CPU40は、取得した入力データとプログラム(ゲームプログラム)とに従ってゲーム処理を行う。
【0082】
さらに、上述したように、コントローラ22には、撮像情報演算部80が設けられる。この撮像情報演算部80は、赤外線フィルタ80a、レンズ80b、撮像素子80cおよび画像処理回路80dによって構成される。赤外線フィルタ80aは、コントローラ22の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ34の表示画面近傍(周辺)に配置されるマーカ340mおよび340nは、モニタ34の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ80aを設けることによってマーカ340mおよび340nの画像をより正確に撮像することができる。レンズ84は、赤外線フィル82を透過した赤外線を集光して撮像素子80cへ出射する。撮像素子80cは、たとえばCMOSセンサあるいはCCDのような固体撮像素子であり、レンズ80bによって集光された赤外線を撮像する。したがって、撮像素子80cは、赤外線フィルタ80aを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子80cによって撮像された画像を撮像画像と呼ぶ。撮像素子80cによって生成された画像データは、画像処理回路80dで処理される。画像処理回路80dは、撮像画像内における撮像対象(マーカ340mおよび340n)の位置を算出し、第4所定時間毎に、当該位置を示す各座標値を撮像データとしてプロセッサ70に出力する。なお、画像処理回路80dにおける処理については後述する。
【0083】
図5は図1に示した荷重コントローラ36の外観を示す斜視図である。図5に示すように、荷重コントローラ36は、プレイヤがその上に乗る(プレイヤの足を乗せる)台36a、および台36aにかかる荷重を検出するための少なくとも4つの荷重センサ36bを備える。なお、各荷重センサ36bは台36aに内包されており(図6,図7参照)、図5においてはその配置が点線で示されている。
【0084】
台36aは、略直方体に形成されており、上面視で略長方形状である。たとえば長方形の短辺が30cm程度に設定され、その長辺が50cm程度に設定される。プレイヤが乗る台36aの上面は平坦にされる。台36aの4隅の側面は、部分的に円柱状に張り出すように形成されている。
【0085】
この台36aにおいて、4つの荷重センサ36bは、所定の間隔を置いて配置される。この実施例では、4つの荷重センサ36bは、台36aの周縁部に、具体的には4隅にそれぞれ配置される。荷重センサ36bの間隔は、台36aに対するプレイヤの荷重のかけ方によるゲーム操作の意図をより精度良く検出できるように適宜な値に設定される。
【0086】
図6は、図5に示した荷重コントローラ36のVI−VI断面図を示すとともに、荷重センサ36bの配置された隅の部分が拡大表示されている。この図6から分かるように、台36aは、プレイヤが乗るための支持板360と脚362を含む。脚362は、荷重センサ36bが配置される箇所に設けられる。この実施例では4つの荷重センサ36bが4隅に配置されるので、4つの脚362が4隅に設けられる。脚362は、たとえばプラスチック成型によって略有底円筒状に形成されており、荷重センサ36bは、脚362内の底面に設けられた球面部品362a上に配置される。支持板360は、この荷重センサ36bを介して脚362に支持される。
【0087】
支持板360は、上面と側面上部とを形成する上層板360a、下面と側面下部とを形成する下層板360b、および上層板360aと下層板360bとの間に設けられる中層板360cを含む。上層板360aと下層板360bとは、たとえばプラスチック成型により形成されており、接着等により一体化される。中層板360cは、たとえば1枚の金属板のプレス成型により形成されている。この中層板360cが、4つの荷重センサ36bの上に固定される。上層板360aは、その下面に格子状のリブ(図示しない)を有しており、当該リブを介して中層板360cに支持されている。
【0088】
したがって、台36aにプレイヤが乗ったときには、その荷重は、支持板360、荷重センサ36bおよび脚362を伝達する。図6に矢印で示したように、入力される荷重によって生じた床からの反作用は、脚362から、球面部品362a、荷重センサ36b、中層板360cを介して、上層板360aに伝達する。
【0089】
荷重センサ36bは、たとえば歪ゲージ(歪センサ)式ロードセルであり、入力された荷重を電気信号に変換する荷重変換器である。荷重センサ36bでは、荷重入力に応じて、起歪体370aが変形して歪が生じる。この歪が、起歪体に貼り付けられた歪センサ370bによって、電気抵抗の変化に変換され、さらに電圧変化に変換される。したがって、荷重センサ36bは、入力荷重を示す電圧信号を出力端子から出力する。
【0090】
なお、荷重センサ36bは、音叉振動式、弦振動式、静電容量式、圧電式、磁歪式、またはジャイロ式のような他の方式の荷重センサであってもよい。
【0091】
図5に戻って、荷重コントローラ36には、さらに、電源ボタン36cが設けられる。この電源ボタン36cがオンされると、荷重コントローラ36の各回路コンポーネント(図7参照)に電源が供給される。ただし、荷重コントローラ36は、ゲーム装置12からの指示に従ってオンされる場合もある。また、荷重コントローラ36は、プレイヤが乗っていない状態が一定時間(たとえば、30秒)以上継続すると、電源がオフされる。ただし、荷重コントローラ36が起動されている状態で、電源ボタン36cをオンしたときに、電源がオフされてもよい。
【0092】
図7のブロック図には、荷重コントローラ36の電気的な構成の一例が示される。なお、この図7では、信号および通信の流れは実線矢印で示される。破線矢印は、電源の供給を示している。
【0093】
荷重コントローラ36は、その動作を制御するためのマイクロコンピュータ(マイコン)100を含む。マイコン100は図示しないCPU、ROMおよびRAM等を含み、CPUはROMに記憶されたプログラムに従って荷重コントローラ36の動作を制御する。
【0094】
マイコン100には、電源ボタン36c、ADコンバータ102、DC−DCコンバータ104および無線モジュール106が接続される。さらに、無線モジュール106には、アンテナ106aが接続される。また、4つの荷重センサ36bは、図3ではロードセル36bとして示される。4つの荷重センサ36bは、それぞれ、増幅器108を介してADコンバータ102に接続される。
【0095】
また、荷重コントローラ36には電源供給のために電池100が収容されている。他の実施例では、電池に代えてACアダプタを接続し、商用電源を供給するようにしてもよい。かかる場合には、DC−DCコンバータに代えて、交流を直流に変換し、直流電圧を降圧および整流する電源回路を設ける必要がある。この実施例では、マイコン100および無線モジュール106への電源の供給は、電池から直接的に行われる。つまり、マイコン100内部の一部のコンポーネント(CPU)と無線モジュール106とには、常に電源が供給されており、電源ボタン36cがオンされたか否か、ゲーム装置12から電源オン(荷重検出)のコマンドが送信されたか否かを検出する。一方、荷重センサ36b、ADコンバータ102および増幅器108には、電池110からの電源がDC−DCコンバータ104を介して供給される。DC−DCコンバータ104は、電池110からの直流電流の電圧値を異なる電圧値に変換して、荷重センサ36b、ADコンバータ102および増幅器108に与える。
【0096】
これら荷重センサ36b、ADコンバータ102および増幅器108への電源供給は、マイコン100によるDC−DCコンバータ104の制御によって、必要に応じて行われるようにしてよい。つまり、マイコン100は、荷重センサ36bを動作させて荷重を検出する必要があると判断されるときに、DC−DCコンバータ104を制御して、各荷重センサ36b、ADコンバータ102および各増幅器108に電源を供給するようにしてよい。
【0097】
電源が供給されると、各荷重センサ36bは、入力された荷重を示す信号を出力する。当該信号は各増幅器108で増幅され、ADコンバータ102でアナログ信号からディジタルデータに変換されて、マイコン100に入力される。各荷重センサ36bの検出値には各荷重センサ36bの識別情報が付与されて、いずれの荷重センサ36bの検出値であるかが識別可能にされる。このようにして、マイコン100は、同一時刻における4つの荷重センサ36bのそれぞれの荷重検出値を示すデータ(荷重データ)を取得することができる。
【0098】
一方、マイコン100は、荷重センサ36bを動作させる必要がないと判断されるとき、つまり、荷重検出タイミングでないとき、DC−DCコンバータ104を制御して、荷重センサ36b、ADコンバータ102および増幅器108への電源の供給を停止する。このように、荷重コントローラ36では、必要なときにだけ、荷重センサ36bを動作させて荷重の検出を行うことができるので、荷重検出のための電力消費を抑制することができる。
【0099】
荷重検出の必要なときとは、典型的には、ゲーム装置12(図1)が荷重データを取得したいときである。たとえば、ゲーム装置12が荷重情報を必要とするとき、ゲーム装置12は荷重コントローラ36に対して荷重取得命令を送信する。マイコン100は、ゲーム装置12から荷重取得命令を受信したときに、DC−DCコンバータ104を制御して、荷重センサ36b等に電源を供給し、荷重を検出する。一方、マイコン100は、ゲーム装置12から荷重取得命令を受信していないときには、DC−DCコンバータ104を制御して、電源供給を停止する。あるいは、マイコン100は、一定時間ごとに荷重検出タイミングであると判断して、DC−DCコンバータ104を制御するようにしてもよい。このような周期的な荷重取得を行う場合、周期情報は、たとえば、初めにゲーム装置12からマイコン100に与えられ、または、予めマイコン100に記憶されてよい。
【0100】
4つの荷重センサ36bからの4つの検出値を示すデータつまり荷重データは、荷重コントローラ36による入力データとして、マイコン100から無線モジュール106およびアンテナ106bを介してゲーム装置12(図1)に送信される。たとえば、ゲーム装置12からの命令を受けて荷重検出を行った場合、マイコン100は、ADコンバータ102から荷重センサ36bの検出値データを受信したときに、当該荷重検出値データをゲーム装置12に送信する。あるいは、マイコン100は、一定時間ごとに荷重検出値データをゲーム装置12に送信するようにしてもよい。
【0101】
なお、無線モジュール106は、ゲーム装置12の無線コントローラモジュール52と同じ無線規格(Bluetooth、無線LANなど)で通信可能にされる。したがって、ゲーム装置12のCPU40は、無線コントローラモジュール52等を介して荷重取得命令を荷重コントローラ36に送信することができる。荷重コントローラ36のマイコン100は、無線モジュール106およびアンテナ106aを介して、ゲーム装置12からの命令を受信し、また、各荷重センサ36bの荷重検出値(または荷重算出値)を含む荷重データをゲーム装置12に送信することができる。
【0102】
図8は、コントローラ22および荷重コントローラ36を用いて「バランス検定ゲーム」(後述)などの仮想ゲームをプレイするときの状態を概説する図解図である。図8に示すように、ビデオゲームシステム10でコントローラ22および荷重コントローラ36を用いて仮想ゲームをプレイする際、プレイヤは、荷重コントローラ36の上に乗り、一方の手でコントローラ22を把持する。厳密に言うと、プレイヤは、コントローラ22の先端面(撮像情報演算部80が撮像する光の入射口22d側)がマーカ340mおよび340nの方を向く状態で、荷重コントローラ36に乗り、コントローラ22を把持する。ただし、図1からも分かるように、マーカ340mおよび340nは、モニタ34の画面の横方向と平行に配置されている。この状態で、プレイヤは、コントローラ22が指示する画面上の位置を変更したり、コントローラ22と各マーカ340mおよび340nとの距離を変更したりすることによってゲーム操作を行う。
【0103】
なお、図8では、プレイヤがモニタ34の画面に対して横を向くように荷重コントローラ36を縦置きにしてあるが、ゲームによっては、プレイヤがモニタ34の画面に対して正面を向くように荷重コントローラ36を横置きにしてよい。
【0104】
図9は、マーカ340mおよび340nと、コントローラ22との視野角を説明するための図である。図9に示すように、マーカ340mおよび340nは、それぞれ、視野角θ1の範囲で赤外光を放射する。また、撮像情報演算部80の撮像素子80cは、コントローラ22の視線方向を中心とした視野角θ2の範囲で入射する光を受光することができる。たとえば、マーカ340mおよび340nの視野角θ1は、共に34°(半値角)であり、一方、撮像素子80cの視野角θ2は41°である。プレイヤは、撮像素子80cが2つのマーカ340mおよび340nからの赤外光を受光することが可能な位置および向きとなるように、コントローラ22を把持する。具体的には、撮像素子80cの視野角θ2の中に少なくとも一方のマーカ340mおよび340nが存在し、かつ、マーカ340mまたは340nの少なくとも一方の視野角θ1の中にコントローラ22が存在する状態となるように、プレイヤはコントローラ22を把持する。この状態にあるとき、コントローラ22は、マーカ340mおよび340nの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ22の位置および向きを変化させることによってゲーム操作を行うことができる。
【0105】
なお、コントローラ22の位置および向きがこの範囲外となった場合、コントローラ22の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、上記範囲を「操作可能範囲」と呼ぶ。
【0106】
操作可能範囲内でコントローラ22が把持される場合、撮像情報演算部80によって各マーカ340mおよび340nの画像が撮像される。すなわち、撮像素子80cによって得られる撮像画像には、撮像対象である各マーカ340mおよび340nの画像(対象画像)が含まれる。図10は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路80dは、各マーカ340mおよび340nの撮像画像における位置を表す座標(マーカ座標)を算出する。
【0107】
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路80dは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路80dは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である2つのマーカ340mおよび340nの画像340m’および340n’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像であるマーカ340mおよび340nの画像340m’および340n’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【0108】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路80dは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子80cの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子80cによって撮像された撮像画像の解像度が126×96であるとし、重心位置は1024×768のスケールで算出されるものとする。つまり、マーカ座標は、(0,0)から(1024,768)までの整数値で表現される。
【0109】
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをY軸正方向とし、右向きをX軸正方向とする座標系(XY座標系)で表現されるものとする。
【0110】
また、対象画像が正しく検出される場合には、判定処理によって2つの高輝度部分が対象画像として判定されるので、2箇所のマーカ座標が算出される。画像処理回路80dは、算出された2箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ(マーカ座標データ)は、上述したように、プロセッサ70によって入力データに含まれ、ゲーム装置12に送信される。
【0111】
ゲーム装置12(CPU40)は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ34の画面上におけるコントローラ22の指示位置(座標位置)と、コントローラ22からマーカ340mおよび340nまでの各距離とを算出することができる。具体的には、2つのマーカ座標の中点の位置から、コントローラ22の向いている位置すなわち指示位置が算出される。また、撮像画像における対象画像間の距離が、コントローラ22と、マーカ340mおよび340nとの距離に応じて変化するので、2つのマーカ座標間の距離を算出することによって、ゲーム装置12はコントローラ22とマーカ340mおよび340nとの間の距離を把握できる。
【0112】
以上のように構成されたゲームシステム10で「バランス検定ゲーム」をプレイする場合、ゲーム装置12(CPU40)は、コントローラ22からの入力データに含まれる操作データ,加速度データおよびマーカ座標データのうち操作データおよびマーカ座標データと、荷重コントローラ36からの入力データつまり荷重データとに基づいて、後述するようなゲーム処理を実行する。なお、加速度データは、「バランス検定ゲーム」では特に利用されない。
【0113】
まず、「バランス検定ゲーム」の概要を説明する。「バランス検定ゲーム」の開始から終了までの一連のゲーム画面を図11〜図16に示す。ゲームが開始されると、まず図11のようなゲーム画面が表示される。ゲーム画面は、画面の中央部に配置されたプレイエリアを示す矩形の枠Frと、枠Frを4分割する十字線L1およびL2と、枠Frの中央部(画面の略中心)に配置され枠Frの一辺に対して数分の1程度の直径を有する円C(以下“中心円C”)を含む。十字線L1およびL2の交点は、矩形Frの中心点ひいては画面の中心点を示しており、この点を“中心点O”と呼ぶ。中心点Oは、中心円Cの中心点と一致している。なお、中心円Cは、通常、画面の略中心にあればよく、場合によっては、中心点Oから離れた位置にあってもよい。
【0114】
そして、このようなゲーム画面上に、マーカ座標データに基づく座標位置ポインタP1と、荷重データに基づく重心位置ポインタP2とが描画される。当初、重心位置ポインタP2は中心円Cの外部に位置しており、重心位置ポインタP2を中心円Cの内部に移動させるように求めるメッセージM1たとえば「重心を中心の円に合わせてください」が表示される。
【0115】
プレイヤが荷重コントローラ36を操作して(体重を移動させて)重心位置ポインタP2を中心円Cの内部に導入すると、図12に示すように、メッセージM1は消去され、数字1〜10をそれぞれ示す10個のボタン(以下、単に「数字1〜10」のように記す)がカラーで表示される。数字1〜10は、中心円Cの外部に分散して配置され、大中小のいずれかの大きさを有する。ここでは、中サイズの数字2,3,7,9および10が中心円Cと略同じ大きさであり、小サイズの数字5および6は中心円Cよりも小さく、大サイズの数字1,4および8は中心円Cよりも大きい。なお、数字の個数は10個とは限らず、1個〜9個または11個以上でもよい。数字のサイズも3種類とは限らず、1種類,2種類または4種類以上でもよい。
【0116】
こうして数字1〜10が表示されると、計時が開始され、プレイヤはコントローラ22で数字1〜10を順番に選択していく。選択は、図13に示すように、座標位置ポインタP1を所望の数字(ここでは4)に合わせた状態でAボタン26dを押すことにより行われる。選択された数字が正しければ(未選択の数字の中で最小の数字であれば)、その数字の色がカラーからグレーに変化する。選択された数字が間違い(選択済みの数字か、または未選択中で最小とは異なる数字)であれば、このような変化は生じない。
【0117】
図13のゲーム画面では数字1〜4が選択済みであり、数字5が次の選択対象となる。そこでプレイヤは、コントローラ22を操作して、座標位置ポインタP1を数字4から数字5へと移動させ、Aボタン26dによる選択を行う。このような操作を行うことで、プレイヤの体の重心は無意識に移動し、重心位置ポインタP2が中心円Cから出ることがある。
【0118】
重心位置ポインタP2が中心円Cから出ると、図14に示すように、再びメッセージM1が表示され、数字1〜10は消去される。プレイヤが荷重コントローラ36を操作して再び重心位置ポインタP2を中心円Cの内部に導入すると、ゲーム画面は図13の状態に復帰する。ただし、このような荷重コントローラ36の操作の結果、座標位置ポインタP1が数字5から外れてしまい、これを修正するべく、さらなるコントローラ22の操作を要する場合もある。したがって、プレイヤには、画面上の2つのポインタP1およびP2を頼りに、コントローラ22および荷重コントローラ36の両方を同時に操作するテクニックが要求される。
【0119】
こうしてプレイヤが数字1〜10を全て選択し終えると、ゲームクリアとなり、図15に示すように、この時点での計時結果つまり所要時間(たとえば“28秒35”)を示すメッセージM2が表示される。一方、選択終了の前に計時結果が既定値たとえば30秒を超えると、タイムアウトとなり、図16に示すように、この時点での選択済み数字の個数(たとえば“5個”)を示すメッセージM3が表示される。
【0120】
したがって、複数のプレイヤで「バランス検定ゲーム」をプレイする場合には、ゲームクリアまでの所要時間が短いプレイヤほど上位となり、タイムアウトしたプレイヤは、ゲームクリアした最下位のプレイヤよりも下位にランクされる。タイムアウトしたプレイヤの中では、選択済み数字が多いほどランクは上となる。
【0121】
次に、このような「バランス検定ゲーム」を実現するための具体的なゲーム処理、つまりCPU40の動作について、図17のメモリマップならびに図18〜図20のフローチャートにより説明する。内部メインメモリ42eまたは外部メインメモリ46には、図17に示すように、プログラム記憶領域200およびデータ記憶領域210が形成される。プログラム記憶領域200には、図18〜図20のフローチャートに対応するゲームプログラム202などが格納される。ゲームプログラム202は、座標位置検出プログラム202a、重心位置検出プログラム202bおよび時間管理プログラム202cを含む。データ記憶領域210は、数字ボタン領域212,中心円領域214,位置(ポインタ)領域216および時間領域218を含む。
【0122】
ゲームプログラム200は、「バランス検定ゲーム」を実現するメインプログラムである。座標位置検出プログラム202aは、メインプログラムによって利用されるサブプログラムであり、コントローラ22からのマーカ座標データに基づいて画面内での座標位置(指示位置)を検出する。重心位置検出プログラム202bは、メインプログラムによって利用されるサブプログラムであり、荷重コントローラ36からの荷重データに基づいてユーザの重心位置を検出する。時間管理プログラム202cは、メインプログラムによって利用されるサブプログラムであり、ROM/RTC48からの時間情報に基づいて計時を行い、計時結果に基づいて所要時間を算出したりタイムアウトを検出したりする。
【0123】
数字ボタン領域212は、数字ボタン1〜10の各々について位置,大きさ,順番および選択済みフラグを記憶するための領域である。ここで選択済みフラグは、初期状態ではオフであり、プレイヤの選択操作に応じてオンされる。中心円領域212は、中心円Cについて位置および大きさを記憶するための領域である。位置(ポインタ)領域216は、座標位置検出プログラム202aによって検出された座標位置(ポインタP1の位置)および重心位置検出プログラム202bによって検出された重心位置(ポインタP2の位置)を記憶するための領域である。時間領域218は、時間管理プログラム202cが所要時間を算出したりタイムアウトを検出したりするのに必要な時間情報、たとえば開始時刻や現在時刻を記憶するための領域である。
【0124】
CPU40は、図17のプログラムおよびデータに基づいて、図18〜図20のフローチャートに示すゲーム処理を実行する。「バランス検定ゲーム」が起動されると、CPU40は、ステップS1で初期処理を実行する。ここで初期処理には、ゲーム装置12と荷重コントローラ36との間の接続をチェックする処理や、荷重コントローラ36に初期値(ゼロ値つまりプレイヤが乗っていないときの荷重値やプレイヤの体重値など)を設定する処理が含まれる。初期処理が完了すると、ステップS3に進んでゲーム開始処理を実行する。
【0125】
ステップS3のゲーム開始処理は、図20のサブルーチンに従って実行される。ステップS101では、その略中心に中心円Cが配置されたゲーム画面をモニタ34に表示し、ステップS103では、メッセージM1つまり「重心を中心の円に合わせてください」を表示する。
【0126】
ステップS105では、コントローラ22からのマーカ座標データに基づいて座標位置を検出し、ステップS107では、荷重コントローラ22からの荷重データに基づいて重心位置を検出する。これら2つの検出結果は位置領域216に記憶され、次のステップS109で、この位置領域216の情報(座標位置および重心位置)に基づいて、座標位置ポインタP1および重心位置ポインタP2を表示する。ゲーム画面は、この時点で図11のようになる。
【0127】
ステップS111では、重心が中心に合ったか否かを中心円領域214の情報(位置および大きさ)および位置領域216の情報(重心位置)に基づいて判別する。重心位置が中心円Cの外部にあれば、ステップS111でNOと判別してステップS103に戻る。重心位置が中心円Cの内部または円周上にあれば、ステップS111でYESと判別してステップS113に進む。ステップS113では、ステップS111の判別結果がYESである状態の継続時間を計測して、計測結果が所定時間(たとえば3秒)を超えたか否かを判別する。ステップS113でNOであればステップS103に戻り、YESであればステップS115に進んで計時を開始する。この時点(開始時刻)でゲーム開始となり、処理は上位層のルーチンに復帰する。
【0128】
ステップS5では、メッセージM1つまり「重心を中心の円に合わせてください」を表示する。ステップS7では、コントローラ22からのマーカ座標データに基づいて座標位置を検出し、ステップS9では、荷重コントローラ22からの荷重データに基づいて重心位置を検出する。これら2つの検出結果は位置領域216に記憶され、次のステップS11で、この位置領域216の情報(座標位置および重心位置)に基づいて、座標位置ポインタP1および重心位置ポインタP2を表示する。ゲーム画面は、この時点で図11のようになる。
【0129】
ステップS13では、重心が中心に合ったか否かを中心円領域214の情報(位置および大きさ)および位置領域216の情報(重心位置)に基づいて判別する。重心位置が中心円Cの外部にあれば、ステップS13でNOと判別してステップS5に戻る。重心位置が中心円Cの内部または円周上にあれば、ステップS13でYESと判別してステップS15に進む。なお、判別結果がYESである状態の継続時間を計測して、計測結果が所定時間(たとえば3秒)を超えた時点でYESと判別するようにしてもよい。
【0130】
ステップS15では、メッセージM1を非表示とし(つまりゲーム画面から消去し)、ステップS17では、数字1〜10(を示す10個のボタン)を数字ボタン領域212の情報(位置,大きさおよび選択済みフラグ)に基づいてカラー表示する。ゲーム画面は、この時点で図12のようになる。
【0131】
ステップS19では、重心が中心から外れたか否かを中心円領域214の情報および位置領域216の情報に基づいて判別し、NOであればステップS25に移る。ステップS19でYESであれば、ステップS21で数字1〜10を非表示とした後、ステップS23でタイムアップか否かを時間領域218の情報(開始時刻および終了時刻)に基づいて判別する。開始時刻から現在時刻までの時間(所要時間)が所定時間(たとえば30秒)に達していれば、ステップS23でYESと判別し、ステップS39(後述)に進む。所要時間が30秒に満たなければ、ステップS23でNOと判別し、ステップS5に戻る。
【0132】
ステップS25では、数字が選択されたか否かを数字ボタン領域212の情報(位置および大きさ)およびコントローラ22からの操作データに基づいて判別する。ステップS27では、選択された数字が正しい数字か否かを数字ボタン領域212の情報(順番および選択済みフラグ)に基づいて判別する。選択された数字が未選択中最小の数字であれば、ステップS27でYESと判別し、ステップS29に進む。
【0133】
ステップS29では、数字ボタン領域212の情報を更新(当該数字の選択済みフラグをオン)して、当該数字を“選択済み”とする。そしてステップS31で、全ての数字1〜10が“選択済み”になったか否かを判別し、NOであればステップS37(後述)に移る。ステップS31でYESであれば、ゲームクリアとみなしてステップS33に進む。ステップS33では、時間領域218の情報に基づいて所要時間を計算し、計算結果を示すメッセージM2を表示する。ゲーム画面は、この時点で図15のようになる。そして、「バランス検定ゲーム」を終了する。
【0134】
一方、選択された数字が、既に“選択済み”であるか、または未選択中で最小とは異なる数字であれば、ステップS27でNOと判別し、ステップS35に移ってスピーカ34aから警告音を発生させた後、ステップS37に進む。ステップS37では、タイムアップか否かを時間領域212の情報に基づいて判別し、NOであればステップS7に戻る一方、YESであればステップS39に進む。ステップS39では、数字ボタン領域212の情報(選択済みフラグ)に基づいて、“選択済み”である数字の個数を計算し、計算結果を示すメッセージM3を表示する。ゲーム画面は、この時点で図16のようになる。そして、「バランス検定ゲーム」を終了する。
【0135】
以上から明らかなように、この実施例のゲームシステム10では、ゲーム装置12のCPU40は、ユーザによって操作されるコントローラ22からの信号に基づいてモニタ34の画面上で指示された座標位置(指示位置)を検出し(S7)、ユーザを乗せた荷重コンローラ36からの信号に基づいてユーザの重心位置を検出し(S9)、そして検出された座標位置と検出された重心位置とに基づいて平衡機能の検定およびゲームの進行に関連する処理を行う(S13,S19,S25〜S39)。これにより、複雑な行動時の平衡機能をゲーム感覚で検定することができる。
【0136】
なお、この実施例では、画面内に分散して配置された数字1〜10を順番に選択していくゲームを行ったが、ユーザがコントローラ22を操作して行うゲームであれば、検定と組み合わせて行うことが可能である。
【0137】
また、 この実施例では、ゲームシステム10において実行される「バランス検定ゲーム」は、ゲームシステム10を用いてプレイヤがゲームを行うことを可能にするためのゲームプログラムによって実現されるものとしているが、これに限られず、ゲームシステム10を用いてユーザが種々のトレーニング(またはエクササイズ)を行うことを可能にするためのアプリケーションソフトウェアであるトレーニングプログラムによって実現されるものであってもよい。この場合、当該トレーニングプログラムを実行するCPU40を含むゲーム装置12は、トレーニング装置として機能する。
【0138】
以上では、ゲームシステム10について説明したが、ユーザによって操作されて画面内の任意の位置を指示する座標入力手段と、ユーザの重心位置を検出する重心位置検出手段とを備える、情報処理システムにも適用できる。座標入力手段としては、コントローラ22のようなDPD(Direct Pointing Device)のほか、タッチパネル,マウスなどがある。重心位置検出手段は、典型的には、荷重コントローラ36のように複数の荷重センサからの信号に基づいて重心位置を計算する回路ないしプログラムであるが、たとえばビデオカメラからの画像を処理して重心位置を推定する回路ないしプログラムなどでもよい。
【符号の説明】
【0139】
10 …ゲームシステム
12 …ゲーム装置
22 …コントローラ
34 …モニタ
34a …スピーカ
36 …荷重コントローラ
40 …CPU
42e …内部メインメモリ
46 …外部メインメモリ
48 …ROM/RTC
P1 …座標位置ポインタ
P2 …重心位置ポインタ
C …中心円
【技術分野】
【0001】
この発明は、情報処理プログラムおよび情報処理装置に関し、特にたとえば、ユーザの重心位置に基づいて所定の処理を行う、情報処理プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
この種の従来の装置ないしプログラムとしては、たとえば特許文献1に開示されたものが知られている。この背景技術では、ユーザの歩行に伴う重心移動を検出台で検出し、検出結果に基づいて歩行時の平衡機能を検定している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−334083号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1の背景技術では、重心移動のみに注目して情報処理を行うので、歩行のような単純な行動時の平衡機能しか検定できなかった。
【0005】
それゆえに、この発明の主たる目的は、新規な、情報処理プログラムおよび情報処理装置を提供することである。
【0006】
この発明の他の目的は、複雑な行動時の平衡機能も検定できる、情報処理プログラムおよび情報処理装置を提供することである。
【課題を解決するための手段】
【0007】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0008】
第1の発明は、情報処理装置のコンピュータに、ユーザによって操作される座標入力手段からの信号に基づいて画面上の座標位置を検出する座標位置検出ステップ、重心位置検出手段からの信号に基づいてユーザの重心位置を検出する重心位置検出ステップ、および座標位置検出ステップで検出された座標位置と重心位置検出ステップで検出された重心位置とに基づいて所定の処理を行う処理ステップを実行させるための、情報処理プログラムである。
【0009】
第1の発明では、情報処理プログラムは、情報処理装置(12)のコンピュータ(40)に、座標位置検出ステップ(S7)、重心位置検出ステップ(S9)、および処理ステップ(S13,S19,S25〜S39)を実行させる。座標位置検出ステップは、ユーザによって操作される座標入力手段(22)からの信号に基づいて、画面(34)上の座標位置を検出する。重心位置検出ステップは、重心位置検出手段(36)からの信号に基づいて、ユーザの重心位置を検出する。処理ステップ(S13,S19,S25〜S39)は、座標位置検出ステップで検出された座標位置と重心位置検出ステップで検出された重心位置とに基づいて、所定の処理を行う。
【0010】
第1の発明によれば、座標入力手段の操作に伴ってユーザの重心位置が移動する一方、情報処理装置は、座標位置と重心位置とに基づいて所定の処理を実行するので、所定の処理に平衡機能の検定に関連する処理(S13,S19)を含めることで、座標入力手段の操作のような複雑な行動時の平衡機能も検定できるようになる。
【0011】
第2の発明は、第1の発明に従属する情報処理プログラムであって、処理ステップは、重心位置検出ステップで検出された重心位置が所定の範囲内(たとえば中心円C内)にあるときに、座標位置検出ステップで検出された座標位置に基づいて、所定の処理を行う。
【0012】
第2の発明では、情報処理装置に所定の処理を実行させるには、ユーザは、座標入力手段を操作しつつ、重心位置が所定の範囲からはみ出さないように体重移動をも同時に行う技量が求められる。このため、ユーザを飽きさせずに検定が行える。また、所定の処理にゲームの進行に関連する処理(S25〜S39)をさらに含めることで、ゲーム感覚で検定が行えるようになる。
【0013】
第3の発明は、第2の発明に従属する情報処理プログラムであって、重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、ユーザが指示するための指示画像を表示する画像表示ステップをコンピュータにさらに実行させ、処理ステップは、座標位置検出ステップで検出された座標位置が、画像表示ステップで表示された指示画像に対応する範囲内に入ったときに、特定の処理を行う。
【0014】
第3の発明では、情報処理プログラムは画像表示ステップ(S17)をコンピュータにさらに実行させる。画像表示ステップは、重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、ユーザが指示するための指示画像(たとえば数字ボタン)を表示する。処理ステップは、座標位置検出ステップで検出された座標位置が、画像表示ステップで表示された指示画像に対応する範囲内に入ったときに、特定の処理(S29)を行う。
【0015】
第4の発明は、第3の発明に従属する情報処理プログラムであって、画像表示ステップで指示画像が表示された後に、重心位置検出ステップで検出された重心位置が所定の範囲外となったとき、画像表示ステップで表示されている指示画像を消去する画像消去ステップ(S21)をコンピュータにさらに実行させる。
【0016】
第4の発明では、情報処理プログラムは、画像消去ステップ(S21)をコンピュータにさらに実行させる。画像消去ステップは、画像表示ステップで指示画像が表示された後に、重心位置検出ステップで検出された重心位置が所定の範囲外となったとき、画像表示ステップで表示されている指示画像を消去する。
【0017】
第3および第4の発明によれば、重心位置が所定の範囲内にあるときに指示画像を表示し、表示した指示画像への入力があった場合に特定の処理(たとえば入力があった数字ボタンをカラー表示からグレー表示に変更する、といったゲーム成功処理)を行うので、重心位置を所定の範囲内に収めながら、座標入力装置で指示画像への入力を行うというゲーム性が、検定に付加される。
【0018】
第5の発明は、第3または第4の発明に従属する情報処理プログラムであって、画像表示ステップは、重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、複数の指示画像を表示する。
【0019】
第5の発明によれば、複数の入力すべき指示画像の選択が可能となり、ゲームの幅が広がる。
【0020】
第6の発明は、第5の発明に従属する情報処理プログラムであって、画像表示ステップは、重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、それぞれに大きさが設定されている複数の指示画像を表示する。
【0021】
第6の発明によれば、指示画像の大きさが異なるので、指示画像選択の困難性に変化をもたせることができる。
【0022】
第7の発明は、第5または第6の発明に従属する情報処理プログラムであって、画像表示ステップは、重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、それぞれに順番が設定されている複数の指示画像を表示し、処理ステップは、座標位置検出ステップで検出された座標位置が、画像表示ステップで表示された指示画像に設定されている順番で当該指示画像に対応する範囲内に入ったときに、特定の処理を行う。
【0023】
第7の発明では、指示画像の選択順序を設定することで、ゲームの困難性が高まると共に、ユーザによる座標入力手段の操作パターン(たとえば手の動き)をコントロールしつつ検定が行えるようになる。
【0024】
第8の発明は、第2ないし第7のいずれかの発明に従属する情報処理プログラムであって、画像表示ステップは、所定の範囲に対応する画像を画面に表示するとともに、指示画像を所定の範囲に対応する画像の周辺に表示する。
【0025】
第9の発明は、第8の発明に従属する情報処理プログラムであって、画像表示ステップは、所定の範囲に対応する画像を画面の所定の領域の略中央に表示するとともに、指示画像を所定の範囲に対応する画像の周辺に表示する。
【0026】
第8,第9の発明では、指示画像を所定の範囲に対応する画像の周辺に表示するので、ユーザは、所定の範囲に対応する画像を中心視野で、指示画像を周辺視野で、同時に視認することとなり、操作および体重移動の困難性が高まる。
【0027】
第10の発明は、第1ないし第9のいずれかの発明に従属する情報処理プログラムであって、座標位置検出ステップで検出された座標位置を示す座標位置ポインタおよび重心位置検出ステップで検出された重心位置を示す重心位置ポインタを画面に表示するポインタ表示ステップをコンピュータにさらに実行させる。
【0028】
第10の発明では、情報処理プログラムは、ポインタ表示ステップ(S11)をコンピュータにさらに実行させる。ポインタ表示ステップは、座標位置検出ステップで検出された座標位置を示す座標位置ポインタ(P1)および重心位置検出ステップで検出された重心位置を示す重心位置ポインタ(P2)を画面に表示する。
【0029】
第10の発明によれば、2つのポインタを表示することで、ユーザに操作および体重移動を的確に行わせることができる。
【0030】
第11の発明は、第10の発明に従属する情報処理プログラムであって、ポインタ表示ステップは、重心位置検出ステップで検出された重心位置が、ユーザが平衡状態を保っていることを示すときに、重心位置ポインタを所定の範囲に対応する画像内に表示する。
【0031】
第12の発明は、ユーザによって操作される座標入力手段(22)からの信号に基づいて画面(34)上の座標位置を検出する座標位置検出手段(S7)、重心位置検出手段(36)からの信号に基づいてユーザの重心位置を検出する重心位置検出手段(S9)、および座標位置検出手段で検出された座標位置と重心位置検出手段で検出された重心位置とに基づいて所定の処理を行う処理手段(S13,S19,S25〜S39)を備える、情報処理装置(12)である。
【0032】
第12の発明でも、第1の発明と同様に、複雑な行動時の平衡機能も検定できるようになる。
【発明の効果】
【0033】
この発明によれば、複雑な行動時の平衡機能も検定できる、情報処理プログラムおよび情報処理装置が実現される。
【0034】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0035】
【図1】この発明のゲームシステムの一実施例を示す図解図である。
【図2】ゲームシステムの電気的な構成を示すブロック図である。
【図3】コントローラの外観を説明するための図解図である。
【図4】コントローラの電気的な構成を示すブロック図である。
【図5】荷重コントローラの外観を説明するための図解図である。
【図6】荷重コントローラの断面図である。
【図7】荷重コントローラの電気的な構成を示すブロック図である。
【図8】コントローラおよび荷重コントローラを用いて仮想ゲームをプレイするときの状態を概説するための図解図である。
【図9】マーカおよびコントローラの視野角を説明するための図解図である。
【図10】コントローラによる撮像画像の一例を示す図解図である。
【図11】ゲーム画面の一例を示す図解図である。
【図12】ゲーム画面の他の一例を示す図解図である。
【図13】ゲーム画面のその他の一例を示す図解図である。
【図14】ゲーム画面のさらにその他の一例を示す図解図である。
【図15】ゲーム画面の他の一例を示す図解図である。
【図16】ゲーム画面のその他の一例を示す図解図である。
【図17】メモリマップの一例を示す図解図である。
【図18】CPU動作の一部を示すフロー図である。
【図19】CPU動作の他の一部を示すフロー図である。
【図20】CPU動作のその他の一部を示すフロー図である。
【発明を実施するための形態】
【0036】
図1を参照して、この発明の一実施例であるゲームシステム10は、ビデオゲーム装置(以下、単に「ゲーム装置」という)12、コントローラ22および荷重コントローラ36を含む。なお、図示は省略するが、この実施例のゲーム装置12は、最大4つのコントローラ(22,36)と通信可能に設計されている。また、ゲーム装置12と各コントローラ(22,36)とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。
【0037】
ゲーム装置12は、略直方体のハウジング14を含み、ハウジング14の前面にはディスクスロット16が設けられる。ディスクスロット16から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク18が挿入されて、ハウジング14内のディスクドライブ54(図2参照)に装着される。ディスクスロット16の周囲には、LEDと導光板が配置され、さまざまな処理に応答させて点灯させることが可能である。
【0038】
また、ゲーム装置12のハウジング14の前面であり、その上部には、電源ボタン20aおよびリセットボタン20bが設けられ、その下部には、イジェクトボタン20cが設けられる。さらに、リセットボタン20bとイジェクトボタン20cとの間であり、ディスクスロット16の近傍には、外部メモリカード用コネクタカバー28が設けられる。この外部メモリカード用コネクタカバー28の内側には、外部メモリカード用コネクタ62(図2参照)が設けられ、図示しない外部メモリカード(以下、単に「メモリカード」という)が挿入される。メモリカードは、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。
【0039】
なお、メモリカードとしては、汎用のSDカードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。
【0040】
ゲーム装置12のハウジング14の後面には、AVケーブルコネクタ58(図2参照)が設けられ、そのAVコネクタ58を用いて、AVケーブル32aを通してゲーム装置12にモニタ34およびスピーカ34aを接続する。このモニタ34およびスピーカ34aは典型的にはカラーテレビジョン受像機であり、AVケーブル32aは、ゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)34の画面上にたとえば3次元(3D)ビデオゲームのゲーム画像が表示され、左右のスピーカ34aからゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ34の周辺(この実施例では、モニタ34の上側)には、2つの赤外LED(マーカ)340m,340nを備えるマーカ部34bが設けられる。このマーカ部34bは、電源ケーブル32bを通してゲーム装置12に接続される。したがって、マーカ部34bには、ゲーム装置12から電源が供給される。これによって、マーカ340m,340nは発光し、それぞれモニタ34の前方に向けて赤外光を出力する。
【0041】
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【0042】
このゲームシステム10において、ユーザまたはプレイヤがゲーム(またはゲームに限らず、他のアプリケーション)をプレイするために、ユーザはまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)のプログラムを記録している適宜の光ディスク18を選択し、その光ディスク18をゲーム装置12のディスクドライブ54にローディングする。応じて、ゲーム装置12がその光ディスク18に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置12に入力を与えるためにコントローラ22を操作する。たとえば、入力手段26のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段26に対する操作以外にも、コントローラ22自体を動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(カメラ位置)を変化させることができる。
【0043】
図2は図1実施例のビデオゲームシステム10の電気的な構成を示すブロック図である。図示は省略するが、ハウジング14内の各コンポーネントは、プリント基板に実装される。図2に示すように、ゲーム装置12には、CPU40が設けられる。このCPU40は、ゲームプロセッサとして機能する。このCPU40には、システムLSI42が接続される。このシステムLSI42には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV IC56が接続される。
【0044】
外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりし、CPU40のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク18からプログラムデータやテクスチャデータ等を読み出し、CPU40の制御の下で、後述する内部メインメモリ42eまたは外部メインメモリ46に書き込む。
【0045】
システムLSI42には、入出力プロセッサ42a、GPU(Graphics Processor Unit)42b,DSP(Digital Signal Processor)42c,VRAM42dおよび内部メインメモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【0046】
入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後で詳細に説明する。
【0047】
GPU42bは、描画手段の一部を形成し、CPU40からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU40は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU42bに与える。
【0048】
図示は省略するが、上述したように、GPU42bにはVRAM42dが接続される。GPU42bが作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU42bがVRAM42dにアクセスして取得する。なお、CPU40は、描画に必要な画像データを、GPU42bを介してVRAM42dに書き込む。GPU42bは、VRAM42dにアクセスして描画のためのゲーム画像データを作成する。
【0049】
なお、この実施例では、GPU42bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU42bは当該任意のアプリケーションについての画像データを生成する。
【0050】
また、DSP42cは、オーディオプロセッサとして機能し、内部メインメモリ42eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ34aから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【0051】
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ34およびスピーカ34aに出力される。したがって、ゲーム画面がモニタ34に表示され、ゲームに必要な音(音楽)がスピーカ34aから出力される。
【0052】
また、入出力プロセッサ42aには、フラッシュメモリ44、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60およびメモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
【0053】
入出力プロセッサ42aは、無線通信モジュール50を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ42aは、定期的にフラッシュメモリ44にアクセスし、ネットワークへ送信する必要があるデータ(送信データとする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ42aは、他のゲーム装置から送信されるデータ(受信データとする)を、ネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、受信データをフラッシュメモリ44に記憶する。ただし、一定の場合には、受信データをそのまま破棄する。さらに、入出力プロセッサ42aは、ダウンロードサーバからダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、ダウンロードデータをフラッシュメモリ44に記憶する。
【0054】
また、入出力プロセッサ42aは、コントローラ22や荷重コントローラ36から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ42eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU40のゲーム処理によって利用された後、バッファ領域から消去される。
【0055】
なお、この実施例では、上述したように、無線コントローラモジュール52は、Bluetooth規格にしたがってコントローラ22や荷重コントローラ36との間で通信を行う。
【0056】
また、図面の都合上、図2では、コントローラ22と荷重コントローラ36とをまとめて記載してある。
【0057】
さらに、入出力プロセッサ42aには、拡張コネクタ60およびメモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。メモリカード用コネクタ62には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ42aは、拡張コネクタ60やメモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0058】
詳細な説明は省略するが、図1にも示したように、ゲーム装置12(ハウジング14)には、電源ボタン20a、リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI42に接続される。この電源ボタン20aがオンされると、システムLSI42は、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、通常の通電状態となるモード(通常モードと呼ぶこととする)を設定する。一方、電源ボタン20aがオフされると、システムLSI42は、ゲーム装置12の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード(以下、「スタンバイモード」という)を設定する。この実施例では、スタンバイモードが設定された場合には、システムLSI42は、入出力プロセッサ42a、フラッシュメモリ44、外部メインメモリ46、ROM/RTC48および無線通信モジュール50、無線コントローラモジュール52以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、このスタンバイモードは、CPU40によってアプリケーションの実行が行われないモードである。
【0059】
なお、システムLSI42には、スタンバイモードにおいても電源が供給されるが、GPU42b、DSP42cおよびVRAM42dへのクロックの供給を停止することにより、これらを駆動させないようにして、消費電力を低減するようにしてある。
【0060】
また、図示は省略するが、ゲーム装置12のハウジング14内部には、CPU40やシステムLSI42などのICの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
【0061】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン20aがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【0062】
また、通常モードとスタンバイモードの切り替えは、コントローラ22の電源スイッチ26hのオン/オフの切り替えによっても遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール52aへの電源供給を行わない設定にしてもよい。
【0063】
リセットボタン20bもまた、システムLSI42に接続される。リセットボタン20bが押されると、システムLSI42は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク18が排出される。
【0064】
図3(A)ないし図3(E)は、コントローラ22の外観の一例を示す。図3(A)はコントローラ22の先端面を示し、図3(B)はコントローラ22の上面を示し、図3(C)はコントローラ22の右側面を示し、図3(D)はコントローラ22の下面を示し、そして、図3(E)はコントローラ22の後端面を示す。
【0065】
図3(A)ないし図3(E)を参照して、コントローラ22は、たとえばプラスチック成型によって形成されたハウジング22aを有している。ハウジング22aは、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング22a(コントローラ22)には、入力手段(複数のボタンないしスイッチ)26が設けられる。具体的には、図3(B)に示すように、ハウジング22aの上面には、十字キー26a、1ボタン26b、2ボタン26c、Aボタン26d、−ボタン26e、HOMEボタン26f、+ボタン26gおよび電源スイッチ26hが設けられる。また、図3(C)および図3(D)に示すように、ハウジング22aの下面に傾斜面が形成されており、この傾斜面に、Bトリガースイッチ26iが設けられる。
【0066】
十字キー26aは、4方向プッシュスイッチであり、矢印で示す4つの方向、前(または上)、後ろ(または下)、右および左の操作部を含む。この操作部のいずれか1つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト(プレイヤキャラクタまたはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【0067】
1ボタン26bおよび2ボタン26cは、それぞれ、押しボタンスイッチである。たとえば3次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。または、1ボタン26bおよび2ボタン26cは、Aボタン26dおよびBトリガースイッチ26iと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
【0068】
Aボタン26dは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
【0069】
−ボタン26e、HOMEボタン26f、+ボタン26gおよび電源スイッチ26hもまた、押しボタンスイッチである。−ボタン26eは、ゲームモードを選択するために使用される。HOMEボタン26fは、ゲームメニュー(メニュー画面)を表示するために使用される。+ボタン26gは、ゲームを開始(再開)したり、一時停止したりするなどのために使用される。電源スイッチ26hは、ゲーム装置12の電源を遠隔操作によってオン/オフするために使用される。
【0070】
なお、この実施例では、コントローラ22自体をオン/オフするための電源スイッチは設けておらず、コントローラ22の入力手段26のいずれかを操作することによってコントローラ22はオンとなり、一定時間(たとえば、30秒)以上操作しなければ自動的にオフとなるようにしてある。
【0071】
Bトリガースイッチ26iもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ22で選択した位置を指示したりするために使用される。また、Bトリガースイッチ26iを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Bトリガースイッチ26iは、通常のBボタンと同様に機能し、Aボタン26dによって決定したアクションを取り消すなどのために使用される。
【0072】
また、図3(E)に示すように、ハウジング22aの後端面に外部拡張コネクタ22bが設けられ、また、図3(B)に示すように、ハウジング22aの上面であり、後端面側にはインジケータ22cが設けられる。外部拡張コネクタ22bは、図示しない別の拡張コントローラを接続するためなどに使用される。インジケータ22cは、たとえば、4つのLEDで構成され、4つのうちのいずれか1つを点灯することにより、点灯LEDに対応するコントローラ22の識別情報(コントローラ番号)を示したり、点灯させるLEDの個数によってコントローラ22の電源残量を示したりすることができる。
【0073】
さらに、コントローラ22は、撮像情報演算部80(図4参照)を有しており、図3(A)に示すように、ハウジング22aの先端面には撮像情報演算部80の光入射口22dが設けられる。また、コントローラ22は、スピーカ86(図4参照)を有しており、このスピーカ86は、図3(B)に示すように、ハウジング22aの上面であり、1ボタン26bとHOMEボタン26fとの間に設けられる音抜き孔22eに対応して、ハウジング22a内部に設けられる。
【0074】
なお、図3(A)ないし図3(E)に示したコントローラ22の形状や、各入力手段26の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。
【0075】
図4はコントローラ22の電気的な構成を示すブロック図である。この図4を参照して、コントローラ22はプロセッサ70を含み、このプロセッサ70には、内部バス(図示せず)によって、外部拡張コネクタ22b、入力手段26、メモリ72、加速度センサ74、無線モジュール76、撮像情報演算部80、LED82(インジケータ22c)、バイブレータ84、スピーカ86および電源回路88が接続される。また、無線モジュール76には、アンテナ78が接続される。
【0076】
プロセッサ70は、コントローラ22の全体制御を司り、入力手段26、加速度センサ74および撮像情報演算部80によって入力された情報(入力情報)を、入力データとして無線モジュール76およびアンテナ78を介してゲーム装置12に送信(入力)する。このとき、プロセッサ70は、メモリ72を作業領域ないしバッファ領域として用いる。
【0077】
上述した入力手段26(26a−26i)からの操作信号(操作データ)は、プロセッサ70に入力され、プロセッサ70は操作データを一旦メモリ72に記憶する。
【0078】
また、加速度センサ74は、コントローラ22の縦方向(y軸方向)、横方向(x軸方向)および前後方向(z軸方向)の3軸で各々の加速度を検出する。この加速度センサ74は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【0079】
たとえば、加速度センサ74は、第1所定時間毎に、x軸,y軸,z軸の各々についての加速度(ax,ay,az)を検出し、検出した加速度のデータ(加速度データ)をプロセッサ70に入力する。たとえば、加速度センサ74は、各軸方向の加速度を、−2.0g〜2.0g(gは重力加速度である。以下、同じ。)の範囲で検出する。プロセッサ70は、加速度センサ74から与えられる加速度データを、第2所定時間毎に検出し、一旦メモリ72に記憶する。プロセッサ70は、操作データ、加速度データおよび後述するマーカ座標データの少なくとも1つを含む入力データを作成し、作成した入力データを、第3所定時間(たとえば、5msec)毎にゲーム装置12に送信する。
【0080】
なお、図3(A)−図3(E)では省略したが、この実施例では、加速度センサ74は、ハウジング22a内部の基板上の十字キー26aが配置される付近に設けられる。
【0081】
無線モジュール76は、たとえばBluetoothの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ78から放射する。つまり、入力データは、無線モジュール76によって微弱電波信号に変調されてアンテナ78(コントローラ22)から送信される。この微弱電波信号が上述したゲーム装置12に設けられた無線コントローラモジュール52によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置12(CPU40)は、コントローラ22からの入力データを取得することができる。そして、CPU40は、取得した入力データとプログラム(ゲームプログラム)とに従ってゲーム処理を行う。
【0082】
さらに、上述したように、コントローラ22には、撮像情報演算部80が設けられる。この撮像情報演算部80は、赤外線フィルタ80a、レンズ80b、撮像素子80cおよび画像処理回路80dによって構成される。赤外線フィルタ80aは、コントローラ22の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ34の表示画面近傍(周辺)に配置されるマーカ340mおよび340nは、モニタ34の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ80aを設けることによってマーカ340mおよび340nの画像をより正確に撮像することができる。レンズ84は、赤外線フィル82を透過した赤外線を集光して撮像素子80cへ出射する。撮像素子80cは、たとえばCMOSセンサあるいはCCDのような固体撮像素子であり、レンズ80bによって集光された赤外線を撮像する。したがって、撮像素子80cは、赤外線フィルタ80aを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子80cによって撮像された画像を撮像画像と呼ぶ。撮像素子80cによって生成された画像データは、画像処理回路80dで処理される。画像処理回路80dは、撮像画像内における撮像対象(マーカ340mおよび340n)の位置を算出し、第4所定時間毎に、当該位置を示す各座標値を撮像データとしてプロセッサ70に出力する。なお、画像処理回路80dにおける処理については後述する。
【0083】
図5は図1に示した荷重コントローラ36の外観を示す斜視図である。図5に示すように、荷重コントローラ36は、プレイヤがその上に乗る(プレイヤの足を乗せる)台36a、および台36aにかかる荷重を検出するための少なくとも4つの荷重センサ36bを備える。なお、各荷重センサ36bは台36aに内包されており(図6,図7参照)、図5においてはその配置が点線で示されている。
【0084】
台36aは、略直方体に形成されており、上面視で略長方形状である。たとえば長方形の短辺が30cm程度に設定され、その長辺が50cm程度に設定される。プレイヤが乗る台36aの上面は平坦にされる。台36aの4隅の側面は、部分的に円柱状に張り出すように形成されている。
【0085】
この台36aにおいて、4つの荷重センサ36bは、所定の間隔を置いて配置される。この実施例では、4つの荷重センサ36bは、台36aの周縁部に、具体的には4隅にそれぞれ配置される。荷重センサ36bの間隔は、台36aに対するプレイヤの荷重のかけ方によるゲーム操作の意図をより精度良く検出できるように適宜な値に設定される。
【0086】
図6は、図5に示した荷重コントローラ36のVI−VI断面図を示すとともに、荷重センサ36bの配置された隅の部分が拡大表示されている。この図6から分かるように、台36aは、プレイヤが乗るための支持板360と脚362を含む。脚362は、荷重センサ36bが配置される箇所に設けられる。この実施例では4つの荷重センサ36bが4隅に配置されるので、4つの脚362が4隅に設けられる。脚362は、たとえばプラスチック成型によって略有底円筒状に形成されており、荷重センサ36bは、脚362内の底面に設けられた球面部品362a上に配置される。支持板360は、この荷重センサ36bを介して脚362に支持される。
【0087】
支持板360は、上面と側面上部とを形成する上層板360a、下面と側面下部とを形成する下層板360b、および上層板360aと下層板360bとの間に設けられる中層板360cを含む。上層板360aと下層板360bとは、たとえばプラスチック成型により形成されており、接着等により一体化される。中層板360cは、たとえば1枚の金属板のプレス成型により形成されている。この中層板360cが、4つの荷重センサ36bの上に固定される。上層板360aは、その下面に格子状のリブ(図示しない)を有しており、当該リブを介して中層板360cに支持されている。
【0088】
したがって、台36aにプレイヤが乗ったときには、その荷重は、支持板360、荷重センサ36bおよび脚362を伝達する。図6に矢印で示したように、入力される荷重によって生じた床からの反作用は、脚362から、球面部品362a、荷重センサ36b、中層板360cを介して、上層板360aに伝達する。
【0089】
荷重センサ36bは、たとえば歪ゲージ(歪センサ)式ロードセルであり、入力された荷重を電気信号に変換する荷重変換器である。荷重センサ36bでは、荷重入力に応じて、起歪体370aが変形して歪が生じる。この歪が、起歪体に貼り付けられた歪センサ370bによって、電気抵抗の変化に変換され、さらに電圧変化に変換される。したがって、荷重センサ36bは、入力荷重を示す電圧信号を出力端子から出力する。
【0090】
なお、荷重センサ36bは、音叉振動式、弦振動式、静電容量式、圧電式、磁歪式、またはジャイロ式のような他の方式の荷重センサであってもよい。
【0091】
図5に戻って、荷重コントローラ36には、さらに、電源ボタン36cが設けられる。この電源ボタン36cがオンされると、荷重コントローラ36の各回路コンポーネント(図7参照)に電源が供給される。ただし、荷重コントローラ36は、ゲーム装置12からの指示に従ってオンされる場合もある。また、荷重コントローラ36は、プレイヤが乗っていない状態が一定時間(たとえば、30秒)以上継続すると、電源がオフされる。ただし、荷重コントローラ36が起動されている状態で、電源ボタン36cをオンしたときに、電源がオフされてもよい。
【0092】
図7のブロック図には、荷重コントローラ36の電気的な構成の一例が示される。なお、この図7では、信号および通信の流れは実線矢印で示される。破線矢印は、電源の供給を示している。
【0093】
荷重コントローラ36は、その動作を制御するためのマイクロコンピュータ(マイコン)100を含む。マイコン100は図示しないCPU、ROMおよびRAM等を含み、CPUはROMに記憶されたプログラムに従って荷重コントローラ36の動作を制御する。
【0094】
マイコン100には、電源ボタン36c、ADコンバータ102、DC−DCコンバータ104および無線モジュール106が接続される。さらに、無線モジュール106には、アンテナ106aが接続される。また、4つの荷重センサ36bは、図3ではロードセル36bとして示される。4つの荷重センサ36bは、それぞれ、増幅器108を介してADコンバータ102に接続される。
【0095】
また、荷重コントローラ36には電源供給のために電池100が収容されている。他の実施例では、電池に代えてACアダプタを接続し、商用電源を供給するようにしてもよい。かかる場合には、DC−DCコンバータに代えて、交流を直流に変換し、直流電圧を降圧および整流する電源回路を設ける必要がある。この実施例では、マイコン100および無線モジュール106への電源の供給は、電池から直接的に行われる。つまり、マイコン100内部の一部のコンポーネント(CPU)と無線モジュール106とには、常に電源が供給されており、電源ボタン36cがオンされたか否か、ゲーム装置12から電源オン(荷重検出)のコマンドが送信されたか否かを検出する。一方、荷重センサ36b、ADコンバータ102および増幅器108には、電池110からの電源がDC−DCコンバータ104を介して供給される。DC−DCコンバータ104は、電池110からの直流電流の電圧値を異なる電圧値に変換して、荷重センサ36b、ADコンバータ102および増幅器108に与える。
【0096】
これら荷重センサ36b、ADコンバータ102および増幅器108への電源供給は、マイコン100によるDC−DCコンバータ104の制御によって、必要に応じて行われるようにしてよい。つまり、マイコン100は、荷重センサ36bを動作させて荷重を検出する必要があると判断されるときに、DC−DCコンバータ104を制御して、各荷重センサ36b、ADコンバータ102および各増幅器108に電源を供給するようにしてよい。
【0097】
電源が供給されると、各荷重センサ36bは、入力された荷重を示す信号を出力する。当該信号は各増幅器108で増幅され、ADコンバータ102でアナログ信号からディジタルデータに変換されて、マイコン100に入力される。各荷重センサ36bの検出値には各荷重センサ36bの識別情報が付与されて、いずれの荷重センサ36bの検出値であるかが識別可能にされる。このようにして、マイコン100は、同一時刻における4つの荷重センサ36bのそれぞれの荷重検出値を示すデータ(荷重データ)を取得することができる。
【0098】
一方、マイコン100は、荷重センサ36bを動作させる必要がないと判断されるとき、つまり、荷重検出タイミングでないとき、DC−DCコンバータ104を制御して、荷重センサ36b、ADコンバータ102および増幅器108への電源の供給を停止する。このように、荷重コントローラ36では、必要なときにだけ、荷重センサ36bを動作させて荷重の検出を行うことができるので、荷重検出のための電力消費を抑制することができる。
【0099】
荷重検出の必要なときとは、典型的には、ゲーム装置12(図1)が荷重データを取得したいときである。たとえば、ゲーム装置12が荷重情報を必要とするとき、ゲーム装置12は荷重コントローラ36に対して荷重取得命令を送信する。マイコン100は、ゲーム装置12から荷重取得命令を受信したときに、DC−DCコンバータ104を制御して、荷重センサ36b等に電源を供給し、荷重を検出する。一方、マイコン100は、ゲーム装置12から荷重取得命令を受信していないときには、DC−DCコンバータ104を制御して、電源供給を停止する。あるいは、マイコン100は、一定時間ごとに荷重検出タイミングであると判断して、DC−DCコンバータ104を制御するようにしてもよい。このような周期的な荷重取得を行う場合、周期情報は、たとえば、初めにゲーム装置12からマイコン100に与えられ、または、予めマイコン100に記憶されてよい。
【0100】
4つの荷重センサ36bからの4つの検出値を示すデータつまり荷重データは、荷重コントローラ36による入力データとして、マイコン100から無線モジュール106およびアンテナ106bを介してゲーム装置12(図1)に送信される。たとえば、ゲーム装置12からの命令を受けて荷重検出を行った場合、マイコン100は、ADコンバータ102から荷重センサ36bの検出値データを受信したときに、当該荷重検出値データをゲーム装置12に送信する。あるいは、マイコン100は、一定時間ごとに荷重検出値データをゲーム装置12に送信するようにしてもよい。
【0101】
なお、無線モジュール106は、ゲーム装置12の無線コントローラモジュール52と同じ無線規格(Bluetooth、無線LANなど)で通信可能にされる。したがって、ゲーム装置12のCPU40は、無線コントローラモジュール52等を介して荷重取得命令を荷重コントローラ36に送信することができる。荷重コントローラ36のマイコン100は、無線モジュール106およびアンテナ106aを介して、ゲーム装置12からの命令を受信し、また、各荷重センサ36bの荷重検出値(または荷重算出値)を含む荷重データをゲーム装置12に送信することができる。
【0102】
図8は、コントローラ22および荷重コントローラ36を用いて「バランス検定ゲーム」(後述)などの仮想ゲームをプレイするときの状態を概説する図解図である。図8に示すように、ビデオゲームシステム10でコントローラ22および荷重コントローラ36を用いて仮想ゲームをプレイする際、プレイヤは、荷重コントローラ36の上に乗り、一方の手でコントローラ22を把持する。厳密に言うと、プレイヤは、コントローラ22の先端面(撮像情報演算部80が撮像する光の入射口22d側)がマーカ340mおよび340nの方を向く状態で、荷重コントローラ36に乗り、コントローラ22を把持する。ただし、図1からも分かるように、マーカ340mおよび340nは、モニタ34の画面の横方向と平行に配置されている。この状態で、プレイヤは、コントローラ22が指示する画面上の位置を変更したり、コントローラ22と各マーカ340mおよび340nとの距離を変更したりすることによってゲーム操作を行う。
【0103】
なお、図8では、プレイヤがモニタ34の画面に対して横を向くように荷重コントローラ36を縦置きにしてあるが、ゲームによっては、プレイヤがモニタ34の画面に対して正面を向くように荷重コントローラ36を横置きにしてよい。
【0104】
図9は、マーカ340mおよび340nと、コントローラ22との視野角を説明するための図である。図9に示すように、マーカ340mおよび340nは、それぞれ、視野角θ1の範囲で赤外光を放射する。また、撮像情報演算部80の撮像素子80cは、コントローラ22の視線方向を中心とした視野角θ2の範囲で入射する光を受光することができる。たとえば、マーカ340mおよび340nの視野角θ1は、共に34°(半値角)であり、一方、撮像素子80cの視野角θ2は41°である。プレイヤは、撮像素子80cが2つのマーカ340mおよび340nからの赤外光を受光することが可能な位置および向きとなるように、コントローラ22を把持する。具体的には、撮像素子80cの視野角θ2の中に少なくとも一方のマーカ340mおよび340nが存在し、かつ、マーカ340mまたは340nの少なくとも一方の視野角θ1の中にコントローラ22が存在する状態となるように、プレイヤはコントローラ22を把持する。この状態にあるとき、コントローラ22は、マーカ340mおよび340nの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ22の位置および向きを変化させることによってゲーム操作を行うことができる。
【0105】
なお、コントローラ22の位置および向きがこの範囲外となった場合、コントローラ22の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、上記範囲を「操作可能範囲」と呼ぶ。
【0106】
操作可能範囲内でコントローラ22が把持される場合、撮像情報演算部80によって各マーカ340mおよび340nの画像が撮像される。すなわち、撮像素子80cによって得られる撮像画像には、撮像対象である各マーカ340mおよび340nの画像(対象画像)が含まれる。図10は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路80dは、各マーカ340mおよび340nの撮像画像における位置を表す座標(マーカ座標)を算出する。
【0107】
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路80dは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路80dは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である2つのマーカ340mおよび340nの画像340m’および340n’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像であるマーカ340mおよび340nの画像340m’および340n’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【0108】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路80dは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子80cの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子80cによって撮像された撮像画像の解像度が126×96であるとし、重心位置は1024×768のスケールで算出されるものとする。つまり、マーカ座標は、(0,0)から(1024,768)までの整数値で表現される。
【0109】
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをY軸正方向とし、右向きをX軸正方向とする座標系(XY座標系)で表現されるものとする。
【0110】
また、対象画像が正しく検出される場合には、判定処理によって2つの高輝度部分が対象画像として判定されるので、2箇所のマーカ座標が算出される。画像処理回路80dは、算出された2箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ(マーカ座標データ)は、上述したように、プロセッサ70によって入力データに含まれ、ゲーム装置12に送信される。
【0111】
ゲーム装置12(CPU40)は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ34の画面上におけるコントローラ22の指示位置(座標位置)と、コントローラ22からマーカ340mおよび340nまでの各距離とを算出することができる。具体的には、2つのマーカ座標の中点の位置から、コントローラ22の向いている位置すなわち指示位置が算出される。また、撮像画像における対象画像間の距離が、コントローラ22と、マーカ340mおよび340nとの距離に応じて変化するので、2つのマーカ座標間の距離を算出することによって、ゲーム装置12はコントローラ22とマーカ340mおよび340nとの間の距離を把握できる。
【0112】
以上のように構成されたゲームシステム10で「バランス検定ゲーム」をプレイする場合、ゲーム装置12(CPU40)は、コントローラ22からの入力データに含まれる操作データ,加速度データおよびマーカ座標データのうち操作データおよびマーカ座標データと、荷重コントローラ36からの入力データつまり荷重データとに基づいて、後述するようなゲーム処理を実行する。なお、加速度データは、「バランス検定ゲーム」では特に利用されない。
【0113】
まず、「バランス検定ゲーム」の概要を説明する。「バランス検定ゲーム」の開始から終了までの一連のゲーム画面を図11〜図16に示す。ゲームが開始されると、まず図11のようなゲーム画面が表示される。ゲーム画面は、画面の中央部に配置されたプレイエリアを示す矩形の枠Frと、枠Frを4分割する十字線L1およびL2と、枠Frの中央部(画面の略中心)に配置され枠Frの一辺に対して数分の1程度の直径を有する円C(以下“中心円C”)を含む。十字線L1およびL2の交点は、矩形Frの中心点ひいては画面の中心点を示しており、この点を“中心点O”と呼ぶ。中心点Oは、中心円Cの中心点と一致している。なお、中心円Cは、通常、画面の略中心にあればよく、場合によっては、中心点Oから離れた位置にあってもよい。
【0114】
そして、このようなゲーム画面上に、マーカ座標データに基づく座標位置ポインタP1と、荷重データに基づく重心位置ポインタP2とが描画される。当初、重心位置ポインタP2は中心円Cの外部に位置しており、重心位置ポインタP2を中心円Cの内部に移動させるように求めるメッセージM1たとえば「重心を中心の円に合わせてください」が表示される。
【0115】
プレイヤが荷重コントローラ36を操作して(体重を移動させて)重心位置ポインタP2を中心円Cの内部に導入すると、図12に示すように、メッセージM1は消去され、数字1〜10をそれぞれ示す10個のボタン(以下、単に「数字1〜10」のように記す)がカラーで表示される。数字1〜10は、中心円Cの外部に分散して配置され、大中小のいずれかの大きさを有する。ここでは、中サイズの数字2,3,7,9および10が中心円Cと略同じ大きさであり、小サイズの数字5および6は中心円Cよりも小さく、大サイズの数字1,4および8は中心円Cよりも大きい。なお、数字の個数は10個とは限らず、1個〜9個または11個以上でもよい。数字のサイズも3種類とは限らず、1種類,2種類または4種類以上でもよい。
【0116】
こうして数字1〜10が表示されると、計時が開始され、プレイヤはコントローラ22で数字1〜10を順番に選択していく。選択は、図13に示すように、座標位置ポインタP1を所望の数字(ここでは4)に合わせた状態でAボタン26dを押すことにより行われる。選択された数字が正しければ(未選択の数字の中で最小の数字であれば)、その数字の色がカラーからグレーに変化する。選択された数字が間違い(選択済みの数字か、または未選択中で最小とは異なる数字)であれば、このような変化は生じない。
【0117】
図13のゲーム画面では数字1〜4が選択済みであり、数字5が次の選択対象となる。そこでプレイヤは、コントローラ22を操作して、座標位置ポインタP1を数字4から数字5へと移動させ、Aボタン26dによる選択を行う。このような操作を行うことで、プレイヤの体の重心は無意識に移動し、重心位置ポインタP2が中心円Cから出ることがある。
【0118】
重心位置ポインタP2が中心円Cから出ると、図14に示すように、再びメッセージM1が表示され、数字1〜10は消去される。プレイヤが荷重コントローラ36を操作して再び重心位置ポインタP2を中心円Cの内部に導入すると、ゲーム画面は図13の状態に復帰する。ただし、このような荷重コントローラ36の操作の結果、座標位置ポインタP1が数字5から外れてしまい、これを修正するべく、さらなるコントローラ22の操作を要する場合もある。したがって、プレイヤには、画面上の2つのポインタP1およびP2を頼りに、コントローラ22および荷重コントローラ36の両方を同時に操作するテクニックが要求される。
【0119】
こうしてプレイヤが数字1〜10を全て選択し終えると、ゲームクリアとなり、図15に示すように、この時点での計時結果つまり所要時間(たとえば“28秒35”)を示すメッセージM2が表示される。一方、選択終了の前に計時結果が既定値たとえば30秒を超えると、タイムアウトとなり、図16に示すように、この時点での選択済み数字の個数(たとえば“5個”)を示すメッセージM3が表示される。
【0120】
したがって、複数のプレイヤで「バランス検定ゲーム」をプレイする場合には、ゲームクリアまでの所要時間が短いプレイヤほど上位となり、タイムアウトしたプレイヤは、ゲームクリアした最下位のプレイヤよりも下位にランクされる。タイムアウトしたプレイヤの中では、選択済み数字が多いほどランクは上となる。
【0121】
次に、このような「バランス検定ゲーム」を実現するための具体的なゲーム処理、つまりCPU40の動作について、図17のメモリマップならびに図18〜図20のフローチャートにより説明する。内部メインメモリ42eまたは外部メインメモリ46には、図17に示すように、プログラム記憶領域200およびデータ記憶領域210が形成される。プログラム記憶領域200には、図18〜図20のフローチャートに対応するゲームプログラム202などが格納される。ゲームプログラム202は、座標位置検出プログラム202a、重心位置検出プログラム202bおよび時間管理プログラム202cを含む。データ記憶領域210は、数字ボタン領域212,中心円領域214,位置(ポインタ)領域216および時間領域218を含む。
【0122】
ゲームプログラム200は、「バランス検定ゲーム」を実現するメインプログラムである。座標位置検出プログラム202aは、メインプログラムによって利用されるサブプログラムであり、コントローラ22からのマーカ座標データに基づいて画面内での座標位置(指示位置)を検出する。重心位置検出プログラム202bは、メインプログラムによって利用されるサブプログラムであり、荷重コントローラ36からの荷重データに基づいてユーザの重心位置を検出する。時間管理プログラム202cは、メインプログラムによって利用されるサブプログラムであり、ROM/RTC48からの時間情報に基づいて計時を行い、計時結果に基づいて所要時間を算出したりタイムアウトを検出したりする。
【0123】
数字ボタン領域212は、数字ボタン1〜10の各々について位置,大きさ,順番および選択済みフラグを記憶するための領域である。ここで選択済みフラグは、初期状態ではオフであり、プレイヤの選択操作に応じてオンされる。中心円領域212は、中心円Cについて位置および大きさを記憶するための領域である。位置(ポインタ)領域216は、座標位置検出プログラム202aによって検出された座標位置(ポインタP1の位置)および重心位置検出プログラム202bによって検出された重心位置(ポインタP2の位置)を記憶するための領域である。時間領域218は、時間管理プログラム202cが所要時間を算出したりタイムアウトを検出したりするのに必要な時間情報、たとえば開始時刻や現在時刻を記憶するための領域である。
【0124】
CPU40は、図17のプログラムおよびデータに基づいて、図18〜図20のフローチャートに示すゲーム処理を実行する。「バランス検定ゲーム」が起動されると、CPU40は、ステップS1で初期処理を実行する。ここで初期処理には、ゲーム装置12と荷重コントローラ36との間の接続をチェックする処理や、荷重コントローラ36に初期値(ゼロ値つまりプレイヤが乗っていないときの荷重値やプレイヤの体重値など)を設定する処理が含まれる。初期処理が完了すると、ステップS3に進んでゲーム開始処理を実行する。
【0125】
ステップS3のゲーム開始処理は、図20のサブルーチンに従って実行される。ステップS101では、その略中心に中心円Cが配置されたゲーム画面をモニタ34に表示し、ステップS103では、メッセージM1つまり「重心を中心の円に合わせてください」を表示する。
【0126】
ステップS105では、コントローラ22からのマーカ座標データに基づいて座標位置を検出し、ステップS107では、荷重コントローラ22からの荷重データに基づいて重心位置を検出する。これら2つの検出結果は位置領域216に記憶され、次のステップS109で、この位置領域216の情報(座標位置および重心位置)に基づいて、座標位置ポインタP1および重心位置ポインタP2を表示する。ゲーム画面は、この時点で図11のようになる。
【0127】
ステップS111では、重心が中心に合ったか否かを中心円領域214の情報(位置および大きさ)および位置領域216の情報(重心位置)に基づいて判別する。重心位置が中心円Cの外部にあれば、ステップS111でNOと判別してステップS103に戻る。重心位置が中心円Cの内部または円周上にあれば、ステップS111でYESと判別してステップS113に進む。ステップS113では、ステップS111の判別結果がYESである状態の継続時間を計測して、計測結果が所定時間(たとえば3秒)を超えたか否かを判別する。ステップS113でNOであればステップS103に戻り、YESであればステップS115に進んで計時を開始する。この時点(開始時刻)でゲーム開始となり、処理は上位層のルーチンに復帰する。
【0128】
ステップS5では、メッセージM1つまり「重心を中心の円に合わせてください」を表示する。ステップS7では、コントローラ22からのマーカ座標データに基づいて座標位置を検出し、ステップS9では、荷重コントローラ22からの荷重データに基づいて重心位置を検出する。これら2つの検出結果は位置領域216に記憶され、次のステップS11で、この位置領域216の情報(座標位置および重心位置)に基づいて、座標位置ポインタP1および重心位置ポインタP2を表示する。ゲーム画面は、この時点で図11のようになる。
【0129】
ステップS13では、重心が中心に合ったか否かを中心円領域214の情報(位置および大きさ)および位置領域216の情報(重心位置)に基づいて判別する。重心位置が中心円Cの外部にあれば、ステップS13でNOと判別してステップS5に戻る。重心位置が中心円Cの内部または円周上にあれば、ステップS13でYESと判別してステップS15に進む。なお、判別結果がYESである状態の継続時間を計測して、計測結果が所定時間(たとえば3秒)を超えた時点でYESと判別するようにしてもよい。
【0130】
ステップS15では、メッセージM1を非表示とし(つまりゲーム画面から消去し)、ステップS17では、数字1〜10(を示す10個のボタン)を数字ボタン領域212の情報(位置,大きさおよび選択済みフラグ)に基づいてカラー表示する。ゲーム画面は、この時点で図12のようになる。
【0131】
ステップS19では、重心が中心から外れたか否かを中心円領域214の情報および位置領域216の情報に基づいて判別し、NOであればステップS25に移る。ステップS19でYESであれば、ステップS21で数字1〜10を非表示とした後、ステップS23でタイムアップか否かを時間領域218の情報(開始時刻および終了時刻)に基づいて判別する。開始時刻から現在時刻までの時間(所要時間)が所定時間(たとえば30秒)に達していれば、ステップS23でYESと判別し、ステップS39(後述)に進む。所要時間が30秒に満たなければ、ステップS23でNOと判別し、ステップS5に戻る。
【0132】
ステップS25では、数字が選択されたか否かを数字ボタン領域212の情報(位置および大きさ)およびコントローラ22からの操作データに基づいて判別する。ステップS27では、選択された数字が正しい数字か否かを数字ボタン領域212の情報(順番および選択済みフラグ)に基づいて判別する。選択された数字が未選択中最小の数字であれば、ステップS27でYESと判別し、ステップS29に進む。
【0133】
ステップS29では、数字ボタン領域212の情報を更新(当該数字の選択済みフラグをオン)して、当該数字を“選択済み”とする。そしてステップS31で、全ての数字1〜10が“選択済み”になったか否かを判別し、NOであればステップS37(後述)に移る。ステップS31でYESであれば、ゲームクリアとみなしてステップS33に進む。ステップS33では、時間領域218の情報に基づいて所要時間を計算し、計算結果を示すメッセージM2を表示する。ゲーム画面は、この時点で図15のようになる。そして、「バランス検定ゲーム」を終了する。
【0134】
一方、選択された数字が、既に“選択済み”であるか、または未選択中で最小とは異なる数字であれば、ステップS27でNOと判別し、ステップS35に移ってスピーカ34aから警告音を発生させた後、ステップS37に進む。ステップS37では、タイムアップか否かを時間領域212の情報に基づいて判別し、NOであればステップS7に戻る一方、YESであればステップS39に進む。ステップS39では、数字ボタン領域212の情報(選択済みフラグ)に基づいて、“選択済み”である数字の個数を計算し、計算結果を示すメッセージM3を表示する。ゲーム画面は、この時点で図16のようになる。そして、「バランス検定ゲーム」を終了する。
【0135】
以上から明らかなように、この実施例のゲームシステム10では、ゲーム装置12のCPU40は、ユーザによって操作されるコントローラ22からの信号に基づいてモニタ34の画面上で指示された座標位置(指示位置)を検出し(S7)、ユーザを乗せた荷重コンローラ36からの信号に基づいてユーザの重心位置を検出し(S9)、そして検出された座標位置と検出された重心位置とに基づいて平衡機能の検定およびゲームの進行に関連する処理を行う(S13,S19,S25〜S39)。これにより、複雑な行動時の平衡機能をゲーム感覚で検定することができる。
【0136】
なお、この実施例では、画面内に分散して配置された数字1〜10を順番に選択していくゲームを行ったが、ユーザがコントローラ22を操作して行うゲームであれば、検定と組み合わせて行うことが可能である。
【0137】
また、 この実施例では、ゲームシステム10において実行される「バランス検定ゲーム」は、ゲームシステム10を用いてプレイヤがゲームを行うことを可能にするためのゲームプログラムによって実現されるものとしているが、これに限られず、ゲームシステム10を用いてユーザが種々のトレーニング(またはエクササイズ)を行うことを可能にするためのアプリケーションソフトウェアであるトレーニングプログラムによって実現されるものであってもよい。この場合、当該トレーニングプログラムを実行するCPU40を含むゲーム装置12は、トレーニング装置として機能する。
【0138】
以上では、ゲームシステム10について説明したが、ユーザによって操作されて画面内の任意の位置を指示する座標入力手段と、ユーザの重心位置を検出する重心位置検出手段とを備える、情報処理システムにも適用できる。座標入力手段としては、コントローラ22のようなDPD(Direct Pointing Device)のほか、タッチパネル,マウスなどがある。重心位置検出手段は、典型的には、荷重コントローラ36のように複数の荷重センサからの信号に基づいて重心位置を計算する回路ないしプログラムであるが、たとえばビデオカメラからの画像を処理して重心位置を推定する回路ないしプログラムなどでもよい。
【符号の説明】
【0139】
10 …ゲームシステム
12 …ゲーム装置
22 …コントローラ
34 …モニタ
34a …スピーカ
36 …荷重コントローラ
40 …CPU
42e …内部メインメモリ
46 …外部メインメモリ
48 …ROM/RTC
P1 …座標位置ポインタ
P2 …重心位置ポインタ
C …中心円
【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
ユーザによって操作される座標入力手段からの信号に基づいて画面上の座標位置を検出する座標位置検出ステップ、
重心位置検出手段からの信号に基づいて前記ユーザの重心位置を検出する重心位置検出ステップ、および
前記座標位置検出ステップで検出された座標位置と前記重心位置検出ステップで検出された重心位置とに基づいて所定の処理を行う処理ステップを実行させるための、情報処理プログラム。
【請求項2】
前記処理ステップは、前記重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、前記座標位置検出ステップで検出された座標位置に基づいて前記所定の処理を行う、請求項1に記載の情報処理プログラム。
【請求項3】
前記重心位置検出ステップで検出された重心位置が前記所定の範囲内にあるときに前記ユーザが指示するための指示画像を表示する画像表示ステップを前記コンピュータにさらに実行させ、
前記処理ステップは、前記座標位置検出ステップで検出された座標位置が前記画像表示ステップで表示された指示画像に対応する範囲内に入ったときに、特定の処理を行う、請求項2に記載の情報処理プログラム。
【請求項4】
前記画像表示ステップで指示画像が表示された後に、前記重心位置検出ステップで検出された重心位置が所定の範囲外となったとき、前記画像表示ステップで表示されている指示画像を消去する、画像消去ステップを前記コンピュータにさらに実行させる、請求項3に記載の情報処理プログラム。
【請求項5】
前記画像表示ステップは、前記重心位置検出ステップで検出された重心位置が前記所定の範囲内にあるときに、複数の指示画像を表示する、請求項3または4に記載情報処理プログラム。
【請求項6】
前記画像表示ステップは、前記重心位置検出ステップで検出された重心位置が前記所定の範囲内にあるときに、それぞれに大きさが設定されている複数の指示画像を表示する、請求項5に記載情報処理プログラム。
【請求項7】
前記画像表示ステップは、前記重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、それぞれに順番が設定されている複数の指示画像を表示し、
前記処理ステップは、前記座標位置検出ステップで検出された座標位置が、前記画像表示ステップで表示された指示画像に設定されている順番で当該指示画像に対応する範囲内に入ったときに、前記特定の処理を行う、請求項5または6に記載の情報処理プログラム。
【請求項8】
前記画像表示ステップは、前記所定の範囲に対応する画像を前記画面に表示するとともに、前記指示画像を前記所定の範囲に対応する画像の周辺に表示する、請求項2ないし7のいずれかに記載の情報処理プログラム。
【請求項9】
前記画像表示ステップは、前記所定の範囲に対応する画像を前記画面の所定の領域の略中央に表示するとともに、前記指示画像を前記所定の範囲に対応する画像の周辺に表示する、請求項8に記載の情報処理プログラム。
【請求項10】
前記座標位置検出ステップで検出された座標位置を示す座標位置ポインタおよび前記重心位置検出ステップで検出された重心位置を示す重心位置ポインタを前記画面に表示するポインタ表示ステップを前記コンピュータにさらに実行させる、請求項1ないし9のいずれかに記載の情報処理プログラム。
【請求項11】
前記ポインタ表示ステップは、前記重心位置検出ステップで検出された重心位置が、ユーザが平衡状態を保っていることを示すときに、前記重心位置ポインタを前記所定の範囲に対応する画像内に表示する、請求項2ないし9のいずれかに記載の情報処理プログラム。
【請求項12】
ユーザによって操作される座標入力手段からの信号に基づいて画面上の座標位置を検出する座標位置検出手段、
重心位置検出手段からの信号に基づいて前記ユーザの重心位置を検出する重心位置検出手段、および
前記座標位置検出手段で検出された座標位置と前記重心位置検出手段で検出された重心位置とに基づいて所定の処理を行う処理手段を備える、情報処理装置。
【請求項1】
情報処理装置のコンピュータに、
ユーザによって操作される座標入力手段からの信号に基づいて画面上の座標位置を検出する座標位置検出ステップ、
重心位置検出手段からの信号に基づいて前記ユーザの重心位置を検出する重心位置検出ステップ、および
前記座標位置検出ステップで検出された座標位置と前記重心位置検出ステップで検出された重心位置とに基づいて所定の処理を行う処理ステップを実行させるための、情報処理プログラム。
【請求項2】
前記処理ステップは、前記重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、前記座標位置検出ステップで検出された座標位置に基づいて前記所定の処理を行う、請求項1に記載の情報処理プログラム。
【請求項3】
前記重心位置検出ステップで検出された重心位置が前記所定の範囲内にあるときに前記ユーザが指示するための指示画像を表示する画像表示ステップを前記コンピュータにさらに実行させ、
前記処理ステップは、前記座標位置検出ステップで検出された座標位置が前記画像表示ステップで表示された指示画像に対応する範囲内に入ったときに、特定の処理を行う、請求項2に記載の情報処理プログラム。
【請求項4】
前記画像表示ステップで指示画像が表示された後に、前記重心位置検出ステップで検出された重心位置が所定の範囲外となったとき、前記画像表示ステップで表示されている指示画像を消去する、画像消去ステップを前記コンピュータにさらに実行させる、請求項3に記載の情報処理プログラム。
【請求項5】
前記画像表示ステップは、前記重心位置検出ステップで検出された重心位置が前記所定の範囲内にあるときに、複数の指示画像を表示する、請求項3または4に記載情報処理プログラム。
【請求項6】
前記画像表示ステップは、前記重心位置検出ステップで検出された重心位置が前記所定の範囲内にあるときに、それぞれに大きさが設定されている複数の指示画像を表示する、請求項5に記載情報処理プログラム。
【請求項7】
前記画像表示ステップは、前記重心位置検出ステップで検出された重心位置が所定の範囲内にあるときに、それぞれに順番が設定されている複数の指示画像を表示し、
前記処理ステップは、前記座標位置検出ステップで検出された座標位置が、前記画像表示ステップで表示された指示画像に設定されている順番で当該指示画像に対応する範囲内に入ったときに、前記特定の処理を行う、請求項5または6に記載の情報処理プログラム。
【請求項8】
前記画像表示ステップは、前記所定の範囲に対応する画像を前記画面に表示するとともに、前記指示画像を前記所定の範囲に対応する画像の周辺に表示する、請求項2ないし7のいずれかに記載の情報処理プログラム。
【請求項9】
前記画像表示ステップは、前記所定の範囲に対応する画像を前記画面の所定の領域の略中央に表示するとともに、前記指示画像を前記所定の範囲に対応する画像の周辺に表示する、請求項8に記載の情報処理プログラム。
【請求項10】
前記座標位置検出ステップで検出された座標位置を示す座標位置ポインタおよび前記重心位置検出ステップで検出された重心位置を示す重心位置ポインタを前記画面に表示するポインタ表示ステップを前記コンピュータにさらに実行させる、請求項1ないし9のいずれかに記載の情報処理プログラム。
【請求項11】
前記ポインタ表示ステップは、前記重心位置検出ステップで検出された重心位置が、ユーザが平衡状態を保っていることを示すときに、前記重心位置ポインタを前記所定の範囲に対応する画像内に表示する、請求項2ないし9のいずれかに記載の情報処理プログラム。
【請求項12】
ユーザによって操作される座標入力手段からの信号に基づいて画面上の座標位置を検出する座標位置検出手段、
重心位置検出手段からの信号に基づいて前記ユーザの重心位置を検出する重心位置検出手段、および
前記座標位置検出手段で検出された座標位置と前記重心位置検出手段で検出された重心位置とに基づいて所定の処理を行う処理手段を備える、情報処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2010−246813(P2010−246813A)
【公開日】平成22年11月4日(2010.11.4)
【国際特許分類】
【出願番号】特願2009−101511(P2009−101511)
【出願日】平成21年4月20日(2009.4.20)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成22年11月4日(2010.11.4)
【国際特許分類】
【出願日】平成21年4月20日(2009.4.20)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]