ゲームプログラムおよびゲーム装置
【課題】入力装置における電池切れを適切に判定することができるゲームプログラムおよびゲーム装置を提供する。
【解決手段】入力装置とゲーム装置との間の無線通信の、継続的な切断、断続的な切断、および一時的な切断の少なくともいずれか1つの切断を検出する。また、入力装置の電池残量を示す電池残量データを無線通信を介して取得する。無線通信の切断を検出したこと、かつ、取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、入力装置の電力が不足していると判定する。そして、電力が不足していると判定されたとき、その旨を報知する。
【解決手段】入力装置とゲーム装置との間の無線通信の、継続的な切断、断続的な切断、および一時的な切断の少なくともいずれか1つの切断を検出する。また、入力装置の電池残量を示す電池残量データを無線通信を介して取得する。無線通信の切断を検出したこと、かつ、取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、入力装置の電力が不足していると判定する。そして、電力が不足していると判定されたとき、その旨を報知する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、無線通信を用いてゲーム装置本体と接続される入力装置を用いたゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
従来、無線通信を用いてゲーム装置本体と接続される入力装置を用いたゲーム装置が開発されている(例えば、非特許文献1参照)。
【0003】
上記非特許文献1に記載されている入力装置は、無線通信を用いてゲーム装置本体と接続される。一般的に、当該入力装置を含めゲーム装置本体と無線通信で接続される入力装置は、ゲーム装置本体からの電源供給を受けることができないため、入力装置内に電源として乾電池や充電池を内蔵している。しかしながら、乾電池や充電池から行える電源供給には寿命があり、寿命に達した、すなわち電池切れが生じた際には、内蔵する乾電池を新たな乾電池に取り替えるか、内蔵する充電池の再充電を行う必要がある。そのため、上記非特許文献1に記載された入力装置は、プレイヤがパワースイッチをONにすると入力装置に設けられたパワーランプが点灯し、乾電池の消耗に伴ってパワーランプが徐々に暗くなることで、プレイヤに電池交換の必要性を報知する。そして、当該入力装置は、乾電池の残量がある程度残っているうちに新たな乾電池に交換することを、プレイヤに促している。
【非特許文献1】「ニンテンドーゲームキューブ ワイヤレスコントローラ ウェーブバード 取扱説明書」、任天堂株式会社、発売日:2002年12月5日
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、ゲーム装置でゲームを行うプレイヤは、自身が把持する入力装置を目視することは少なく、表示装置に表示されたゲーム画像を見ながらゲームをプレイする。つまり、上記非特許文献1に記載された入力装置を用いても、プレイヤが電池の消耗に伴ってパワーランプが徐々に暗くなっていることに気付かずにプレイを続行してしまう。したがって、入力装置に内蔵する電池の寿命が尽き、ゲーム装置本体と入力装置とが無線通信不可能でゲームの操作を行えない状態になったときに、プレイヤが電池切れに気付くことが多い。この場合、プレイヤが電池切れに気付いたときにはゲーム装置本体との無線通信を満足に行えないため、進行中のゲームを中断する指示等を行うことができず、プレイヤが入力装置の乾電池の交換や充電池の再充電を終えるまで、不本意にゲームが進んでしまうことがある。
【0005】
それ故に、本発明の目的は、入力装置における電池切れを適切に判断することができるゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0006】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【0007】
第1の発明は、無線通信機能を含む電子回路と当該電子回路に電力を供給する電池とを有する入力装置(7)が無線通信可能に接続されるゲーム装置(5)のコンピュータ(30)で実行されるゲームプログラムである。ゲームプログラムは、切断検出手段(ステップ18を実行するCPU30、以下、単にステップ番号のみ記載する)、電池残量データ取得手段(S57)、電力不足判定手段(S53)、および報知手段(S55)として、コンピュータを機能させる。切断検出手段は、入力装置とゲーム装置との間の無線通信の、継続的な切断、断続的な切断、および一時的な切断の少なくともいずれか1つの切断を検出する。電池残量データ取得手段は、入力装置の電池残量を示す電池残量データ(電池電圧データ)を無線通信を介して取得する。電力不足判定手段は、切断検出手段により無線通信の切断を検出したこと、かつ、電池残量データ取得手段により取得した電池残量データが所定値以下(低レベル以下、2.40V未満)の電池残量を示すものであることに応じて、入力装置の電力が不足していると判定する。報知手段は、電力不足判定手段により電力が不足していると判定されたとき、その旨を報知する(図9)。
【0008】
第2の発明は、上記第1の発明において、切断検出手段は、入力装置とゲーム装置との間の無線通信の一時的な切断を検出するものである。電池残量データ取得手段は、切断検出手段による一時的な切断を検出した直後にのみ、入力装置から電池残量データを取得する(S66)。
【0009】
第3の発明は、上記第1または第2の発明において、電力不足判定手段は、切断検出手段による無線通信の一時的な切断を検出し、電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであり、さらに、当該一時的な切断の後の所定期間内に切断検出手段による2度目の切断が検出されたとき(S15、S53、S59)、入力装置の電力が不足していると判定する。
【0010】
第4の発明は、上記第1の発明において、切断検出手段は、入力装置とゲーム装置との間の無線通信の所定期間における断続的な切断を検出するものである。電力不足判定手段は、切断検出手段による無線通信の断続的な切断を検出し、かつ、電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、入力装置の電力が不足していると判定する。
【0011】
第5の発明は、上記第1の発明において、電池残量データ取得手段は、入力装置の電池残量を示す電池残量データを無線通信を介して適宜繰り返し取得する。電力不足判定手段は、切断検出手段による継続的な切断を検出し、かつ取得した最新の電池残量データが所定値以下の電池残量を示すものであることに応じて、入力装置の電力が不足していると判定する。
【0012】
第6の発明は、上記第1の発明において、報知手段は、電力不足判定手段によって電力不足と判定されたとき、実行中のゲーム処理を中断し、当該実行中のゲーム状況を示すゲーム状況データを当該ゲーム装置に備えるメモリ(33)に記憶するとともに、そのゲーム処理によるゲーム画面を停止させて表示装置(2)に表示することによって報知する(S51、S52)。
【0013】
第7の発明は、上記第1の発明において、報知手段は、ゲーム装置で実行中のゲームのゲーム画像を表示するための表示装置に、入力装置の電源の残量が不足していることを示す画像を表示する。
【0014】
第8の発明は、上記第1の発明において、報知手段は、ゲーム装置によって音声出力制御可能なスピーカ(2a、706)から、入力装置の電源の残量が不足していることを示す音声または効果音を出力する。
【0015】
第9の発明は、無線機能を含む電子回路と当該電子回路に対して電力を供給する電池とを有する入力装置が無線通信可能に接続されるゲーム装置である。ゲーム装置は、無線通信手段、切断検出手段、電池残量データ取得手段、電力不足判定手段、および報知手段を備える。無線通信手段は、入力装置と無線通信する。切断検出手段は、入力装置との間の無線通信の、継続的な切断、断続的な切断、および一時的な切断の少なくともいずれか1つの切断を検出する。電池残量データ取得手段は、入力装置の電池残量を示す電池残量データを無線通信手段を介して取得する。電力不足判定手段は、切断検出手段による無線通信の切断を検出したこと、かつ、電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、入力装置の電力が不足していると判定する。報知手段は、電力不足判定手段により電力が不足していると判定されたとき、その旨を報知する。
【発明の効果】
【0016】
第1の発明によれば、無線通信の切断が発生したこと、かつ、所定値以下に電池残量が低下したことを条件に入力装置の電池残量が不足していると判定するので、現在の使用環境に合わせた入力装置の電力の不足を適切に判断することができる。例えば、電池残量だけにより電力不足と判断すると、ハードウェアの個体差や使用状況により電池がまだ残っているのに使用できないこととなり、無線通信の切断により電力不足と判断すると、周囲環境により電池が十分に残っていても使えないことになる。
【0017】
上記第2の発明によれば、入力装置における電池残量確認を所定処理周期毎に行わず、無線通信が一時的に切断されたタイミングの直後にのみ行われるので、無線通信帯域の圧迫や処理負荷や入力装置の電力消費などを軽減することができる。
【0018】
上記第3の発明によれば、無線通信が一時的に切断されたことを検出し、その後の電池残量が所定値以下であり、さらに一時的な切断の後の所定期間内に再び切断が発生したことに応じて、入力装置の電力の不足を判定しているので、電池残量不足による無線通信の障害であることをより適切に判断することができる。
【0019】
上記第4の発明によれば、入力装置の電源残量が所定値以下に低下したことを確認し、その低下が現在の操作環境下で無線通信の切断が所定期間内に複数回起こるレベルであることを、入力装置の電源の不足を判定する基準としている。つまり、入力装置の電源残量の確認と所定時間内の無線通信の状況とを両立させて入力装置の電源不足を判定することによって、入力装置における電源不足を適切に判定することができる。
【0020】
上記第5の発明によれば、継続的な切断と、切断前の最新の電池残量が所定値以下であることにより、入力装置の電力の不足を判定しているので、電池残量不足による無線通信の障害であることを適切に判断することができる。
【0021】
上記第6の発明によれば、入力装置との間の無線通信が切断されたとき、自動的にゲームが中断して、そのゲーム状況が記録保存されるため、プレイヤが入力装置の乾電池の交換や充電池の再充電等を終えるまで、不本意にゲームが進んでしまうことがない。
【0022】
上記第7の発明によれば、ゲーム進行を視認して楽しむ表示装置に電源不足を示す画像が表示されるため、プレイヤが入力装置の電力不足に気付かずにプレイを続行することはない。
【0023】
上記第8の発明によれば、電源不足を示す情報が音声や効果音で出力されるため、プレイヤが入力装置の電力不足に気付かずにプレイを続行することはない。
【0024】
また、本発明のゲーム装置によれば、上述したゲームプログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【0025】
図1を参照して、本発明の一実施形態に係るゲーム装置について説明する。以下、説明を具体的にするために、当該ゲーム装置の一例の据置型のゲーム装置を含むゲームシステムについて説明する。なお、図1は据置型のゲーム装置3を含むゲームシステム1の外観図であり、図2はゲーム装置本体5のブロック図である。以下、当該ゲームシステム1について説明する。
【0026】
図1において、ゲームシステム1は、表示手段の一例の家庭用テレビジョン受像機(以下、モニタと記載する)2と、当該モニタ2に接続コードを介して接続する据置型のゲーム装置3とから構成される。モニタ2は、ゲーム装置本体5から出力された音声信号を音声出力するためのスピーカ2aを備える。また、ゲーム装置3は、本願発明のゲームプログラムを記録した光ディスク4と、当該光ディスク4のゲームプログラムを実行してゲーム画面をモニタ2に表示出力させるためのコンピュータを搭載したゲーム装置本体5と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体5に与えるためのコントローラ7とを備えている。
【0027】
また、ゲーム装置本体5は、通信ユニット6を内蔵する。通信ユニット6は、コントローラ7から無線送信されるデータを受信し、ゲーム装置本体5からコントローラ7へデータを送信して、コントローラ7とゲーム装置本体5とを無線通信によって接続する。さらに、ゲーム装置本体5には、当該ゲーム装置本体5に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。ゲーム装置本体5の前部主面には、当該ゲーム装置本体5の電源ON/OFFスイッチ、ゲーム処理のリセットスイッチ、光ディスク4を脱着する投入口、およびゲーム装置本体5の投入口から光ディスク4を取り出すイジェクトスイッチ等が設けられている。
【0028】
また、ゲーム装置本体5には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ38が搭載される。ゲーム装置本体5は、光ディスク4に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ2に表示する。さらに、ゲーム装置本体5は、フラッシュメモリ38に記憶されたセーブデータを用いて、過去に実行されたゲーム状況を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置本体5のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
【0029】
コントローラ7は、通信ユニット6を内蔵するゲーム装置本体5へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて操作情報等の送信データを無線送信する。コントローラ7は、主にモニタ2の表示画面に表示されるゲーム空間に登場するプレイヤキャラクタ等を操作したりするための操作手段である。コントローラ7は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン(十字キーやスティック等を含む)が設けられている。また、後述により明らかとなるが、コントローラ7は、当該コントローラ7から見た画像を撮像する撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール(以下、マーカと記載する)8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって例えば赤外光を出力する。また、コントローラ7は、ゲーム装置本体5の通信ユニット6から無線送信された送信データを通信部75で受信して、当該送信データに応じた音や振動を発生させることもできる。
【0030】
図2において、ゲーム装置本体5は、各種プログラムを実行する例えばCPU(セントラルプロセッシングユニット)30を備える。CPU30は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ33等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU30には、メモリコントローラ31を介して、GPU(Graphics Processing Unit)32、メインメモリ33、DSP(Digital Signal Processor)34、およびARAM(Audio RAM)35などが接続される。また、メモリコントローラ31には、所定のバスを介して、通信ユニット6、ビデオI/F(インターフェース)37、フラッシュメモリ38、オーディオI/F39、およびディスクI/F41が接続され、それぞれのインターフェースにモニタ2、スピーカ2a、およびディスクドライブ40が接続されている。
【0031】
GPU32は、CPU30の命令に基づいて画像処理を行うものあり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU32は、図示しない画像処理専用のメモリやメインメモリ33の一部の記憶領域を用いて画像処理を行う。GPU32は、これらを用いてモニタ2に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ31およびビデオI/F37を介してモニタ2に出力する。
【0032】
メインメモリ33は、CPU30で使用される記憶領域であって、CPU30の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ33は、CPU30によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ33に記憶されたゲームプログラムや各種データ等が、CPU30によって実行される。
【0033】
DSP34は、ゲームプログラム実行時にCPU30において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM35が接続される。ARAM35は、DSP34が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP34は、ARAM35に記憶されたサウンドデータを読み出し、メモリコントローラ31およびオーディオI/F39を介してモニタ2に備えるスピーカ2aに出力させる。
【0034】
メモリコントローラ31は、データ転送を統括的に制御するものであり、上述した各種I/Fが接続される。上述したように通信ユニット6は、コントローラ7からの送信データを受信し、当該送信データをCPU30へ出力する。また、通信ユニット6は、CPU30から出力された送信データをコントローラ7の通信部75へ送信する。ビデオI/F37には、モニタ2が接続される。オーディオI/F39にはモニタ2に内蔵されるスピーカ2aが接続され、DSP34がARAM35から読み出したサウンドデータやディスクドライブ40から直接出力されるサウンドデータをスピーカ2aから出力可能に接続される。ディスクI/F41には、ディスクドライブ40が接続される。ディスクドライブ40は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置本体5のバスやオーディオI/F39に出力する。
【0035】
図3および図4を参照して、コントローラ7について説明する。なお、図3は、コントローラ7の上面後方から見た斜視図である。図4は、コントローラ7を下面前方から見た斜視図である。
【0036】
図3および図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【0037】
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【0038】
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に4つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記4つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、4つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティック(いわゆる、ジョイスティック)を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー72aの代わりに設けてもかまわない。
【0039】
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、1番ボタン、2番ボタン、およびAボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、マイナスボタン、ホーム(HOME)ボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン72a〜72gは、ゲーム装置本体5が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図3に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0040】
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置本体5の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0041】
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7から通信ユニット6へ送信データを送信する際、上記コントローラ種別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。また、LED702は、コントローラ7に取り付けられている電池残量を示すこともできる。具体的には、後述するコントローラ7に内蔵されるAD(Analog to Digital)コンバータによる電池電圧計測結果に応じて、複数のLED702のうち、電池電圧に対応するLEDが点灯する。例えば、電池電圧が最大のときに全てのLED702を点灯させ、電池電圧が低下することに応じてLED702が点灯する数や明るさを漸減的に減少させて、電池電圧が最小のときに全てのLED702を消灯する。
【0042】
また、ハウジング71上面には、操作ボタン72bおよび操作ボタン72e〜72gの間に後述するスピーカ(図5のスピーカ706)からの音を外部に放出するための音抜き孔が形成されている。
【0043】
一方、ハウジング71下面には、凹部が形成されている。ハウジング71下面の凹部は、プレイヤがコントローラ7の前面をマーカ8Lおよび8Rに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部である。
【0044】
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コントローラ7が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコントローラ7の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング70の後面には、コネクタ73が設けられている。コネクタ73は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【0045】
次に、図5および図6を参照して、コントローラ7の内部構造について説明する。なお、図5は、コントローラ7の上筐体(ハウジング71の一部)を外した状態を後面側から見た斜視図である。図6は、コントローラ7の下筐体(ハウジング71の一部)を外した状態を前面側から見た斜視図であり、内蔵する電池を取り外した状態を示している。ここで、図6に示す基板700は、図5に示す基板700の裏面から見た斜視図となっている。
【0046】
図5において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751等(図6、図7参照)に接続される。また、図示しない無線モジュール753(図7参照)およびアンテナ754によって、コントローラ7がワイヤレスコントローラとして機能する。なお、ハウジング71内部には図示しない水晶振動子703が設けられており、後述するマイコン751の基本クロックを生成する。また、基板700の上主面上に、スピーカ706およびアンプ708が設けられる。また、加速度センサ701は、操作ボタン72dの左側の基板700上(つまり、基板700の中央部ではなく周辺部)に設けられる。したがって、加速度センサ701は、コントローラ7の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分が含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ7の回転を良好な感度でゲーム装置本体5等が判定することができる。
【0047】
一方、図6において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コントローラ7の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられ、下主面中央部に電池を取り付ける端子709が設けられている。さらに、基板700の下主面上にサウンドIC707およびマイコン751が設けられている。サウンドIC707は、基板700等に形成された配線によってマイコン751およびアンプ708と接続され、ゲーム装置本体5から送信されたサウンドデータに応じてアンプ708を介してスピーカ706に音声信号を出力する。
【0048】
そして、基板700の下主面上には、バイブレータ704が取り付けられる。バイブレータ704は、例えば振動モータやソレノイドである。バイブレータ704は、基板700等に形成された配線によってマイコン751と接続され、ゲーム装置本体5から送信された振動データに応じてその作動をオン/オフする。バイブレータ704が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ704は、ハウジング71のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング71が大きく振動することになり、振動を感じやすくなる。
【0049】
次に、図7を参照して、コントローラ7の内部構成について説明する。なお、図7は、コントローラ7の構成を示すブロック図である。
【0050】
図7において、コントローラ7は、上述した操作部72、撮像情報演算部74、加速度センサ701、バイブレータ704、スピーカ706、サウンドIC707、およびアンプ708の他に、その内部に通信部75を備えている。
【0051】
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コントローラ7の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コントローラ7のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。
【0052】
コントローラ7は、3軸(X、Y、Z軸)の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向(図3に示すY軸)、左右方向(図3に示すX軸)、および前後方向(図3に示すZ軸)で直線加速度を検知する。例えば、これらの加速度センサ701は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であることが好ましい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて、加速度センサ701が提供されてもよい。
【0053】
加速度センサ701に用いられるような加速度検出手段は、加速度センサ701の持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701からの直接の出力は、それら3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【0054】
しかしながら、加速度センサ701から出力される加速度の信号に対して追加の処理を行うことによって、コントローラ7に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、静的な加速度(重力加速度)が検知されると、加速度センサ701からの出力を用いて、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象(コントローラ7)の傾きを判定することができる。このように、加速度センサ701をマイコン751(またはゲーム装置本体5に含まれるCPU30等の他のプロセッサ)と組み合わせて用いることによって、コントローラ7の傾き、姿勢、または位置を判定することができる。同様に、加速度センサ701を備えるコントローラ7がプレイヤの手で動的に加速されて動かされる場合に、加速度センサ701によって生成される加速度信号を処理することによって、コントローラ7の様々な動きおよび/または位置を算出することができる。他の実施例では、加速度センサ701は、信号をマイコン751に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサ701が静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。加速度センサ701でそれぞれ検知された加速度を示すデータは、通信部75に出力される。
【0055】
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、ADコンバータを含んでおり、操作部72、加速度センサ701、および撮像情報演算部74からそれぞれ出力されるアナログ信号をデジタル信号に変換して送信データを生成する。ここで、本実施形態では、マイコン751に含まれるADコンバータを用いてコントローラ7に取り付けられる電池電圧を計測しており、適宜電池電圧を計測して当該電池電圧を示すデジタルデータも送信データとして送信される。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置本体5からのデータに応じて、サウンドIC707およびバイブレータ704の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置本体5から送信されたサウンドデータ等を処理する。また、マイコン751は、通信部75を介してゲーム装置本体5から送信された振動データ(例えば、バイブレータ704をONまたはOFFする信号)等に応じて、バイブレータ704を作動させる。
【0056】
コントローラ7に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの3軸方向の加速度信号(X、Y、およびZ軸方向加速度データ)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ)を通信ユニット6へ送信する送信データとして一時的にメモリ752に格納する。ここで、通信部75から通信ユニット6への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥース(登録商標)で構成される通信部75の送信間隔は5msである。マイコン751は、通信ユニット6への送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ754から放射する。つまり、コントローラ7に設けられた操作部72からのキーデータ、加速度センサ701からのX、Y、およびZ軸方向加速度データ、および撮像情報演算部74からの処理結果データがコントローラ7から送信される。そして、ゲーム装置本体5の通信ユニット6でその電波信号を受信し、ゲーム装置本体5で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、X、Y、およびZ軸方向加速度データ、および処理結果データ)を取得する。そして、ゲーム装置本体5のCPU30は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Bluetooth(登録商標)の技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【0057】
また、マイコン751は、ゲーム装置本体5からの要求に応じて、コントローラ7の電池電圧を示す電池電圧データも送信データとして一時的にメモリ752に格納する。そして、上記操作情報と同様に、マイコン751は、通信ユニット6への送信タイミングが到来すると、メモリ752に格納されている電池電圧データを出力し、無線モジュール753を介してアンテナ754からゲーム装置本体5へ送信する。
【0058】
なお、後述により明らかとなるが、本発明のゲームプログラムでは、上記送信データとして送信する各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ)のうち、少なくともキーデータおよび電池電圧データのみ送信されれば実現することができる。この場合、加速度センサ701や撮像情報演算部74がコントローラ7に搭載されていなくてもかまわない。また、コントローラ7から音声を出力するための機能(スピーカ706、アンプ708、サウンドIC707)やコントローラ7を振動させるための機能(バイブレータ704)もコントローラ7に搭載されていなくてもかまわない。
【0059】
次に、ゲーム装置本体5が行う具体的な処理を説明する前に、図8〜図10を参照して本ゲーム装置本体5で行う電池残量確認処理の概要について説明する。なお、図8は、無線切断状態になったときにモニタ2の表示画面に表示される画像の一例を示す図である。図9は、電池電圧不足に起因して無線切断状態になったときにモニタ2の表示画面に表示される画像の一例を示す図である。図10は、プレイヤがHOMEボタン(操作ボタン72f)を押下したときにモニタ2の表示画面に表示される電池残量確認画像の一例を示す図である。
【0060】
図8において、コントローラ7とゲーム装置本体5との間の無線通信が途切れた場合、両者の無線通信の復旧を促す報知がモニタ2に表示される。図8に示した報知例では、プレイ中のゲームが自動的に中断され、「リモコンをつなぎなおします。Aボタンを押してください。」と無線通信の復旧を促す文章が表示される。ここで、コントローラ7とゲーム装置本体5との間の無線通信が途切れる状態は、コントローラ7に取り付けられた電池残量が低下したときの他に、無線通信ができない位置にコントローラ7が移動したとき、他の通信等に起因するノイズやゲーム装置本体5とコントローラ7との間の障害物等によって当該無線通信が妨害されるとき等がある。
【0061】
図9において、コントローラ7の電池電圧不足に起因してコントローラ7とゲーム装置本体5との間の無線通信が途切れた場合、電池残量が低下してきたことを報知して電池残量の確認を促す報知がモニタ2に表示される。図9に示した報知例では、プレイ中のゲームが自動的に中断され、「電池が減ってきました。Aボタンでリモコンをつなぎなおして、HOMEボタンメニュー画面で電池の残量を確認してください。」と電池残量が低下したことを報知し電池残量の確認を促す文章が表示される。
【0062】
なお、後述により明らかとなるが、モニタ2に無線通信の復旧を促す画像(図8)や電池残量の確認を促す画像(図9)は、実行中のゲーム処理を中断して表示される。したがって、ゲーム処理によるゲーム画面を停止させて、これらの文字画像の背景としてもかまわない。この場合、コントローラ7の電力が不足している旨を示す文字が、中断して停止したゲーム画像上に重畳してモニタ2に表示される。
【0063】
図10において、プレイヤがHOMEボタン(操作ボタン72f)を押下したとき、HOMEボタンメニューが表示される。HOMEボタンメニューでは、現在ゲーム装置本体5との間で無線通信が行われている各コントローラ7の電池残量が表示される。例えば、図10の例では、2つのコントローラ7(1プレイヤ(1P)および2プレイヤ(2P))がそれぞれゲーム装置本体5との間で無線通信を行っている。そして、1Pのコントローラ7に取り付けられた電池の残量が、電池残量確認画像BV1で示されている。また、2Pのコントローラ7に取り付けられた電池の残量が、電池残量確認画像BV2で示されている。ここで、電池残量確認画像BV2は、2Pのコントローラ7の電池残量が5段階表示の最高段階(例えば、電池電圧が2.60V以上)にあることを示しており、電池残量の低下がないことを示している。一方、電池残量確認画像BV1は、1Pのコントローラ7の電池残量が5段階表示の下位から2段階目(例えば、電池電圧が2.12V以上2.40V未満)にあることを示しており、電池交換(充電)時期であることを示している。
【0064】
次に、ゲームシステム1において行われる電池残量確認処理の詳細を説明する。まず、図11を参照して、電池残量確認処理において用いられる主なデータについて説明する。なお、図11は、ゲーム装置本体5のメインメモリ33に記憶される主なデータを示す図である。
【0065】
図11に示すように、メインメモリ33には、キーデータDa、電池電圧データDb、電池残量データDc、電池切れフラグDd、バッテリーカウンタデータDe、チェックタイマーデータDf、ゲーム状況データDg、および画像データDh等が記憶される。なお、メインメモリ33には、図11に示す情報に含まれるデータの他、ゲーム処理に用いられるプレイヤキャラクタや他のオブジェクト等に関するデータや仮想ゲーム空間に関するデータ等、処理に必要なデータが記憶される。
【0066】
キーデータDaは、コントローラ7から送信データとして送信されてくる一連の操作情報に含まれるキーデータである。なお、ゲーム装置本体5に内蔵される通信ユニット6は、コントローラ7から所定間隔(例えば5ms毎)に送信される操作情報を受信し、通信ユニット6に備える図示しないバッファに蓄える。その後、ゲーム処理間隔である1フレーム毎(1/60秒)に読み出されてメインメモリ33のキーデータDaが更新される。なお、コントローラ7から送信データとして送信されてくる一連の操作情報には、上述のキーデータの他に、処理結果データや加速度データが含まれるが、後述するフローチャートではこれらのデータを利用しない態様を示す。
【0067】
電池電圧データDbは、コントローラ7から送信データとして送信されてくる電池電圧データである。上述したように、コントローラ7のマイコン751は、ゲーム装置本体5からの要求に応じて、コントローラ7の電池電圧を示す電池電圧データも送信データとして送信している。そして、電池電圧データDbは、コントローラ7毎に管理され、受信した電池電圧データにそれぞれ更新される。例えば、コントローラ7から送信される電池電圧データは、電池電圧が2.1V〜3.6V間の何れの値であるのかを示すデータであり、電池電圧2.1Vを0、電池電圧3.6Vを255とした256階調で表現される値で示されている。
【0068】
電池残量データDcは、受信したコントローラ7毎の電池電圧データに基づいて、電池残量をそれぞれ複数段階(例えば、5段階)に分別して評価したデータである。例えば、電池残量データは、最高レベル(MAX;2.60V以上)、高レベル(HIGH;2.50V以上)、中レベル(MEDIUM;2.40V以上)、低レベル(LOW;2.12V以上)、および危険レベル(CRITICAL;2.12V未満)の5段階に上記電池電圧データが分別される。
【0069】
電池切れフラグDdは、各コントローラ7の電池残量が電池交換や再充電が必要なレベルか否かを示す電池切れフラグFLBを示すデータである。例えば、電池切れフラグFLBは、コントローラ7の電池残量が上記低レベルまたは危険レベルである場合、ONに設定される。また、電池切れフラグFLBは、コントローラ7の電池残量が上記最高レベル、高レベル、または中レベルである場合、OFFに設定される。
【0070】
バッテリーカウンタデータDeは、後述する処理ループ毎に更新されるバッテリーカウンタBCのカウント値であり、コントローラ7の電池切れに起因して無線切断が複数回生じているか判断するためのデータである。チェックタイマーデータDfは、後述する処理ループ毎に更新されるチェックタイマーCTのカウント値であり、コントローラ7に電池電圧データを再要求する周期を制御するためのデータである。
【0071】
ゲーム状況データDgは、ゲームが中断された際に、そのゲーム状況が記憶保存されるゲームデータである。画像データDhは、無線切断表示画像データDh1、電池切れ表示画像データDh2、および電池残量画像データDh3等を含む。無線切断表示画像データDh1は、コントローラ7とゲーム装置本体5との間の無線通信が途切れた場合に、無線通信の復旧を促すための報知画像(図8参照)を生成するためのデータである。電池切れ表示画像データDh2は、コントローラ7の電池電圧不足に起因してコントローラ7とゲーム装置本体5との間の無線通信が途切れた場合に、電池残量が低下してきたことを報知して電池残量の確認を促す報知画像(図9参照)を生成するためのデータである。電池残量画像データDh3は、HOMEボタンメニューに表示される電池残量確認画像BV1〜BV4(図10参照)を生成するためのデータである。
【0072】
次に、図12〜図16を参照して、ゲーム装置本体5において行われる電池残量確認処理の詳細を説明する。なお、図12は、ゲーム装置本体5において実行される電池残量確認処理の流れを示すフローチャートである。図13は、図12におけるステップ15のバッテリーカウンタ更新処理の詳細な動作を示すサブルーチンである。図14は、図12におけるステップ16の中断解除処理の詳細な動作を示すサブルーチンである。図15は、図12におけるステップ19の無線切断処理の詳細な動作を示すサブルーチンである。図16は、図15におけるステップ57のバッテリーチェック処理の詳細な動作を示すサブルーチンである。なお、図12〜図16に示すフローチャートにおいては、ゲーム処理のうち、電池残量確認処理について主に説明し、本願発明と直接関連しない他のゲーム処理については詳細な説明を省略する。また、図12〜図16では、CPU30が実行する各ステップを「S」と略称する。また、図12〜図16に示すフローチャートは、ゲーム装置本体5に複数のコントローラ7が無線接続されているときはコントローラ7毎にそれぞれ動作するが、以下の説明では、1つのコントローラ7が接続されている例を用いる。
【0073】
ゲーム装置本体5の電源が投入されると、ゲーム装置本体5のCPU30は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ33等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリ33に読み込まれ、CPU30によって当該ゲームプログラムの実行が開始される。図12〜図16に示すフローチャートは、以上の処理が完了した後に行われる電池残量確認処理を示すフローチャートである。
【0074】
図12において、CPU30は、電池残量確認処理の初期処理を行い(ステップ11)、処理を次のステップに進める。例えば、CPU30は、バッテリーカウンタBCのカウント値を0に設定してバッテリーカウンタデータDeを更新する。また、CPU30は、コントローラ7との間で無線接続を確立して、コントローラ7から当該コントローラ7に関する情報(コントローラID、電池電圧データ等)を取得する。そして、CPU30は、取得した電池電圧データを用いて電池残量データを算出して、電池電圧データDbおよび電池残量データDcに格納する。例えば、CPU30は、取得した電池電圧データが示す256階調の電池電圧値を、上記5段階に分別して電池残量レベルを設定して電池残量データとする。
【0075】
次に、CPU30は、一連の操作情報を取得してゲーム処理を行って(ステップ12)、処理を次のステップに進める。例えば、CPU30は、コントローラ7から送信された一連の操作情報を取得して、メインメモリ33に格納する。そして、CPU30は、コントローラ7から取得して更新されたキーデータDa等に応じて、仮想ゲーム空間に登場するプレイヤキャラクタを動作させて、当該仮想ゲーム空間をモニタ2に表示する。なお、ステップ12で実行するゲーム処理は、プレイヤがプレイするゲームに応じて様々な処理が行われるが、ここでは詳細な説明を省略する。
【0076】
次に、CPU30は、プレイヤがコントローラ7のHOMEボタンを押下したか否かを判断する(ステップ13)。例えば、CPU30は、キーデータDaを参照して、プレイヤがコントローラ7のHOMEボタンを押下したことを示すキーデータを受信しているか否かを判断する。そして、CPU30は、HOMEボタンが押下された場合、次のステップ14に処理を進める。一方、CPU30は、HOMEボタンが押下されていない場合、次のステップ15に処理を進める。
【0077】
ステップ14において、CPU30は、現在処理中のゲームを中断して、HOMEボタンメニュー(図10参照)をモニタ2に表示し、次のステップ15に処理を進める。例えば、CPU30は、ゲームを中断するとき、そのゲーム状況をゲーム状況データDgに格納する。また、CPU30は、HOMEボタンメニューをモニタ2に表示する際、現在のコントローラ7の電池残量を示す電池残量確認画像BV1〜BV4をモニタ2に表示する。ここで、電池残量確認画像BV1〜BV4は、電池残量データDcに格納されている各コントローラ7の電池残量(例えば、電池残量が複数段階に分別されたレベルデータ)を参照して、それらの電池残量が表示される。ここで、ゲーム装置本体5に接続されていないコントローラ7については、その電池残量がブランク(例えば、図10の電池残量確認画像BV3およびBV4に示すような濃度が薄い電池マーク)で示される。プレイヤは、HOMEボタンを押下することによって、モニタ2の表示画面で自身が操作するコントローラ7や他のプレイヤが操作するコントローラ7の電池残量を確認することができる。
【0078】
ステップ15において、CPU30は、バッテリーカウンタ更新処理を行い、処理を次のステップに進める。以下、図13を参照して、バッテリーカウンタ更新処理の詳細な動作について説明する。
【0079】
図13において、CPU30は、バッテリーカウンタデータDeに格納されているバッテリーカウンタBCのカウント値を参照し、バッテリーカウンタBCのカウント値が0より大きい数値か否かを判断する(ステップ21)。そして、CPU30は、バッテリーカウンタBCのカウント値が0より大きい数値である場合、次のステップ22に処理を進める。一方、CPU30は、バッテリーカウンタBCのカウント値が0である場合、そのまま当該サブルーチンによる処理を終了する。
【0080】
ステップ22において、CPU30は、バッテリーカウンタデータDeに格納されているバッテリーカウンタBCのカウント値から1を減算して、バッテリーカウンタデータDeを更新し、当該サブルーチンによる処理を終了する。
【0081】
図12に戻り、ステップ15のバッテリーカウンタ更新処理の後、CPU30は、中断解除処理を行い、処理を次のステップに進める。以下、図14を参照して、中断解除処理の詳細な動作について説明する。
【0082】
図14において、CPU30は、現在ゲームが中断中であるか否かを判断する(ステップ41)。そして、CPU30は、ゲームが中断中である場合、次のステップ42に処理を進める。一方、CPU30は、ゲームが中断中でない場合、そのまま当該サブルーチンによる処理を終了する。
【0083】
ステップ42において、プレイヤがゲーム中断を解除する解除ボタンを押下したか否かを判断する。例えば、CPU30は、キーデータDaを参照して、プレイヤがコントローラ7の解除ボタン(操作部72の何れかであり、ゲームが中断されているモードに応じて異なる操作ボタンであってもかまわない)を押下したことを示すキーデータを受信しているか否かを判断する。そして、CPU30は、解除ボタンが押下された場合、次のステップ43に処理を進める。一方、CPU30は、解除ボタンが押下されていない場合、そのまま当該サブルーチンによる処理を終了する。
【0084】
ステップ43において、CPU30は、ゲーム状況データDgに格納されているデータを読み出す。そして、CPU30は、読み出したゲーム状況データに基づいて、ゲーム再開処理を行って(ステップ44)、当該サブルーチンによる処理を終了する。例えば、CPU30は、上記ステップ43で読み出したゲーム状況データに基づいて、中断前に行われていたゲーム処理状態を再現し、ゲーム中断前のゲーム状況をモニタ2に表示してゲーム再開処理を行う。
【0085】
図12に戻り、ステップ16の中断解除処理の後、CPU30は、ゲームを終了するか否かを判断する(ステップ17)。ゲームを終了する条件としては、例えば、ゲームオーバーとなる条件が満たされたことや、プレイヤがゲームを終了する操作を行ったこと等がある。CPU30は、ゲームを終了しない場合に次のステップ18に処理を進め、ゲームを終了する場合に当該フローチャートによる処理を終了する。
【0086】
ステップ18において、CPU30は、ゲーム装置本体5とコントローラ7との間の無線通信が切断されたか否かを検出する。そして、CPU30は、無線通信が切断された場合、次のステップ19に処理を進める。一方、CPU30は、無線通信が切断されていない場合、上記ステップ12に戻って、処理を繰り返す。
【0087】
ここで、ゲーム装置本体5とコントローラ7との間の無線通信が切断されたことを確認する方法は、様々な方法を用いてもかまわない。第1の例として、コントローラ7側でゲーム装置本体5との無線通信状況を監視し、当該無線通信が一時的に途切れたときに切断コマンドをコントローラ7からゲーム装置本体5に送信する。CPU30は、この明示的な切断コマンドをコントローラ7から受信することによって、一時的に無線通信が切断されたことを検出する。第2の例として、ゲーム装置本体5からコントローラ7へ無線通信が正常に行われていることを確認するための切断コマンドを送信し、当該切断コマンドに対して肯定を意味する返信(例えば、ACK;ACKnowlegement)を用いて無線通信の切断を検出する。CPU30は、コントローラ7からの返信内容に応じて、無線通信が切断されたことを検出する。第3の例として、ゲーム装置本体5が特定のコントローラ7から所定時間以上(例えば、2秒間)信号を受信できないとき、当該コントローラ7との間の無線通信が切断されたとする。CPU30は、コントローラ7からの信号受信状況を監視することによって、無線通信が切断されたことを検出する。
【0088】
ステップ19において、CPU30は、無線切断処理を行い、上記ステップ12に戻って、処理を繰り返す。以下、図15を参照して、無線切断処理の詳細な動作について説明する。
【0089】
図15において、CPU30は、現在処理中のゲームを中断して(ステップ51)、そのゲーム状況をゲーム状況データDgに記憶保存して(ステップ52)、次のステップに処理を進める。
【0090】
次に、CPU30は、バッテリーカウンタデータDeに格納されているバッテリーカウンタBCのカウント値を参照し、バッテリーカウンタBCのカウント値が0であるか否かを判断する(ステップ53)。そして、CPU30は、バッテリーカウンタBCのカウント値が0である場合、次のステップ54に処理を進める。一方、CPU30は、バッテリーカウンタBCのカウント値が0でない(つまり、0より大きい数値)場合、次のステップ55に処理を進める。
【0091】
ステップ54において、CPU30は、モニタ2の表示画面に無線通信の復旧を促す報知画像(図8参照)を表示し、次のステップ56に処理を進める。後述により明らかとなるが、ステップ54の処理は、何らかの原因によってコントローラ7とゲーム装置本体5との間の無線通信が途切れた場合に表示する処理であり、ゲームを一時的に中断してプレイヤに対して無線通信の復旧を促す報知画像が表示される。
【0092】
ステップ55において、モニタ2の表示画面に電池残量が低下してきたことを報知して電池残量の確認を促す報知画像(図9参照)を表示し、次のステップ56に処理を進める。後述により明らかとなるが、ステップ55の処理は、無線通信が一度切断され、次に無線通信が接続されたときに電池残量の低下が確認され、再度所定時間内にコントローラ7とゲーム装置本体5との間の無線通信の切断が生じたときに表示する処理であり、ゲームを一時的に中断してプレイヤに電池残量が低下してきたことを報知して電池残量の確認を促す報知画像が表示される。
【0093】
なお、上記ステップ54で表示される無線通信の復旧を促す報知画像(図8)や、上記ステップ55で表示される電池残量の確認を促す報知画像(図9)は、実行中のゲーム処理を中断して表示される。したがって、ゲーム処理によるゲーム画面を停止させて、当該ゲーム画面をこれらの画像の背景としてもかまわない。例えば、上記ステップ55においては、コントローラ7の電力が不足している旨を示す文字が、中断して停止したゲーム画像上に重畳してモニタ2に表示される。
【0094】
ステップ56において、CPU30は、コントローラ7とゲーム装置本体5との間の無線通信が復旧するのを待つ。例えば、CPU30は、プレイヤがコントローラ7のAボタン(操作ボタン72d)を押下したことに応じて、当該コントローラ7との間で無線接続を確立する処理を行う。また、CPU30は、特にプレイヤの操作を待たずに無線通信可能なコントローラ7との無線接続を確立する処理を行ってもかまわない。そして、無線通信が復旧した場合(ステップ56でYes)、CPU30は、バッテリーチェック処理を行い、処理を次のステップに進める。以下、図16を参照して、バッテリーチェック処理の詳細な動作について説明する。
【0095】
図16において、CPU30は、チェックタイマーデータDfに格納されているチェックタイマーCTのカウント値を0に設定して更新して(ステップ61)、処理を次のステップに進める。
【0096】
次に、CPU30は、無線通信が切断されて復旧したコントローラ7に対して、電池残量をチェックするバッテリーチェック命令を送信し(ステップ62)、処理を次のステップに進める。例えば、CPU30は、コントローラ7に関する情報(コントローラID、電池電圧データ等)を取得する関数を実行することによって、バッテリーチェック命令をコントローラ7へ送信する。
【0097】
次に、CPU30は、バッテリーチェック命令を送信したコントローラ7からチェック結果を受信したか否かを判断する(ステップ63)。そして、CPU30は、コントローラ7からチェック結果を受信した場合、次のステップ66に処理を進める。一方、CPU30は、コントローラ7からチェック結果を受信していない場合、次のステップ64に処理を進める。
【0098】
ステップ64において、CPU30は、チェックタイマーデータDfに格納されているチェックタイマーCTのカウント値に1を加算してチェックタイマーデータDfを更新する。そして、CPU30は、チェックタイマーCTのカウント値が300より大きい数値か否かを判断する(ステップ65)。そして、CPU30は、チェックタイマーCTのカウント値が300以下の数値である場合、上記ステップ63に戻って処理を繰り返す。一方、CPU30は、チェックタイマーCTのカウント値が300より大きな数値である場合、上記ステップ61に戻って処理を繰り返す。これらステップ61〜ステップ65の処理によって、ゲーム装置本体5がコントローラ7からチェック結果を受信するまで、300処理回数毎(ゲームの処理が1/60秒単位である場合、5秒間毎)にバッテリーチェック命令を送信することになる。
【0099】
ステップ66において、CPU30は、コントローラ7から受信したチェック結果に含まれる電池電圧データを用いて電池残量を算出し、電池電圧データおよび電池残量データを用いて電池電圧データDbおよび電池残量データDcをそれぞれ更新して、処理を次のステップに進める。例えば、コントローラ7から取得する電池電圧データは、コントローラ7に取り付けられた電池電圧が256階調で表現される値であり、この電池電圧を上記5段階に分別して評価することによって電池残量データが算出される。
【0100】
次に、CPU30は、上記ステップ66で算出したコントローラ7の電池残量が所定レベル以下であるか否かを判断する(ステップ67)。例えば、CPU30は、コントローラ7の電池残量が上記低レベルまたは危険レベルである場合、電池切れフラグFLBをONに設定して電池切れフラグDdに格納し(ステップ68)、当該サブルーチンによる処理を終了する。一方、CPU30は、コントローラ7の電池残量が上記最高レベル、高レベル、または中レベルである場合、電池切れフラグFLBをOFFに設定して電池切れフラグDdに格納し(ステップ69)、当該サブルーチンによる処理を終了する。
【0101】
なお、上記ステップ67の判定基準を電池残量レベルで設定しているが、コントローラ7から取得した電池電圧データが示す電圧値を用いた判定基準であってもかまわない。例えば、コントローラ7の電池電圧が閾値未満(2.40V未満)である場合にステップ68の処理を行い、コントローラ7の電池電圧が閾値以上(2.40V以上)である場合にステップ69の処理を行ってもかまわない。
【0102】
また、上記ステップ67〜ステップ69の処理では、電池切れフラグFLBのON/OFFを切り替える閾値を1つにしているが、電池切れフラグFLBをOFFからONに切り替える閾値と電池切れフラグFLBをONからOFFに切り替える閾値とを別に設定してもかまわない。例えば、電池切れフラグFLBをONからOFFに切り替える閾値を電池切れフラグFLBをONからOFFに切り替える閾値より高く設定することによって、微量だけ電池電圧が一時的に復活しても電池切れフラグFLBがONに設定されるため、閾値に対して誤差程度の電池電圧の復活が除外されて適切な電池電圧の判定が可能となる。
【0103】
図15に戻り、ステップ57のバッテリーチェック処理の後、CPU30は、電池切れフラグDdに記憶されている電池切れフラグFLBがONに設定されているか否かを判断する。そして、CPU30は、電池切れフラグFLBがONに設定されている場合、バッテリーカウンタBCのカウント値を1800に設定してバッテリーカウンタデータDeを更新し(ステップ59)、当該サブルーチンによる処理を終了する。一方、CPU30は、電池切れフラグFLBがONに設定されている場合、そのまま当該サブルーチンによる処理を終了する。
【0104】
ここで、バッテリーカウンタBCの初期カウント値は0である(上記ステップ11参照)。しかしながら、上記ステップ53〜ステップ59の処理から明らかなように、一度無線通信が切断されたときにコントローラ7の電池残量が所定レベル以下であれば、バッテリーカウンタBCのカウント値が1800に設定されて上記ステップ15の処理で減算されていく。そして、バッテリーカウンタBCのカウント値が0になる前に再度無線通信が切断されたときに、モニタ2に電池切れの報知画像が表示される。
【0105】
このように、本実施形態に係るゲーム装置3は、コントローラ7の電池残量および無線通信の切断状況の一方のみでなく、両者の判定を連携させてコントローラ7の電池切れを判定して、モニタ2の表示画面に電池切れレベルになったことをプレイヤに報知する。そして、プレイヤが所定の操作ボタンを押下することによって、自身が所持するコントローラ7の電池残量をモニタ2の表示画面で確認することができる。このとき、ゲーム進行を視認して楽しむモニタ2の表示画面に電池切れを示す画像が表示されるため、プレイヤが電池切れに気付かずにプレイを続行することはない。また、自動的にゲームが中断して、そのゲーム状況が記録保存されるため、プレイヤがコントローラ7の乾電池の交換や充電池の再充電を終えるまで、不本意にゲームが進んでしまうことがない。
【0106】
また、コントローラ7の電池残量および無線通信の切断状況を連携させてコントローラ7の電池切れを判定することによって、以下のような効果が期待できる。上述したような無線通信によってゲーム装置本体5を操作するコントローラ7を用いる場合、一般的に当該無線通信を行うための電池消費量が大きいために、電池残量が低下すると最初に無線通信に対する不具合(例えば、一時的な無線通信の切断)が生じやすい。したがって、コントローラ7の電池残量に対する判定基準は、上記無線通信機能を考慮して設定することになる。一方、コントローラ7とゲーム装置本体5との距離に応じて両者の無線通信が可能となる電池電圧が変化する等、操作環境や装置バラツキ等によって上記無線通信機能を確保できる電池残量を固定することは難しい。
【0107】
例えば、コントローラ7の電池残量データのみを用いてコントローラ7の電池切れを判定する場合、無線通信機能の確保を優先にすると、まだコントローラ7とゲーム装置本体5との無線通信が充分可能である状態にあるのに電池切れ判定をすることがあり、電池使用に対して無駄が生じる。また、コントローラ7における電池電圧チェックや電池電圧データの送受信を頻繁に行うことが必要となり、無線通信帯域の圧迫、処理負荷や電池消費の悪化を招くことになる。一方、コントローラ7の無線通信機能が停止するレベルを電池残量データに対する判定基準に設定すると、電池切れ判定後に無線通信の復旧が期待できない。したがって、上述したような動作が不可能となり、最終的な電池電圧確認結果をコントローラ7からゲーム装置本体5へ送信できない事態が発生することも考えられる。
【0108】
また、コントローラ7とゲーム装置本体5との無線通信状況のみを用いてコントローラ7の電池切れを判定する場合、上述したように電池切れ以外の原因で無線通信が切断されることもあるために電池切れの判定が非常に困難である。
【0109】
一方、本実施形態に係るゲーム装置3では、コントローラ7の電池残量が閾値以下に低下したことを確認しながら、その低下が現在の操作環境下で複数回無線通信の切断(所定期間内の断続的な切断)が起こりえるレベルであることを確認している。このように、無線通信の切断が発生したこと、かつ、所定値以下に電池残量が低下したことを条件にコントローラ7の電池残量が不足していると判定するので、現在の使用環境に合わせたコントローラ7の電力の不足を適切に判断することができる。上述したように、電池残量だけにより電力不足と判断すると、ハードウェアの個体差や使用状況により電池がまだ残っているのに使用できないこととなり、無線通信の切断により電力不足と判断すると、周囲環境により電池が十分に残っていても使えないことになる。例えば、コントローラ7とゲーム装置本体5との距離が短いとき、比較的低い電池電圧でも無線通信が可能となるが、このような環境で操作しているときはその環境で必要な電池電圧を安定して確保できなくなるまで、効率的に電池を使用することができる。
【0110】
また、本実施形態に係るゲーム装置3は、コントローラ7における電池電圧チェックや電池電圧データの送受信をゲーム処理周期毎に行わず、初期設定時と無線通信の切断が行われたタイミングとでのみ行うため、無線通信帯域の圧迫、処理負荷およびコントローラ7の電池消費を軽減することができる。しかしながら、このような効果を期待しない場合、コントローラ7における電池電圧チェックや電池電圧データの送受信を所定周期毎等、適宜繰り返して行ってもかまわない。
【0111】
なお、コントローラ7における電池電圧チェックや電池電圧データの送受信を、適宜繰り返して行う場合、コントローラ7とゲーム装置本体5との間の無線通信が継続的に切断されても、上述した電池残量の低下の報知を行うことができる。例えば、CPU30は、上記ステップ56において、無線通信が所定期間以上復旧しない場合、無線通信が継続的な切断状態であると判断する。そして、CPU30は、無線通信が継続的な切断状態であり、かつ、取得した最新の電池電圧データが所定値以下の電池残量を示すものであるとき、上記ステップ55における電池切れ表示処理を行う。この場合、モニタ2には、無線切断を報知する画像(図8参照)が表示された後、所定期間後に電池切れを報知して電池交換を促す画像が表示されることになる。この電池切れ判定方法によって、継続的な切断がコントローラ7の電池残量不足による無線通信の障害であることを適切に判断することができる。
【0112】
なお、上述した処理動作の上記ステップ11において、初期処理としてコントローラ7の電池残量確認を行っている。この初期的な電池残量確認によって、ゲーム装置本体5に接続されている全てのコントローラ7に対する電池電圧データが初期的に取得できる。したがって、無線通信の切断が生じて電池残量の確認を報知されたコントローラ7のプレイヤがHOMEボタンメニューを表示したときに、他のコントローラ7を含めて全てのコントローラ7に対する電池残量を示す電池残量確認画像を表示することができる。しかしながら、このような効果を期待しない場合、初期処理ではコントローラ7の電池残量確認を行わなくてもかまわない。例えば、無線通信の切断が生じて電池残量の確認を報知されたコントローラ7の電池残量のみを示す電池残量確認画像をHOMEボタンメニューに表示する場合、無線通信の切断が生じたときのみ電池残量確認を行えば、本発明を実現することができる。
【0113】
また、上述した実施形態では、電池電圧の確認をコントローラ7側で行い、電池残量を示す5段階評価および電池切れフラグの設定をゲーム装置本体5側で行ったが、他の態様で各動作を行ってもかまわない。例えば、電池電圧の確認、電池残量を示す5段階評価、および電池切れフラグの設定を全てコントローラ7側で行ってもかまわない。この場合、コントローラ7から電池切れフラグを示すデータがゲーム装置本体5へ送信される。また、電池電圧の確認および電池残量を示す5段階評価をコントローラ7側で行い、電池切れフラグの設定をゲーム装置本体5側で行ってもかまわない。この場合、コントローラ7から電池残量を示す5段階評価(電池残量データ)がゲーム装置本体5へ送信される。さらに、上記電池残量を示す5段階評価を省略してもかまわない。この場合、電池電圧の確認をコントローラ7側で行い、送信された電池電圧データを用いてゲーム装置本体5側で直接電池切れフラグの設定を行う。また、上記電池残量を示す5段階評価を省略し、電池電圧の確認および電池切れフラグの設定をコントローラ7側で行ってもかまわない。この場合、コントローラ7から電池切れフラグを示すデータがゲーム装置本体5へ送信される。
【0114】
また、上述した説明では、コントローラ7の電池切れ状態にあることを示す画像をモニタ2に表示してプレイヤに報知したが、他の方法を用いてプレイヤに報知してもかまわない。例えば、コントローラ7の電池切れ状態にあることを示す音声や効果音を、モニタ2のスピーカ2aやコントローラ7のスピーカ706等、ゲーム装置本体5が音声出力制御可能なスピーカから発生させて、プレイヤに報知してもかまわない。
【0115】
また、上述した説明では、本発明の電池残量確認処理を実行するゲーム装置本体5をゲームシステム1に適用した例を説明したが、一般的なパーソナルコンピュータ等の情報処理装置にも適用することができる。
【0116】
また、上述したコントローラ7の形状や、それらに設けられている操作部72の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。
【0117】
また、本発明のゲームプログラムは、光ディスク4等の外部記憶媒体を通じてゲーム装置本体5に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置本体5に供給されてもよい。また、ゲームプログラムは、ゲーム装置本体5内部の不揮発性記憶装置に予め記録されていてもよい。なお、ゲームプログラムを記憶する情報記憶媒体としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体の他に、不揮発性半導体メモリでもよい。
【産業上の利用可能性】
【0118】
本発明に係るゲームプログラムおよびゲーム装置は、入力装置における電池切れを適切に判定することができ、無線通信を用いてゲーム装置本体等と入力装置等とが接続されるゲーム装置やゲームプログラムとして有用である。
【図面の簡単な説明】
【0119】
【図1】本発明の一実施形態に係るゲームシステム1を説明するための外観図
【図2】図1のゲーム装置本体5の機能ブロック図
【図3】図1のコントローラ7の上面後方から見た斜視図
【図4】図3のコントローラ7を下面前方から見た斜視図
【図5】図3のコントローラ7の上筐体を外した状態を示す斜視図
【図6】図4のコントローラ7の下筐体を外した状態を示す斜視図
【図7】図3のコントローラ7の構成を示すブロック図
【図8】無線切断状態になったときにモニタ2の表示画面に表示される画像の一例を示す図
【図9】電池電圧不足に起因して無線切断状態になったときにモニタ2の表示画面に表示される画像の一例を示す図
【図10】プレイヤがHOMEボタンを押下したときにモニタ2の表示画面に表示される電池残量確認画像の一例を示す図
【図11】ゲーム装置本体5のメインメモリ33に記憶される主なデータを示す図
【図12】ゲーム装置本体5において実行される電池残量確認処理の流れを示すフローチャート
【図13】図12におけるステップ15のバッテリーカウンタ更新処理の詳細な動作を示すサブルーチン
【図14】図12におけるステップ16の中断解除処理の詳細な動作を示すサブルーチン
【図15】図12におけるステップ19の無線切断処理の詳細な動作を示すサブルーチン
【図16】図15におけるステップ57のバッテリーチェック処理の詳細な動作を示すサブルーチン
【符号の説明】
【0120】
1…ゲームシステム
2…モニタ
2a、706…スピーカ
3…ゲーム装置
30…CPU
31…メモリコントローラ
32…GPU
33…メインメモリ
34…DSP
35…ARAM
36…コントローラI/F
37…ビデオI/F
38…フラッシュメモリ
39…オーディオI/F
40…ディスクドライブ
41…ディスクI/F
4…光ディスク
5…ゲーム装置本体
6…通信ユニット
7…コントローラ
71…ハウジング
72…操作部
73…コネクタ
74…撮像情報演算部
741…赤外線フィルタ
742…レンズ
743…撮像素子
744…画像処理回路
75…通信部
751…マイコン
752…メモリ
753…無線モジュール
754…アンテナ
700…基板
701…加速度センサ
702…LED
703…水晶振動子
704…バイブレータ
707…サウンドIC
708…アンプ
709…端子
8…マーカ
【技術分野】
【0001】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、無線通信を用いてゲーム装置本体と接続される入力装置を用いたゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
従来、無線通信を用いてゲーム装置本体と接続される入力装置を用いたゲーム装置が開発されている(例えば、非特許文献1参照)。
【0003】
上記非特許文献1に記載されている入力装置は、無線通信を用いてゲーム装置本体と接続される。一般的に、当該入力装置を含めゲーム装置本体と無線通信で接続される入力装置は、ゲーム装置本体からの電源供給を受けることができないため、入力装置内に電源として乾電池や充電池を内蔵している。しかしながら、乾電池や充電池から行える電源供給には寿命があり、寿命に達した、すなわち電池切れが生じた際には、内蔵する乾電池を新たな乾電池に取り替えるか、内蔵する充電池の再充電を行う必要がある。そのため、上記非特許文献1に記載された入力装置は、プレイヤがパワースイッチをONにすると入力装置に設けられたパワーランプが点灯し、乾電池の消耗に伴ってパワーランプが徐々に暗くなることで、プレイヤに電池交換の必要性を報知する。そして、当該入力装置は、乾電池の残量がある程度残っているうちに新たな乾電池に交換することを、プレイヤに促している。
【非特許文献1】「ニンテンドーゲームキューブ ワイヤレスコントローラ ウェーブバード 取扱説明書」、任天堂株式会社、発売日:2002年12月5日
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、ゲーム装置でゲームを行うプレイヤは、自身が把持する入力装置を目視することは少なく、表示装置に表示されたゲーム画像を見ながらゲームをプレイする。つまり、上記非特許文献1に記載された入力装置を用いても、プレイヤが電池の消耗に伴ってパワーランプが徐々に暗くなっていることに気付かずにプレイを続行してしまう。したがって、入力装置に内蔵する電池の寿命が尽き、ゲーム装置本体と入力装置とが無線通信不可能でゲームの操作を行えない状態になったときに、プレイヤが電池切れに気付くことが多い。この場合、プレイヤが電池切れに気付いたときにはゲーム装置本体との無線通信を満足に行えないため、進行中のゲームを中断する指示等を行うことができず、プレイヤが入力装置の乾電池の交換や充電池の再充電を終えるまで、不本意にゲームが進んでしまうことがある。
【0005】
それ故に、本発明の目的は、入力装置における電池切れを適切に判断することができるゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0006】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【0007】
第1の発明は、無線通信機能を含む電子回路と当該電子回路に電力を供給する電池とを有する入力装置(7)が無線通信可能に接続されるゲーム装置(5)のコンピュータ(30)で実行されるゲームプログラムである。ゲームプログラムは、切断検出手段(ステップ18を実行するCPU30、以下、単にステップ番号のみ記載する)、電池残量データ取得手段(S57)、電力不足判定手段(S53)、および報知手段(S55)として、コンピュータを機能させる。切断検出手段は、入力装置とゲーム装置との間の無線通信の、継続的な切断、断続的な切断、および一時的な切断の少なくともいずれか1つの切断を検出する。電池残量データ取得手段は、入力装置の電池残量を示す電池残量データ(電池電圧データ)を無線通信を介して取得する。電力不足判定手段は、切断検出手段により無線通信の切断を検出したこと、かつ、電池残量データ取得手段により取得した電池残量データが所定値以下(低レベル以下、2.40V未満)の電池残量を示すものであることに応じて、入力装置の電力が不足していると判定する。報知手段は、電力不足判定手段により電力が不足していると判定されたとき、その旨を報知する(図9)。
【0008】
第2の発明は、上記第1の発明において、切断検出手段は、入力装置とゲーム装置との間の無線通信の一時的な切断を検出するものである。電池残量データ取得手段は、切断検出手段による一時的な切断を検出した直後にのみ、入力装置から電池残量データを取得する(S66)。
【0009】
第3の発明は、上記第1または第2の発明において、電力不足判定手段は、切断検出手段による無線通信の一時的な切断を検出し、電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであり、さらに、当該一時的な切断の後の所定期間内に切断検出手段による2度目の切断が検出されたとき(S15、S53、S59)、入力装置の電力が不足していると判定する。
【0010】
第4の発明は、上記第1の発明において、切断検出手段は、入力装置とゲーム装置との間の無線通信の所定期間における断続的な切断を検出するものである。電力不足判定手段は、切断検出手段による無線通信の断続的な切断を検出し、かつ、電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、入力装置の電力が不足していると判定する。
【0011】
第5の発明は、上記第1の発明において、電池残量データ取得手段は、入力装置の電池残量を示す電池残量データを無線通信を介して適宜繰り返し取得する。電力不足判定手段は、切断検出手段による継続的な切断を検出し、かつ取得した最新の電池残量データが所定値以下の電池残量を示すものであることに応じて、入力装置の電力が不足していると判定する。
【0012】
第6の発明は、上記第1の発明において、報知手段は、電力不足判定手段によって電力不足と判定されたとき、実行中のゲーム処理を中断し、当該実行中のゲーム状況を示すゲーム状況データを当該ゲーム装置に備えるメモリ(33)に記憶するとともに、そのゲーム処理によるゲーム画面を停止させて表示装置(2)に表示することによって報知する(S51、S52)。
【0013】
第7の発明は、上記第1の発明において、報知手段は、ゲーム装置で実行中のゲームのゲーム画像を表示するための表示装置に、入力装置の電源の残量が不足していることを示す画像を表示する。
【0014】
第8の発明は、上記第1の発明において、報知手段は、ゲーム装置によって音声出力制御可能なスピーカ(2a、706)から、入力装置の電源の残量が不足していることを示す音声または効果音を出力する。
【0015】
第9の発明は、無線機能を含む電子回路と当該電子回路に対して電力を供給する電池とを有する入力装置が無線通信可能に接続されるゲーム装置である。ゲーム装置は、無線通信手段、切断検出手段、電池残量データ取得手段、電力不足判定手段、および報知手段を備える。無線通信手段は、入力装置と無線通信する。切断検出手段は、入力装置との間の無線通信の、継続的な切断、断続的な切断、および一時的な切断の少なくともいずれか1つの切断を検出する。電池残量データ取得手段は、入力装置の電池残量を示す電池残量データを無線通信手段を介して取得する。電力不足判定手段は、切断検出手段による無線通信の切断を検出したこと、かつ、電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、入力装置の電力が不足していると判定する。報知手段は、電力不足判定手段により電力が不足していると判定されたとき、その旨を報知する。
【発明の効果】
【0016】
第1の発明によれば、無線通信の切断が発生したこと、かつ、所定値以下に電池残量が低下したことを条件に入力装置の電池残量が不足していると判定するので、現在の使用環境に合わせた入力装置の電力の不足を適切に判断することができる。例えば、電池残量だけにより電力不足と判断すると、ハードウェアの個体差や使用状況により電池がまだ残っているのに使用できないこととなり、無線通信の切断により電力不足と判断すると、周囲環境により電池が十分に残っていても使えないことになる。
【0017】
上記第2の発明によれば、入力装置における電池残量確認を所定処理周期毎に行わず、無線通信が一時的に切断されたタイミングの直後にのみ行われるので、無線通信帯域の圧迫や処理負荷や入力装置の電力消費などを軽減することができる。
【0018】
上記第3の発明によれば、無線通信が一時的に切断されたことを検出し、その後の電池残量が所定値以下であり、さらに一時的な切断の後の所定期間内に再び切断が発生したことに応じて、入力装置の電力の不足を判定しているので、電池残量不足による無線通信の障害であることをより適切に判断することができる。
【0019】
上記第4の発明によれば、入力装置の電源残量が所定値以下に低下したことを確認し、その低下が現在の操作環境下で無線通信の切断が所定期間内に複数回起こるレベルであることを、入力装置の電源の不足を判定する基準としている。つまり、入力装置の電源残量の確認と所定時間内の無線通信の状況とを両立させて入力装置の電源不足を判定することによって、入力装置における電源不足を適切に判定することができる。
【0020】
上記第5の発明によれば、継続的な切断と、切断前の最新の電池残量が所定値以下であることにより、入力装置の電力の不足を判定しているので、電池残量不足による無線通信の障害であることを適切に判断することができる。
【0021】
上記第6の発明によれば、入力装置との間の無線通信が切断されたとき、自動的にゲームが中断して、そのゲーム状況が記録保存されるため、プレイヤが入力装置の乾電池の交換や充電池の再充電等を終えるまで、不本意にゲームが進んでしまうことがない。
【0022】
上記第7の発明によれば、ゲーム進行を視認して楽しむ表示装置に電源不足を示す画像が表示されるため、プレイヤが入力装置の電力不足に気付かずにプレイを続行することはない。
【0023】
上記第8の発明によれば、電源不足を示す情報が音声や効果音で出力されるため、プレイヤが入力装置の電力不足に気付かずにプレイを続行することはない。
【0024】
また、本発明のゲーム装置によれば、上述したゲームプログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【0025】
図1を参照して、本発明の一実施形態に係るゲーム装置について説明する。以下、説明を具体的にするために、当該ゲーム装置の一例の据置型のゲーム装置を含むゲームシステムについて説明する。なお、図1は据置型のゲーム装置3を含むゲームシステム1の外観図であり、図2はゲーム装置本体5のブロック図である。以下、当該ゲームシステム1について説明する。
【0026】
図1において、ゲームシステム1は、表示手段の一例の家庭用テレビジョン受像機(以下、モニタと記載する)2と、当該モニタ2に接続コードを介して接続する据置型のゲーム装置3とから構成される。モニタ2は、ゲーム装置本体5から出力された音声信号を音声出力するためのスピーカ2aを備える。また、ゲーム装置3は、本願発明のゲームプログラムを記録した光ディスク4と、当該光ディスク4のゲームプログラムを実行してゲーム画面をモニタ2に表示出力させるためのコンピュータを搭載したゲーム装置本体5と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体5に与えるためのコントローラ7とを備えている。
【0027】
また、ゲーム装置本体5は、通信ユニット6を内蔵する。通信ユニット6は、コントローラ7から無線送信されるデータを受信し、ゲーム装置本体5からコントローラ7へデータを送信して、コントローラ7とゲーム装置本体5とを無線通信によって接続する。さらに、ゲーム装置本体5には、当該ゲーム装置本体5に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。ゲーム装置本体5の前部主面には、当該ゲーム装置本体5の電源ON/OFFスイッチ、ゲーム処理のリセットスイッチ、光ディスク4を脱着する投入口、およびゲーム装置本体5の投入口から光ディスク4を取り出すイジェクトスイッチ等が設けられている。
【0028】
また、ゲーム装置本体5には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ38が搭載される。ゲーム装置本体5は、光ディスク4に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ2に表示する。さらに、ゲーム装置本体5は、フラッシュメモリ38に記憶されたセーブデータを用いて、過去に実行されたゲーム状況を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置本体5のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
【0029】
コントローラ7は、通信ユニット6を内蔵するゲーム装置本体5へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて操作情報等の送信データを無線送信する。コントローラ7は、主にモニタ2の表示画面に表示されるゲーム空間に登場するプレイヤキャラクタ等を操作したりするための操作手段である。コントローラ7は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン(十字キーやスティック等を含む)が設けられている。また、後述により明らかとなるが、コントローラ7は、当該コントローラ7から見た画像を撮像する撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール(以下、マーカと記載する)8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって例えば赤外光を出力する。また、コントローラ7は、ゲーム装置本体5の通信ユニット6から無線送信された送信データを通信部75で受信して、当該送信データに応じた音や振動を発生させることもできる。
【0030】
図2において、ゲーム装置本体5は、各種プログラムを実行する例えばCPU(セントラルプロセッシングユニット)30を備える。CPU30は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ33等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU30には、メモリコントローラ31を介して、GPU(Graphics Processing Unit)32、メインメモリ33、DSP(Digital Signal Processor)34、およびARAM(Audio RAM)35などが接続される。また、メモリコントローラ31には、所定のバスを介して、通信ユニット6、ビデオI/F(インターフェース)37、フラッシュメモリ38、オーディオI/F39、およびディスクI/F41が接続され、それぞれのインターフェースにモニタ2、スピーカ2a、およびディスクドライブ40が接続されている。
【0031】
GPU32は、CPU30の命令に基づいて画像処理を行うものあり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU32は、図示しない画像処理専用のメモリやメインメモリ33の一部の記憶領域を用いて画像処理を行う。GPU32は、これらを用いてモニタ2に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ31およびビデオI/F37を介してモニタ2に出力する。
【0032】
メインメモリ33は、CPU30で使用される記憶領域であって、CPU30の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ33は、CPU30によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ33に記憶されたゲームプログラムや各種データ等が、CPU30によって実行される。
【0033】
DSP34は、ゲームプログラム実行時にCPU30において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM35が接続される。ARAM35は、DSP34が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP34は、ARAM35に記憶されたサウンドデータを読み出し、メモリコントローラ31およびオーディオI/F39を介してモニタ2に備えるスピーカ2aに出力させる。
【0034】
メモリコントローラ31は、データ転送を統括的に制御するものであり、上述した各種I/Fが接続される。上述したように通信ユニット6は、コントローラ7からの送信データを受信し、当該送信データをCPU30へ出力する。また、通信ユニット6は、CPU30から出力された送信データをコントローラ7の通信部75へ送信する。ビデオI/F37には、モニタ2が接続される。オーディオI/F39にはモニタ2に内蔵されるスピーカ2aが接続され、DSP34がARAM35から読み出したサウンドデータやディスクドライブ40から直接出力されるサウンドデータをスピーカ2aから出力可能に接続される。ディスクI/F41には、ディスクドライブ40が接続される。ディスクドライブ40は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置本体5のバスやオーディオI/F39に出力する。
【0035】
図3および図4を参照して、コントローラ7について説明する。なお、図3は、コントローラ7の上面後方から見た斜視図である。図4は、コントローラ7を下面前方から見た斜視図である。
【0036】
図3および図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【0037】
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【0038】
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に4つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記4つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、4つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティック(いわゆる、ジョイスティック)を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー72aの代わりに設けてもかまわない。
【0039】
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、1番ボタン、2番ボタン、およびAボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、マイナスボタン、ホーム(HOME)ボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン72a〜72gは、ゲーム装置本体5が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図3に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0040】
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置本体5の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0041】
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7から通信ユニット6へ送信データを送信する際、上記コントローラ種別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。また、LED702は、コントローラ7に取り付けられている電池残量を示すこともできる。具体的には、後述するコントローラ7に内蔵されるAD(Analog to Digital)コンバータによる電池電圧計測結果に応じて、複数のLED702のうち、電池電圧に対応するLEDが点灯する。例えば、電池電圧が最大のときに全てのLED702を点灯させ、電池電圧が低下することに応じてLED702が点灯する数や明るさを漸減的に減少させて、電池電圧が最小のときに全てのLED702を消灯する。
【0042】
また、ハウジング71上面には、操作ボタン72bおよび操作ボタン72e〜72gの間に後述するスピーカ(図5のスピーカ706)からの音を外部に放出するための音抜き孔が形成されている。
【0043】
一方、ハウジング71下面には、凹部が形成されている。ハウジング71下面の凹部は、プレイヤがコントローラ7の前面をマーカ8Lおよび8Rに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部である。
【0044】
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コントローラ7が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコントローラ7の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング70の後面には、コネクタ73が設けられている。コネクタ73は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【0045】
次に、図5および図6を参照して、コントローラ7の内部構造について説明する。なお、図5は、コントローラ7の上筐体(ハウジング71の一部)を外した状態を後面側から見た斜視図である。図6は、コントローラ7の下筐体(ハウジング71の一部)を外した状態を前面側から見た斜視図であり、内蔵する電池を取り外した状態を示している。ここで、図6に示す基板700は、図5に示す基板700の裏面から見た斜視図となっている。
【0046】
図5において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751等(図6、図7参照)に接続される。また、図示しない無線モジュール753(図7参照)およびアンテナ754によって、コントローラ7がワイヤレスコントローラとして機能する。なお、ハウジング71内部には図示しない水晶振動子703が設けられており、後述するマイコン751の基本クロックを生成する。また、基板700の上主面上に、スピーカ706およびアンプ708が設けられる。また、加速度センサ701は、操作ボタン72dの左側の基板700上(つまり、基板700の中央部ではなく周辺部)に設けられる。したがって、加速度センサ701は、コントローラ7の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分が含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ7の回転を良好な感度でゲーム装置本体5等が判定することができる。
【0047】
一方、図6において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コントローラ7の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられ、下主面中央部に電池を取り付ける端子709が設けられている。さらに、基板700の下主面上にサウンドIC707およびマイコン751が設けられている。サウンドIC707は、基板700等に形成された配線によってマイコン751およびアンプ708と接続され、ゲーム装置本体5から送信されたサウンドデータに応じてアンプ708を介してスピーカ706に音声信号を出力する。
【0048】
そして、基板700の下主面上には、バイブレータ704が取り付けられる。バイブレータ704は、例えば振動モータやソレノイドである。バイブレータ704は、基板700等に形成された配線によってマイコン751と接続され、ゲーム装置本体5から送信された振動データに応じてその作動をオン/オフする。バイブレータ704が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ704は、ハウジング71のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング71が大きく振動することになり、振動を感じやすくなる。
【0049】
次に、図7を参照して、コントローラ7の内部構成について説明する。なお、図7は、コントローラ7の構成を示すブロック図である。
【0050】
図7において、コントローラ7は、上述した操作部72、撮像情報演算部74、加速度センサ701、バイブレータ704、スピーカ706、サウンドIC707、およびアンプ708の他に、その内部に通信部75を備えている。
【0051】
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コントローラ7の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コントローラ7のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。
【0052】
コントローラ7は、3軸(X、Y、Z軸)の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向(図3に示すY軸)、左右方向(図3に示すX軸)、および前後方向(図3に示すZ軸)で直線加速度を検知する。例えば、これらの加速度センサ701は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であることが好ましい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて、加速度センサ701が提供されてもよい。
【0053】
加速度センサ701に用いられるような加速度検出手段は、加速度センサ701の持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701からの直接の出力は、それら3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【0054】
しかしながら、加速度センサ701から出力される加速度の信号に対して追加の処理を行うことによって、コントローラ7に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、静的な加速度(重力加速度)が検知されると、加速度センサ701からの出力を用いて、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象(コントローラ7)の傾きを判定することができる。このように、加速度センサ701をマイコン751(またはゲーム装置本体5に含まれるCPU30等の他のプロセッサ)と組み合わせて用いることによって、コントローラ7の傾き、姿勢、または位置を判定することができる。同様に、加速度センサ701を備えるコントローラ7がプレイヤの手で動的に加速されて動かされる場合に、加速度センサ701によって生成される加速度信号を処理することによって、コントローラ7の様々な動きおよび/または位置を算出することができる。他の実施例では、加速度センサ701は、信号をマイコン751に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサ701が静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。加速度センサ701でそれぞれ検知された加速度を示すデータは、通信部75に出力される。
【0055】
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、ADコンバータを含んでおり、操作部72、加速度センサ701、および撮像情報演算部74からそれぞれ出力されるアナログ信号をデジタル信号に変換して送信データを生成する。ここで、本実施形態では、マイコン751に含まれるADコンバータを用いてコントローラ7に取り付けられる電池電圧を計測しており、適宜電池電圧を計測して当該電池電圧を示すデジタルデータも送信データとして送信される。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置本体5からのデータに応じて、サウンドIC707およびバイブレータ704の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置本体5から送信されたサウンドデータ等を処理する。また、マイコン751は、通信部75を介してゲーム装置本体5から送信された振動データ(例えば、バイブレータ704をONまたはOFFする信号)等に応じて、バイブレータ704を作動させる。
【0056】
コントローラ7に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの3軸方向の加速度信号(X、Y、およびZ軸方向加速度データ)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ)を通信ユニット6へ送信する送信データとして一時的にメモリ752に格納する。ここで、通信部75から通信ユニット6への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥース(登録商標)で構成される通信部75の送信間隔は5msである。マイコン751は、通信ユニット6への送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ754から放射する。つまり、コントローラ7に設けられた操作部72からのキーデータ、加速度センサ701からのX、Y、およびZ軸方向加速度データ、および撮像情報演算部74からの処理結果データがコントローラ7から送信される。そして、ゲーム装置本体5の通信ユニット6でその電波信号を受信し、ゲーム装置本体5で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、X、Y、およびZ軸方向加速度データ、および処理結果データ)を取得する。そして、ゲーム装置本体5のCPU30は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Bluetooth(登録商標)の技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【0057】
また、マイコン751は、ゲーム装置本体5からの要求に応じて、コントローラ7の電池電圧を示す電池電圧データも送信データとして一時的にメモリ752に格納する。そして、上記操作情報と同様に、マイコン751は、通信ユニット6への送信タイミングが到来すると、メモリ752に格納されている電池電圧データを出力し、無線モジュール753を介してアンテナ754からゲーム装置本体5へ送信する。
【0058】
なお、後述により明らかとなるが、本発明のゲームプログラムでは、上記送信データとして送信する各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ)のうち、少なくともキーデータおよび電池電圧データのみ送信されれば実現することができる。この場合、加速度センサ701や撮像情報演算部74がコントローラ7に搭載されていなくてもかまわない。また、コントローラ7から音声を出力するための機能(スピーカ706、アンプ708、サウンドIC707)やコントローラ7を振動させるための機能(バイブレータ704)もコントローラ7に搭載されていなくてもかまわない。
【0059】
次に、ゲーム装置本体5が行う具体的な処理を説明する前に、図8〜図10を参照して本ゲーム装置本体5で行う電池残量確認処理の概要について説明する。なお、図8は、無線切断状態になったときにモニタ2の表示画面に表示される画像の一例を示す図である。図9は、電池電圧不足に起因して無線切断状態になったときにモニタ2の表示画面に表示される画像の一例を示す図である。図10は、プレイヤがHOMEボタン(操作ボタン72f)を押下したときにモニタ2の表示画面に表示される電池残量確認画像の一例を示す図である。
【0060】
図8において、コントローラ7とゲーム装置本体5との間の無線通信が途切れた場合、両者の無線通信の復旧を促す報知がモニタ2に表示される。図8に示した報知例では、プレイ中のゲームが自動的に中断され、「リモコンをつなぎなおします。Aボタンを押してください。」と無線通信の復旧を促す文章が表示される。ここで、コントローラ7とゲーム装置本体5との間の無線通信が途切れる状態は、コントローラ7に取り付けられた電池残量が低下したときの他に、無線通信ができない位置にコントローラ7が移動したとき、他の通信等に起因するノイズやゲーム装置本体5とコントローラ7との間の障害物等によって当該無線通信が妨害されるとき等がある。
【0061】
図9において、コントローラ7の電池電圧不足に起因してコントローラ7とゲーム装置本体5との間の無線通信が途切れた場合、電池残量が低下してきたことを報知して電池残量の確認を促す報知がモニタ2に表示される。図9に示した報知例では、プレイ中のゲームが自動的に中断され、「電池が減ってきました。Aボタンでリモコンをつなぎなおして、HOMEボタンメニュー画面で電池の残量を確認してください。」と電池残量が低下したことを報知し電池残量の確認を促す文章が表示される。
【0062】
なお、後述により明らかとなるが、モニタ2に無線通信の復旧を促す画像(図8)や電池残量の確認を促す画像(図9)は、実行中のゲーム処理を中断して表示される。したがって、ゲーム処理によるゲーム画面を停止させて、これらの文字画像の背景としてもかまわない。この場合、コントローラ7の電力が不足している旨を示す文字が、中断して停止したゲーム画像上に重畳してモニタ2に表示される。
【0063】
図10において、プレイヤがHOMEボタン(操作ボタン72f)を押下したとき、HOMEボタンメニューが表示される。HOMEボタンメニューでは、現在ゲーム装置本体5との間で無線通信が行われている各コントローラ7の電池残量が表示される。例えば、図10の例では、2つのコントローラ7(1プレイヤ(1P)および2プレイヤ(2P))がそれぞれゲーム装置本体5との間で無線通信を行っている。そして、1Pのコントローラ7に取り付けられた電池の残量が、電池残量確認画像BV1で示されている。また、2Pのコントローラ7に取り付けられた電池の残量が、電池残量確認画像BV2で示されている。ここで、電池残量確認画像BV2は、2Pのコントローラ7の電池残量が5段階表示の最高段階(例えば、電池電圧が2.60V以上)にあることを示しており、電池残量の低下がないことを示している。一方、電池残量確認画像BV1は、1Pのコントローラ7の電池残量が5段階表示の下位から2段階目(例えば、電池電圧が2.12V以上2.40V未満)にあることを示しており、電池交換(充電)時期であることを示している。
【0064】
次に、ゲームシステム1において行われる電池残量確認処理の詳細を説明する。まず、図11を参照して、電池残量確認処理において用いられる主なデータについて説明する。なお、図11は、ゲーム装置本体5のメインメモリ33に記憶される主なデータを示す図である。
【0065】
図11に示すように、メインメモリ33には、キーデータDa、電池電圧データDb、電池残量データDc、電池切れフラグDd、バッテリーカウンタデータDe、チェックタイマーデータDf、ゲーム状況データDg、および画像データDh等が記憶される。なお、メインメモリ33には、図11に示す情報に含まれるデータの他、ゲーム処理に用いられるプレイヤキャラクタや他のオブジェクト等に関するデータや仮想ゲーム空間に関するデータ等、処理に必要なデータが記憶される。
【0066】
キーデータDaは、コントローラ7から送信データとして送信されてくる一連の操作情報に含まれるキーデータである。なお、ゲーム装置本体5に内蔵される通信ユニット6は、コントローラ7から所定間隔(例えば5ms毎)に送信される操作情報を受信し、通信ユニット6に備える図示しないバッファに蓄える。その後、ゲーム処理間隔である1フレーム毎(1/60秒)に読み出されてメインメモリ33のキーデータDaが更新される。なお、コントローラ7から送信データとして送信されてくる一連の操作情報には、上述のキーデータの他に、処理結果データや加速度データが含まれるが、後述するフローチャートではこれらのデータを利用しない態様を示す。
【0067】
電池電圧データDbは、コントローラ7から送信データとして送信されてくる電池電圧データである。上述したように、コントローラ7のマイコン751は、ゲーム装置本体5からの要求に応じて、コントローラ7の電池電圧を示す電池電圧データも送信データとして送信している。そして、電池電圧データDbは、コントローラ7毎に管理され、受信した電池電圧データにそれぞれ更新される。例えば、コントローラ7から送信される電池電圧データは、電池電圧が2.1V〜3.6V間の何れの値であるのかを示すデータであり、電池電圧2.1Vを0、電池電圧3.6Vを255とした256階調で表現される値で示されている。
【0068】
電池残量データDcは、受信したコントローラ7毎の電池電圧データに基づいて、電池残量をそれぞれ複数段階(例えば、5段階)に分別して評価したデータである。例えば、電池残量データは、最高レベル(MAX;2.60V以上)、高レベル(HIGH;2.50V以上)、中レベル(MEDIUM;2.40V以上)、低レベル(LOW;2.12V以上)、および危険レベル(CRITICAL;2.12V未満)の5段階に上記電池電圧データが分別される。
【0069】
電池切れフラグDdは、各コントローラ7の電池残量が電池交換や再充電が必要なレベルか否かを示す電池切れフラグFLBを示すデータである。例えば、電池切れフラグFLBは、コントローラ7の電池残量が上記低レベルまたは危険レベルである場合、ONに設定される。また、電池切れフラグFLBは、コントローラ7の電池残量が上記最高レベル、高レベル、または中レベルである場合、OFFに設定される。
【0070】
バッテリーカウンタデータDeは、後述する処理ループ毎に更新されるバッテリーカウンタBCのカウント値であり、コントローラ7の電池切れに起因して無線切断が複数回生じているか判断するためのデータである。チェックタイマーデータDfは、後述する処理ループ毎に更新されるチェックタイマーCTのカウント値であり、コントローラ7に電池電圧データを再要求する周期を制御するためのデータである。
【0071】
ゲーム状況データDgは、ゲームが中断された際に、そのゲーム状況が記憶保存されるゲームデータである。画像データDhは、無線切断表示画像データDh1、電池切れ表示画像データDh2、および電池残量画像データDh3等を含む。無線切断表示画像データDh1は、コントローラ7とゲーム装置本体5との間の無線通信が途切れた場合に、無線通信の復旧を促すための報知画像(図8参照)を生成するためのデータである。電池切れ表示画像データDh2は、コントローラ7の電池電圧不足に起因してコントローラ7とゲーム装置本体5との間の無線通信が途切れた場合に、電池残量が低下してきたことを報知して電池残量の確認を促す報知画像(図9参照)を生成するためのデータである。電池残量画像データDh3は、HOMEボタンメニューに表示される電池残量確認画像BV1〜BV4(図10参照)を生成するためのデータである。
【0072】
次に、図12〜図16を参照して、ゲーム装置本体5において行われる電池残量確認処理の詳細を説明する。なお、図12は、ゲーム装置本体5において実行される電池残量確認処理の流れを示すフローチャートである。図13は、図12におけるステップ15のバッテリーカウンタ更新処理の詳細な動作を示すサブルーチンである。図14は、図12におけるステップ16の中断解除処理の詳細な動作を示すサブルーチンである。図15は、図12におけるステップ19の無線切断処理の詳細な動作を示すサブルーチンである。図16は、図15におけるステップ57のバッテリーチェック処理の詳細な動作を示すサブルーチンである。なお、図12〜図16に示すフローチャートにおいては、ゲーム処理のうち、電池残量確認処理について主に説明し、本願発明と直接関連しない他のゲーム処理については詳細な説明を省略する。また、図12〜図16では、CPU30が実行する各ステップを「S」と略称する。また、図12〜図16に示すフローチャートは、ゲーム装置本体5に複数のコントローラ7が無線接続されているときはコントローラ7毎にそれぞれ動作するが、以下の説明では、1つのコントローラ7が接続されている例を用いる。
【0073】
ゲーム装置本体5の電源が投入されると、ゲーム装置本体5のCPU30は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ33等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリ33に読み込まれ、CPU30によって当該ゲームプログラムの実行が開始される。図12〜図16に示すフローチャートは、以上の処理が完了した後に行われる電池残量確認処理を示すフローチャートである。
【0074】
図12において、CPU30は、電池残量確認処理の初期処理を行い(ステップ11)、処理を次のステップに進める。例えば、CPU30は、バッテリーカウンタBCのカウント値を0に設定してバッテリーカウンタデータDeを更新する。また、CPU30は、コントローラ7との間で無線接続を確立して、コントローラ7から当該コントローラ7に関する情報(コントローラID、電池電圧データ等)を取得する。そして、CPU30は、取得した電池電圧データを用いて電池残量データを算出して、電池電圧データDbおよび電池残量データDcに格納する。例えば、CPU30は、取得した電池電圧データが示す256階調の電池電圧値を、上記5段階に分別して電池残量レベルを設定して電池残量データとする。
【0075】
次に、CPU30は、一連の操作情報を取得してゲーム処理を行って(ステップ12)、処理を次のステップに進める。例えば、CPU30は、コントローラ7から送信された一連の操作情報を取得して、メインメモリ33に格納する。そして、CPU30は、コントローラ7から取得して更新されたキーデータDa等に応じて、仮想ゲーム空間に登場するプレイヤキャラクタを動作させて、当該仮想ゲーム空間をモニタ2に表示する。なお、ステップ12で実行するゲーム処理は、プレイヤがプレイするゲームに応じて様々な処理が行われるが、ここでは詳細な説明を省略する。
【0076】
次に、CPU30は、プレイヤがコントローラ7のHOMEボタンを押下したか否かを判断する(ステップ13)。例えば、CPU30は、キーデータDaを参照して、プレイヤがコントローラ7のHOMEボタンを押下したことを示すキーデータを受信しているか否かを判断する。そして、CPU30は、HOMEボタンが押下された場合、次のステップ14に処理を進める。一方、CPU30は、HOMEボタンが押下されていない場合、次のステップ15に処理を進める。
【0077】
ステップ14において、CPU30は、現在処理中のゲームを中断して、HOMEボタンメニュー(図10参照)をモニタ2に表示し、次のステップ15に処理を進める。例えば、CPU30は、ゲームを中断するとき、そのゲーム状況をゲーム状況データDgに格納する。また、CPU30は、HOMEボタンメニューをモニタ2に表示する際、現在のコントローラ7の電池残量を示す電池残量確認画像BV1〜BV4をモニタ2に表示する。ここで、電池残量確認画像BV1〜BV4は、電池残量データDcに格納されている各コントローラ7の電池残量(例えば、電池残量が複数段階に分別されたレベルデータ)を参照して、それらの電池残量が表示される。ここで、ゲーム装置本体5に接続されていないコントローラ7については、その電池残量がブランク(例えば、図10の電池残量確認画像BV3およびBV4に示すような濃度が薄い電池マーク)で示される。プレイヤは、HOMEボタンを押下することによって、モニタ2の表示画面で自身が操作するコントローラ7や他のプレイヤが操作するコントローラ7の電池残量を確認することができる。
【0078】
ステップ15において、CPU30は、バッテリーカウンタ更新処理を行い、処理を次のステップに進める。以下、図13を参照して、バッテリーカウンタ更新処理の詳細な動作について説明する。
【0079】
図13において、CPU30は、バッテリーカウンタデータDeに格納されているバッテリーカウンタBCのカウント値を参照し、バッテリーカウンタBCのカウント値が0より大きい数値か否かを判断する(ステップ21)。そして、CPU30は、バッテリーカウンタBCのカウント値が0より大きい数値である場合、次のステップ22に処理を進める。一方、CPU30は、バッテリーカウンタBCのカウント値が0である場合、そのまま当該サブルーチンによる処理を終了する。
【0080】
ステップ22において、CPU30は、バッテリーカウンタデータDeに格納されているバッテリーカウンタBCのカウント値から1を減算して、バッテリーカウンタデータDeを更新し、当該サブルーチンによる処理を終了する。
【0081】
図12に戻り、ステップ15のバッテリーカウンタ更新処理の後、CPU30は、中断解除処理を行い、処理を次のステップに進める。以下、図14を参照して、中断解除処理の詳細な動作について説明する。
【0082】
図14において、CPU30は、現在ゲームが中断中であるか否かを判断する(ステップ41)。そして、CPU30は、ゲームが中断中である場合、次のステップ42に処理を進める。一方、CPU30は、ゲームが中断中でない場合、そのまま当該サブルーチンによる処理を終了する。
【0083】
ステップ42において、プレイヤがゲーム中断を解除する解除ボタンを押下したか否かを判断する。例えば、CPU30は、キーデータDaを参照して、プレイヤがコントローラ7の解除ボタン(操作部72の何れかであり、ゲームが中断されているモードに応じて異なる操作ボタンであってもかまわない)を押下したことを示すキーデータを受信しているか否かを判断する。そして、CPU30は、解除ボタンが押下された場合、次のステップ43に処理を進める。一方、CPU30は、解除ボタンが押下されていない場合、そのまま当該サブルーチンによる処理を終了する。
【0084】
ステップ43において、CPU30は、ゲーム状況データDgに格納されているデータを読み出す。そして、CPU30は、読み出したゲーム状況データに基づいて、ゲーム再開処理を行って(ステップ44)、当該サブルーチンによる処理を終了する。例えば、CPU30は、上記ステップ43で読み出したゲーム状況データに基づいて、中断前に行われていたゲーム処理状態を再現し、ゲーム中断前のゲーム状況をモニタ2に表示してゲーム再開処理を行う。
【0085】
図12に戻り、ステップ16の中断解除処理の後、CPU30は、ゲームを終了するか否かを判断する(ステップ17)。ゲームを終了する条件としては、例えば、ゲームオーバーとなる条件が満たされたことや、プレイヤがゲームを終了する操作を行ったこと等がある。CPU30は、ゲームを終了しない場合に次のステップ18に処理を進め、ゲームを終了する場合に当該フローチャートによる処理を終了する。
【0086】
ステップ18において、CPU30は、ゲーム装置本体5とコントローラ7との間の無線通信が切断されたか否かを検出する。そして、CPU30は、無線通信が切断された場合、次のステップ19に処理を進める。一方、CPU30は、無線通信が切断されていない場合、上記ステップ12に戻って、処理を繰り返す。
【0087】
ここで、ゲーム装置本体5とコントローラ7との間の無線通信が切断されたことを確認する方法は、様々な方法を用いてもかまわない。第1の例として、コントローラ7側でゲーム装置本体5との無線通信状況を監視し、当該無線通信が一時的に途切れたときに切断コマンドをコントローラ7からゲーム装置本体5に送信する。CPU30は、この明示的な切断コマンドをコントローラ7から受信することによって、一時的に無線通信が切断されたことを検出する。第2の例として、ゲーム装置本体5からコントローラ7へ無線通信が正常に行われていることを確認するための切断コマンドを送信し、当該切断コマンドに対して肯定を意味する返信(例えば、ACK;ACKnowlegement)を用いて無線通信の切断を検出する。CPU30は、コントローラ7からの返信内容に応じて、無線通信が切断されたことを検出する。第3の例として、ゲーム装置本体5が特定のコントローラ7から所定時間以上(例えば、2秒間)信号を受信できないとき、当該コントローラ7との間の無線通信が切断されたとする。CPU30は、コントローラ7からの信号受信状況を監視することによって、無線通信が切断されたことを検出する。
【0088】
ステップ19において、CPU30は、無線切断処理を行い、上記ステップ12に戻って、処理を繰り返す。以下、図15を参照して、無線切断処理の詳細な動作について説明する。
【0089】
図15において、CPU30は、現在処理中のゲームを中断して(ステップ51)、そのゲーム状況をゲーム状況データDgに記憶保存して(ステップ52)、次のステップに処理を進める。
【0090】
次に、CPU30は、バッテリーカウンタデータDeに格納されているバッテリーカウンタBCのカウント値を参照し、バッテリーカウンタBCのカウント値が0であるか否かを判断する(ステップ53)。そして、CPU30は、バッテリーカウンタBCのカウント値が0である場合、次のステップ54に処理を進める。一方、CPU30は、バッテリーカウンタBCのカウント値が0でない(つまり、0より大きい数値)場合、次のステップ55に処理を進める。
【0091】
ステップ54において、CPU30は、モニタ2の表示画面に無線通信の復旧を促す報知画像(図8参照)を表示し、次のステップ56に処理を進める。後述により明らかとなるが、ステップ54の処理は、何らかの原因によってコントローラ7とゲーム装置本体5との間の無線通信が途切れた場合に表示する処理であり、ゲームを一時的に中断してプレイヤに対して無線通信の復旧を促す報知画像が表示される。
【0092】
ステップ55において、モニタ2の表示画面に電池残量が低下してきたことを報知して電池残量の確認を促す報知画像(図9参照)を表示し、次のステップ56に処理を進める。後述により明らかとなるが、ステップ55の処理は、無線通信が一度切断され、次に無線通信が接続されたときに電池残量の低下が確認され、再度所定時間内にコントローラ7とゲーム装置本体5との間の無線通信の切断が生じたときに表示する処理であり、ゲームを一時的に中断してプレイヤに電池残量が低下してきたことを報知して電池残量の確認を促す報知画像が表示される。
【0093】
なお、上記ステップ54で表示される無線通信の復旧を促す報知画像(図8)や、上記ステップ55で表示される電池残量の確認を促す報知画像(図9)は、実行中のゲーム処理を中断して表示される。したがって、ゲーム処理によるゲーム画面を停止させて、当該ゲーム画面をこれらの画像の背景としてもかまわない。例えば、上記ステップ55においては、コントローラ7の電力が不足している旨を示す文字が、中断して停止したゲーム画像上に重畳してモニタ2に表示される。
【0094】
ステップ56において、CPU30は、コントローラ7とゲーム装置本体5との間の無線通信が復旧するのを待つ。例えば、CPU30は、プレイヤがコントローラ7のAボタン(操作ボタン72d)を押下したことに応じて、当該コントローラ7との間で無線接続を確立する処理を行う。また、CPU30は、特にプレイヤの操作を待たずに無線通信可能なコントローラ7との無線接続を確立する処理を行ってもかまわない。そして、無線通信が復旧した場合(ステップ56でYes)、CPU30は、バッテリーチェック処理を行い、処理を次のステップに進める。以下、図16を参照して、バッテリーチェック処理の詳細な動作について説明する。
【0095】
図16において、CPU30は、チェックタイマーデータDfに格納されているチェックタイマーCTのカウント値を0に設定して更新して(ステップ61)、処理を次のステップに進める。
【0096】
次に、CPU30は、無線通信が切断されて復旧したコントローラ7に対して、電池残量をチェックするバッテリーチェック命令を送信し(ステップ62)、処理を次のステップに進める。例えば、CPU30は、コントローラ7に関する情報(コントローラID、電池電圧データ等)を取得する関数を実行することによって、バッテリーチェック命令をコントローラ7へ送信する。
【0097】
次に、CPU30は、バッテリーチェック命令を送信したコントローラ7からチェック結果を受信したか否かを判断する(ステップ63)。そして、CPU30は、コントローラ7からチェック結果を受信した場合、次のステップ66に処理を進める。一方、CPU30は、コントローラ7からチェック結果を受信していない場合、次のステップ64に処理を進める。
【0098】
ステップ64において、CPU30は、チェックタイマーデータDfに格納されているチェックタイマーCTのカウント値に1を加算してチェックタイマーデータDfを更新する。そして、CPU30は、チェックタイマーCTのカウント値が300より大きい数値か否かを判断する(ステップ65)。そして、CPU30は、チェックタイマーCTのカウント値が300以下の数値である場合、上記ステップ63に戻って処理を繰り返す。一方、CPU30は、チェックタイマーCTのカウント値が300より大きな数値である場合、上記ステップ61に戻って処理を繰り返す。これらステップ61〜ステップ65の処理によって、ゲーム装置本体5がコントローラ7からチェック結果を受信するまで、300処理回数毎(ゲームの処理が1/60秒単位である場合、5秒間毎)にバッテリーチェック命令を送信することになる。
【0099】
ステップ66において、CPU30は、コントローラ7から受信したチェック結果に含まれる電池電圧データを用いて電池残量を算出し、電池電圧データおよび電池残量データを用いて電池電圧データDbおよび電池残量データDcをそれぞれ更新して、処理を次のステップに進める。例えば、コントローラ7から取得する電池電圧データは、コントローラ7に取り付けられた電池電圧が256階調で表現される値であり、この電池電圧を上記5段階に分別して評価することによって電池残量データが算出される。
【0100】
次に、CPU30は、上記ステップ66で算出したコントローラ7の電池残量が所定レベル以下であるか否かを判断する(ステップ67)。例えば、CPU30は、コントローラ7の電池残量が上記低レベルまたは危険レベルである場合、電池切れフラグFLBをONに設定して電池切れフラグDdに格納し(ステップ68)、当該サブルーチンによる処理を終了する。一方、CPU30は、コントローラ7の電池残量が上記最高レベル、高レベル、または中レベルである場合、電池切れフラグFLBをOFFに設定して電池切れフラグDdに格納し(ステップ69)、当該サブルーチンによる処理を終了する。
【0101】
なお、上記ステップ67の判定基準を電池残量レベルで設定しているが、コントローラ7から取得した電池電圧データが示す電圧値を用いた判定基準であってもかまわない。例えば、コントローラ7の電池電圧が閾値未満(2.40V未満)である場合にステップ68の処理を行い、コントローラ7の電池電圧が閾値以上(2.40V以上)である場合にステップ69の処理を行ってもかまわない。
【0102】
また、上記ステップ67〜ステップ69の処理では、電池切れフラグFLBのON/OFFを切り替える閾値を1つにしているが、電池切れフラグFLBをOFFからONに切り替える閾値と電池切れフラグFLBをONからOFFに切り替える閾値とを別に設定してもかまわない。例えば、電池切れフラグFLBをONからOFFに切り替える閾値を電池切れフラグFLBをONからOFFに切り替える閾値より高く設定することによって、微量だけ電池電圧が一時的に復活しても電池切れフラグFLBがONに設定されるため、閾値に対して誤差程度の電池電圧の復活が除外されて適切な電池電圧の判定が可能となる。
【0103】
図15に戻り、ステップ57のバッテリーチェック処理の後、CPU30は、電池切れフラグDdに記憶されている電池切れフラグFLBがONに設定されているか否かを判断する。そして、CPU30は、電池切れフラグFLBがONに設定されている場合、バッテリーカウンタBCのカウント値を1800に設定してバッテリーカウンタデータDeを更新し(ステップ59)、当該サブルーチンによる処理を終了する。一方、CPU30は、電池切れフラグFLBがONに設定されている場合、そのまま当該サブルーチンによる処理を終了する。
【0104】
ここで、バッテリーカウンタBCの初期カウント値は0である(上記ステップ11参照)。しかしながら、上記ステップ53〜ステップ59の処理から明らかなように、一度無線通信が切断されたときにコントローラ7の電池残量が所定レベル以下であれば、バッテリーカウンタBCのカウント値が1800に設定されて上記ステップ15の処理で減算されていく。そして、バッテリーカウンタBCのカウント値が0になる前に再度無線通信が切断されたときに、モニタ2に電池切れの報知画像が表示される。
【0105】
このように、本実施形態に係るゲーム装置3は、コントローラ7の電池残量および無線通信の切断状況の一方のみでなく、両者の判定を連携させてコントローラ7の電池切れを判定して、モニタ2の表示画面に電池切れレベルになったことをプレイヤに報知する。そして、プレイヤが所定の操作ボタンを押下することによって、自身が所持するコントローラ7の電池残量をモニタ2の表示画面で確認することができる。このとき、ゲーム進行を視認して楽しむモニタ2の表示画面に電池切れを示す画像が表示されるため、プレイヤが電池切れに気付かずにプレイを続行することはない。また、自動的にゲームが中断して、そのゲーム状況が記録保存されるため、プレイヤがコントローラ7の乾電池の交換や充電池の再充電を終えるまで、不本意にゲームが進んでしまうことがない。
【0106】
また、コントローラ7の電池残量および無線通信の切断状況を連携させてコントローラ7の電池切れを判定することによって、以下のような効果が期待できる。上述したような無線通信によってゲーム装置本体5を操作するコントローラ7を用いる場合、一般的に当該無線通信を行うための電池消費量が大きいために、電池残量が低下すると最初に無線通信に対する不具合(例えば、一時的な無線通信の切断)が生じやすい。したがって、コントローラ7の電池残量に対する判定基準は、上記無線通信機能を考慮して設定することになる。一方、コントローラ7とゲーム装置本体5との距離に応じて両者の無線通信が可能となる電池電圧が変化する等、操作環境や装置バラツキ等によって上記無線通信機能を確保できる電池残量を固定することは難しい。
【0107】
例えば、コントローラ7の電池残量データのみを用いてコントローラ7の電池切れを判定する場合、無線通信機能の確保を優先にすると、まだコントローラ7とゲーム装置本体5との無線通信が充分可能である状態にあるのに電池切れ判定をすることがあり、電池使用に対して無駄が生じる。また、コントローラ7における電池電圧チェックや電池電圧データの送受信を頻繁に行うことが必要となり、無線通信帯域の圧迫、処理負荷や電池消費の悪化を招くことになる。一方、コントローラ7の無線通信機能が停止するレベルを電池残量データに対する判定基準に設定すると、電池切れ判定後に無線通信の復旧が期待できない。したがって、上述したような動作が不可能となり、最終的な電池電圧確認結果をコントローラ7からゲーム装置本体5へ送信できない事態が発生することも考えられる。
【0108】
また、コントローラ7とゲーム装置本体5との無線通信状況のみを用いてコントローラ7の電池切れを判定する場合、上述したように電池切れ以外の原因で無線通信が切断されることもあるために電池切れの判定が非常に困難である。
【0109】
一方、本実施形態に係るゲーム装置3では、コントローラ7の電池残量が閾値以下に低下したことを確認しながら、その低下が現在の操作環境下で複数回無線通信の切断(所定期間内の断続的な切断)が起こりえるレベルであることを確認している。このように、無線通信の切断が発生したこと、かつ、所定値以下に電池残量が低下したことを条件にコントローラ7の電池残量が不足していると判定するので、現在の使用環境に合わせたコントローラ7の電力の不足を適切に判断することができる。上述したように、電池残量だけにより電力不足と判断すると、ハードウェアの個体差や使用状況により電池がまだ残っているのに使用できないこととなり、無線通信の切断により電力不足と判断すると、周囲環境により電池が十分に残っていても使えないことになる。例えば、コントローラ7とゲーム装置本体5との距離が短いとき、比較的低い電池電圧でも無線通信が可能となるが、このような環境で操作しているときはその環境で必要な電池電圧を安定して確保できなくなるまで、効率的に電池を使用することができる。
【0110】
また、本実施形態に係るゲーム装置3は、コントローラ7における電池電圧チェックや電池電圧データの送受信をゲーム処理周期毎に行わず、初期設定時と無線通信の切断が行われたタイミングとでのみ行うため、無線通信帯域の圧迫、処理負荷およびコントローラ7の電池消費を軽減することができる。しかしながら、このような効果を期待しない場合、コントローラ7における電池電圧チェックや電池電圧データの送受信を所定周期毎等、適宜繰り返して行ってもかまわない。
【0111】
なお、コントローラ7における電池電圧チェックや電池電圧データの送受信を、適宜繰り返して行う場合、コントローラ7とゲーム装置本体5との間の無線通信が継続的に切断されても、上述した電池残量の低下の報知を行うことができる。例えば、CPU30は、上記ステップ56において、無線通信が所定期間以上復旧しない場合、無線通信が継続的な切断状態であると判断する。そして、CPU30は、無線通信が継続的な切断状態であり、かつ、取得した最新の電池電圧データが所定値以下の電池残量を示すものであるとき、上記ステップ55における電池切れ表示処理を行う。この場合、モニタ2には、無線切断を報知する画像(図8参照)が表示された後、所定期間後に電池切れを報知して電池交換を促す画像が表示されることになる。この電池切れ判定方法によって、継続的な切断がコントローラ7の電池残量不足による無線通信の障害であることを適切に判断することができる。
【0112】
なお、上述した処理動作の上記ステップ11において、初期処理としてコントローラ7の電池残量確認を行っている。この初期的な電池残量確認によって、ゲーム装置本体5に接続されている全てのコントローラ7に対する電池電圧データが初期的に取得できる。したがって、無線通信の切断が生じて電池残量の確認を報知されたコントローラ7のプレイヤがHOMEボタンメニューを表示したときに、他のコントローラ7を含めて全てのコントローラ7に対する電池残量を示す電池残量確認画像を表示することができる。しかしながら、このような効果を期待しない場合、初期処理ではコントローラ7の電池残量確認を行わなくてもかまわない。例えば、無線通信の切断が生じて電池残量の確認を報知されたコントローラ7の電池残量のみを示す電池残量確認画像をHOMEボタンメニューに表示する場合、無線通信の切断が生じたときのみ電池残量確認を行えば、本発明を実現することができる。
【0113】
また、上述した実施形態では、電池電圧の確認をコントローラ7側で行い、電池残量を示す5段階評価および電池切れフラグの設定をゲーム装置本体5側で行ったが、他の態様で各動作を行ってもかまわない。例えば、電池電圧の確認、電池残量を示す5段階評価、および電池切れフラグの設定を全てコントローラ7側で行ってもかまわない。この場合、コントローラ7から電池切れフラグを示すデータがゲーム装置本体5へ送信される。また、電池電圧の確認および電池残量を示す5段階評価をコントローラ7側で行い、電池切れフラグの設定をゲーム装置本体5側で行ってもかまわない。この場合、コントローラ7から電池残量を示す5段階評価(電池残量データ)がゲーム装置本体5へ送信される。さらに、上記電池残量を示す5段階評価を省略してもかまわない。この場合、電池電圧の確認をコントローラ7側で行い、送信された電池電圧データを用いてゲーム装置本体5側で直接電池切れフラグの設定を行う。また、上記電池残量を示す5段階評価を省略し、電池電圧の確認および電池切れフラグの設定をコントローラ7側で行ってもかまわない。この場合、コントローラ7から電池切れフラグを示すデータがゲーム装置本体5へ送信される。
【0114】
また、上述した説明では、コントローラ7の電池切れ状態にあることを示す画像をモニタ2に表示してプレイヤに報知したが、他の方法を用いてプレイヤに報知してもかまわない。例えば、コントローラ7の電池切れ状態にあることを示す音声や効果音を、モニタ2のスピーカ2aやコントローラ7のスピーカ706等、ゲーム装置本体5が音声出力制御可能なスピーカから発生させて、プレイヤに報知してもかまわない。
【0115】
また、上述した説明では、本発明の電池残量確認処理を実行するゲーム装置本体5をゲームシステム1に適用した例を説明したが、一般的なパーソナルコンピュータ等の情報処理装置にも適用することができる。
【0116】
また、上述したコントローラ7の形状や、それらに設けられている操作部72の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。
【0117】
また、本発明のゲームプログラムは、光ディスク4等の外部記憶媒体を通じてゲーム装置本体5に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置本体5に供給されてもよい。また、ゲームプログラムは、ゲーム装置本体5内部の不揮発性記憶装置に予め記録されていてもよい。なお、ゲームプログラムを記憶する情報記憶媒体としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体の他に、不揮発性半導体メモリでもよい。
【産業上の利用可能性】
【0118】
本発明に係るゲームプログラムおよびゲーム装置は、入力装置における電池切れを適切に判定することができ、無線通信を用いてゲーム装置本体等と入力装置等とが接続されるゲーム装置やゲームプログラムとして有用である。
【図面の簡単な説明】
【0119】
【図1】本発明の一実施形態に係るゲームシステム1を説明するための外観図
【図2】図1のゲーム装置本体5の機能ブロック図
【図3】図1のコントローラ7の上面後方から見た斜視図
【図4】図3のコントローラ7を下面前方から見た斜視図
【図5】図3のコントローラ7の上筐体を外した状態を示す斜視図
【図6】図4のコントローラ7の下筐体を外した状態を示す斜視図
【図7】図3のコントローラ7の構成を示すブロック図
【図8】無線切断状態になったときにモニタ2の表示画面に表示される画像の一例を示す図
【図9】電池電圧不足に起因して無線切断状態になったときにモニタ2の表示画面に表示される画像の一例を示す図
【図10】プレイヤがHOMEボタンを押下したときにモニタ2の表示画面に表示される電池残量確認画像の一例を示す図
【図11】ゲーム装置本体5のメインメモリ33に記憶される主なデータを示す図
【図12】ゲーム装置本体5において実行される電池残量確認処理の流れを示すフローチャート
【図13】図12におけるステップ15のバッテリーカウンタ更新処理の詳細な動作を示すサブルーチン
【図14】図12におけるステップ16の中断解除処理の詳細な動作を示すサブルーチン
【図15】図12におけるステップ19の無線切断処理の詳細な動作を示すサブルーチン
【図16】図15におけるステップ57のバッテリーチェック処理の詳細な動作を示すサブルーチン
【符号の説明】
【0120】
1…ゲームシステム
2…モニタ
2a、706…スピーカ
3…ゲーム装置
30…CPU
31…メモリコントローラ
32…GPU
33…メインメモリ
34…DSP
35…ARAM
36…コントローラI/F
37…ビデオI/F
38…フラッシュメモリ
39…オーディオI/F
40…ディスクドライブ
41…ディスクI/F
4…光ディスク
5…ゲーム装置本体
6…通信ユニット
7…コントローラ
71…ハウジング
72…操作部
73…コネクタ
74…撮像情報演算部
741…赤外線フィルタ
742…レンズ
743…撮像素子
744…画像処理回路
75…通信部
751…マイコン
752…メモリ
753…無線モジュール
754…アンテナ
700…基板
701…加速度センサ
702…LED
703…水晶振動子
704…バイブレータ
707…サウンドIC
708…アンプ
709…端子
8…マーカ
【特許請求の範囲】
【請求項1】
無線通信機能を含む電子回路と当該電子回路に電力を供給する電池とを有する入力装置が無線通信可能に接続されるゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記入力装置と前記ゲーム装置との間の無線通信の、継続的な切断、断続的な切断、および一時的な切断の少なくともいずれか1つの切断を検出する切断検出手段と、
前記入力装置の前記電池残量を示す電池残量データを前記無線通信を介して取得する電池残量データ取得手段と、
前記切断検出手段により無線通信の切断を検出したこと、かつ、前記電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、前記入力装置の電力が不足していると判定する電力不足判定手段と、
前記電力不足判定手段により電力が不足していると判定されたとき、その旨を報知する報知手段として、前記コンピュータを機能させるためのゲームプログラム。
【請求項2】
前記切断検出手段は、前記入力装置と前記ゲーム装置との間の無線通信の一時的な切断を検出するものであり、
前記電池残量データ取得手段は、前記切断検出手段による一時的な切断を検出した直後にのみ、前記入力装置から前記電池残量データを取得する、請求項1に記載のゲームプログラム。
【請求項3】
前記電力不足判定手段は、前記切断検出手段による無線通信の一時的な切断を検出し、前記電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであり、さらに、当該一時的な切断の後の所定期間内に前記切断検出手段による2度目の切断が検出されたとき、前記入力装置の電力が不足していると判定する、請求項1または2に記載のゲームプログラム。
【請求項4】
前記切断検出手段は、前記入力装置と前記ゲーム装置との間の無線通信の所定期間における断続的な切断を検出するものであり、
前記電力不足判定手段は、前記切断検出手段による無線通信の断続的な切断を検出し、かつ、前記電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、前記入力装置の電力が不足していると判定する、請求項1に記載のゲームプログラム。
【請求項5】
前記電池残量データ取得手段は、前記入力装置の前記電池残量を示す電池残量データを前記無線通信を介して適宜繰り返し取得し、
前記電力不足判定手段は、前記切断検出手段による継続的な切断を検出し、かつ取得した最新の電池残量データが所定値以下の電池残量を示すものであることに応じて、前記入力装置の電力が不足していると判定する、請求項1に記載のゲームプログラム。
【請求項6】
前記報知手段は、前記電力不足判定手段によって電力不足と判定されたとき、実行中のゲーム処理を中断し、当該実行中のゲーム状況を示すゲーム状況データを当該ゲーム装置に備えるメモリに記憶するとともに、そのゲーム処理によるゲーム画面を停止させて表示装置に表示することによって報知する、請求項1に記載のゲームプログラム。
【請求項7】
前記報知手段は、前記ゲーム装置で実行中のゲームのゲーム画像を表示するための表示装置に、前記入力装置の電源の残量が不足していることを示す画像を表示する、請求項1に記載のゲームプログラム。
【請求項8】
前記報知手段は、前記ゲーム装置によって音声出力制御可能なスピーカから、前記入力装置の電源の残量が不足していることを示す音声または効果音を出力する、請求項1に記載のゲームプログラム。
【請求項9】
無線機能を含む電子回路と当該電子回路に対して電力を供給する電池とを有する入力装置が無線通信可能に接続されるゲーム装置であって、
前記入力装置と無線通信するための無線通信手段と、
前記入力装置との間の無線通信の、継続的な切断、断続的な切断、および一時的な切断の少なくともいずれか1つの切断を検出する切断検出手段と、
前記入力装置の電池残量を示す電池残量データを前記無線通信手段を介して取得する電池残量データ取得手段と、
前記切断検出手段による無線通信の切断を検出したこと、かつ、前記電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、前記入力装置の電力が不足していると判定する電力不足判定手段と、
前記電力不足判定手段により電力が不足していると判定されたとき、その旨を報知する報知手段とを備える、ゲーム装置。
【請求項1】
無線通信機能を含む電子回路と当該電子回路に電力を供給する電池とを有する入力装置が無線通信可能に接続されるゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記入力装置と前記ゲーム装置との間の無線通信の、継続的な切断、断続的な切断、および一時的な切断の少なくともいずれか1つの切断を検出する切断検出手段と、
前記入力装置の前記電池残量を示す電池残量データを前記無線通信を介して取得する電池残量データ取得手段と、
前記切断検出手段により無線通信の切断を検出したこと、かつ、前記電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、前記入力装置の電力が不足していると判定する電力不足判定手段と、
前記電力不足判定手段により電力が不足していると判定されたとき、その旨を報知する報知手段として、前記コンピュータを機能させるためのゲームプログラム。
【請求項2】
前記切断検出手段は、前記入力装置と前記ゲーム装置との間の無線通信の一時的な切断を検出するものであり、
前記電池残量データ取得手段は、前記切断検出手段による一時的な切断を検出した直後にのみ、前記入力装置から前記電池残量データを取得する、請求項1に記載のゲームプログラム。
【請求項3】
前記電力不足判定手段は、前記切断検出手段による無線通信の一時的な切断を検出し、前記電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであり、さらに、当該一時的な切断の後の所定期間内に前記切断検出手段による2度目の切断が検出されたとき、前記入力装置の電力が不足していると判定する、請求項1または2に記載のゲームプログラム。
【請求項4】
前記切断検出手段は、前記入力装置と前記ゲーム装置との間の無線通信の所定期間における断続的な切断を検出するものであり、
前記電力不足判定手段は、前記切断検出手段による無線通信の断続的な切断を検出し、かつ、前記電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、前記入力装置の電力が不足していると判定する、請求項1に記載のゲームプログラム。
【請求項5】
前記電池残量データ取得手段は、前記入力装置の前記電池残量を示す電池残量データを前記無線通信を介して適宜繰り返し取得し、
前記電力不足判定手段は、前記切断検出手段による継続的な切断を検出し、かつ取得した最新の電池残量データが所定値以下の電池残量を示すものであることに応じて、前記入力装置の電力が不足していると判定する、請求項1に記載のゲームプログラム。
【請求項6】
前記報知手段は、前記電力不足判定手段によって電力不足と判定されたとき、実行中のゲーム処理を中断し、当該実行中のゲーム状況を示すゲーム状況データを当該ゲーム装置に備えるメモリに記憶するとともに、そのゲーム処理によるゲーム画面を停止させて表示装置に表示することによって報知する、請求項1に記載のゲームプログラム。
【請求項7】
前記報知手段は、前記ゲーム装置で実行中のゲームのゲーム画像を表示するための表示装置に、前記入力装置の電源の残量が不足していることを示す画像を表示する、請求項1に記載のゲームプログラム。
【請求項8】
前記報知手段は、前記ゲーム装置によって音声出力制御可能なスピーカから、前記入力装置の電源の残量が不足していることを示す音声または効果音を出力する、請求項1に記載のゲームプログラム。
【請求項9】
無線機能を含む電子回路と当該電子回路に対して電力を供給する電池とを有する入力装置が無線通信可能に接続されるゲーム装置であって、
前記入力装置と無線通信するための無線通信手段と、
前記入力装置との間の無線通信の、継続的な切断、断続的な切断、および一時的な切断の少なくともいずれか1つの切断を検出する切断検出手段と、
前記入力装置の電池残量を示す電池残量データを前記無線通信手段を介して取得する電池残量データ取得手段と、
前記切断検出手段による無線通信の切断を検出したこと、かつ、前記電池残量データ取得手段により取得した電池残量データが所定値以下の電池残量を示すものであることに応じて、前記入力装置の電力が不足していると判定する電力不足判定手段と、
前記電力不足判定手段により電力が不足していると判定されたとき、その旨を報知する報知手段とを備える、ゲーム装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2008−125677(P2008−125677A)
【公開日】平成20年6月5日(2008.6.5)
【国際特許分類】
【出願番号】特願2006−312257(P2006−312257)
【出願日】平成18年11月17日(2006.11.17)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成20年6月5日(2008.6.5)
【国際特許分類】
【出願日】平成18年11月17日(2006.11.17)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]