【文献】
DongSoo"Luie"Han,"「Nintendo Media Briefing」レポート ハードウェア編 新インターフェイス「Wii Vitality Sensor」が登場。「Wii Fit」新作と「Wii Sports Resort」の最新情報も公開",GAME Watch,日本,株式会社Impress Watch,2009年 6月 3日,[2014年5月1日検索],URL,http://game.watch.impress.co.jp/docs/news/20090603_212288.html
(58)【調査した分野】(Int.Cl.,DB名)
前記センサ装着判定手段は、前記生体信号取得手段で取得した生体信号の値が所定の閾値以上である場合に前記センサが装着状態および非装着状態の一方であると判定し、前記生体信号取得手段で取得した生体信号の値が当該閾値未満である場合に前記センサが装着状態および非装着状態の他方であると判定する、請求項1または2に記載のゲームプログラム。
前記センサ装着判定手段は、前記生体信号取得手段で取得した生体信号の値が所定の範囲内である場合に前記センサが装着状態および非装着状態の一方であると判定し、前記生体信号取得手段で取得した生体信号の値が当該範囲外である場合に前記センサが装着状態および非装着状態の他方であると判定する、請求項1または2に記載のゲームプログラム。
前記センサ装着判定手段は、前記生体信号取得手段で取得した生体信号の値の変化量が所定の閾値以上である場合に前記センサが装着状態から非装着状態へ変化または非装着状態から装着状態へ変化したと判定し、前記生体信号取得手段で取得した生体信号の値の変化量が当該閾値未満である場合に前記センサの装着状態に変化がないと判定する、請求項1または2に記載のゲームプログラム。
前記第1ゲーム処理手段は、前記センサが非装着状態から装着状態へ変化したと前記センサ装着判定手段が判定した時点から前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定手段が判定するまでの時間の長さを競うゲームを示すゲーム画像を表示装置に表示し、
前記ゲーム開始手段は、前記センサが非装着状態から装着状態へ変化したと前記センサ装着判定手段が判定した場合、さらに前記ゲームが開始されたことを示すゲーム画像を前記表示装置に表示し、
前記結果処理手段は、前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定手段が判定した場合、さらに前記経過時間計時手段が計時している経過時間に応じた結果を前記表示装置に表示する、請求項1に記載のゲームプログラム。
前記第1ゲーム処理手段は、前記時間の長さを競うゲームにおいて、当該時間の長さに対してゲーム結果の優劣を判定するための第1判定時間を設定する判定時間設定手段を、さらに含み、
前記結果処理手段は、前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定手段が判定したタイミングにおける前記経過時間が前記第1判定時間未満か否かに応じて、前記ゲーム結果の優劣を前記表示装置に表示する、請求項7に記載のゲームプログラム。
前記結果処理手段は、前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定手段が判定したタイミングにおける前記経過時間が前記第1判定時間未満の場合、前記ゲームに成功したことを前記表示装置に表示し、
前記結果処理手段は、前記経過時間が前記第1判定時間に到達した時点において、まだ前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定手段が判定していない場合、前記ゲームに失敗したことを前記表示装置に表示する、請求項8に記載のゲームプログラム。
前記結果処理手段は、前記ゲーム結果の優劣とともに、前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定手段が判定したタイミングにおける前記経過時間と前記第1判定時間との時間差に応じたゲーム結果を前記表示装置に表示する、請求項8に記載のゲームプログラム。
前記結果処理手段は、前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定手段が判定したタイミングにおける前記経過時間が前記第1判定時間未満の場合、前記ゲームに成功したことを示すとともに、当該経過時間に応じたゲームスコアを前記表示装置に表示する、請求項8に記載のゲームプログラム。
前記結果処理手段は、前記対象選択手段が前記選択対象の1つを選択した後に前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定手段が判定した場合、当該判定タイミングに応じて前記判定結果を前記表示装置に表示する、請求項13に記載のゲームプログラム。
前記対象選択手段は、所定の周期で前記複数の選択対象から選択可能な対象を順次変更し、前記センサが非装着状態から装着状態へ変化したと前記センサ装着判定手段が判定した場合に当該判定タイミングで選択可能となっている対象を前記1つの選択対象として選択する、請求項13に記載のゲームプログラム。
複数の装置が通信可能に構成され、プレイヤに装着されるセンサから繰り返し取得した生体信号に基づいて生体指標を算出し、当該生体指標を用いた所定のゲーム処理が可能なゲームシステムであって、
前記生体信号を取得する生体信号取得手段と、
前記生体信号に基づいて、プレイヤにおける前記センサの装着状態を判定するセンサ装着判定手段と、
前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定手段が判定した場合および前記センサが非装着状態から装着状態へ変化したと前記センサ装着判定手段が判定した場合の少なくとも一方の場合に、当該判定されたタイミングそれぞれに応じて所定のゲーム処理を行う第1ゲーム処理手段とを備え、
前記第1ゲーム処理手段は、
前記センサが非装着状態から装着状態へ変化したと前記センサ装着判定手段が判定した場合、当該判定されたタイミングからゲームを開始するゲーム開始手段と、
前記ゲーム開始手段が前記ゲームを開始した後の経過時間を計時する経過時間計時手段と、
前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定手段が判定した場合、当該判定されたタイミングにおいて前記経過時間計時手段が計時している経過時間に応じた処理を行う結果処理手段とを含む、ゲームシステム。
プレイヤに装着されるセンサから繰り返し取得した生体信号に基づいて生体指標を算出し、当該生体指標を用いた所定の処理が可能な少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されるゲーム処理方法であって、
前記生体信号を取得する生体信号取得ステップと、
前記生体信号に基づいて、プレイヤにおける前記センサの装着状態を判定するセンサ装着判定ステップと、
前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定ステップにおいて判定した場合および前記センサが非装着状態から装着状態へ変化したと前記センサ装着判定ステップにおいて判定した場合の少なくとも一方の場合に、当該判定されたタイミングそれぞれに応じて所定のゲーム処理を行う第1ゲーム処理ステップとを含み、
前記第1ゲーム処理ステップは、
前記センサが非装着状態から装着状態へ変化したと前記センサ装着判定ステップにおいて判定した場合、当該判定されたタイミングからゲームを開始するゲーム開始ステップと、
前記ゲーム開始ステップにおいて前記ゲームを開始した後の経過時間を計時する経過時間計時ステップと、
前記センサが装着状態から非装着状態へ変化したと前記センサ装着判定ステップにおいて判定した場合、当該判定されたタイミングにおいて前記経過時間計時ステップにおいて計時している経過時間に応じた処理を行う結果処理ステップとを含む、ゲーム処理方法。
【発明を実施するための形態】
【0046】
図1を参照して、本発明の一実施形態に係るゲームプログラムを実行する装置について説明する。以下、説明を具体的にするために、当該装置の一例である据置型のゲーム装置本体5を含むゲームシステムを用いて説明する。なお、
図1は据置型のゲーム装置3を含むゲームシステム1の一例を示す外観図であり、
図2はゲーム装置本体5の一例を示すブロック図である。以下、当該ゲームシステム1について説明する。
【0047】
図1において、ゲームシステム1は、表示手段の一例の家庭用テレビジョン受像機(以下、モニタと記載する)2と、当該モニタ2に接続コードを介して接続する据置型のゲーム装置3とから構成される。モニタ2は、ゲーム装置3から出力された音声信号を音声出力するためのスピーカ2aを備える。また、ゲーム装置3は、上記ゲームプログラムを記録した光ディスク4と、当該光ディスク4のゲームプログラムを実行してゲーム画面をモニタ2に表示出力させるためのコンピュータを搭載したゲーム装置本体5と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体5に与えるためのコントローラ7とを備えている。
【0048】
ゲーム装置本体5は、無線コントローラモジュール19(
図2参照)を内蔵する。無線コントローラモジュール19は、コントローラ7から無線送信されるデータを受信し、ゲーム装置本体5からコントローラ7へデータを送信して、コントローラ7とゲーム装置本体5とを無線通信によって接続する。さらに、ゲーム装置本体5には、当該ゲーム装置本体5に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。
【0049】
ゲーム装置本体5には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ17(
図2参照)が搭載される。ゲーム装置本体5は、光ディスク4に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ2に表示する。また、上記ゲームプログラムは、光ディスク4に限らず、フラッシュメモリ17に予め記録されたものを実行するようにしてもよい。さらに、ゲーム装置本体5は、フラッシュメモリ17に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
【0050】
コントローラ7は、無線コントローラモジュール19を内蔵するゲーム装置本体5へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて操作情報および生体信号等の送信データを無線送信する。コントローラ7は、コアユニット70およびバイタルセンサ76を備えており、コアユニット70およびバイタルセンサ76が屈曲自在な接続ケーブル79を介して互いに接続されて構成されている。コアユニット70は、主にモニタ2の表示画面に表示されるオブジェクト等を操作するための操作手段である。バイタルセンサ76は、プレイヤの身体(例えば、指)に装着されてプレイヤの生体信号を取得し、接続ケーブル79を介してコアユニット70へ生体信号を送る。コアユニット70は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン(十字キーやスティック等を含む)とが設けられている。また、後述により明らかとなるが、コアユニット70は、当該コアユニット70から見た画像を撮像する撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール(以下、マーカと記載する)8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって例えば赤外光を出力する。また、コントローラ7(例えば、コアユニット70)は、ゲーム装置本体5の無線コントローラモジュール19から無線送信された送信データを通信部75で受信して、当該送信データに応じた音や振動を発生させることもできる。
【0051】
なお、本実施例では、コアユニット70とバイタルセンサ76とを屈曲自在な接続ケーブル79で接続したが、バイタルセンサ76に無線ユニットを搭載することで、接続ケーブル79をなくすこともできる。例えば、無線ユニットとしてBluetoothユニットをバイタルセンサ76に搭載することで、バイタルセンサ76からコアユニット70やゲーム装置本体5へ生体信号を送信することが可能になる。また、コアユニット70にバイタルセンサ76を固定して設けることによって、コアユニット70とバイタルセンサ76とを一体構成してもかまわない。この場合、プレイヤは、コアユニット70一体でバイタルセンサ76を扱うことができる。
【0052】
次に、
図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等を有する。
【0053】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSI11の内部構成については、後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置本体5の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ35または外部メインメモリ12に読み出したデータを書き込む。
【0054】
また、システムLSI11には、入出力プロセッサ31、GPU(Graphics Processor Unit)32、DSP(Digital Signal Processor)33、VRAM(Video RAM)34、および内部メインメモリ35が設けられる。図示は省略するが、これらの構成要素31〜35は、内部バスによって互いに接続される。
【0055】
GPU32は、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)にしたがっ
て画像を生成する。VRAM34は、GPU32がグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU32は、VRAM34に記憶されたデータを用いて画像データを作成する。
【0056】
DSP33は、オーディオプロセッサとして機能し、内部メインメモリ35や外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0057】
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、AVコネクタ16を介して、読み出した画像データをモニタ2に出力するとともに、読み出した音声データをモニタ2に内蔵されるスピーカ2aに出力する。これによって、画像がモニタ2に表示されるとともに音がスピーカ2aから出力される。
【0058】
入出力プロセッサ(I/Oプロセッサ)31は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ31は、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、および外部メモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0059】
入出力プロセッサ31は、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ31は、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール18およびアンテナ22を介して当該データをネットワークに送信する。また、入出力プロセッサ31は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22、および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10は、ゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置本体5と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体5を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0060】
また、入出力プロセッサ31は、アンテナ23および無線コントローラモジュール19を介して、コントローラ7から送信される操作データ等を受信し、内部メインメモリ35または外部メインメモリ12のバッファ領域に記憶(一時記憶)する。なお、内部メインメモリ35には、外部メインメモリ12と同様に、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりしてもよく、CPU10のワーク領域やバッファ領域として用いられてもかまわない。
【0061】
さらに、入出力プロセッサ31には、拡張コネクタ20および外部メモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ31は、拡張コネクタ20や外部メモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0062】
また、ゲーム装置本体5(例えば、前部主面)には、当該ゲーム装置本体5の電源ボタン24、ゲーム処理のリセットボタン25、光ディスク4を脱着する投入口、およびゲーム装置本体5の投入口から光ディスク4を取り出すイジェクトボタン26等が設けられている。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置本体5の各構成要素に対して、図示しないACアダプタを介して電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置本体5の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0063】
図3および
図4を参照して、コアユニット70について説明する。なお、
図3は、コアユニット70の上面後方から見た一例を示す斜視図である。
図4は、コアユニット70を下面前方から見た一例を示す斜視図である。
【0064】
図3および
図4において、コアユニット70は、例えばプラスチック成型によって形成されたハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【0065】
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【0066】
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に4つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記4つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、4つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティック(いわゆる、ジョイスティック)を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、十字キー72aの代わりに設けてもかまわない。
【0067】
ハウジング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の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0068】
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置本体5の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0069】
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コアユニット70は、他のコントローラと区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コアユニット70に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、無線コントローラモジュール19からコアユニット70へ、複数のLED702のうち、上記コントローラ種別に対応するLEDを点灯させるための信号が送信される。
【0070】
また、ハウジング71上面には、操作ボタン72bおよび操作ボタン72e〜72gの間に後述するスピーカ(
図5に示すスピーカ706)からの音を外部に放出するための音抜き孔が形成されている。
【0071】
一方、ハウジング71下面には、凹部が形成されている。ハウジング71下面の凹部は、プレイヤがコアユニット70の前面をマーカ8Lおよび8Rに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部である。
【0072】
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コアユニット70が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコアユニット70の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング71の後面には、コネクタ73が設けられている。コネクタ73は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【0073】
次に、
図5および
図6を参照して、コアユニット70の内部構造について説明する。なお、
図5は、コアユニット70の上筐体(ハウジング71の一部)を外した状態を後面側から見た一例を示す斜視図である。
図6は、コアユニット70の下筐体(ハウジング71の一部)を外した状態を前面側から見た一例を示す斜視図である。ここで、
図6に示す基板700は、
図5に示す基板700の裏面から見た斜視図となっている。
【0074】
図5において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751等(
図6、
図7参照)に接続される。また、無線モジュール753(
図7参照)およびアンテナ754によって、コアユニット70がワイヤレスコントローラとして機能する。なお、ハウジング71内部には図示しない水晶振動子が設けられており、後述するマイコン751の基本クロックを生成する。また、基板700の上主面上に、スピーカ706およびアンプ708が設けられる。また、加速度センサ701は、操作ボタン72dの左側の基板700上(つまり、基板700の中央部ではなく周辺部)に設けられる。したがって、加速度センサ701は、コアユニット70の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分が含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコアユニット70の動きを良好な感度でゲーム装置本体5等が判定することができる。
【0075】
一方、
図6において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コアユニット70の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられる。さらに、基板700の下主面上にサウンドIC707およびマイコン751が設けられている。サウンドIC707は、基板700等に形成された配線によってマイコン751およびアンプ708と接続され、ゲーム装置本体5から送信されたサウンドデータに応じてアンプ708を介してスピーカ706に音声信号を出力する。
【0076】
そして、基板700の下主面上には、バイブレータ704が取り付けられる。バイブレータ704は、例えば振動モータやソレノイドである。バイブレータ704は、基板700等に形成された配線によってマイコン751と接続され、ゲーム装置本体5から送信された振動データに応じてその作動をオン/オフする。バイブレータ704が作動することによってコアユニット70に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ704は、ハウジング71のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング71が大きく振動することになり、振動を感じやすくなる。
【0077】
次に、
図7を参照して、コントローラ7の内部構成について説明する。なお、
図7は、コントローラ7の構成の一例を示すブロック図である。
【0078】
図7において、コアユニット70は、上述した操作部72、撮像情報演算部74、加速度センサ701、バイブレータ704、スピーカ706、サウンドIC707、およびアンプ708の他に、その内部に通信部75を備えている。また、バイタルセンサ76は、接続ケーブル79とコネクタ791および73とを介して、マイコン751と接続される。
【0079】
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コアユニット70の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コアユニット70のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。
【0080】
撮像情報演算部74から出力される処理結果データは、コアユニット70で指し示す位置等を示す操作データとして用いることもできる。例えば、プレイヤは、コアユニット70の前面(撮像情報演算部74が撮像する光の入射口側)がモニタ2に向くようにコアユニット70を把持する。一方、モニタ2の表示画面近傍には、2つのマーカ8Lおよび8Rが設置されている。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって赤外光を出力し、撮像情報演算部74の撮像対象になる。そして、ゲーム装置本体5は、2つのマーカ8Lおよび8Rによる高輝度点に関する位置データを用いてコアユニット70が指し示している位置を算出する。
【0081】
例えば、その前面がモニタ2に向くようにコアユニット70をプレイヤが把持することによって、撮像情報演算部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、すなわちコアユニット70の動き、姿勢、位置等に応じた信号の変化量を得ることができる。具体的には、コアユニット70が動かされることによって、通信部75から送信される画像内の高輝度点の重心位置が変化するため、高輝度点の重心位置の変化に対応させた方向入力や座標入力を行うことで、コアユニット70が指し示している位置を操作入力としたり、コアユニット70の移動方向に沿った方向入力や座標入力を行ったりすることができる。
【0082】
このように、コアユニット70の撮像情報演算部74によって、固定的に設置されたマーカ(実施例では、2つのマーカ8Lおよび8Rからの赤外光)を撮像することによって、ゲーム装置本体5における処理において、コントローラ7から出力されるデータを処理してコアユニット70の動き、姿勢、位置等に対応した操作が可能となり、ボタンを押下するような操作ボタンや操作キーとは異なった直感的な操作入力となる。また、上述したように上記マーカは、モニタ2の表示画面近傍に設置されているため、マーカに対する位置をモニタ2の表示画面に対するコアユニット70の動き、姿勢、位置等に換算することも容易に行うことができる。つまり、コアユニット70の動き、姿勢、位置等による処理結果データは、モニタ2の表示画面に直接作用する操作入力(例えば、コアユニット70が指し示す位置を入力)として用いることができ、コアユニット70を表示画面に対するポインティングデバイスとして機能させることも可能となる。
【0083】
コアユニット70は、3軸の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。また、少なくとも1軸方向に沿った直線加速度を検知する加速度検出手段を使用してもよい。例えば、これらの加速度センサ701は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であることが好ましい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて、加速度センサ701が提供されてもよい。
【0084】
加速度センサ701に用いられるような加速度検出手段は、加速度センサ701の持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701からの直接の出力は、それら3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。しかしながら、加速度センサ701から出力される加速度の信号に基づいて、ゲーム装置のプロセッサ(例えばCPU10)またはコントローラのプロセッサ(例えばマイコン751)等のコンピュータが処理を行うことによって、コアユニット70に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば容易に理解できるであろう。
【0085】
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置本体5からのデータに応じて、サウンドIC707およびバイブレータ(図示せず)の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置本体5から送信されたサウンドデータ等を処理する。また、マイコン751は、通信部75を介してゲーム装置本体5から送信された振動データ(例えば、バイブレータをONまたはOFFする信号)等に応じて、バイブレータを作動させる。
【0086】
コアユニット70に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの3軸方向の加速度信号(X、Y、およびZ軸方向加速度データ)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。また、接続ケーブル79を介して、バイタルセンサ76からの生体信号(生体信号データ)は、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ、生体信号データ)を無線コントローラモジュール19へ送信する送信データとして一時的にメモリ752に格納する。ここで、通信部75から無線コントローラモジュール19への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥースで構成される通信部75の送信間隔は5msである。マイコン751は、無線コントローラモジュール19への送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばブルートゥースの技術を用いて、操作情報を示す電波信号を所定周波数の搬送波を用いてアンテナ754から放射する。つまり、コアユニット70に設けられた操作部72からのキーデータと、加速度センサ701からのX、Y、およびZ軸方向加速度データと、撮像情報演算部74からの処理結果データと、バイタルセンサ76からの生体信号データとがコアユニット70から送信される。そして、ゲーム装置本体5の無線コントローラモジュール19でその電波信号を受信し、ゲーム装置本体5で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ、生体信号データ)を取得する。そして、ゲーム装置本体5のCPU10は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、ブルートゥースの技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【0087】
次に、
図8および
図9を参照して、バイタルセンサ76について説明する。なお、
図8は、バイタルセンサ76の構成の一例を示すブロック図である。
図9Aおよび
図9Bは、バイタルセンサ76から出力される生体信号の一例である脈波信号の例を示す図である。なお、
図9Aに示す脈波信号の例は、
図9Bに示す脈波信号の脈波部分における受光部検出値(すなわち、縦軸)のスケールを拡大して表示したグラフとなっている。
【0088】
図8において、バイタルセンサ76は、制御部761、発光部762、および受光部763を備えている。
【0089】
発光部762および受光部763は、プレイヤの生体信号を得るセンサの一例であり、透過型指尖容積脈波センサを構成する。発光部762は、例えば赤外線LEDで構成され、所定波長(例えば、940nm)の赤外線を受光部763に向けて照射する。一方、受光部763は、発光部762が照射する波長に応じて照射される光を受光し、例えば赤外線フォトレジスタで構成される。そして、発光部762と受光部763とは、所定の間隙(空洞)を介して配置されている。
【0090】
ここで、人体の血液中に存在するヘモグロビンは、赤外線を吸光する性質をもっている。例えば、上述した発光部762および受光部763間の間隙にプレイヤの身体の一部(例えば、指先)を挿入する。これによって、発光部762から照射された赤外線は、挿入した指先内に存在するヘモグロビンで吸光された後、受光部763で受光される。一方、人体の動脈は、脈拍動しているため、当該脈拍動に応じて動脈の太さ(血流量)が変化する。したがって、挿入した指先内の動脈も同様の脈拍動が生じており、当該脈拍動に応じて血流量が変化するため、当該血流量に応じて吸光される赤外線の量も変化する。具体的には、挿入した指先内の血流量が多い場合、ヘモグロビンで吸光される量も増加するために受光部763で受光する赤外線の光量が相対的に少なくなる。一方、挿入した指先内の血流量が少ない場合、ヘモグロビンで吸光される量も減少するために受光部763で受光する赤外線の光量が相対的に多くなる。発光部762および受光部763は、このような動作原理を利用し、受光部763で受光する赤外線の光量を光電信号に変換することによって、人体の脈拍動(以下、脈波と記載する)を検出している。例えば、
図9Aに示すように、挿入した指先内の血流量が増加した場合に受光部763の検出値(例えば、受光部763が受光した際の光電電圧)が上昇し、挿入した指先内の血流量が減少した場合に受光部763の検出値が下降する。このように、受光部763の検出値が脈動する脈波部分が、脈波信号として生成される。なお、受光部763の回路構成によって、挿入した指先内の血流量が増加した場合に受光部763の検出値が下降し、挿入した指先内の血流量が減少した場合に受光部763の検出値が上昇するような脈波信号を生成してもかまわない。
【0091】
また、上述した発光部762および受光部763間の間隙にプレイヤの指先等が挿入されていない場合、発光部762から照射された赤外線は、受光部763で他の物体を介することなく直接受光される。したがって、発光部762および受光部763間の間隙にプレイヤの指先等が挿入されている場合と比較すると、当該間隙にプレイヤの指先等が挿入されていない場合は、受光部763で受光する赤外線の量が大きく増加する。例えば、
図9Bに示すように、プレイヤがバイタルセンサ76を指に装着することによって発光部762および受光部763間の間隙にプレイヤの指先が挿入されている状態(
図9Bに示す装着状態)から、プレイヤがバイタルセンサ76から指を抜いて発光部762および受光部763間の間隙にプレイヤの指先が挿入されていない状態(
図9Bに示す非装着状態)に変化した場合、受光部763で受光する赤外線の量が急激に上昇する。なお、
図9Aおよび
図9Bで示した例は、挿入した指先内の血流量が増加した場合に受光部763の検出値が上昇し、挿入した指先内の血流量が減少した場合に受光部763の検出値が下降するように受光部763の回路が構成されている。
図9Bに示すように、装着状態から非装着状態に変化した際の受光部検出値の下降幅は、挿入した指先内の血流量の増減による受光部検出値の上昇/下降幅よりけた違いに大きくなる。また、同様に、非装着状態から装着状態に変化した際の受光部検出値の上昇幅も、挿入した指先内の血流量の増減による受光部検出値の上昇/下降幅よりけた違いに大きくなる。
【0092】
したがって、上記非装着状態を想定した受光部検出値と上記装着状態を想定した受光部検出値との間に閾値を設けることによって、プレイヤがバイタルセンサ76に指を挿入しているか否か、すなわちバイタルセンサ76を装着しているか否かを検出することができる。例えば、挿入した指先内の血流量が増加した場合に受光部763の検出値が上昇し、挿入した指先内の血流量が減少した場合に受光部763の検出値が下降するように受光部763の回路が構成されている場合、受光部763の検出値が上記閾値以上であればプレイヤがバイタルセンサ76を装着していると判定し、受光部763の検出値が上記閾値未満であればプレイヤがバイタルセンサ76を装着していないと判定することができる。また、挿入した指先内の血流量が増加した場合に受光部763の検出値が下降し、挿入した指先内の血流量が減少した場合に受光部763の検出値が上昇するように受光部763の回路が構成されている場合、受光部763の検出値が上記閾値以上であればプレイヤがバイタルセンサ76を装着していると判定し、受光部763の検出値が上記閾値未満であればプレイヤがバイタルセンサ76を装着していないと判定することができる。なお、後述する説明においては、前者の場合、すなわち挿入した指先内の血流量が増加した場合に受光部763の検出値が上昇し、挿入した指先内の血流量が減少した場合に受光部763の検出値が下降するように受光部763の回路が構成されている場合を用いる。
【0093】
また、上述した例では、予め定められた閾値以上か否かによってバイタルセンサ76の装着状態を判定しているが、他の判定方法を用いてもかまわない。一例として、プレイヤがバイタルセンサ76を装着している場合に受光部763の検出値が所定の範囲内となり、バイタルセンサ76が非装着の場合に受光部763の検出値が当該範囲外となる場合、当該範囲を用いてバイタルセンサ76の装着状態を判定することが考えられる。具体的には、受光部763の検出値が上記範囲内を示す場合にプレイヤがバイタルセンサ76を装着していると判定し、受光部763の検出値が上記範囲内の値より大きな値を示す場合または上記範囲内の値より小さな値を示す場合にバイタルセンサ76が非装着であると判定する。当然ながら、プレイヤがバイタルセンサ76を装着している場合に受光部763の検出値が所定の範囲外となり、バイタルセンサ76が非装着の場合に受光部763の検出値が当該範囲内となる場合も、当該範囲を用いてバイタルセンサ76の装着状態を判定することが考えられる。具体的には、受光部763の検出値が上記範囲内を示す場合にバイタルセンサ76が非装着であると判定し、受光部763の検出値が上記範囲内の値より大きな値を示す場合または上記範囲内の値より小さな値を示す場合にプレイヤがバイタルセンサ76を装着していると判定する。
【0094】
他の例として、受光部検出値の変化量によって、プレイヤがバイタルセンサ76を装着しているか否かを検出することが考えられる。上述したように、非装着状態から装着状態に変化または装着状態から非装着状態に変化した際の受光部検出値の変化量は、挿入した指先内の血流量の増減による受光部検出値の変化量よりけた違いに大きくなる。したがって、受光部763の検出値の変化量が所定の閾値以上であれば非装着状態から装着状態に変化または装着状態から非装着状態に変化したと判定し、受光部763の検出値の変化量が当該閾値未満であればプレイヤが装着状態または非装着状態を継続していると判定することができる。そして、ある時点においてプレイヤがバイタルセンサ76を装着しているまたは装着していないことを推定することによって、当該時点以降の受光部検出値の変化量を判定することによって、プレイヤがバイタルセンサ76を装着しているか否かを検出することができる。例えば、上記時点におけるバイタルセンサ76の装着推定は、初期状態が非装着状態であると仮定したり、プレイヤにバイタルセンサ76の装着および非装着を順次指示したことに応じて、装着状態と非装着状態との切り替わりを推定したりすることが考えられる。
【0095】
制御部761は、例えばMCU(Micro Controller Unit)で構成される。制御部761は、発光部762から照射される赤外線の光量を制御する。また、制御部761は、受光部763から出力された光電信号(脈波信号)をA/D変換して脈波データ(生体信号データ)を生成する。そして、制御部761は、接続ケーブル79を介して、脈波データ(生体信号データ)をコアユニット70へ出力する。
【0096】
ゲーム装置本体5では、バイタルセンサ76から得られた脈波データを分析することによって、バイタルセンサ76を使用しているプレイヤの生体信号を検出して、様々なプレイヤの生体指標を検出/算出することができる。第1の生体指標の例として、ゲーム装置本体5では、バイタルセンサ76から得られた脈波データが示す脈波の起伏によって、プレイヤの拍タイミング(例えば、心収縮するタイミングであり、厳密にはバイタルセンサ76を着用している部位の血管が収縮または膨張するタイミング)を検出することができる。具体的には、ゲーム装置本体5は、バイタルセンサ76から得られた脈波データが示す脈波が極小値を示すタイミング、極大値を示すタイミング、血管が収縮する速度が最大となるタイミング、血管が膨張する速度が最大となるタイミング、血管膨張速度の加速率が最大となるタイミング、または血管膨張速度の減速率が最大となるタイミング等を、プレイヤの拍タイミングとして検出することができる。なお、血管膨張速度の加速率が最大となるタイミングまたは血管膨張速度の減速率が最大となるタイミングを用いてプレイヤの拍タイミングとして検出する場合、血管が膨張または収縮する速度を微分したパラメータ、すなわち血管が膨張する加速度が最大または血管が収縮する加速度が最大となるタイミングをプレイヤの拍タイミングとして検出してもかまわない。
【0097】
第2の生体指標の例として、脈波データが示す脈波から検出されたプレイヤの拍タイミングを用いて、心拍数HRを算出することができる。例えば、60秒を拍タイミングの間隔の周期で除算した値を、バイタルセンサ76を使用しているプレイヤの心拍数HRとして算出することができる。具体的には、脈波が極小値を示すタイミングを拍タイミングとする場合、当該極小値間の心拍間隔(
図9Aに示すR−R間隔)で、60秒を除算することによって心拍数HRを算出することができる。
【0098】
第3の生体指標の例として、心拍数HRが上昇/下降する周期を用いてプレイヤの呼吸周期を算出することができる。具体的には、本実施形態が算出している心拍数HRは、上昇中であればプレイヤが吸う呼吸をしており、下降中であればプレイヤが吐く呼吸をしていると判断することができる。すなわち、心拍数HRが上昇/下降する周期(ゆらぎ周期)を算出することによって、プレイヤが呼吸している周期(呼吸周期)を算出することができる。
【0099】
第4の生体指標の例として、バイタルセンサ76から得られた脈波データが示す脈波の振幅PA(例えば、脈波の極大値から次の極小値まで高さの差;
図9A参照)を用いて、プレイヤの苦楽度を判断することができる。具体的には、脈波振幅PAが縮小した場合、プレイヤが苦しい状態にあると判断することができる。
【0100】
第5の生体指標の例として、脈波信号から得られる脈波面積PWA(
図9参照)を心拍数HRで除算することによって、プレイヤの血流量を得ることができる。
【0101】
第6の生体指標の例として、脈波データが示す脈波から検出されたプレイヤの拍タイミングの間隔(心拍間隔;例えば、
図9Aに示すR−R間隔)を用いて、プレイヤの心拍変動係数(CVRR:coefficient of variance of R−R interval)を算出することができる。例えば、心拍変動係数は、バイタルセンサ76から得られる脈波が示す過去100拍における心拍間隔を用いて算出される。具体的には、
心拍変動係数=(100拍分の心拍間隔の標準偏差/100拍分の心拍間隔の平均値)×100
で算出される。そして、心拍変動係数を用いて、プレイヤの自律神経量(例えば、副交感神経の活動度)を算出することができる。
【0102】
次に、ゲーム装置本体5が行う具体的な処理を説明する前に、
図10〜
図13を用いてゲーム装置本体5で行うゲーム処理の概要について説明する。なお、
図10〜
図13は、それぞれモニタ2に表示されるゲーム画像の一例を示す図である。
【0103】
図10において、モニタ2には、プレイヤキャラクタPCおよび判定オブジェクトJOが配置された仮想ゲーム世界が表現される。
図10に示した例では、プレイヤキャラクタPCとして人差し指で指し示した状態の人間の片手を模した画像が示され、判定オブジェクトJOとして口を開けたワニを模した画像が示されている。そして、モニタ2には、バイタルセンサ76の空洞に指を挿入するようにプレイヤを促す文字情報「指を入れてください」が表示されている。
【0104】
そして、プレイヤがバイタルセンサ76の空洞に指を挿入した場合、すなわちプレイヤがバイタルセンサ76を装着した場合、プレイヤキャラクタPCとして示されている人差し指が、判定オブジェクトJOとして示されているワニの口の中に差し入れられた状態となるように、プレイヤキャラクタPCが移動する。例えば、
図11に示すように、判定オブジェクトJOは、モニタ2の表示画面における上部から下方に向かって口を開いた状態で表示されている。プレイヤがバイタルセンサ76を装着した場合、プレイヤキャラクタPCは、モニタ2の表示画面における上方に向かって人差し指を差し出した状態で、当該表示画面における下部から判定オブジェクトJOに向かって上方(図示白抜き矢印方向)に向かって移動する。そして、プレイヤキャラクタPCは、差し出された人差し指が判定オブジェクトJOの口の内部まで到達した状態で、上方への移動を停止する。
【0105】
プレイヤがバイタルセンサ76を装着すると、時間カウントが開始される。そして、所定の時間が経過すると判定オブジェクトJOの口が閉じられるため、プレイヤキャラクタPCの差し出された人差し指が判定オブジェクトJOの口の内部にある状態であるとプレイヤキャラクタPCの人差し指が判定オブジェクトJOに噛みつかれて、ゲームに失敗する(
図12参照)。
【0106】
一方、プレイヤがバイタルセンサ76の空洞から指を抜いた場合、すなわちバイタルセンサ76が非装着状態となった場合、プレイヤキャラクタPCとして示されている人差し指が、判定オブジェクトJOの口の中から抜け出るように、プレイヤキャラクタPCが移動する。例えば、
図13に示すように、バイタルセンサ76が非装着となった場合、プレイヤキャラクタPCは、モニタ2の表示画面における上方に向かって人差し指を差し出した状態で、当該表示画面における下部(図示白抜き矢印方向)に向かって移動する。そして、プレイヤキャラクタPCは、差し出された人差し指が判定オブジェクトJOの口の内部から抜け出た状態となる。ここで、判定オブジェクトJOが口を閉じていないのに、あまりに早いタイミングでプレイヤがバイタルセンサ76の空洞から指を抜いた場合、ゲームに失格したことが示される。例えば、
図13に示すように、プレイヤがバイタルセンサ76の空洞から指を抜いたタイミングが早すぎた場合、ゲームに失格したことを示す文字情報「臆病者!」が表示される。
【0107】
このように、
図10〜
図13で示したゲームでは、プレイヤがバイタルセンサ76を装着したタイミングでゲームが開始され、バイタルセンサ76から指を抜いたタイミング、すなわちバイタルセンサ76を非装着にするタイミングによってゲームの成功/失敗が決定される。
【0108】
次に、ゲームシステム1において行われるゲーム処理の詳細を説明する。まず、
図14を参照して、ゲーム処理において用いられる主なデータについて説明する。なお、
図14は、ゲーム装置本体5の外部メインメモリ12および/または内部メインメモリ35(以下、2つのメインメモリを総称して、単にメインメモリと記載する)に記憶される主なデータおよびプログラムの一例を示す図である。
【0109】
図14に示すように、メインメモリのデータ記憶領域には、操作情報データDa、タイムリミットデータDb、失格期間データDc、プレイヤキャラクタ位置データDd、判定オブジェクト動作データDe、経過時間データDf、ゲームスコアデータDg、生体指標データDh、および画像データDi等が記憶される。なお、メインメモリには、
図14に示すデータの他、ゲームに登場する他のオブジェクト等に関するデータ(位置データ等)や仮想ゲーム世界に関するデータ(背景のデータ等)等、ゲーム処理に必要なデータが記憶される。また、メインメモリのプログラム記憶領域には、ゲームプログラムを構成する各種プログラムPaが記憶される。
【0110】
操作情報データDaは、脈波データDa1等を含む。脈波データDa1は、バイタルセンサ76から得られる脈波信号(生体信号)を示すデータであり、コアユニット70から送信データとして送信されてくる一連の操作情報に含まれるデータである。脈波データDa1に格納される脈波データは、コアユニット70から送信された操作情報の受信に応じて常に最新のデータに更新される。なお、脈波データDa1に格納される脈波データは、選択されるゲームによって必要な時間
の長さ分だけ脈波信号の履歴が格納されることがあるが、この場合も操作情報の受信に応じて適宜更新される。また、ゲーム装置本体5に備える無線コントローラモジュール19は、コアユニット70から所定周期(例えば、1/200秒毎)に送信されて操作情報に含まれる生体信号データを受信し、無線コントローラモジュール19に備える図示しないバッファに受信したデータを蓄える。その後、上記バッファに蓄えられた生体信号データがゲーム処理周期である1フレーム毎(例えば、1/60秒毎)に読み出されて、メインメモリの脈波データDa1が更新される。
【0111】
このとき、操作情報を受信する周期と処理周期とが異なるために、上記バッファには複数の時点に受信した操作情報が記述されていることになる。後述する処理の説明においては、後述する各ステップにおいて、複数の時点に受信した操作情報のうち最新の操作情報のみを常に用いて処理して、次のステップに進める態様を用いる。
【0112】
また、後述する処理フローでは、脈波データDa1がゲーム処理周期である1フレーム毎に更新される例を用いて説明するが、他の処理周期で更新されてもかまわない。例えば、コアユニット70からの送信周期毎に脈波データDa1を更新し、当該更新された脈波データDa1をゲーム処理周期毎に利用する態様でもかまわない。この場合、脈波データDa1を更新する周期と、ゲーム処理周期とが異なることになる。
【0113】
タイムリミットデータDbは、プレイヤがバイタルセンサ76を装着してから判定オブジェクトJOの口が閉じられるまでの時間を示すデータである。失格期間データDcは、プレイヤがゲームに失格したと判定される期間を示すデータである。
【0114】
プレイヤキャラクタ位置データDdは、表示画面に表示されている仮想ゲーム世界における、プレイヤキャラクタPCの位置を示すデータである。判定オブジェクト動作データDeは、表示画面に表示されている仮想ゲーム世界における、判定オブジェクトJOの動作を示すデータである。
【0115】
経過時間データDfは、プレイヤがバイタルセンサ76を装着してからの経過時間を示すデータである。ゲームスコアデータDgは、上記経過時間に応じて算出されるゲームスコアを示すデータである。生体指標データDhは、脈波データDa1に基づいて算出されたプレイヤの心拍/脈拍タイミングや心拍数等の生体指標を示すデータである。
【0116】
画像データDiは、プレイヤキャラクタ画像データDi1、判定オブジェクト画像データDi2、および文字画像データDi3等を含んでいる。プレイヤキャラクタ画像データDi1は、仮想ゲーム世界にプレイヤキャラクタPCを配置してゲーム画像を生成するためのデータである。判定オブジェクト画像データDi2は、仮想ゲーム世界に判定オブジェクトJOを配置してゲーム画像を生成するためのデータである。文字画像データDi3は、プレイヤにバイタルセンサ76
の装着動作を促したり、プレイヤにゲームの結果を通知したりするための文字画像を生成するためのデータである。
【0117】
次に、
図15および
図16を参照して、ゲーム装置本体5において行われるゲーム処理の詳細を説明する。なお、
図15は、ゲーム装置本体5において実行されるメイン処理の一例を示すフローチャートである。
図16は、
図15のステップ43に示すゲーム処理の詳細な処理の一例を示すサブルーチンである。なお、
図15および
図16に示すフローチャートにおいては、各種処理のうち、バイタルセンサ76からの生体信号を用いる処理について主に説明し、本願発明と直接関連しない他の処理については詳細な説明を省略する。また、
図15および
図16では、CPU10が実行する各ステップを「S」と略称する。
【0118】
ゲーム装置本体5の電源が投入されると、ゲーム装置本体5のCPU10は、ROM/RTC13に記憶されている起動用のプログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。
図15に示すフローチャートは、以上の処理が完了した後に行われるメイン処理を示すフローチャートである。
【0119】
図15において、CPU10は、プレイヤによってゲームが選択されたか否かを判断する(ステップ41)。例えば、CPU10は、プレイ可能な複数のゲームを示す選択肢をモニタ2に示すことによって、プレイヤにゲームの選択を促す。そして、CPU10は、プレイヤがゲームの1つをプレイすることを選択した場合、次のステップ42に処理を進める。一方、CPU10は、プレイヤがゲームをプレイすることを選択していない場合、次のステップ44に処理を進める。
【0120】
ステップ42において、CPU10は、上記ステップ41で選択されたゲームが生体指標を用いるゲームか否かを判断する。そして、CPU10は、上記ステップ41で選択されたゲームが生体指標を用いないゲームである場合、次のステップ43に処理を進める。一方、CPU10は、上記ステップ41で選択されたゲームが生体指標を用いるゲームである場合、次のステップ45に処理を進める。
【0121】
ステップ43において、CPU10は、生体指標を用いないゲーム処理を行い、次のステップ44に処理を進める。以下、
図16を参照して、上記ステップ44で行うゲーム処理について説明する。
【0122】
図16において、CPU10は、初期設定を行い(ステップ50)、次のステップに処理を進める。例えば、上記ステップ50における初期設定では、CPU10は、仮想ゲーム世界の設定やプレイヤキャラクタPCや判定オブジェクトJOの位置や状態等の初期設定を行う。また、上記ステップ50における初期設定では、CPU10は、以降のゲーム処理で用いる各パラメータを初期化する。例えば、上記ステップ50の初期設定によって、モニタ2には、プレイヤキャラクタPCおよび判定オブジェクトJOが配置された仮想ゲーム世界が表現され、バイタルセンサ76の空洞に指を挿入するようにプレイヤを促す文字情報が表示される(
図10の状態)。
【0123】
次に、CPU10は、プレイヤがバイタルセンサ76を装着するのを待つ(ステップ51)。そして、CPU10は、プレイヤがバイタルセンサ76を装着した場合、次のステップ52に処理を進める。例えば、上記ステップ51において、CPU10は、コアユニット70から操作情報を示すデータを取得し、当該操作情報に含まれる最新の生体信号データを用いて脈波データDa1を更新する。そして、CPU10は、更新後の脈波データDa1が示す脈波信号(生体信号)の値が、バイタルセンサ76の装着有無を判定するための閾値(
図9B参照)以上であるか否かを判断する。ここで、脈波データDa1に随時更新されて格納されるデータは、バイタルセンサ76が出力している生体信号(脈波信号)を示すデータであり、バイタルセンサ76の受光部763が赤外線を受光した検出値(受光部検出値;例えば、受光部763が受光した際の光電電圧)を示すデータとなる。そして、本実施例においては、受光部763の回路は、挿入した指先内の血流量が増加した場合に受光部763の検出値が上昇し、挿入した指先内の血流量が減少した場合に受光部763の検出値が下降するように構成されている。したがって、上記ステップ51においては、受光部検出値がバイタルセンサ76の装着有無を判定するための閾値以上である場合、プレイヤがバイタルセンサ76を装着したと判断される。
【0124】
ステップ52において、CPU10は、タイムリミットおよび失格期間を算出し、次のステップに処理を進める。例えば、CPU10は、判定オブジェクトJOの口が閉じられるまでの時間(タイムリミット時間)をランダムで設定し、設定された時間を用いてタイムリミットデータDbを更新する。また、CPU10は、判定オブジェクトJOの口が閉じられるまでの時間に応じて、プレイヤがゲームに失格したと判定される期間(失格期間)を設定し、設定された期間を用いて失格期間データDcを更新する。ここで、失格期間の長さは、タイムリミットを示す時間より短く設定され、例えばタイムリミットを示す時間から所定の時間を減算した時間
の長さに設定される。そして、失格期間は、プレイヤがバイタルセンサ76を装着してから、算出された失格期間の長さに対応する時間が経過するまでの期間として設定される。
【0125】
次に、CPU10は、プレイヤキャラクタPCを移動させてモニタ2に表示し(ステップ53)、次のステップに処理を進める。例えば、CPU10は、プレイヤキャラクタPCとして示されている人差し指が、判定オブジェクトJOの口の中に差し入れられた状態となるようにプレイヤキャラクタPCの位置を変更し、変更後のプレイヤキャラクタPCの位置を用いてプレイヤキャラクタ位置データDdを更新する。そして、CPU10は、プレイヤキャラクタ位置データDdが示す位置に基づいて、プレイヤキャラクタPCを移動させてモニタ2に表示する(
図11の状態)。
【0126】
次に、CPU10は、経過時間を更新してモニタ2に表示し(ステップ54)、次のステップに処理を進める。例えば、CPU10は、経過時間データDfを参照して現時点の経過時間を取得し、当該経過時間に処理周期に応じた時間(例えば、1/60秒)を加算して、加算後の経過時間を用いて経過時間データDfを更新する。そして、CPU10は、経過時間データDfが示す経過時間を、モニタ2に表示する。例えば、
図11に示した例では、経過時間が1.85秒であることが表示されている。
【0127】
次に、CPU10は、現時点がタイムリミットに到達したか否かを判断する(ステップ55)。例えば、CPU10は、タイムリミットデータDbが示すタイムリミット時間および経過時間データDfが示す経過時間を参照して、経過時間がタイムリミット時間に到達しているか否かを判断する。そして、CPU10は、現時点がまだタイムリミットに到達していない場合、次のステップ56に処理を進める。一方、CPU10は、現時点がタイムリミットに到達している場合、次のステップ59に処理を進める。
【0128】
ステップ56において、CPU10は、プレイヤがバイタルセンサ76を装着しているか否かを判断する。そして、CPU10は、プレイヤがまだバイタルセンサ76を装着している場合、上記ステップ54に戻って処理を繰り返す。一方、CPU10は、プレイヤがバイタルセンサ76を装着していない、すなわちプレイヤがバイタルセンサ76の空洞から指を抜いた場合、次のステップ57に処理を進める。例えば、上記ステップ51と同様に、CPU10は、上記ステップ56においてコアユニット70から操作情報を示すデータを取得し、当該操作情報に含まれる最新の生体信号データを用いて脈波データDa1を更新する。そして、CPU10は、更新後の脈波データDa1が示す脈波信号(生体信号)の値が、バイタルセンサ76の装着有無を判定するための閾値(
図9B参照)以上であるか否かを判断する。ここでも、脈波データDa1に随時更新されて格納されるデータは、バイタルセンサ76が出力している生体信号(脈波信号)を示すデータであり、バイタルセンサ76の受光部763が赤外線を受光した検出値(受光部検出値)を示すデータとなる。そして、上記ステップ56においては、受光部検出値がバイタルセンサ76の装着有無を判定するための閾値未満である場合、プレイヤがバイタルセンサ76の空洞から指を抜いたと判断される。一方、上記ステップ56においては、受光部検出値がバイタルセンサ76の装着有無を判定するための閾値以上である場合、プレイヤがバイタルセンサ76を装着したままであると判断される。
【0129】
ステップ57において、CPU10は、現時点が失格期間中か否かを判断する。例えば、CPU10は、失格期間データDcが示す失格期間および経過時間データDfが示す経過時間を参照して、経過時間が失格期間中か否かを判断する。そして、CPU10は、現時点が失格期間外である場合、次のステップ58に処理を進める。一方、CPU10は、現時点が失格期間内である場合、次のステップ60に処理を進める。
【0130】
ステップ58において、CPU10は、プレイヤキャラクタPCを移動させるとともに、経過時間に応じたゲームスコアをモニタ2に表示して、当該サブルーチンによる処理を終了する。例えば、CPU10は、プレイヤキャラクタPCとして示されている人差し指が、判定オブジェクトJOの口の中から抜け出るように、プレイヤキャラクタPCの位置を変更し、変更後のプレイヤキャラクタPCの位置を用いてプレイヤキャラクタ位置データDdを更新する。そして、CPU10は、プレイヤキャラクタ位置データDdが示す位置に基づいて、プレイヤキャラクタPCを移動させてモニタ2に表示する。また、CPU10は、経過時間データDfが示す経過時間を用いてゲームスコアを算出し、算出されたゲームスコアを用いてゲームスコアデータDgを更新する。定型的には、CPU10は、経過時間データDfが示す経過時間が長いほど、高得点となるゲームスコアを算出する。そして、CPU10は、ゲームスコアデータDgが示すゲームスコアに基づいて、ゲームスコアをモニタ2に表示する。
【0131】
一方、ステップ59において、CPU10は、判定オブジェクトJOの口を閉じる動作を行うとともに、ゲームに失敗したことを示す通知をモニタ2に表示して、当該サブルーチンによる処理を終了する。例えば、CPU10は、プレイヤキャラクタPCの人差し指を判定オブジェクトJOが噛みつくように判定オブジェクトJOを動作させることを示すデータを判定オブジェクト動作データDeに設定し、判定オブジェクト動作データDeに記述された内容に応じて判定オブジェクトJOを動作させる(
図12の状態)。また、CPU10は、ゲームに失敗したことを示す文字情報をモニタ2に表示する。例えば、
図12に示した例では、ゲームに失敗したことを示す文字情報「噛みつかれた!」がモニタ2に表示されている。
【0132】
また、ステップ60において、CPU10は、プレイヤキャラクタPCを移動させるとともに、ゲームに失格したことを示す通知をモニタ2に表示して、当該サブルーチンによる処理を終了する。例えば、CPU10は、プレイヤキャラクタPCとして示されている人差し指が、判定オブジェクトJOの口の中から抜け出るように、プレイヤキャラクタPCの位置を変更し、変更後のプレイヤキャラクタPCの位置を用いてプレイヤキャラクタ位置データDdを更新する。そして、CPU10は、プレイヤキャラクタ位置データDdが示す位置に基づいて、プレイヤキャラクタPCを移動させてモニタ2に表示する(
図13の状態)。また、CPU10は、ゲームに失格したことを示す文字情報をモニタ2に表示する。例えば、
図13に示した例では、ゲームに失格したことを示す文字情報「臆病者!」がモニタ2に表示されている。
【0133】
このように、上記ゲーム処理では、プレイヤがバイタルセンサ76を装着したタイミングでゲームが開始され、プレイヤが失格期間内でバイタルセンサ76から指を抜いた場合(ステップ57でYes)、すなわちバイタルセンサ76を装着してからあまりに早いタイミングでバイタルセンサ76から指を抜いた場合、ゲーム失格と判断される。その一方で、プレイヤがタイムリミット時間に到達した時点までバイタルセンサ76を装着していると(ステップ55でYes)、プレイヤキャラクタPCの人差し指が判定オブジェクトJOによって噛みつかれてゲームに失敗してしまう。したがって、プレイヤがゲームに成功して得点を得るためには、失格期間外で、かつ、タイムリミット時間に到達していないタイミングでバイタルセンサ76から指を抜く(ステップ55でNo、ステップ57でNo)必要がある。このように、バイタルセンサ76を装着/非装着にするタイミングによってゲームが開始されるとともにゲームの合否が決定されるゲームであっても、バイタルセンサ76から出力されるプレイヤの生体信号を直接用いることによって応答性の高いゲーム処理が可能となる。
【0134】
図15に戻り、上記ステップ42において、上記ステップ41で選択されたゲームが生体指標を用いるゲームであると判断された場合、CPU10は、生体指標を算出する処理を行い(ステップ45)、次のステップに処理を進める。例えば、CPU10は、コアユニット70から操作情報を示すデータを取得し、当該操作情報に含まれる最新の生体信号データを用いて脈波データDa1を更新する。そして、CPU10は、脈波データDa1に基づいて、ステップ46のゲーム処理で必要なプレイヤの生体指標を算出し、当該算出された生体指標を用いて生体指標データDhを更新する。なお、ステップ46のゲーム処理で必要なプレイヤの生体指標は、プレイヤの心拍や脈拍のタイミング、心拍数、呼吸周期、脈波の振幅、苦楽度、血流量、心拍変動係数等、ゲーム内容に応じた様々なパラメータが考えられる。これらの生体指標は、プレイヤから繰り返し取得した生体信号(例えば、単位時間毎にプレイヤから継続的に取得した生体信号)に基づいて算出する必要があるため、脈波データDa1に格納される脈波データは、選択されるゲームおよび当該ゲームで必要となる生体指標に応じて、必要な時間
の長さ分だけ脈波信号の履歴が格納される。
【0135】
次に、CPU10は、プレイヤの生体指標を少なくとも用いたゲーム処理を行い(ステップ46)、次のステップに処理を進める。例えば、CPU10は、生体指標データDhが示すプレイヤの生体指標を用いて、上記ステップ41で選択されたゲームを実行するゲーム処理を行う。一例として、CPU10は、プレイヤの心拍や脈拍のタイミングや心拍数に応じて、仮想ゲーム世界におけるオブジェクトを動作させたり、プレイヤの心拍数に応じて仮想ゲーム世界におけるオブジェクトの色や形を変化させたりする。他の例として、CPU10は、プレイヤの生体指標の値や当該値によって変化する図形(グラフ)をモニタ2に表示する。上記ステップ46で行うゲーム処理例は、他にも様々なものが考えられるが、ここではこれ以上の説明を省略する。
【0136】
次に、CPU10は、プレイヤの生体指標を用いるゲームを終了するか否かを判断する(ステップ47)。ゲームを終了する条件としては、例えば、ゲームオーバーとなる条件が満たされたことや、プレイヤがゲームを終了する操作を行ったこと等がある。CPU10は、ゲームを終了しない場合に上記ステップ45に戻って処理を繰り返し、ゲームを終了する場合に次のステップ44に処理を進める。
【0137】
ステップ44において、CPU10は、
図15に示したフローチャートによる処理を終了するか否かを判断する。処理を終了する条件としては、例えば、プレイヤが処理を終了する操作を行ったこと等がある。CPU10は、処理を終了しない場合に上記ステップ41に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。
【0138】
次に、
図17〜
図20を用いてゲーム装置本体5で行う上記ステップ43のゲーム処理における他の例について説明する。なお、
図17〜
図20は、それぞれモニタ2に表示されるゲーム画像の他の例を示す図である。
【0139】
図17において、モニタ2には、プレイヤキャラクタPCおよび選択オブジェクトSOが配置された仮想ゲーム世界が表現される。
図17に示した例では、プレイヤキャラクタPCとして人差し指を紙面奥側へ曲げた状態の人間の片手を模した画像が示され、選択オブジェクトSOとしてハチの巣を模した画像が示されている。具体的には、選択オブジェクトSOは、複数の六角形の巣房を有する巣礎で構成されたハニカム構造体を表現している。そして、当該ゲームは、複数のプレイヤが順番にプレイするものであり、モニタ2には、今回プレイするプレイヤを示す文字情報「ささきさんの番です」が表示されている。
【0140】
選択オブジェクトSOに設けられている複数の巣房のうち、現在選択されている対象巣房(選択場所CH)がプレイヤに示される。選択場所CHは、プレイヤがプレイヤキャラクタPCの指を挿入することを示す指示を行った場合に、プレイヤキャラクタPCの人差し指が挿入される巣房を示しており、時間経過に応じて選択可能な他の巣房に順次移動していく。例えば、他のプレイヤによって選択済みの巣房は、選択不可に設定され、他の巣房とは区別して表示(
図17においては斜線領域で示している)される。そして、プレイヤがバイタルセンサ76の空洞に指を挿入した場合、すなわちプレイヤがバイタルセンサ76を装着した場合、プレイヤキャラクタPCの人差し指が、選択場所CHに指定されている巣房内に差し入れられた状態となるように、プレイヤキャラクタPCが移動する(
図18の状態)。
【0141】
その後、プレイヤがバイタルセンサ76の空洞から指を抜いた場合、すなわちバイタルセンサ76が非装着状態となった場合、プレイヤキャラクタPCとして示されている人差し指が、選択場所CHに指定されている巣房内から抜け出るように、プレイヤキャラクタPCが移動する(
図19および
図20の状態)。そして、選択場所CHに指定されている巣房が当たりであった場合、当該巣房からハチミツが流れ出るようなゲーム画像が表示され、ゲーム成功となる(
図19の状態)。一方、選択場所CHに指定されている巣房がはずれであった場合、当該巣房からハチが飛び出してくるようなゲーム画像が表示され、ゲーム失敗となる(
図20の状態)。
【0142】
このように、
図17〜
図20で示したゲームでは、プレイヤがバイタルセンサ76を装着したタイミングで選択する巣房が決定され、バイタルセンサ76から指を抜く、すなわちバイタルセンサ76を非装着にすることによってゲームに成功したか否かが判明する。
【0143】
次に、
図21を参照して、ゲームシステム1において行われるゲーム処理における他の例の詳細を説明する。なお、
図21は、
図15のステップ43に示すゲーム処理における他の例の詳細な処理の一例を示すサブルーチンである。また、
図21では、CPU10が実行する各ステップを「S」と略称する。
【0144】
図21において、CPU10は、初期設定を行い(ステップ81)、次のステップに処理を進める。例えば、上記ステップ81における初期設定では、CPU10は、仮想ゲーム世界の設定やプレイヤキャラクタPCの位置や選択オブジェクトSOの状態等の初期設定を行う。ここで、CPU10は、選択オブジェクトSOに設定した複数の巣房のうち、少なくとも1つの巣房をはずれに設定し、他の巣房を当たりに設定する。また、上記ステップ81における初期設定では、CPU10は、以降のゲーム処理で用いる各パラメータを初期化して、設定された仮想ゲーム世界をモニタ2に表示する。
【0145】
次に、CPU10は、上記ステップ41で選択されたゲームをプレイするプレイヤの設定を行い(ステップ82)、次のステップに処理を進める。例えば、上記ステップ82において、CPU10は、上記ステップ41で選択されたゲームをプレイするプレイヤの人数、プレイヤ名称、プレイ順等をプレイヤからの操作に基づいて設定し、当該設定を示すデータをメインメモリに格納する。
【0146】
次に、CPU10は、設定されているプレイ順に応じて今回プレイするプレイヤを選択し、今回プレイするプレイヤを示す文字情報をモニタ2に表示して(ステップ83)、次のステップに処理を進める。例えば、上記ステップ81〜ステップ83の処理によって、モニタ2には、プレイヤキャラクタPCおよび選択オブジェクトSOが配置された仮想ゲーム世界が表現され、今回プレイするプレイヤを示す文字情報がモニタ2に表示される(
図17の状態)。
【0147】
次に、CPU10は、経過時間を更新し(ステップ84)、選択場所CHを変更する時間か否かを判断する(ステップ85)。例えば、CPU10は、メインメモリに格納された経過時間を示すデータを参照して現時点の経過時間を取得し、当該経過時間に処理周期に応じた時間(例えば、1/60秒)を加算して、加算後の経過時間を用いて当該データを更新する。次に、CPU10は、加算後の経過時間が、選択場所CHを変更する所定の時間(予め定められた変更時間)に到達しているか否かを判断する。そして、CPU10は、上記経過時間が上記変更時間に到達している場合、次のステップ86に処理を進める。一方、CPU10は、上記経過時間が上記変更時間に未到達の場合、次のステップ88に処理を進める。
【0148】
ステップ86において、CPU10は、選択場所CHを選択可能な他の巣房に移動して、モニタ2に表示し、次のステップに処理を進める。例えば、CPU10は、現在の選択場所CHを選択可能な他の巣房に移動してメインメモリに格納された選択場所の位置を示すデータを更新し、当該データに基づいて選択場所CHを他の巣房に移動させてモニタ2に表示する。
【0149】
次に、CPU10は、経過時間をリセットし(ステップ87)、次のステップ88に処理を進める。例えば、CPU10は、メインメモリに格納された経過時間を示すデータを参照して現時点の経過時間を初期値(例えば、0)にリセットし、リセット後の経過時間を用いて当該データを更新する。
【0150】
ステップ88において、CPU10は、プレイヤがバイタルセンサ76を装着したか否かを判断する。そして、CPU10は、プレイヤがバイタルセンサ76を装着した場合、次のステップ89に処理を進める。一方、CPU10は、プレイヤがバイタルセンサ76を装着していない場合、上記ステップ84に戻って処理を繰り返す。例えば、上記ステップ88において、CPU10は、コアユニット70から操作情報を示すデータを取得し、当該操作情報に含まれる最新の生体信号データを用いて脈波データDa1を更新する。そして、CPU10は、更新後の脈波データDa1が示す脈波信号(生体信号)の値が、バイタルセンサ76の装着有無を判定するための閾値(
図9B参照)以上であるか否かを判断する。ここで、脈波データDa1に随時更新されて格納されるデータは、バイタルセンサ76が出力している生体信号(脈波信号)を示すデータであり、バイタルセンサ76の受光部763が赤外線を受光した検出値(受光部検出値)を示すデータとなる。そして、上記ステップ88においては、受光部検出値がバイタルセンサ76の装着有無を判定するための閾値以上である場合、プレイヤがバイタルセンサ76を装着したと判断される。一方、上記ステップ88においては、受光部検出値がバイタルセンサ76の装着有無を判定するための閾値未満である場合、プレイヤがバイタルセンサ76を装着していないと判断される。
【0151】
ステップ89において、プレイヤキャラクタPCを選択場所CHへ移動させてモニタ2に表示し、次のステップに処理を進める。例えば、CPU10は、プレイヤキャラクタPCの人差し指が、選択場所CHに指定されている巣房内に差し入れられた状態となるようにプレイヤキャラクタPCの位置を変更し、変更後のプレイヤキャラクタPCの位置を用いてメインメモリに格納されたプレイヤキャラクタ位置を示すデータを更新する。そして、CPU10は、上記データが示すプレイヤキャラクタの位置に基づいて、プレイヤキャラクタPCを移動させてモニタ2に表示する(
図18の状態)。
【0152】
次に、CPU10は、プレイヤがバイタルセンサ76の空洞から指を抜くのを待つ(ステップ90)。そして、CPU10は、プレイヤがバイタルセンサ76の空洞から指を抜いた場合、すなわちバイタルセンサ76が非装着状態となった場合、次のステップ91に処理を進める。例えば、上記ステップ88と同様に、CPU10は、上記ステップ90においてコアユニット70から操作情報を示すデータを取得し、当該操作情報に含まれる最新の生体信号データを用いて脈波データDa1を更新する。そして、CPU10は、更新後の脈波データDa1が示す脈波信号(生体信号)の値が、バイタルセンサ76の装着有無を判定するための閾値(
図9B参照)以上であるか否かを判断する。ここでも、脈波データDa1に随時更新されて格納されるデータは、バイタルセンサ76が出力している生体信号(脈波信号)を示すデータであり、バイタルセンサ76の受光部763が赤外線を受光した検出値(受光部検出値)を示すデータとなる。そして、上記ステップ90においては、受光部検出値がバイタルセンサ76の装着有無を判定するための閾値未満である場合、プレイヤがバイタルセンサ76の空洞から指を抜いたと判断される。一方、上記ステップ90においては、受光部検出値がバイタルセンサ76の装着有無を判定するための閾値以上である場合、プレイヤがバイタルセンサ76を装着したままであると判断される。
【0153】
ステップ91において、CPU10は、上記ステップ89においてプレイヤキャラクタPCの人差し指が差し入れられていた選択場所CHが、当たりか否かを判断する。例えば、CPU10は、上記ステップ81において設定した選択オブジェクトSOの設定に基づいて、現在の選択場所CHの当たり/はずれを判定する。そして、CPU10は、選択場所CHが当たりである場合、次のステップ92に処理を進める。一方、CPU10は、選択場所CHがはずれである場合、次のステップ93に処理を進める。
【0154】
ステップ92において、CPU10は、プレイヤキャラクタPCを移動させるとともに、ゲームに成功したことを示すゲーム画像をモニタ2に表示して、上記ステップ83に戻って処理を繰り返す。例えば、CPU10は、プレイヤキャラクタPCの人差し指が、選択場所CHに指定されている巣房内から抜け出るようにプレイヤキャラクタPCの位置を変更し、変更後のプレイヤキャラクタPCの位置を用いてメインメモリに格納されたプレイヤキャラクタ位置を示すデータを更新する。そして、CPU10は、上記データが示すプレイヤキャラクタの位置に基づいて、プレイヤキャラクタPCを移動させてモニタ2に表示する。また、CPU10は、選択場所CHに指定されている巣房からハチミツが流れ出るようなゲーム画像を、ゲームに成功したことを示すゲーム画像としてモニタ2に表示する(
図19の状態)。
【0155】
一方、ステップ93において、CPU10は、プレイヤキャラクタPCを移動させるとともに、ゲームに失敗したことを示すゲーム画像をモニタ2に表示して、当該サブルーチンによる処理を終了する。例えば、CPU10は、プレイヤキャラクタPCの人差し指が、選択場所CHに指定されている巣房内から抜け出るようにプレイヤキャラクタPCの位置を変更し、変更後のプレイヤキャラクタPCの位置を用いてメインメモリに格納されたプレイヤキャラクタ位置を示すデータを更新する。そして、CPU10は、上記データが示すプレイヤキャラクタの位置に基づいて、プレイヤキャラクタPCを移動させてモニタ2に表示する。また、CPU10は、選択場所CHに指定されている巣房からハチが飛び出してくるようなゲーム画像を、ゲームに失敗したことを示すゲーム画像としてモニタ2に表示する(
図20の状態)。
【0156】
このように、上記ゲーム処理では、プレイヤがバイタルセンサ76を装着したタイミングに応じて選択場所CHが決定され、プレイヤがバイタルセンサ76から指を抜く、すなわちバイタルセンサ76が非装着状態となった場合にゲームに成功したか否かが判明する。そして、ゲーム成功である場合、プレイ対象となるプレイヤが変わり、何れかのプレイヤがゲームに失敗するまで同様のゲームが繰り返される。このような、バイタルセンサ76を装着にするタイミングによって複数の選択肢から1つの選択肢が選択され、バイタルセンサ76を非装着にするタイミングによって選択された選択肢に関する結果が判明するゲームであっても、バイタルセンサ76から出力されるプレイヤの生体信号を直接用いることによって応答性の高いゲーム処理が可能となる。
【0157】
ここで、
図15に示したメイン処理からも明らかなように、ゲーム装置本体5は、プレイヤから繰り返し取得した生体信号(例えば、単位時間毎にプレイヤから継続的に取得した生体信号)に基づいて生体指標を算出し、当該生体指標を用いてゲーム処理を行うことも可能となっている。このようなゲーム装置では生体指標の変化をゲーム処理に反映することが一般的であるが、生体指標を用いる場合、プレイヤから得られた生体信号がゲーム処理に反映されるまでの応答性が悪くなる。ゲーム装置本体5は、上記生体指標を用いることができる状況にあっても、当該生体指標を算出するための生体信号の変化を用いることによって、応答性の高いゲーム処理を実現している。
【0158】
なお、上述したゲーム例では、仮想ゲーム世界における判定オブジェクトJOの口にプレイヤキャラクタPCの指を入れた状態を維持した時間を競うゲームや、選択オブジェクトSOの選択場所SHにプレイヤキャラクタPCの指を入れてその当たり/はずれを楽しむゲームを用いたが、本発明は他のゲームにも適用できることは言うまでもない。本発明は、プレイヤがバイタルセンサ76を装着したタイミングおよび/またはバイタルセンサ76を外す(非装着にする)タイミングに応じて、所定の処理を行うゲーム処理に適用することができる。例えば、所定の時間経過後に落下する落下物を、仮想ゲーム世界内に配置する。そして、プレイヤがバイタルセンサ76を装着している間は仮想ゲーム世界における上記落下物の下方位置にプレイヤキャラクタを配置し、プレイヤがバイタルセンサ76から指を抜くと当該下方位置からプレイヤキャラクタが退避するようなゲームを想定する。このようなゲームであっても、プレイヤがバイタルセンサ76を装着したタイミングによってゲームが開始され、バイタルセンサ76を外すタイミングに応じてゲームの成功/失敗が判定されるような処理が行われ、バイタルセンサ76から出力されるプレイヤの生体信号を直接用いることによって応答性の高いゲーム処理が可能となる。
【0159】
また、
図10〜
図16を用いて説明したゲーム例では、失格期間中にプレイヤがバイタルセンサ76の空洞から指を抜いた場合、ゲームに失格する例を用いたが、ゲームの成功/失敗だけを判定するゲームでもかまわない。この場合、
図16におけるステップ52において失格期間を設定することが不要となり、ステップ57およびステップ60の処理が不要となる。そして、ステップ58の処理において、経過時間が長いほど、高得点となるゲームスコアを算出することによって、プレイヤがバイタルセンサ76の空洞から指を抜いたタイミングが早ければゲームスコアが低くなる。このように、
図10〜
図16を用いて説明したゲーム例においては、ゲーム失格の判定を行わなくても、バイタルセンサ76の空洞から指を抜くタイミングが早いプレイヤが不利となる設定が可能である。
【0160】
また、
図10〜
図16を用いて説明したゲームでは、タイムリミット時間に到達した時点で、プレイヤキャラクタPCの人差し指が判定オブジェクトJOによって噛みつかれてゲームに失敗する例を用いたが、タイムリミット時間に到達した後もゲームを継続させて経過時間の計時も継続するゲームも考えられる。例えば、プレイヤがバイタルセンサ76を装着した後、時間経過に応じて仮想ゲーム世界を移動するオブジェクトを設定し、プレイヤがバイタルセンサ76の空洞から指を抜いたことに応じて当該オブジェクトの移動が停止する。そして、上記仮想ゲーム世界には、オブジェクトが停止した場合に最高スコアが得られる目標位置が設定されており、オブジェクトが停止した位置が当該目標位置から離れるほど得られる得点が漸減的に減少するゲームを想定する。この場合、プレイヤがバイタルセンサ76を装着してから、上記目標位置で上記オブジェクトを停止させるためのバイタルセンサ76の空洞から指を抜くタイミングまでの時間を上述したタイムリミット時間として扱うことができるが、この時間は当該ゲームにおけるベストなタイミングを示す時間(ベストタイミング時間)として取り扱うことができる。そして、当該ゲームにおけるゲームスコアは、ベストタイミング時間との時間差に基づいて算出されることになり、ベストタイミング時間に到達した後もゲームを継続させて経過時間の計時を継続するゲームとなる。なお、上記ゲームでは、ベストタイミング時間に到達したか否かによってゲームの成功/失敗を区分けしなくてもかまわない。例えば、上記ゲームでは、ベストタイミング時間との時間差に基づいて算出されるゲームスコアのみをモニタ2に表示し、当該ゲームスコアのみによってゲーム結果の優劣を表すようにしてもよい。
【0161】
また、
図10〜
図16を用いて説明したゲームでは、プレイヤがバイタルセンサ76を装着したことに応じて、ゲームが開始されたことをプレイヤに報知するゲーム画像が表示されるが、他の方式でプレイヤにゲームが開始されたことを報知してもかまわない。例えば、プレイヤがバイタルセンサ76を装着したことに応じて、ゲームが開始されたことを音声のみでプレイヤに報知してもかまわない。また、プレイヤがバイタルセンサ76を装着した後にバイタルセンサ76の空洞から指を抜いたタイミングに応じて決定されるゲーム結果についても、音声のみを用いてプレイヤに報知してもかまわない。
【0162】
また、
図17〜
図21を用いて説明したゲームでは、プレイヤがバイタルセンサ76の空洞から指を抜いたタイミングで、選択している巣房の当たり/はずれが判明する例を用いたが、プレイヤがバイタルセンサ76の空洞から指を抜いたタイミングとは無関係に巣房の当たり/はずれが判明してもかまわない。例えば、プレイヤがバイタルセンサ76を装着して選択オブジェクトSOが有する複数の巣房から1つの巣房を選択した時点で、巣房の当たり/はずれが判明してもかまわない。この場合、プレイヤがバイタルセンサ76を装着することに応じて、プレイヤキャラクタPCを選択場所CHへ移動させるとともに、当該選択場所CHが当たりである場合は選択場所CHの巣房からハチミツを流れ出させてゲームに成功したことを示すゲーム画像をモニタ2に表示する。一方、プレイヤがバイタルセンサ76を装着することに応じて、プレイヤキャラクタPCを選択場所CHへ移動させるとともに、当該選択場所CHがはずれである場合は選択場所CHの巣房からハチを飛び出させてゲームに失敗したことを示すゲーム画像をモニタ2に表示する。
【0163】
また、
図17〜
図21を用いて説明したゲームでは、プレイヤがバイタルセンサ76の空洞から指を抜いたタイミングに応じて、ゲームの結果をプレイヤに報知するゲーム画像が表示されるが、他の方式でプレイヤにゲームの結果を報知してもかまわない。例えば、プレイヤがバイタルセンサ76の空洞から指を抜いたタイミングに応じて、決定されたゲーム結果を音声のみでプレイヤに報知してもかまわない。
【0164】
また、上述したゲーム例では、何れもプレイヤの生体指標を用いることなくゲームが進行するが、上述したゲーム例においてもプレイヤの生体指標を用いたゲームも可能である。例えば、上述したゲーム例の場合、プレイヤがバイタルセンサ76を装着した後(上記ステップ51でYesまたはステップ88でYes)、バイタルセンサ76から得られる生体信号からプレイヤの脈波が計測可能な状況(例えば、脈波の振幅PAや心拍数HRが算出可能な状況)となれば、算出可能なプレイヤの生体指標をゲームに反映することができる。
【0165】
一例として、
図10〜
図16を用いて説明したゲーム例の場合、脈波の振幅PAが小さいほどプレイヤの動揺が大きく、脈波の振幅PAが大きいほどプレイヤの動揺が小さいとする、当該プレイヤの動揺度を算出する。具体的には、プレイヤの脈波の振幅PAが最大値となったときの動揺度を0(すなわち、プレイヤが落ち着いている)とし、プレイヤの脈波の振幅PAが当該最大値の半分となったときの動揺度を100(すなわち、プレイヤの動揺が大きい)と定義する。なお、プレイヤの脈波の振幅PAが最大値は、ゲーム中に更新されることがあり得るが、その場合、更新後の振幅PAが最大値を用いて動揺度の算出式も更新する。
【0166】
そして、
図10〜
図16を用いて説明したゲーム例の場合、算出されたプレイヤの動揺度をゲームに反映させる。第1の例として、ゲーム中における動揺度の最高値を動揺スコアとして記憶する。そして、上記ステップ58で算出されるゲームスコアから上記動揺スコアを減算して、最終的なゲームスコアを算出する。これによって、ゲーム中においてプレイヤの動揺が大きければゲームスコアが低くなるようなゲームが可能となる。
【0167】
第2の例として、判定オブジェクトJOの動作に応じたプレイヤの動揺度を算出する。そして、相対的にプレイヤの動揺度が高かった判定オブジェクトJOの動作をプレイヤ毎に学習し、当該学習結果に基づいて判定オブジェクトJOを動作させる。例えば、ゲームをプレイしているプレイヤに応じて、当該プレイヤの動揺度が高くなる動作で判定オブジェクトJOを動作させるようなゲームが可能となる。
【0168】
第3の例として、プレイヤの動揺度に応じて、タイムリミットを調整する。例えば、ゲーム中に算出されるプレイヤの動揺度が低い、すなわちプレイヤが落ち着いている場合、上記ステップ52で算出されるタイムリミット時間を上記ステップ54の処理において延長して変更する。また、ゲーム中に算出されるプレイヤの動揺度が高い、すなわちプレイヤが動揺している場合、上記ステップ52で算出されるタイムリミット時間を上記ステップ54の処理において短縮して変更する。これによって、ゲーム中に落ち着いているプレイヤほどタイムリミット時間が長くなり、その結果高得点のゲームスコアを狙うことが可能となる。例えば、判定オブジェクトJOがプレイヤキャラクタPCに食いつくようなフェイント動作を行うことによってプレイヤの動揺を誘うことも可能であり、この場合、いかにプレイヤが動揺せずに長い時間耐えられるかを競うようなゲームも可能となる。
【0169】
なお、上記第1の例は、
図17〜
図21を用いて説明したゲーム例においても適用可能である。例えば、当該ゲーム例でも、プレイヤがバイタルセンサ76を装着した後にバイタルセンサ76から得られる生体信号を用いてプレイヤの脈波の振幅PAを算出し、算出された振幅PAを用いてバイタルセンサ76装着中のプレイヤの動揺度を算出する。そして、ゲーム中における動揺度の最高値を動揺スコアとして記憶し、当該動揺スコアをモニタ2に表示する。これによって、選択オブジェクトSOにおける巣房の当たり/はずれだけでなく、バイタルセンサ76を装着してから当たり/はずれが判明するまでの間におけるプレイヤの動揺度合が判明するため、さらにプレイヤにゲーム中の状況を提示することができる。また、ゲーム中における動揺スコアをゲームスコアに反映させることによって、選択オブジェクトSOにおける巣房の当たり/はずれだけでなく、ゲーム中の動揺度合も争うようなゲームが可能となる。
【0170】
また、上述した説明では、プレイヤの身体の一部(例えば、指先)に赤外線を照射し、当該身体の一部を透過して受光された赤外線の光量に基づいてプレイヤの生体信号(脈波信号)を得る、いわゆる光学方式によって血管の容積変化を検出して容積脈波を得る例を用いている。しかしながら、本発明では、プレイヤが身体活動する際に起こる生理的な情報が得られる他の形式のセンサを用いて、プレイヤの生体信号を取得してもかまわない。例えば、動脈の脈動による血管内の圧力変位を検出(例えば、圧電方式)して圧脈波を得ることによって、プレイヤの生体信号を取得してもかまわない。また、プレイヤの筋電位や心電位を、プレイヤの生体信号として取得してもかまわない。筋電位や心電位は、電極を用いた一般的な検出方法により検出することができ、例えば、プレイヤの身体における微細な電流の変化等に基づいて、プレイヤの生体信号を取得することができる。また、プレイヤの血流を、プレイヤの生体信号として取得してもかまわない。血流は、電磁法や超音波法等を用いて1心拍ごとの脈動血流として測定され、当該脈動血流をプレイヤの生体信号として取得することができる。当然ながら、上述した各種生体信号を得るために、プレイヤの指部以外の箇所(例えば、胸部、腕、耳たぶ等)にバイタルセンサを装着してもかまわない。取得する生体信号によっては、厳密には脈拍と心拍との差が生じることになるが、心拍数と脈拍数という見方をした場合ほぼ同じ値と考えられるので、取得される生体信号を上述した処理と同様に取り扱うことができる。
【0171】
また、上述した説明ではゲーム処理をコントローラ7(バイタルセンサ76、コアユニット70)およびゲーム装置本体5(すなわち、ゲーム装置3)で行う例を用いたが、上記ゲーム処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置3が他の装置(例えば、サーバや他のゲーム装置)と通信可能に構成されている場合、上記ゲーム処理における処理ステップは、ゲーム装置3および当該他の装置が協働することによって実行してもよい。一例として、他の装置において仮想ゲーム世界が設定されている場合、バイタルセンサ76から出力される脈波信号を他の装置へ送信し、他の装置において以降のゲーム処理を行った後、ゲーム装置3で表示処理を行うことが考えられる。また、他の例として、他の装置において仮想ゲーム世界が設定されている場合、上述したゲーム処理における途中段階のデータ(例えば、プレイヤキャラクタPCの位置を示すデータ)を、ゲーム装置3から他の装置へ送信し、送信したデータを用いた処理を当該他の装置で行った後、ゲーム装置3で表示処理を行うことが考えられる。このように、上記ゲーム処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述したゲーム処理と同様の処理が可能となるとともに、他の装置において実現されている仮想ゲーム世界に複数のゲーム装置のプレイヤが参加するゲーム処理(例えば、他の装置で動作しているゲームに複数のゲーム装置のプレイヤが参加してゲーム進行を共有するオンラインゲーム)にも本発明を適用することも可能となる。上述したゲーム処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。
【0172】
また、上記実施例では、据置型のゲーム装置3に本願発明を適用した例を説明したが、バイタルセンサと、当該バイタルセンサから得られる生体信号に応じた処理を実行する情報処理装置とがあればよく、例えば一般的なパーソナルコンピュータ、携帯電話機、PDA(Personal Digital Assistant)、携帯ゲーム装置等のデバイスにも適用することができる。
【0173】
また、上述した説明では、コアユニット70とゲーム装置本体5とが無線通信によって接続された態様を用いたが、コアユニット70とゲーム装置本体5とがケーブルを介して電気的に接続されてもかまわない。この場合、コアユニット70に接続されたケーブルをゲーム装置本体5の接続端子に接続する。
【0174】
また、コントローラ7を構成するコアユニット70およびバイタルセンサ76のうち、コアユニット70のみに通信部75を設けたが、バイタルセンサ76にゲーム装置本体5へ生体信号データを無線送信する通信部を設けてもかまわない。また、コアユニット70およびバイタルセンサ76それぞれに上記通信部を設けてもかまわない。例えば、コアユニット70およびバイタルセンサ76に設けられた通信部がそれぞれゲーム装置本体5へ生体信号データや操作データを無線送信してもいいし、バイタルセンサ76の通信部からコアユニット70へ生体信号データを無線送信してコアユニット70の通信部75で受信した後、コアユニット70の通信部75がバイタルセンサ76の生体信号データと共にコアユニット70の操作データをゲーム装置本体5へ無線送信してもいい。これらの場合、コアユニット70とバイタルセンサ76とを電気的に接続する接続ケーブル79が不要となる。
【0175】
また、上述したコアユニット70の形状や、それに設けられている操作部72の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述したバイタルセンサ76の形状や、それに設けられている構成要素の種類、数、および設置位置等は、単なる一例に過ぎず他の種類、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した処理で用いられる係数、判定値、数式、処理順序等は、単なる一例に過ぎず他の値や数式や処理順序であっても、本発明を実現できることは言うまでもない。
【0176】
また、上記ゲームプログラムは、光ディスク4等の外部記憶媒体を通じてゲーム装置本体5に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置本体5に供給されてもよい。また、ゲームプログラムは、ゲーム装置本体5内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記ゲームプログラムを記憶する情報記憶媒体としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体の他に、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、不揮発性メモリなどでもよい。また、上記ゲームプログラムを記憶する情報記憶媒体としては、上記ゲームプログラムを一時的に記憶する揮発性メモリでもよい。
【0177】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。