説明

荷重検出プログラムおよび荷重検出装置

【課題】プレイヤが交代した場合であっても、適切にゲーム処理を実行することができる。
【解決手段】ゲームシステム10はゲーム装置12を含み、ゲーム装置12には、モニタ34、コントローラ22および荷重コントローラ36が接続される。ゲーム装置12がゲームを開始すると、本編の開始に先立って、プレイヤの体重値を検出し、これを基準値として設定する。基準値が既に設定されている場合には、検出されたプレイヤの体重値と当該基準値とを比較する。比較結果が一致する場合には、ゲーム装置12は、そのままゲームプレイを続行する。しかし、比較結果が一致しない場合には、ゲーム装置12は、ゲームを続行するか否かをプレイヤに確認し、続行する場合には、今回検出されたプレイヤの体重値を基準値として再設定する。

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

【特許請求の範囲】
【請求項1】
使用者の足を乗せられる支持台を備える荷重検出装置のコンピュータにおいて実行される荷重検出プログラムであって、
前記支持台に前記使用者の足を乗せるよう指示する指示ステップ、
前記支持台にかかる荷重値を検出する荷重値検出ステップ、
前記荷重値検出ステップによって検出された荷重値を前記使用者の体重値の基準値として設定する基準値設定ステップ、
前記基準値設定ステップによって設定された基準値と前記荷重値検出ステップによって検出される荷重値とに基づいて情報処理を行う情報処理ステップ、
前記基準値を判別するタイミングであるか否かを判断する判別タイミング判断ステップ、
前記判別タイミング判断ステップにおいて前記基準値を判別するタイミングであると判断したとき、前記基準値設定ステップによって設定された基準値と前記荷重値検出ステップによって検出された荷重値とを比較する比較ステップ、および
前記比較ステップの比較結果が不一致を示すとき、前記荷重値検出ステップによって検出された荷重値を前記基準値として再設定する基準値更新ステップを実行させる、荷重検出プログラム。
【請求項2】
前記比較ステップは、前記基準値設定ステップによって設定された基準値と前記荷重値検出ステップによって検出される荷重値との差分を検出し、当該差分が所定値を超えるとき、比較結果を不一致とする、請求項1記載の荷重検出プログラム。
【請求項3】
前記使用者による前記情報処理を行う旨の指示が有るか否かを判断する指示判断ステップを前記コンピュータにさらに実行させ、
前記判別タイミング判断手段は、前記指示判断ステップにおいて前記情報処理を行う旨の指示が有ると判断したとき、前記基準値の判別タイミングであると判断する、請求項1または2記載の荷重検出プログラム。
【請求項4】
前記情報処理の実行中に、前記荷重値検出ステップよって検出される荷重値が所定値以下である期間が一定時間以上であるか否かを判断する荷重値判断ステップを前記コンピュータにさらに実行させ、
前記判別タイミング判断手段は、前記荷重値判断ステップにおいて前記荷重値が所定値以下である期間が一定時間以上であると判断したとき、前記基準値を判別するタイミングであると判断する、請求項1ないし3のいずれかに記載の荷重検出プログラム。
【請求項5】
使用者の足を乗せられる支持台を備える荷重検出装置であって、
前記支持台に前記使用者の足を乗せるよう指示する指示手段、
前記支持台にかかる荷重値を検出する荷重値検出手段、
前記荷重値検出手段によって検出された荷重値を前記使用者の体重値の基準値として設定する基準値設定手段、
前記基準値設定手段によって設定された基準値と前記荷重値検出手段によって検出される荷重値とに基づいて情報処理を行う情報処理手段、
前記基準値を判別するタイミングであるか否かを判断する判別タイミング判断手段、
前記判別タイミング判断手段において前記基準値を判別するタイミングであると判断したとき、前記基準値設定手段によって設定された基準値と前記荷重値検出手段によって検出された荷重値とを比較する比較手段、および
前記比較手段の比較結果が不一致を示すとき、前記荷重値検出手段によって検出された荷重値を前記基準値として再設定する基準値更新手段を備える、荷重検出装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate