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