図1を参照して、本発明の一実施形態に係る情報処理装置について説明する。以下、説明を具体的にするために、当該情報処理装置の一例として据置型のゲーム装置本体5を用い、ゲーム装置本体5を含むゲームシステムについて説明する。なお、図1は、据置型のゲーム装置3を含むゲームシステム1の一例を示す外観図である。図2は、ゲーム装置本体5の一例を示すブロック図である。以下、当該ゲームシステム1について説明する。
図1において、ゲームシステム1は、表示手段の一例である家庭用テレビジョン受像機(以下、モニタと記載する)2と、モニタ2に接続コードを介して接続する据置型のゲーム装置3とから構成される。モニタ2は、ゲーム装置3から出力された音声信号を音声出力するためのスピーカ2aを備える。また、ゲーム装置3は、情報処理プログラムを記録した光ディスク4と、光ディスク4のプログラムを実行して情報処理画面をモニタ2に表示出力させるためのコンピュータを搭載したゲーム装置本体5と、表示画面に表示されたオブジェクト等を操作するために必要な操作情報をゲーム装置本体5に与えるためのコントローラ7と、LEDモジュール8とを備えている。
また、LEDモジュール8は、モニタ2の周辺(図1では画面の上側)に設置される。LEDモジュール8は、その両端に2つのマーカ8Lおよび8Rを備えており、ゲーム装置本体5に接続されている。例えば、マーカ8Lおよび8Rは、それぞれ1以上の赤外LEDであり、モニタ2の前方に向かって赤外光を出力する。ゲーム装置本体5は、LEDモジュール8が備える各赤外LEDの点灯を制御することが可能である。本実施形態では、マーカ8Lおよび8Rは、コントローラ7を用いた操作のために用いられるとともに、赤外線信号を受信することによって制御される機器(例えば、エアーコンディショナ)を制御するために、赤外線信号を送信する手段としても用いられることがある。
ゲーム装置本体5は、無線コントローラモジュール19(図2参照)を内蔵する。無線コントローラモジュール19は、コントローラ7から無線送信されるデータを受信し、ゲーム装置本体5からコントローラ7へデータを送信して、コントローラ7とゲーム装置本体5とを無線通信によって接続する。また、ゲーム装置本体5には、ゲーム装置本体5に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着される。
ゲーム装置本体5には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ17(図2参照)が搭載される。ゲーム装置本体5は、光ディスク4に記憶された情報処理プログラム等を実行することによって、その結果を示す画像をモニタ2に表示する。上記プログラムは、光ディスク4に限らず、フラッシュメモリ17に予め記録されたものを実行するようにしてもよい。また、ゲーム装置本体5は、フラッシュメモリ17に記憶されたセーブデータを用いて、過去に実行された状態を再現して、画像をモニタ2に表示することもできる。そして、ゲーム装置3のユーザは、モニタ2に表示された画像を見ながら、コントローラ7を操作することによって、情報処理を進めたりゲームの進行を楽しんだりすることができる。
コントローラ7は、無線コントローラモジュール19を内蔵するゲーム装置本体5へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて操作情報等の送信データを無線送信する。コントローラ7は、主にモニタ2の表示画面に表示されるプレイヤオブジェクト等を操作するための操作手段である。コントローラ7は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン(十字キーやスティック等を含む)とが設けられている。また、後述により明らかとなるが、コントローラ7は、コントローラ7から見た画像を撮像する撮像情報演算部74を備えており、マーカ8Lおよび8Rが撮像情報演算部74における撮像対象の一例となる。また、コントローラ7は、ゲーム装置本体5の無線コントローラモジュール19から無線送信された送信データを通信部75で受信して、当該送信データに応じた音や振動を発生させることもできる。
次に、図2を参照して、ゲーム装置本体5の内部構成について説明する。図2は、ゲーム装置本体5の構成の一例を示すブロック図である。ゲーム装置本体5は、CPU(Central Processing Unit)10、システムLSI(Large Scale Integration)11、外部メインメモリ12、ROM/RTC(Read Only Memory/Real Time Clock)13、ディスクドライブ14、およびAV−IC(Audio Video−Integrated Circuit)15等を有する。
CPU10は、光ディスク4に記憶されたプログラムを実行することによって処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、AV−IC15、およびLED制御部27等が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSI11の内部構成については、後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたプログラムや、フラッシュメモリ17から読み出されたプログラムやデータを記憶したり、他のデータを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置本体5の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC)とを有する。また、ROM/RTC13は、アラーム割込をCPU10や後述する入出力プロセッサ31のウェイクアップイベントとして設定する。例えば、ROM/RTC13では処理の単位時間となる所定時間毎にトリガが発生し、当該トリガ発生時に、データ移動やデータ送受信を行うイベント予定時刻とトリガ発生時刻とを比較して、当該予定時刻を超過している場合にアラーム割込を入出力プロセッサ31のウェイクアップイベントとして設定して、入出力プロセッサ31、内部メインメモリ35、およびフラッシュメモリ17を起動させる。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ35または外部メインメモリ12に読み出したデータを書き込む。LED制御部27は、LEDモジュール8が備える赤外LEDが接続される。CPU10は、当該赤外LEDを点灯させる場合、LED制御部27に給電指示を行う。CPU10からの給電指示に応じて、LED制御部27が赤外LEDに給電を行うことによって、赤外LEDが点灯する。具体的には、LED制御部27は、CPU10から指示された信号パターンに応じて、LEDモジュール8が備える赤外LEDを点滅させる。
システムLSI11には、入出力プロセッサ31、GPU(Graphics Processor Unit)32、DSP(Digital Signal Processor)33、VRAM(Video RAM)34、および内部メインメモリ35が設けられる。図示は省略するが、これらの構成要素31〜35は、内部バスによって互いに接続される。
GPU32は、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM34は、GPU32がグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU32は、VRAM34に記憶されたデータを用いて画像データを作成する。
DSP33は、オーディオプロセッサとして機能し、内部メインメモリ35や外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、AVコネクタ16を介して、読み出した画像データをモニタ2に出力するとともに、読み出した音声データをモニタ2に内蔵されるスピーカ2aに出力する。これによって、画像がモニタ2に表示されるとともに音がスピーカ2aから出力される。
入出力プロセッサ(I/Oプロセッサ)31は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ31は、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、メモリカード用コネクタ21、および環境センサユニット28に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
入出力プロセッサ31は、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ31は、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール18およびアンテナ22を介して当該データをネットワークに送信する。また、入出力プロセッサ31は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22、および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10は、プログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してプログラムで利用する。フラッシュメモリ17には、ゲーム装置本体5と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体5を利用してプレイしたゲームのセーブデータ(処理の結果データまたは途中データ)や管理用データ(ゲーム装置3固有の管理情報であり、ゲーム装置3の識別情報やメールアドレス、ユーザのプロファイル、ゲーム装置3の位置情報(例えば、住所とゲーム装置3が置かれている階数等)等)が記憶されてもよい。例えば、フラッシュメモリ17に記憶される管理用データは、ゲーム装置3のユーザによって予め入力されて登録される。
入出力プロセッサ31は、アンテナ23および無線コントローラモジュール19を介して、コントローラ7から送信される操作データ等を受信し、内部メインメモリ35または外部メインメモリ12のバッファ領域に記憶(一時記憶)する。なお、内部メインメモリ35には、外部メインメモリ12と同様に、光ディスク4から読み出されたプログラムや、フラッシュメモリ17から読み出されたプログラムを記憶したり、各種データを記憶したりしてもよく、CPU10のワーク領域やバッファ領域として用いられてもかまわない。
入出力プロセッサ31には、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ31は、拡張コネクタ20やメモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
ゲーム装置本体5(例えば、前部主面)には、当該ゲーム装置本体5の電源ボタン24、ゲーム処理のリセットボタン25、光ディスク4を脱着する投入口、およびゲーム装置本体5の投入口から光ディスク4を取り出すイジェクトボタン26等が設けられている。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置本体5の各構成要素に対して、図示しないACアダプタを介して電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置本体5の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
また、入出力プロセッサ31には、環境センサユニット28が接続される。入出力プロセッサ31は、ゲーム装置本体5の電源ボタン24がオンされたり、ROM/RTC13によるウェイクアップイベントがアラーム割込として実行されたりすることによって起動した際、環境センサユニット28に格納されている検出データをフラッシュメモリ17に記憶する。本実施形態においては、ゲーム装置本体5の電源ボタン24がオンされていなくてもゲーム装置本体5にACアダプタを介して電力が供給されていれば、少なくともROM/RTC13および環境センサユニット28が常に起動状態に保たれている(省電力モード)。そして、ROM/RTC13によるウェイクアップイベントがアラーム割込として実行された際、少なくとも入出力プロセッサ31、内部メインメモリ35、およびフラッシュメモリ17がさらに起動し、上記省電力モード中に環境センサユニット28が検出した結果を示す検出データを入出力プロセッサ31がフラッシュメモリ17に記憶する。なお、環境センサユニット28の内部構成については、後述する。
図3〜図5を参照して、コントローラ7について説明する。なお、図3は、コントローラ7の上面後方から見た一例を示す斜視図である。図4は、コントローラ7を下面前方から見た一例を示す斜視図である。図5は、コントローラ7の構成の一例を示すブロック図である。
図3および図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。ユーザが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばユーザが十字キー72aを操作することによって、仮想世界に登場するオブジェクト等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、ユーザがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、1番ボタン、2番ボタン、およびAボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン72a〜72gは、ゲーム装置本体5が実行するプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図3に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置本体5の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
ハウジング71下面には、凹部が形成されている。ハウジング71下面の凹部は、ユーザがコントローラ7の前面をマーカ8Lおよび8Rに向けて片手で把持したときに、当該ユーザの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部である。
ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コントローラ7が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコントローラ7の動きでも追跡して解析することができる。また、ハウジング71の後面には、コネクタ73が設けられている。コネクタ73は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
図5に示すように、撮像情報演算部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自体の方向を変えることによってその撮像方向を変更することができる。
ここで、モニタ2の表示画面近傍には、2つのマーカ8Lおよび8Rが設置されている。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって赤外光を出力し、撮像情報演算部74の撮像対象になる。そして、ゲーム装置本体5は、2つのマーカ8Lおよび8Rによる高輝度点に関する位置データを用いてコントローラ7が指し示す位置を算出する。具体的には、ユーザがその前面がモニタ2に向くようにコントローラ7を把持することによって、撮像情報演算部74には2つのマーカ8Lおよび8Rが出力した赤外光が入射する。そして、赤外線フィルタ741およびレンズ742を介して、入射した赤外光を撮像素子743が撮像し、当該撮像画像を画像処理回路744が処理する。ここで、撮像情報演算部74では、マーカ8Lおよび8Rから出力される赤外線成分を検出することで、上記撮像画像における当該マーカ8Lおよび8Rの位置情報(対象画像の位置)等を取得する。例えば、画像処理回路744は、撮像素子743が撮像した画像データを解析して、まず面積情報からマーカ8Lおよび8Rからの赤外光ではあり得ない画像を除外し、さらに輝度が高い点をマーカ8Lおよび8Rそれぞれの位置として判別する。そして、撮像情報演算部74は、判別されたそれらの輝度の高い輝点群の重心位置等の位置情報を取得する。ここで、上記位置情報は、撮像画像における所定の基準点(例えば、撮像画像の中央や左上隅)を原点とした座標値として出力するものでもよく、所定のタイミングにおける上記重心位置等を基準点として、当該基準点からの現在の上記重心位置の差をベクトルとして出力するものでもよい。つまり、上記対象画像の位置情報は、撮像素子743が撮像した撮像画像に対して所定の基準点を設定した場合に、当該基準点に対する差として用いられるパラメータである。このような位置情報をゲーム装置本体5へ送信することによって、ゲーム装置本体5では、基準からの上記位置情報の差に基づいて、マーカ8Lおよび8Rに対する撮像情報演算部74、すなわちコントローラ7の動き、姿勢、位置等に応じた信号の変化量を得ることができる。具体的には、コントローラ7が動かされることによって、通信部75から送信される画像内の高輝度点の重心位置が変化するため、高輝度点の重心位置の変化に対応させた方向入力や座標入力を行うことで、コントローラ7が指し示している位置を操作入力としたり、コントローラ7の移動方向に沿った方向入力や座標入力を行ったりすることができる。
また、コントローラ7は、3軸(X、Y、Z軸)の加速度センサ701を備えている。この3軸の加速度センサ701は、3方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。また、少なくとも1軸方向に沿った直線加速度をそれぞれ検知する加速度検出手段を使用してもよい。例えば、これらの加速度センサ701は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であることが好ましい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて、加速度センサ701が提供されてもよい。
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置本体5からのデータに応じて、サウンドIC707の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置本体5から送信されたサウンドデータ等を処理する。
コントローラ7に設けられた操作部72からの操作信号を示すキーデータと、加速度センサ701からの3軸方向の加速度信号を示すX、Y、およびZ軸方向加速度データと、撮像情報演算部74で得られた位置情報を示す処理結果データとは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ)を無線コントローラモジュール19へ送信する送信データとして一時的にメモリ752に格納する。ここで、通信部75から無線コントローラモジュール19への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥースで構成される通信部75の送信間隔は5msである。マイコン751は、無線コントローラモジュール19への送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばブルートゥースの技術を用いて、操作情報を示す電波信号を所定周波数の搬送波を用いてアンテナ754から放射する。つまり、コントローラ7に設けられた操作部72からのキーデータ、加速度センサ701からのX、Y、およびZ軸方向加速度データ、および撮像情報演算部74からの処理結果データがコントローラ7から送信される。そして、ゲーム装置本体5の無線コントローラモジュール19でその電波信号を受信し、ゲーム装置本体5で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、X、Y、およびZ軸方向加速度データ、および処理結果データ)を取得する。そして、ゲーム装置本体5のCPU10は、取得した操作情報とプログラムとに基づいて、処理を行う。なお、ブルートゥースの技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
次に、図6および図7を参照して、LEDモジュール8について説明する。なお、図6は、図1に示すLEDモジュール8の外観の一例を示す斜視図である。図7は、各マーカ8Lおよび8Rのカバー8LCおよび8RCを外した状態のLEDモジュール8の一例を示す斜視図である。
図6において、LEDモジュール8は、例えば棒状の外形形状を有している。そして、LEDモジュール8の長手方向の両端には、それぞれ1つずつ、計2つのマーカ8Lおよび8Rが設けられる。マーカ8Lは、カバー8LCと赤外LED(図7に示す赤外LED8La)とを備える。マーカ8Rは、カバー8RCと赤外LED(図7に示す赤外LED8Ra)とを備える。
図7に示すように、マーカ8Lは、4つの赤外LED8Laを備えている。また、マーカ8Rは、4つの赤外LED8Raを備えている。なお、4つの赤外LED8Laは、近接した位置に配置されるので、コントローラ7の撮像情報演算部74においては4つのLED8Laが一体として撮像される。また、4つの赤外LED8Laは、それぞれ赤外光を照射する向きが放射状になるように、LEDモジュール8の長手方向に沿った横一列に列設される。つまり、横一列に列設された4つのうち、外側の2つの赤外LED8Laは、内側の2つの赤外LED8Laよりも外側を向いて配置される。これによって、4つの赤外LED8La全体としての照射角度(マーカ8Lの照射角度)は、LEDモジュール8の横方向に広くなる。また、4つの赤外LED8Raも、赤外LED8Laと同様に配置される。したがって、LEDモジュール8がモニタ2の周囲に設置される場合、コントローラ7は、モニタ2の正面を基準とした左右両側の広い範囲でマーカ8Lおよび8Rからの赤外光を受光することができる。つまり、ユーザは、モニタ2の正面を基準とした左右両側の広い範囲でコントローラ7を使用することができる。また、LEDモジュール8から放射される赤外光の照射範囲に、赤外線信号を受信することによって制御される機器が存在する場合、当該機器にもLEDモジュール8からの赤外光が照射される。上述したように、LEDモジュール8が左右両側の広い範囲で赤外光を放射状に照射するため、上記機器は、LEDモジュール8からの赤外光を受光しやすくなる。
なお、他の実施形態では、マーカが備える赤外LEDの数はいくつであってもよく、マーカが複数の赤外LEDを備える場合には、各赤外LEDの向きが放射状になるように横一列に配置することが好ましい。また、マーカは、1つの赤外LEDと、赤外LEDからの赤外光を乱反射させるカバーとを備える構成であってもよい。
次に、図8を用いて、環境センサユニット28について説明する。なお、図8は、環境センサユニット28の構成の一例を示すブロック図である。
図8において、環境センサユニット28は、環境の状態を検出する検出部の一例として気圧センサ281、温度センサ282、湿度センサ283、マイコン284、およびメモリ285を備えている。例えば、環境センサユニット28は、ゲーム装置本体5内部に設置される。
気圧センサ281は、マイコン284の指示に応じて気圧センサ281が設けられている場所(すなわち、ゲーム装置本体5が置かれている場所)の気圧を検出し、当該気圧検出結果を示す信号をマイコン284へ出力する。温度センサ282は、マイコン284の指示に応じて温度センサ282が設けられている場所(すなわち、ゲーム装置本体5が置かれている場所)の温度を検出し、当該温度検出結果を示す信号をマイコン284へ出力する。湿度センサ283は、マイコン284の指示に応じて湿度センサ283が設けられている場所(すなわち、ゲーム装置本体5が置かれている場所)の湿度を検出し、当該湿度検出結果を示す信号をマイコン284へ出力する。メモリ285は、典型的にはゲーム装置本体5に設けられている記憶手段(例えば、フラッシュメモリ17)より相対的に記憶容量が小さく、例えば不揮発性メモリで構成される。そして、マイコン284は、気圧センサ281、温度センサ282、および湿度センサ283からそれぞれ出力された検出結果に基づいて当該検出結果を示す検出データを生成し、当該検出データを逐次メモリ285に格納する。
例えば、図9に示すように、マイコン284は、時間間隔t1毎(例えば、10分間毎)に気圧センサ281、温度センサ282、および湿度センサ283から検出結果を取得し、当該検出結果を示す検出データを検出した時系列順にメモリ285に格納する。なお、上述したように、環境センサユニット28は、ゲーム装置本体5にACアダプタを介して電力が供給されていれば常時起動状態であるため、ゲーム装置本体5の動作モード(例えば、電源ボタン24がオフとなった省電力モードおよびオンとなった通常モード)に関わらず、常に時間間隔t1毎の検出結果を示す検出データがメモリ285に蓄積されていくことになる。例えば、図9に示したタスクのスケジューリング例では、電源ボタン24がオフとなった省電力モード(A時点まで)、電源ボタン24がオンされた通常モード(A時点〜B時点)、および電源ボタン24が再度オフされた省電力モード(B時点以降)の何れのモードにおいても、時間間隔t1毎の検出結果を示す検出データがメモリ285に蓄積されている。
また、マイコン284は、入出力プロセッサ31からの要求に応じて、メモリ285に蓄積された検出データを出力する。例えば、入出力プロセッサ31は、ゲーム装置本体5の電源ボタン24がオンされた時点(すなわち、省電力モードから通常モードへ移行する図示A時点)や、ROM/RTC13によるウェイクアップイベントが時間間隔t2毎(例えば、1日毎)に実行された時点において、マイコン284に検出データの出力を要求し、出力された検出データをフラッシュメモリ17に格納する。したがって、時間間隔t1毎に検出された検出結果を示す検出データは、最終的にはフラッシュメモリ17に格納されることになる。ここで、メモリ285は、フラッシュメモリ17より相対的に記憶容量が小さく、検出データが常に蓄積されることによって記憶容量以上の検出データの格納が必要となる場合があり得る。この場合、メモリ285は、新たな検出データの格納を禁止したり、最も古い検出結果を示す検出データを削除したりする必要がある。しかしながら、相対的に記憶容量が大きいフラッシュメモリ17へメモリ285から定期的に検出データを移動させることによって、上述した記憶容量の不足による問題を回避することができる。
また、CPU10は、上記通常モード(図9に示すA時点〜B時点の期間)において、フラッシュメモリ17に格納された上記検出データを利用して所定のアプリケーションを実行することによって、様々な情報処理が可能となる。以下、図10〜図13を用いて、上記検出データを用いたアプリケーション実行例について説明する。なお、図10は、気圧センサ281によって検出された気圧の検出結果の履歴の一例を示す図である。図11は、図10に示した気圧の検出結果の履歴を用いて、ユーザに天気予測を報知する画面の一例を示す図である。図12は、温度センサ282によって検出された温度の検出結果の履歴の一例を示す図である。図13は、湿度センサ283によって検出された湿度の検出結果の履歴の一例を示す図である。
図10において、気圧センサ281によって検出された気圧の検出結果の履歴において、気圧が上昇傾向にある場合、当該気圧センサ281が位置している地域の天気が回復傾向となる。その一方で、気圧センサ281によって検出された気圧の検出結果の履歴において、気圧が下降傾向にある場合、当該気圧センサ281が位置している地域の天気が悪化傾向となる。一例として、図10において「雨」と記載された期間は、気圧センサ281が置かれている地域に雨が降ったことを示しており、何れも気圧が下降傾向にあり気圧の検出結果の履歴において極小値を示している期間付近と一致している。このように、気圧センサ281によって検出された気圧の検出結果の履歴を利用すれば、当該気圧センサ281が位置している地域の天気予測が可能となる。
例えば、図11に示すように、気圧センサ281によって検出された気圧の検出結果の履歴を用いて、モニタ2にゲーム装置3が位置している地域の天気予測を表示することが可能となる。具体的には、気圧センサ281によって検出された気圧の検出結果の履歴において現時点の気圧が下降傾向にある場合、気圧が下降中であることを示すとともに、ゲーム装置3が位置している地域の天気が悪化傾向にある旨の情報(例えば、「雨が降りそうです」)を、モニタ2に示す。これによって、ゲーム装置3のユーザは、当該ゲーム装置3が置かれている場所(例えば、自宅)付近の天気の傾向を知ることができる。なお、上述した天気予測は、ネットワーク等を介して他の装置から情報を得る必要はなく、ゲーム装置本体5に設けられている気圧センサ281によって検出された自機のみの検出結果を用いて天気予測し、ユーザにその予測結果を報知することができる。
図12において、温度センサ282によって検出された温度の検出結果の履歴において、ゲーム装置3が置いてある部屋の在室状況によって温度変化パターンが変化することがある。例えば、夏のオフィスのような環境では、オフィスの昼間の在室中にエアーコンディショナをオンし、オフィス不在時や夜間にエアーコンディショナをオフすることが考えられる。このようなパターンでエアーコンディショナを用いている場合、オフィス在室中は温度が相対的に低く保たれ、オフィス不在時は温度が相対的に高くなる。具体的には、平日(月曜〜金曜)の昼間のみ在室となるオフィスでは、昼間に温度が相対的に低く保たれ夜間に温度が相対的に高くなる温度パターン(平日の日常サイクル)となる。一方、終日不在となったオフィスでは、温度が下がることなく相対的に高い温度で推移するような温度パターンが不在期間の温度パターンとなる。このように、温度センサ282によって検出された温度の検出結果の履歴における温度パターンを見分けることによって、ゲーム装置3が置いてあるオフィス(ゲーム装置3が置いてある部屋)の在室状況を知ることができる。例えば、環境センサユニット28が設けられている他のゲーム装置3から、温度センサ282によって検出された温度の検出結果の履歴を取得することによって、当該他のゲーム装置3が置かれている部屋の在室状況を監視することが可能となる。具体的には、上記他のゲーム装置3を離れた家族の居間等に設置し、当該他のゲーム装置3に設けられた温度センサ282によって検出された温度の検出結果の履歴を定期的に当該他のゲーム装置3から受信して、上記温度パターンを分析することによって、離れた家族の在室状況をユーザに報知することができる。
図13において、湿度センサ283によって検出された湿度の検出結果の履歴において、時節の移り変わりによって全体的な湿度の傾向が変わることがある。例えば、図13に示すように、ゲーム装置3が位置している地域が梅雨入りすると、湿度センサ283によって検出される湿度が全体的に高くなる傾向がある。また、ゲーム装置3が位置している地域が乾期となると湿度センサ283によって検出される湿度が全体的に低くなり、雨期になると湿度センサ283によって検出される湿度が全体的に高くなる傾向がある。このように、湿度センサ283によって検出された湿度の検出結果の履歴における全体的な傾向によって、ゲーム装置3が置いてある地域の時節の移り変わりを予測し、ユーザにその予測結果を報知することができる。
このように、ゲーム装置本体5の動作モードの切り替えは、ROM/RTC13によるタスク制御や電源ボタン24がオン/オフによって行われる。そして、電源ボタン24がオンとなった通常モードでは、上記検出データを利用するアプリケーションや上記検出データを利用しないアプリケーションを実行するCPU10に電力が供給されて当該アプリケーションが実行可能な状態となる。一方、電源ボタン24がオフとなった省電力モードでは、少なくとも当該アプリケーションを実行するCPU10への電力供給が制限されることによって当該アプリケーションの実行が不可能となる。しかしながら、ゲーム装置本体5に設けられた環境センサユニット28は、上記通常モードだけでなく上記省電力モードにおいてもゲーム装置本体5が位置している場所の環境の状態(例えば、気圧、温度、湿度)を所定時間間隔で検出しているため、アプリケーションを実行していない間も常に情報を取得して、その間に取得された情報を効果的に活用することができる。そして、検出された環境の状態を示す検出データを利用して所定のアプリケーションをCPU10が実行する場合、様々な情報処理が可能となる。なお、所定のアプリケーションを実行する際にゲーム装置本体5において利用する検出データは、自機で検出された環境の状態を示すデータのみでもいいし、他の装置で検出された環境の状態を示すデータを利用してもよい。
なお、ゲーム装置本体5では、上記検出データを利用しないアプリケーションの実行も可能であり、すなわちゲーム装置本体5では上記検出データを利用するアプリケーションや上記検出データを利用しないアプリケーション等の複数のアプリケーションが実行可能となっている。ここで、通常モードにおいて上記検出データを利用しないアプリケーションをゲーム装置本体5が実行中であっても、ゲーム装置本体5が位置している場所の環境の状態を所定時間間隔で検出可能であり、当該アプリケーション実行後の省電力モードにおいても上記環境の状態を所定時間間隔で検出可能であることは言うまでもない。
また、上述した説明では、時間間隔t1毎にゲーム装置3が位置している場所の環境の状態を検出して検出結果を示す検出データをメモリ285に格納し、時間間隔t2毎および通常モードへの移行時に当該検出データをフラッシュメモリ17に移動させている。そして、CPU10において上記検出データを利用したアプリケーションを実行する際に、フラッシュメモリ17に格納された検出データを利用している。しかしながら、ゲーム装置3が位置している場所の環境の状態を常時検出し、検出した結果を示す検出データを逐次メモリ285に格納してもよい。また、ゲーム装置3は、省電力モードでのみ時間間隔t1毎にゲーム装置3が位置している場所の環境の状態を検出して(すなわち、通常モードでは環境の状態を検出しない)、検出結果を示す検出データをメモリ285に格納してもよい。また、時間間隔t2毎のみ上記検出データをフラッシュメモリ17に移動させてもいいし、通常モードへの移行時のみ上記検出データをフラッシュメモリ17に移動させてもよい。
さらに、時間間隔t1毎に環境の状態を検出した検出結果を示す検出データを、直接フラッシュメモリ17に格納してもよい。また、時間間隔t1毎に環境の状態を検出した検出結果を示す検出データをメモリ285に格納し、アプリケーション実行の際にメモリ285に格納された検出データを直接利用してもよい。何れの場合であっても、時間間隔t2毎および通常モードへの移行時にメモリ285に格納された上記検出データをフラッシュメモリ17に移動させる処理が不要となる。
次に、ゲームシステム1において行われる処理の詳細を説明する。まず、図14を参照して、環境センサユニット28において行われる処理の詳細を説明する。なお、図14は、環境センサユニット28において実行される処理の一例を示すフローチャートである。図14では、環境センサユニット28(マイコン284)が実行する各ステップを「S」と略称する。
ゲーム装置本体5にACアダプタを介して電力の供給が開始されると、環境センサユニット28のマイコン284は、所定の起動用プログラムを実行する。そして、所定の環境状態検出プログラムが読み込まれ、マイコン284によって当該環境状態検出プログラムの実行が開始される。図14に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、上述したように、ゲーム装置本体5にACアダプタを介して電力が供給されていれば環境センサユニット28が常に起動状態に保たれており、後述する処理は、ゲーム装置本体5に電力が供給されている限り常に所定の周期で繰り返される。
図14において、マイコン284は、現時点が検出結果の取得タイミングであるか否かを判断する(ステップ41)。例えば、マイコン284は、時間間隔t1毎(例えば、10分間毎)に気圧センサ281、温度センサ282、および湿度センサ283から検出結果を取得しており、現時点が時間間隔t1毎の取得タイミングに相当するか否かを判断する。そして、マイコン284は、現時点が検出結果の取得タイミングである場合、次のステップ42に処理を進める。一方、マイコン284は、現時点が検出結果の取得タイミングでない場合、次のステップ44に処理を進める。
ステップ42において、マイコン284は、各センサから検出結果を示す信号を取得する。そして、マイコン284は、上記検出結果を示す検出データを検出した時系列順にメモリ285に格納し(ステップ43)、次のステップ44に処理を進める。具体的には、マイコン284は、気圧センサ281から気圧検出結果を示す信号を取得し、当該気圧検出結果を示す気圧検出データを時系列順にメモリ285に格納する。マイコン284は、温度センサ282から温度検出結果を示す信号を取得し、当該温度検出結果を示す温度検出データを時系列順にメモリ285に格納する。そして、マイコン284は、湿度センサ283から湿度検出結果を示す信号を取得し、当該湿度検出結果を示す湿度検出データを時系列順にメモリ285に格納する。
ステップ44において、マイコン284は、システムLSI11(入出力プロセッサ31)からデータ要求があったか否かを判断する。後述により明らかとなるが、電源ボタン24がオンされた時点や時間間隔t2毎(例えば、1日毎)にマイコン284へデータ要求を入出力プロセッサ31が出力しており、当該データ要求が出力された場合、マイコン284は、システムLSI11からデータ要求があったと判断する。そして、マイコン284は、データ要求があった場合、次のステップ45に処理を進める。一方、マイコン284は、データ要求がない場合、上記ステップ41に戻って処理を繰り返す。
ステップ45において、マイコン284は、メモリ285に格納されている検出データをシステムLSI11へ出力し、上記ステップ41に戻って処理を繰り返す。ここで、メモリ285には、時間間隔t1毎に取得された気圧検出データ、温度検出データ、および湿度検出データが、それぞれ時系列順に格納されている。一例として、上記ステップ45では、メモリ285に格納されている全ての気圧検出データ、温度検出データ、および湿度検出データをシステムLSI11へ出力し、メモリ285に格納されている気圧検出データ、温度検出データ、および湿度検出データを全て消去する。
次に、図15を参照して、環境センサユニット28のメモリ285からフラッシュメモリ17へ検出データを移動する際に行われる処理の詳細を説明する。なお、図15は、メモリ285からフラッシュメモリ17へ検出データを移動する際に、システムLSI11(入出力プロセッサ31)において実行される処理の一例を示すフローチャートである。図15では、入出力プロセッサ31が実行する各ステップを「S」と略称する。
上述したように、ゲーム装置本体5の電源ボタン24がオンされたり、ROM/RTC13によるウェイクアップイベントがアラーム割込として実行されたりすることによって、入出力プロセッサ31、内部メインメモリ35、およびフラッシュメモリ17が起動する。そして、入出力プロセッサ31は、起動すると、所定の起動用プログラムを実行する。そして、所定のデータ移動プログラムが読み込まれ、入出力プロセッサ31によって当該データ移動プログラムの実行が開始される。図15に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、上述したように、上記省電力モード中にROM/RTC13によるウェイクアップイベントがアラーム割込として実行された場合、ROM/RTC13および環境センサユニット28に加えて、少なくとも入出力プロセッサ31、内部メインメモリ35、およびフラッシュメモリ17がさらに起動した状態となり、後述する処理は当該起動状態で行われる。一方、ゲーム装置本体5の電源ボタン24がオンされた場合は、CPU10や入出力プロセッサ31およびフラッシュメモリ17を含め、ゲーム装置本体5における各ユニットが起動した状態となり、後述する処理は当該起動状態で行われる。
図15において、ROM/RTC13によるアラーム割込または電源ボタン24のオンによって起動した入出力プロセッサ31は、データを移動するか否かを判断する(ステップ51)。例えば、入出力プロセッサ31は、ROM/RTC13によるウェイクアップイベントがデータ移動を示す場合、電源ボタン24のオンによって起動した場合、CPU10からデータ移動の指示があった場合等において、データを移動すると判断する。そして、入出力プロセッサ31は、データを移動する場合、次のステップ52に処理を進める。一方、入出力プロセッサ31は、データを移動しない場合、次のステップ54に処理を進める。
ステップ52において、入出力プロセッサ31は、環境センサユニット28から気圧検出データ、温度検出データ、および湿度検出データを取得し、次のステップに処理を進める。例えば、入出力プロセッサ31は、環境センサユニット28(マイコン284)にデータ要求を出力する。このデータ要求に対応して、マイコン284は、メモリ285に格納されている全ての気圧検出データ、温度検出データ、および湿度検出データを入出力プロセッサ31へ出力する。
次に、入出力プロセッサ31は、環境センサユニット28から取得した気圧検出データ、温度検出データ、および湿度検出データをフラッシュメモリ17に格納し(ステップ53)、次のステップ54に処理を進める。例えば、入出力プロセッサ31は、既にフラッシュメモリ17に時系列順に格納されている気圧検出データ、温度検出データ、および湿度検出データに対して、さらに新たな検出データを時系列順に追記する形式で、上記ステップ52で取得した気圧検出データ、温度検出データ、および湿度検出データをフラッシュメモリ17に格納する。つまり、フラッシュメモリ17には環境センサユニット28で検出された環境の状態(例えば、気圧、温度、湿度)が時系列順に蓄積されていくことになる。なお、上記ステップ53において、入出力プロセッサ31は、所定時間以上前に検出された環境の状態を示す検出データを、フラッシュメモリ17から削除してもかまわない。なお、それぞれのデータを取得した時刻を判別するために、各検出結果データを記憶する度に、取得時刻を合わせて記録するようにしてもよい。また、データ取得開始時刻のみを記憶しておき、取得開始からの経過時間を検出結果データと共に記憶するようにしてもよい。そして、データ取得開始時刻と、データの測定間隔とからデータそれぞれの取得時刻を算出するようにしてもよい。
ステップ54において、入出力プロセッサ31は、その他の処理(例えば、ゲーム装置3が他の装置と接続されている場合、他の装置とデータを送受信する処理)を行うか否かを判断する。例えば、入出力プロセッサ31は、ROM/RTC13によるウェイクアップイベントがその他の処理を行うことを示す場合、CPU10からその他の処理を行う指示があった場合等において、その他の処理を行うと判断する。そして、入出力プロセッサ31は、その他の処理を行う場合、次のステップ55に処理を進める。一方、入出力プロセッサ31は、その他の処理を行わない場合、当該フローチャートによる処理を終了する。
ステップ55において、入出力プロセッサ31は、その他の処理を実行して、当該フローチャートによる処理を終了する。例えば、上記ステップ55で実行する処理が他の装置とデータを送受信する処理である場合、入出力プロセッサ31は、フラッシュメモリ17に格納されている送信用データを他の装置(例えば、サーバや他のゲーム装置3)に送信し、他の装置から送信または配信された受信データをフラッシュメモリ17に格納する。ゲーム装置3がネットワークを介して他の装置と接続されている場合、フラッシュメモリ17に格納されている気圧検出データ、温度検出データ、および湿度検出データを他の装置に送信したり、他の装置で検出された気圧検出データ、温度検出データ、および湿度検出データを受信したり、送信した気圧検出データ、温度検出データ、および湿度検出データを用いて他の装置で生成された他の形式のデータを受信したりすることが可能であるが、他の装置と連携して情報処理する態様については後述する。なお、ゲーム装置3は、他の装置との間でデータ送受信可能に接続されていなくてもかまわない。
次に、図16を参照して、所定のアプリケーションを実行する処理において用いられる主なデータについて説明する。以下の説明においては、実行するアプリケーションの一例として、フラッシュメモリ17に格納されている気圧検出データを利用して、ゲーム装置3が位置している地域の天気予測を行う処理について説明する。なお、図16は、ゲーム装置本体5の外部メインメモリ12および/または内部メインメモリ35(以下、2つのメインメモリを総称して、単にメインメモリと記載する)に記憶される主なデータおよびプログラムの一例を示す図である。
図16に示すように、メインメモリのデータ記憶領域には、検出結果データDa、操作データDb、予測結果データDc、位置データDd、および画像データDe等が記憶される。なお、メインメモリには、図16に示す情報に含まれるデータの他、仮想世界に登場するオブジェクト等に関するデータ等、処理に必要なデータが記憶される。また、メインメモリのプログラム記憶領域には、情報処理プログラムを構成する各種プログラム群Paが記憶される。
検出結果データDaは、環境センサユニット28によって検出された環境の状態の履歴を示す検出データが格納される。例えば、検出結果データDaは、気圧検出データDa1、温度検出データDa2、および湿度検出データDa3を含んでいる。気圧検出データDa1は、気圧センサ281によって検出された気圧の検出結果の履歴を示すデータであり、フラッシュメモリ17に格納されている気圧検出データの一部または全部が以降の処理で用いるデータとしてメインメモリに記憶されている。温度検出データDa2は、温度センサ282によって検出された温度の検出結果の履歴を示すデータであり、フラッシュメモリ17に格納されている温度検出データの一部または全部が以降の処理で用いるデータとしてメインメモリに記憶されている。湿度検出データDa3は、湿度センサ283によって検出された湿度の検出結果の履歴を示すデータであり、フラッシュメモリ17に格納されている湿度検出データの一部または全部が以降の処理で用いるデータとしてメインメモリに記憶されている。
操作データDbは、コントローラ7から送信データとして送信されてくる一連の操作情報が格納され、最新の操作データに更新される。操作データDbは、以降の処理においてユーザの操作として用いるデータが格納され、上記操作情報に含まれるキーデータ、加速度データ、および処理結果データの少なくとも1つが格納される。なお、ゲーム装置本体5に備える無線コントローラモジュール19は、コントローラ7から所定周期(例えば、1/200秒毎)に送信される操作情報を示すデータを受信し、無線コントローラモジュール19に備える図示しないバッファに蓄えられる。その後、上記バッファに蓄えられたデータが処理周期である1フレーム毎(例えば、1/60秒毎)に読み出されて、メインメモリの操作データDbが更新される。
予測結果データDcは、ゲーム装置3が位置している地域の天気を予測した結果を示すデータが格納される。位置データDdは、ゲーム装置3の位置を示すデータが格納される。例えば、位置データDdは、フラッシュメモリ17に記憶されている管理用データ(ゲーム装置3が置かれている住所等を示すゲーム装置3の位置情報)を格納してもいいし、グローバル・ポジショニング・システム(GPS:Global Positioning System)を搭載していれば当該GPSから得られる位置情報を格納してもよい。
画像データDeは、オブジェクト画像データDe1および背景画像データDe2等を含んでいる。オブジェクト画像データDe1は、仮想世界に各種オブジェクトを配置して画像を生成するためのデータである。背景画像データDe2は、仮想世界に背景を配置して画像を生成するためのデータである。
次に、図17を参照して、CPU10において行われる所定のアプリケーションを実行する処理の詳細を説明する。なお、図17は、CPU10において実行される処理の一例を示すフローチャートである。ここで、図17に示すフローチャートにおいては、フラッシュメモリ17に格納されている気圧検出データを利用して、ゲーム装置3が位置している地域の天気予測を行う処理について主に説明し、本願発明と直接関連しない他の処理については詳細な説明を省略する。また、図17では、CPU10が実行する各ステップを「S」と略称する。
ゲーム装置本体5の電源ボタン24がオンされると、ゲーム装置本体5のCPU10は、ROM/RTC13に記憶されている起動用のプログラムを実行し、これによってメインメモリ等の各ユニットが初期化されてゲーム装置本体5の処理モードが省電力モードから通常モードに移行する。そして、光ディスク4等に記憶された情報処理プログラムがメインメモリに読み込まれ、CPU10によって当該プログラムの実行が開始される。図17に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
図17において、CPU10は、フラッシュメモリ17に格納されている検出データの履歴およびゲーム装置3の位置データを取得して(ステップ61)、次のステップに処理を進める。例えば、CPU10は、フラッシュメモリ17に蓄積されて格納されている気圧検出データ、温度検出データ、および湿度検出データを、情報処理に用いるデータとして検出結果データDaに格納する。また、CPU10は、フラッシュメモリ17に格納されている管理用データに含まれるゲーム装置3の位置情報を示すデータやGPSから得られる位置情報を示すデータを、情報処理に用いるデータとして位置データDdに格納する。なお、自身で取得したデータのみに基づいて、現在地のみの天気の予測を行なう場合等、天気の予測に位置の情報を使わなくともよい場合には、位置データDdは必ずしも取得されなくともよい。
次に、CPU10は、検出結果データDaを参照して、天気の予測が可能か否かを判断する(ステップ62)。例えば、CPU10は、検出結果データDaに格納されている時系列順の検出データの数が、天気の予測に必要な数(例えば、過去8時間分の検出回数に相当する数)に到達していない場合、天気の予測が不可能であると判断する。そして、CPU10は、天気の予測が可能である場合、次のステップ63に処理を進める。一方、CPU10は、天気の予測が不可能である場合、次のステップ65に処理を進める。
ステップ63において、CPU10は、天気の予測を行い、次のステップに処理を進める。例えば、CPU10は、気圧検出データDa1を参照し、気圧センサ281によって検出された気圧の検出結果履歴における気圧の上昇/下降傾向に基づいて天気を予測し、当該予測結果を示すデータを予測結果データDcに格納する。具体的には、CPU10は、上記気圧の検出結果履歴において現時点が上昇傾向にある場合、天気が回復傾向にあると予測する。また、CPU10は、上記気圧の検出結果履歴において現時点が気圧の下降傾向にある場合、天気が悪化傾向にあると予測する。また、CPU10は、上記気圧の検出結果履歴において現時点が気圧の上昇傾向にも下降傾向にもない場合、天気の変化がない傾向にあると予測する。
次に、CPU10は、天気の予測結果をモニタ2に表示し(ステップ64)、次のステップ66に処理を進める。例えば、CPU10は、予測結果データDcに格納されたデータが天気悪化傾向を示す場合、気圧が下降中であることを示すとともに、天気が悪化傾向にある旨の情報(例えば、「雨が降りそうです」)をモニタ2に表示する(図11参照)。なお、ステップ63で予測された天気は、ゲーム装置3が位置している地域に対する予測となるため、モニタ2に天気が予測された地域を示す情報も表示してもかまわない。具体的には、位置データDdにはゲーム装置3の位置情報を示すデータが格納されており、CPU10は、当該位置情報を用いて天気が予測された地域を設定することができる。例えば、CPU10は、モニタ2に所定の範囲の地図を表示し、ゲーム装置3が位置している地域に対応する表示位置に天気の予測結果を示すマーク(例えば、雨マーク、晴れマーク、曇りマーク)を配置して表示することによって、天気の予測結果とともに天気が予測された地域をユーザに報知することができる。
一方、ステップ65において、CPU10は、天気の予測が不可能である旨の情報(例えば、「データ数が少ないため天気の予測ができません」)をモニタ2に表示し(ステップ65)、次のステップ66に処理を進める。
ステップ66において、CPU10は、処理を終了するか否かを判断する。処理を終了する条件としては、例えば、処理を終了させる条件が満たされたことや、ユーザが処理を終了する操作を行ったこと等がある。そして、CPU10は、処理を終了しない場合に上記ステップ61に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。例えば、ユーザが処理を終了する操作を行ったことによって処理を終了するか否かを判断する場合、CPU10は、コントローラ7から操作情報を示すデータを取得して当該操作情報に基づいて操作データDbを更新する。そして、CPU10は、操作データDbが示す操作内容が処理を終了する操作を示す場合、上記ステップ66において肯定判定する。
このように、ゲーム装置3は、電源ボタン24がオン状態となった通常モードだけでなく、電源ボタン24がオフ状態で消費電力が制限された省電力モードにおいても常に情報を取得しており、当該情報を利用するアプリケーションを実行していない間や当該情報を利用しないアプリケーションを実行していない間も常に情報を取得している。そして、ゲーム装置3では、上述のように取得された情報を効果的に活用することができる。また、上述した実施例においては、ゲーム装置3が自機で検出した情報のみを利用してアプリケーションの実行が可能となるため、ゲーム装置3がネットワークに接続されてない環境であっても自機で情報収集することによって、日々結果が変わるような処理結果をユーザに提供することができる。
なお、上述した説明では、省電力モードおよび通常モードにおいてゲーム装置3が環境の状態を検出し、自機で検出した情報のみを利用してアプリケーションの実行する例を用いたが、ゲーム装置3が他の装置とデータの送受信を行うことによって、新たな情報処理が可能となる。以下、図18および図19を用いて、省電力モードおよび通常モードにおいてゲーム装置3が環境の状態を検出するとともに、ゲーム装置3が他の装置(例えば、サーバ)とデータ送受信を行うことによって情報処理を実行する一例を説明する。なお、図18は、ゲーム装置3との間でデータ送受信可能となっているサーバにおいて実行される処理の一例を示すフローチャートである。図19は、上記サーバによって生成される天気図の一例を示す図であり。なお、図18では、サーバが実行する各ステップを「S」と略称する。
以下の説明においては、複数のゲーム装置3がネットワークに接続されており、各ゲーム装置3は、当該ネットワークを介してサーバと接続されている。そして、各ゲーム装置3は、ネットワークを介して少なくともサーバとの間でデータ送受信が可能となっている。
図18において、サーバは、上記ネットワークに接続されている各ゲーム装置3から、検出データおよび管理用データを受信し(ステップ91)、次のステップに処理を進める。ここで、各ゲーム装置3は、上記サーバへの送信用データをフラッシュメモリ17に予め準備している。例えば、各ゲーム装置3は、フラッシュメモリ17に蓄積されている検出データおよび管理用データ(ゲーム装置3の識別情報やメールアドレス、ゲーム装置3の位置情報(住所等)等)を、上記サーバへの送信用データとしてフラッシュメモリ17に記憶している。そして、上記ステップ54において、入出力プロセッサ31は、ROM/RTC13によるウェイクアップイベントが準備された送信用データを上記サーバへ送信することを示す場合や、CPU10から送信用データを上記サーバへ送信する指示があった場合、上記ステップ55においてネットワークを介して送信用データを上記サーバへ送信する処理を実行する。なお、ROM/RTC13によって、送信用データをサーバへ送信するウェイクアップイベントがアラーム割込として実行された場合、入出力プロセッサ31、内部メインメモリ35、およびフラッシュメモリ17に加えて、さらに無線通信モジュール18が起動する。上記サーバは、このように各ゲーム装置3から検出データおよび管理用データが送信された場合、上記ステップ91で受信する。
次に、サーバは、上記ステップ91で受信した検出データおよび管理用データを、当該サーバが有する記憶装置にゲーム装置3毎に格納し(ステップ92)、次のステップに処理を進める。このように上記ステップ91およびステップ92を繰り返すことによって、上記サーバの記憶装置には、上記ネットワークに接続されたゲーム装置3毎に定期的に検出された環境の状況を示すデータ(検出データ)とゲーム装置3の位置情報(管理用データ)とが少なくとも蓄積されていくことになる。
次に、サーバは、天気図を作成するか否かを判断する(ステップ93)。例えば、サーバは、予め定められた天気図作成タイミングが到来した場合や、上記ネットワークに接続されたゲーム装置3から天気図の要求(ダウンロード要求)があった場合等において、天気図を作成すると判断する。そして、サーバは、天気図を作成する場合、次のステップ94に処理を進める。一方、サーバは、天気図を作成しない場合、上記ステップ91に戻って処理を繰り返す。
ステップ94において、サーバは、サーバの記憶装置に格納されている各ゲーム装置3の位置情報に基づいて、当該ゲーム装置3でそれぞれ検出された気圧値を海面レベルに補正(海面補正)して、次のステップに処理を進める。例えば、ゲーム装置3の位置情報として住所とゲーム装置3が置かれている階数が示されている場合、当該住所の標高に当該階数に相当する高さを加算した値を用いて、当該ゲーム装置3で検出されている最も新しい気圧値を海面レベルに補正する。そして、サーバは、このような気圧値の補正を、記憶装置に格納されているゲーム装置3毎に行い、補正後の気圧値およびその位置情報を組にしてそれぞれ当該記憶装置に格納する。
次に、サーバは、上記ステップ94で算出された補正後の気圧値を、それぞれその位置情報に基づいて所定の地図上に配置する(ステップ95)。そして、サーバは、地図上に配置された気圧値を用いて等圧線を描画することによって天気図を作成し(ステップ96)、次のステップに処理を進める。例えば、図19に示すように、サーバは、地図上に配置された気圧値を用いて4hPa(ヘクトパスカル)毎に等圧線を描画する。そして、サーバは、上記地図上において等圧線が閉じた領域に低気圧または高気圧を示すマークを記載したり、等圧線が低気圧性の曲率で折れ曲がっている部位を結んで各種前線を記載したりすることによって、上記地図に対する天気図を作成して、記憶装置に格納されている天気図を更新する。
次に、サーバは、上記ステップ96で作成された天気図を、上記ステップ91で受信した管理用データを用いてゲーム装置3へ送信し(ステップ97)、上記ステップ91に戻って処理を繰り返す。ここで、各ゲーム装置3は、上記サーバから天気図を示すデータを受信(ダウンロード)した場合、フラッシュメモリ17に受信データとして格納する。例えば、上記ステップ54において、入出力プロセッサ31は、ROM/RTC13によるウェイクアップイベントが上記サーバからデータを受信することを示す場合や、CPU10から上記サーバからデータを受信する指示があった場合、上記ステップ55においてネットワークを介して上記サーバからデータをダウンロードする処理を実行し、受信したデータをフラッシュメモリ17に記憶する。なお、ROM/RTC13によって、サーバからデータを受信するウェイクアップイベントがアラーム割込として実行された場合、入出力プロセッサ31、内部メインメモリ35、およびフラッシュメモリ17に加えて、さらに無線通信モジュール18が起動する。そして、ゲーム装置3が通常モードに移行した場合、ダウンロードされた天気図をユーザの操作に応じてモニタ2に表示する。なお、サーバは、送信先となるゲーム装置3の位置情報を用いて、当該ゲーム装置3の現在位置が実質的に中心となった所定範囲の天気図の作成や当該現在位置を含む地域の天気予測を、送信先毎に行ってもよい。また、送信先となるゲーム装置3の位置が分かるようなマーク(例えば、図19に示すような自宅マーク)や当該位置を含む地域の天気予測を示すマークを天気図上に配置してもよく、この場合、送信する天気図に対して、当該天気図を受け取るユーザの位置やユーザの地域の天気予測が明確となる。
このように、省電力モードおよび通常モードにおいてゲーム装置3が環境の状態を検出するとともに、サーバが各ゲーム装置3で検出された環境の状態を取得することによって、多くの地点で検出された環境の状態に基づいた情報処理が可能となり、今までにない沢山の情報量に基づいた新たな情報処理が可能となる。また、上述では、各ゲーム装置3で検出されている最も新しい気圧値を用いて天気図(等圧線)を作成する例を説明したが、各ゲーム装置3で検出されている気圧値の履歴を用いれば、天気図の履歴(現在までの気圧分布の移り変わり等)を作成して、各ゲーム装置3に配信できることは言うまでもない。
なお、上述した説明では、環境センサユニット28がゲーム装置本体5に内蔵され、システムLSI11(入出力プロセッサ31)に直接的に接続される態様を用いたが、環境センサユニット28は、ゲーム装置本体5の外部に設けてもかまわないし、ゲーム装置本体5に対して着脱可能に構成してもかまわない。例えば、ゲーム装置本体5には周辺機器を接続するための拡張コネクタ20が設けられており、拡張コネクタ20を介して環境センサユニット28を着脱可能にゲーム装置本体5の外部に設けてもかまわない。この場合、環境センサユニット28は、拡張コネクタ20を介してシステムLSI11(入出力プロセッサ31)と接続されることになる。
また、上述した説明では、省電力モードにおいて、環境センサユニット28に格納された検出データをフラッシュメモリ17に移動させる際やデータを他の装置に送信するおよび/または他の装置からデータを受信する際に、ROM/RTC13によるウェイクアップイベントが実行されることによって入出力プロセッサ31等が起動する態様を用いたが、他のトリガ制御によってこれらの処理を実現してもかまわない。例えば、ゲーム装置本体5に、省電力モード中の入出力プロセッサ31等の起動を制御するSMC(システムマネージメントコントローラ)、SMU(システムマネージメントユニット)、またはPMU(パワーマネージメントユニット)等を設けて上述した処理を実現してもかまわない。また、環境センサユニット28が省電力モード中の入出力プロセッサ31等の起動を制御してもかまわない。例えば、省電力モードにおいて環境センサユニット28に格納された検出データをフラッシュメモリ17に移動させる際やデータ送受信を行う際、マイコン284が入出力プロセッサ31、内部メインメモリ35、およびフラッシュメモリ17を起動させて、当該データ移動処理やデータ送受信処理を実現させてもかまわない。
また、上述した説明では、本発明の情報処理装置の一例として据置型のゲーム装置本体5を用いたが、他のデバイスにも本発明を適用することができる。例えば、環境の状態(例えば、気圧、温度、湿度)を検出するセンサからの出力を取得可能な情報処理装置であれば、本発明を適用可能である。具体的には、一般的なパーソナルコンピュータ、携帯電話機、PDA(Personal Digital Assistant)、携帯ゲーム装置等のデバイスにも、本発明を適用することができる。
例えば、携帯電話機、PDA、携帯ゲーム装置等の携帯デバイスに本発明を適用する場合、典型的には携帯デバイス本体内部に環境の状態を検出するセンサを内蔵させる。そして、携帯デバイスの位置情報が必要となる場合は、自機の位置情報をGPS等で取得して利用することによって、上述したゲーム装置本体5と同様に本発明を実現することができる。なお、携帯デバイスに本発明を適用した場合、携帯デバイスを移動させることによって様々な場所における環境の状態を検出することができるため、自機の検出データだけを用いて複数の場所における環境の比較等を実現することができる。
また、上述した説明では、環境の状態を検出する検出部の一例として気圧センサ、温度センサ、湿度センサを用いたが、気圧センサ、温度センサ、および湿度センサのうち、少なくとも1つのセンサを備えていれば、本発明を実現可能である。例えば、上述したゲーム装置3が位置している地域の天気予測を行う処理では、気圧検出データのみを用いて実現可能であり、この場合、温度センサ282および湿度センサ283が備えられてなくてもよい。
また、他のデバイスを用いて環境の状態を検出してもかまわない。例えば、環境の状態を検出する検出部として、においセンサ、ほこりセンサ、人感センサ、ゲーム装置本体5周辺を撮像するカメラ、照度センサ、紫外線センサ等を環境センサユニット28に搭載してもかまわない。一例として、環境の状態を検出する検出部としてゲーム装置本体5周辺を撮像するカメラを用いる場合、ゲーム装置本体5の周辺に居る人物の区別や人数を、上記環境の状態として取り扱うことができる。また、環境の状態を検出する検出部として照度センサや紫外線センサを用いる場合、当日の日差しの強さや紫外線の量をユーザに報知することも可能となる。
また、上述したゲーム装置3で検出した検出データを用いれば、様々なアプリケーションの実行が可能となる。以下、上記検出データを利用したアプリケーションの例を記載する。
第1のアプリケーション例は、ゲーム装置3が位置している場所の環境の状態に応じて、赤外線信号を受信することによって制御される機器の動作を制御する。例えば、CPU10は、温度センサ282が検出した最新の温度が予め定められた第1の温度より高い場合、エアーコンディショナの電源をオンして冷房モードで作動させる。また、CPU10は、温度センサ282が検出した最新の温度が予め定められた第2の温度より低い場合、エアーコンディショナの電源をオンして暖房モードで作動させる。
一例として、ゲーム装置3をユーザが設定した時刻において通常モードへ移行可能に構成し、予めユーザが上記時刻と上記第1の温度および第2の温度とをゲーム装置本体5(例えば、フラッシュメモリ17)に設定する。そして、ゲーム装置3が上記時刻において省電力モードから通常モードに移行した際、温度センサ282が検出した最新の温度を示す検出データをCPU10が取得し、当該温度に応じてLED制御部27へエアーコンディショナの動作を制御する指示を出力する。具体的には、上記時刻において取得した最新の温度が上記第1の温度より高い場合、CPU10は、LED制御部27を介してエアーコンディショナの電源をオンし冷房モードで作動させるための赤外線信号を送出する指示をLEDモジュール8に対して行う。この指示に応じて、LEDモジュール8の各マーカ8Lおよび8Rは、エアーコンディショナの電源をオンして冷房モードで作動させるための赤外線信号を照射する。そして、照射された赤外線信号は、その直接光がエアーコンディショナの受光部で受光されるか、または、周囲に存在する物体(部屋に置かれている物体や部屋の壁や窓ガラス等)に反射した反射光が当該受光部で受光される。これによって、上記赤外線信号を受光したエアーコンディショナは、電源オンされて冷房モードでの作動を開始する。また、上記時刻において取得した最新の温度が上記第2の温度より低い場合、CPU10は、LED制御部27を介してエアーコンディショナの電源をオンし暖房モードで作動させるための赤外線信号を送出する指示をLEDモジュール8に対して行う。この指示に応じて、LEDモジュール8の各マーカ8Lおよび8Rは、エアーコンディショナの電源をオンして暖房モードで作動させるための赤外線信号を照射する。そして、照射された赤外線信号は、その直接光または反射光がエアーコンディショナの受光部で受光される。これによって、上記赤外線信号を受光したエアーコンディショナは、電源オンされて暖房モードでの作動を開始する。
このように、上記第1のアプリケーション例では、上記機器の電源がオフ状態であっても当該機器の制御を可能とし、例えばエアーコンディショナの電源がオフ状態であっても、ゲーム装置3が置かれた室内の温度制御が可能となる。また、上述したように、LEDモジュール8の各マーカ8Lおよび8Rは、コントローラ7が指し示している位置や移動方向に応じた座標入力や方向入力を算出する際に用いられるコントローラ7の動き、姿勢、位置等に応じた信号を得るため設けられているデバイスである。しかしながら、上記第1のアプリケーション例では、検出された環境の状態(例えば、温度)に応じて、座標入力や方向入力に用いられるLEDモジュール8を点灯制御することによって、本来の用途とは異なる用途にLEDモジュール8を用いることができる。
第2のアプリケーション例は、ゲーム装置3で検出された環境の状態から予測される天候、季節、時節、日射量等を、当該アプリケーションを実行することによって構築される仮想世界の環境に反映させる。一例として、CPU10は、ゲーム装置3で検出された気圧の履歴に基づいて、当該ゲーム装置3が位置している地域の天候が雨であると予測される場合、上記第2のアプリケーションを実行することによって行われるゲームにおける仮想世界の環境を雨に設定する。他の例として、CPU10は、ゲーム装置3で検出された温度や湿度の履歴に基づいて、当該ゲーム装置3が位置している場所における季節が夏であると予測される場合、上記第2のアプリケーションを実行することによって行われるゲームにおける仮想世界の環境を夏に設定する。なお、上記予測される天候、季節、時節、日射量等は、ゲーム装置3で検出された環境の状態のみを用いて予測されたものでもいいし、複数のゲーム装置3で検出された環境の状態を用いて他の装置(例えば、サーバ)で予測されたものでもよい。
第3のアプリケーション例は、ゲーム装置3で検出された環境の状態を用いて、時間的に変動する現象の目安(指数)を算出する。例えば、CPU10は、ゲーム装置3で検出された温度および湿度の履歴に基づいて、ゲーム装置3が配置されている場所におけるビール指数、インフルエンザ流行指数、快適指数、不快指数、洗濯指数等を算出し、算出結果をモニタ2に表示してユーザに報知する。なお、上記算出される各種指数は、ゲーム装置3で検出された環境の状態のみを用いて算出されてもいいし、複数のゲーム装置3で検出された環境の状態を用いて他の装置(例えば、サーバ)で算出されてもよい。
第4のアプリケーション例は、ゲーム装置3で検出された環境の状態に基づいて、ゲーム装置3のユーザに各種アドバイスを与える。一例として、CPU10は、ゲーム装置3で検出された温度の履歴を用いて前日と当日との気温差等を算出し、当該気温差に基づいて当日に推奨される服装のアドバイスをモニタ2に表示してユーザに報知する。他の例として、CPU10は、ゲーム装置3で検出された温度や湿度の履歴を用いて当日の季節や時節を予測し、予測された季節や時節とともに当日の気温に基づいて当日に推奨される料理(献立)のアドバイスをモニタ2に表示してユーザに報知する。なお、上記気温差の算出、季節や時節の予測、および各アドバイス内容の設定は、ゲーム装置3で検出された環境の状態のみを用いてゲーム装置3内で算出、予測、および設定されてもいいし、複数のゲーム装置3で検出された環境の状態を用いて他の装置(例えば、サーバ)で算出、予測、および設定されてもよい。
第5のアプリケーション例は、ゲーム装置3で検出された環境の状態の履歴とともに、他のゲーム装置3で検出された環境の状態の履歴をモニタ2に表示することによって、両者の比較を行う。例えば、ゲーム装置3は、ユーザの知人が所有する他のゲーム装置3やユーザが環境比較したい地域に位置する他のゲーム装置3で検出された温度や湿度の履歴を示す検出データを受信し、自機で検出された温度や湿度の履歴と他のゲーム装置3で検出された温度や湿度の履歴とが比較できるようにモニタ2に表示する。これによって、ゲーム装置3のユーザは、当該ゲーム装置3を置いている自身の居室と知人の部屋との環境を比較したり、ユーザが興味ある地域の環境と比較したりすることによって、環境の差を実感することができる。
第6のアプリケーション例は、他のゲーム装置3で検出された環境の状態の履歴に基づいて、他のゲーム装置3のユーザ在室状況を監視する。例えば、ゲーム装置3は、ユーザの離れた家族等が所有する他のゲーム装置3において検出された温度の履歴を示す検出データを当該他のゲーム装置3から定期的に受信する。そして、CPU10は、他のゲーム装置3から受信した温度の履歴と、在室時の温度変化パターンおよび不在時の温度変化パターンとを比較することによって、当該他のゲーム装置3のユーザの在室状況を予測し、当該予測結果をモニタ2に表示してユーザに通知する。これによって、ゲーム装置3のユーザは、離れた家族等の所在を定期的に確認することが可能となり、離れた家族の安否を見守ることができる。
また、上述したゲーム装置本体5やコントローラ7の形状や、それらに設けられている各種操作部の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した処理で用いられる処理順序等は、単なる一例に過ぎず他の処理順序であっても、本発明を実現できることは言うまでもない。
また、上述した説明では情報処理全体をゲーム装置3のみで行う例が記載されているが、当該情報処理における処理ステップの少なくとも一部を他の装置(例えば、他のゲーム装置やサーバ)で行ってもかまわない。例えば、ゲーム装置3が他の装置と通信可能に構成されている場合、上記情報処理における処理ステップは、ゲーム装置3および当該他の装置が協働することによって実行してもよい。一例として、ゲーム装置3において、環境の状態を検出して当該検出結果を示す検出データを他の装置へ送信する。そして、他の装置において、ゲーム装置3から送信された検出データを用いた情報処理(例えば、天気の予測、在室状況の確認、時節の推定等)が行われて、当該情報処理結果を示すデータが他の装置からゲーム装置3へ送信され、モニタ2に当該情報処理結果が表示される。このように、上記画像における処理ステップの少なくとも一部を他の装置で行うことによって、上述した情報処理と同様の処理が可能となる。このように、上述した情報処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置3のマイコン284、入出力プロセッサ31、およびCPU10がそれぞれ所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置3が備える専用回路によって上記処理の一部または全部が行われてもよい。
また、上記実施形態で用いられる各種プログラムは、光ディスク4等の外部記憶媒体を通じてゲーム装置本体5に供給されたり、不揮発性記憶装置に予め記録されたりするだけでなく、有線または無線の通信回線を通じてゲーム装置本体5に供給されてもよい。なお、上記各種プログラムを記憶する情報記憶媒体としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体の他に、不揮発性半導体メモリ、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ等でもよい。また、上記各種プログラムを記憶する情報記憶媒体としては、当該プログラムを一時的に記憶する揮発性メモリでもよい。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。