(57)【要約】【課題】ポーズを解除した時におけるゲームの操作性を改善することができるゲーム装置およびゲームプログラムを提供する。【解決手段】ゲーム装置は、入力装置の状態に応じて変化し、ゲーム処理に用いられるゲームデータを逐次取得する。また、ゲーム処理が一時停止されるタイミングにおいて取得されるゲームデータを記憶する。一時停止の解除の受付が開始された後、ゲーム装置は、現在のゲームデータと記憶されたゲームデータとを逐次比較する。現在のゲームデータの内容が記憶手段に記憶されたゲームデータの内容に所定の基準よりも近くなったことに応じて、一時停止が解除されてゲーム処理が再開される。【選択図】図１６
2007236696.tif 000002
【特許請求の範囲】
【請求項１】
入力装置の位置および姿勢の少なくとも一方に関する状態に基づいてゲーム処理を行うゲーム装置であって、
前記入力装置の状態に応じて変化し、前記ゲーム処理に用いられるゲームデータを逐次取得するゲームデータ取得手段と、
前記ゲーム処理を一時停止させる一時停止手段と、
前記ゲーム処理が一時停止されるタイミングにおいて取得されるゲームデータを記憶する記憶手段と、
前記ゲーム処理が一時停止している状態において、一時停止の解除の受付を開始する解除受付手段と、
前記一時停止の解除の受付が開始された後、前記ゲームデータ取得手段によって逐次取得される現在のゲームデータと前記記憶手段に記憶されたゲームデータとを逐次比較する第１比較手段と、
前記現在のゲームデータの内容が前記記憶手段に記憶されたゲームデータの内容に所定の基準よりも近くなったことに応じて、一時停止を解除して前記ゲーム処理を再開する解除手段を備える、ゲーム装置。
【請求項２】
前記一時停止の解除の受付が開始された後、前記記憶手段に記憶されたゲームデータの内容を表す画像と前記現在のゲームデータの内容を表す画像とを逐次表示装置に表示させる画像表示手段をさらに備える、請求項１に記載のゲーム装置。
【請求項３】
前記入力装置は、所定の撮像対象を撮像するための撮像手段を備え、
前記撮像手段によって撮像される撮像画像における撮像対象の位置に関する座標を算出する座標算出手段をさらに備え、
前記ゲームデータ取得手段は、前記座標を示すデータ、または、それから算出される前記入力装置の位置もしくは姿勢に対応するデータを前記ゲームデータとして取得する、請求項１に記載のゲーム装置。
【請求項４】
前記入力装置は、加速度センサを備え、
前記ゲームデータ取得手段は、前記加速度センサからの出力を示すデータまたはそれから算出される前記入力装置の姿勢に対応するデータを前記ゲームデータとして取得する、請求項１に記載のゲーム装置。
【請求項５】
前記入力装置は、入力装置の位置または姿勢に関する状態を示すデータを出力し、
前記ゲームデータ取得手段は、前記入力装置から出力されるデータを前記ゲームデータとして取得する、請求項１に記載のゲーム装置。
【請求項６】
前記入力装置は、入力装置の位置または姿勢に関する状態を示すデータを出力し、
前記ゲームデータ取得手段は、前記入力装置から出力されるデータに基づいて、仮想のゲーム空間に登場するオブジェクトを制御するためのデータを前記ゲームデータとして算出して取得する、請求項１に記載のゲーム装置。
【請求項７】
前記解除受付手段は、プレイヤによる指示があったことに応じて一時停止状態の解除の受付を開始する、請求項１に記載のゲーム装置。
【請求項８】
前記入力装置は操作スイッチを備えており、
前記解除受付手段は、前記操作スイッチが操作されたことに応じて一時停止の解除の受付を開始する、請求項７に記載のゲーム装置。
【請求項９】
前記解除受付手段は、前記ゲーム処理が一時停止させられてから所定時間が経過したことに応じて一時停止の解除の受付を開始する、請求項１に記載のゲーム装置。
【請求項１０】
前記解除受付手段は、
前記前記ゲーム処理が一時停止させられた後、前記ゲームデータ取得手段によって逐次取得される現在のゲームデータと前記記憶手段に記憶されたゲームデータとを比較する第２比較手段と、
前記現在のゲームデータの内容が前記記憶手段に記憶されたゲームデータの内容に所定の基準よりも相違したことに応じて一時停止の解除の受付を開始する開始実行手段とを含む、請求項１に記載のゲーム装置。
【請求項１１】
入力装置の位置および姿勢の少なくとも一方に関する状態に基づいてゲーム処理を行うゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、
前記入力装置の状態に応じて変化し、前記ゲーム処理に用いられるゲームデータを逐次取得するゲームデータ取得ステップと、
前記ゲーム処理を一時停止させる一時停止ステップと、
前記ゲーム処理が一時停止されるタイミングにおいて取得されるゲームデータを前記ゲーム装置のメモリに記憶する記憶ステップと、
前記ゲーム処理が一時停止している状態において、一時停止の解除の受付を開始する解除受付ステップと、
前記一時停止の解除の受付が開始された後、前記ゲームデータ取得ステップにおいて逐次取得される現在のゲームデータと前記メモリに記憶されたゲームデータとを逐次比較する第１比較ステップと、
前記現在のゲームデータの内容が前記メモリに記憶されたゲームデータの内容に所定の基準よりも近くなったことに応じて、一時停止を解除して前記ゲーム処理を再開する一時停止解除ステップとを前記コンピュータに実行させる、ゲームプログラム。
【請求項１２】
前記一時停止の解除の受付が開始された後、前記メモリに記憶されたゲームデータの内容を表す画像と前記現在のゲームデータの内容を表す画像とを逐次表示装置に表示させる画像表示ステップを前記コンピュータにさらに実行させる、請求項１１に記載のゲームプログラム。
【請求項１３】
前記入力装置は、所定の撮像対象を撮像するための撮像手段を備え、
前記ゲームプログラムは、前記撮像手段によって撮像される撮像画像における撮像対象の位置に関する座標を算出する座標算出ステップを前記コンピュータにさらに実行させ、
前記ゲームデータ取得ステップにおいて、前記コンピュータは、前記座標を示すデータ、または、それから算出される前記入力装置の位置もしくは姿勢に対応するデータを前記ゲームデータとして取得する、請求項１１に記載のゲームプログラム。
【請求項１４】
前記入力装置は、加速度センサを備え、
前記ゲームデータ取得ステップにおいて、前記コンピュータは、前記加速度センサからの出力を示すデータまたはそれから算出される前記入力装置の姿勢に対応するデータを前記ゲームデータとして取得する、請求項１１に記載のゲームプログラム。
【請求項１５】
前記入力装置は、入力装置の位置または姿勢に関する状態を示すデータを出力し、
前記ゲームデータ取得ステップにおいて、前記コンピュータは、前記入力装置から出力されるデータを前記ゲームデータとして取得する、請求項１１に記載のゲームプログラム。
【請求項１６】
前記入力装置は、入力装置の位置または姿勢に関する状態を示すデータを出力し、
前記ゲームデータ取得ステップにおいて、前記コンピュータは、前記入力装置から出力されるデータに基づいて、仮想のゲーム空間に登場するオブジェクトを制御するためのデータを前記ゲームデータとして算出して取得する、請求項１１に記載のゲームプログラム。
【請求項１７】
前記解除受付ステップにおいて、前記コンピュータは、プレイヤによる指示があったことに応じて一時停止状態の解除の受付を開始する、請求項１１に記載のゲームプログラム。
【請求項１８】
前記入力装置は操作スイッチを備えており、
前記解除受付ステップにおいて、前記コンピュータは、前記操作スイッチが操作されたことに応じて一時停止の解除の受付を開始する、請求項１７に記載のゲームプログラム。
【請求項１９】
前記解除受付ステップにおいて、前記コンピュータは、前記ゲーム処理が一時停止させられてから所定時間が経過したことに応じて一時停止の解除の受付を開始する、請求項１１に記載のゲームプログラム。
【請求項２０】
前記解除受付ステップは、
前記前記ゲーム処理が一時停止させられた後、前記ゲームデータ取得ステップにおいて逐次取得される現在のゲームデータと前記メモリに記憶されたゲームデータとを比較する第２比較ステップと、
前記現在のゲームデータの内容が前記メモリに記憶されたゲームデータの内容に所定の基準よりも相違したことに応じて一時停止の解除の受付を開始する開始実行ステップとを含む、請求項１１に記載のゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム装置およびゲームプログラムに関し、より特定的には、入力装置自体を動かすことによってゲーム操作を行うゲーム装置およびゲームプログラムに関する。
【背景技術】
【０００２】
従来、コントローラ等の入力装置自体を動かすことによってゲーム操作を行うゲーム装置およびゲームプログラムが考えられている。例えば、非特許文献１には、入力装置とゲーム装置とが一体となった携帯型のゲーム装置において、加速度センサによってゲーム装置自体の傾きを算出し、当該傾きに基づいてキャラクタの転がる方向を決定することが開示されている。このように、入力装置（上記例ではゲーム装置）自体を動かしてゲーム操作をプレイヤに行わせることによって、単にボタンを押下することによるゲーム操作にはない面白みのあるゲーム操作をプレイヤに提供することができる。
【非特許文献１】「コロコロカービィ取扱説明書」任天堂株式会社、２０００年８月２３日、ｐ．１０−１１
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記従来のゲーム装置において、プレイヤはゲーム中において、ゲーム装置に設けられた所定のボタンを押下することによってゲーム進行を一時停止する（ポーズする）ことができるとともに、一時停止状態を解除してゲーム進行を再開することができる。ここで、入力装置は任意の傾きで保持可能であるので、ポーズした時とポーズを解除した時とで入力装置の傾きの状態が一致しないのが通常である。このようにポーズの前後で入力装置の傾きの状態が一致しない場合、ポーズの前後でゲーム操作が急に変わるので、ポーズ解除後にプレイヤが予期しないゲーム操作が行われてしまうおそれがある。その結果、ポーズ解除後においてプレイヤがミスしてしまう可能性が高く、プレイヤはゲームの操作性が悪いと感じるおそれがある。
【０００４】
それ故、本発明の目的は、ポーズを解除した時におけるゲームの操作性を改善することができるゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００６】
第１の発明は、入力装置（コントローラ７）の位置および姿勢の少なくとも一方に関する状態（後述する第１実施例では、コントローラ７の長手方向を軸とした回転に関する傾き。後述する第２実施例では、コントローラ７の指示位置。）に基づいてゲーム処理（ステップＳ１２またはステップＳ４２）を行うゲーム装置（３）である。ゲーム装置は、ゲームデータ取得手段（ステップＳ３またはＳ４２を実行するＣＰＵ１０等。以下、この欄においてはステップ番号のみを記載する。）と、一時停止手段（Ｓ１４またはＳ４４）と、記憶手段（Ｓ１５またはＳ４６）と、解除受付手段（Ｓ２２、Ｓ６２、またはＳ６７）と、第１比較手段（Ｓ３２またはＳ５３）と、解除手段（Ｓ３４またはＳ５４）を備える。ゲームデータ取得手段は、入力装置の状態に応じて変化し、ゲーム処理に用いられるゲームデータ（加速度データ６２１または第１カーソル位置データ６３７）を逐次取得する。一時停止手段は、ゲーム処理を一時停止させる。記憶手段は、ゲーム処理が一時停止されるタイミングにおいて取得されるゲームデータを記憶する。解除受付手段は、ゲーム処理が一時停止している状態において、一時停止の解除の受付を開始する。第１比較手段は、一時停止の解除の受付が開始された後、ゲームデータ取得手段によって逐次取得される現在のゲームデータと記憶手段に記憶されたゲームデータとを逐次比較する。解除手段は、現在のゲームデータの内容が記憶手段に記憶されたゲームデータの内容に所定の基準（後述する第１実施例では、加速度の方向の差分を示す所定値。後述する第２実施例では、２つのカーソルの距離を示す所定値。）よりも近くなったことに応じて、一時停止を解除してゲーム処理を再開する。なお、第１の発明において、ゲームデータ取得手段は、例えば入力装置から出力されたデータをゲームデータとして取得してもよいし、入力装置から出力されたデータに所定の演算を行うことによってゲームデータを取得してもよい。
【０００７】
第２の発明においては、ゲーム装置は、画像表示手段（Ｓ３６またはＳ５５）をさらに備えていてもよい。画像表示手段は、一時停止の解除の受付が開始された後、記憶手段に記憶されたゲームデータの内容を表す画像（第２モデル５４、第１カーソル５５、板状オブジェクト７１、または基準カーソル７８）と現在のゲームデータの内容を表す画像（第１モデル５３、第２カーソル５６、案内用オブジェクト７５、または案内用カーソル７７）とを逐次表示装置に表示させる。
【０００８】
第３の発明においては、入力装置は、所定の撮像対象を撮像するための撮像手段（撮像素子４０）を備えていてもよい。このとき、ゲーム装置は、撮像手段によって撮像される撮像画像における撮像対象の位置に関する座標（マーカ座標）を算出する座標算出手段（画像処理回路４１）をさらに備える。ゲームデータ取得手段は、座標を示すデータ、または、それから算出される入力装置の位置もしくは姿勢に対応するデータ（第１カーソル位置データ６３７）をゲームデータとして取得する。
【０００９】
第４の発明においては、入力装置は、加速度センサ（３７）を備えていてもよい。このとき、ゲームデータ取得手段は、加速度センサからの出力を示すデータ（加速度データ６２１）またはそれから算出される入力装置の姿勢に対応するデータをゲームデータとして取得する。
【００１０】
第５の発明においては、入力装置は、入力装置の位置または姿勢に関する状態を示すデータ（加速度データ６２１またはマーカ座標データ６２３）を出力してもよい。このとき、ゲームデータ取得手段は、入力装置から出力されるデータをゲームデータとして取得する。
【００１１】
第６の発明においては、入力装置は、入力装置の位置または姿勢に関する状態を示すデータを出力してもよい。このとき、ゲームデータ取得手段は、入力装置から出力されるデータに基づいて、仮想のゲーム空間に登場するオブジェクトを制御するためのデータ（第１カーソル位置データ６３７）をゲームデータとして算出して取得する。
【００１２】
第７の発明においては、解除受付手段は、プレイヤによる指示（解除受付ボタンの押下）があったことに応じて一時停止状態の解除の受付を開始してもよい。
【００１３】
第８の発明においては、入力装置は操作スイッチ（解除受付ボタン）を備えていてもよい。このとき、解除受付手段は、操作スイッチが操作されたことに応じて一時停止の解除の受付を開始する。
【００１４】
第９の発明においては、解除受付手段は、ゲーム処理が一時停止させられてから所定時間が経過したことに応じて（ステップＳ６１の判定結果が肯定の場合）一時停止の解除の受付を開始してもよい。
【００１５】
第１０の発明においては、解除受付手段は、第２比較手段（Ｓ６６）と、開始実行手段（Ｓ６７）とを含んでいてもよい。第２比較手段は、ゲーム処理が一時停止させられた後、ゲームデータ取得手段によって逐次取得される現在のゲームデータと記憶手段に記憶されたゲームデータとを比較する。開始実行手段は、現在のゲームデータの内容が記憶手段に記憶されたゲームデータの内容に所定の基準よりも相違したことに応じて一時停止の解除の受付を開始する。
【００１６】
また、本発明は、上記発明における機能をゲーム装置のコンピュータに実行させるためのゲームプログラムの形態で提供されてもよい。
【発明の効果】
【００１７】
第１の発明によれば、ゲーム処理が一時停止（ポーズ）される場合、記憶手段は、ゲームデータを記憶する。ゲームデータは、入力装置の状態を反映したものであるので、記憶手段によって、ポーズ操作時（ゲーム処理が一時停止された時点）における入力装置の状態を記憶することができる。そして、解除手段は、現在の入力装置の状態とポーズ操作時における入力装置の状態とが近くなったことに応じて一時停止を解除する。これによって、一時停止が解除されてゲームが再開される際に、入力装置の状態を一時停止が行われる前とほぼ同じ状態にすることができる。したがって、第１の発明によれば、一時停止の前後においてゲーム操作が変わってしまうことに起因するプレイヤのミスを防止することができ、操作性を向上することができる。
【００１８】
第２の発明によれば、プレイヤは、現在の入力装置の状態とポーズ操作時における入力装置の状態とを画像で確認することができるので、一時停止を解除する操作が容易になる。
【００１９】
第３の発明によれば、撮像手段によって撮像される撮像画像を用いて、入力装置の位置や姿勢を容易に算出することができる。
【００２０】
第４の発明によれば、加速度センサによって検出される加速度を用いて、入力装置の姿勢を容易に算出することができる。
【００２１】
第５および第６の発明によれば、入力装置から出力されるデータ、または、それに基づいて得られるデータをゲームデータとして記憶するので、入力装置の状態を正確に記憶することができる。
【００２２】
第７の発明によれば、プレイヤが意図しないにもかかわらずゲームが再開されてしまうことを防止することができる。
【００２３】
第８の発明によれば、プレイヤは、入力装置の位置または姿勢を変化させる操作とは別の操作によって、解除の受付を開始するための指示を行うことができるので、当該指示の操作が容易になる。
【００２４】
第９および第１０の発明によれば、プレイヤは解除の受付を開始するための操作を行う必要がないので、プレイヤの操作を簡易化することができる。
【発明を実施するための最良の形態】
【００２５】
（ゲームシステムの構成）
図１を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム１について説明する。なお、図１は、当該ゲームシステム１を説明するための外観図である。以下、据置型のゲーム装置を一例にして、本発明のゲーム装置について説明する。
【００２６】
図１において、ゲームシステム１は、家庭用テレビジョン受像機等のスピーカを備えたディスプレイ（以下、モニタと記載する）２に、接続コードを介して接続される据置型ゲーム装置（以下、単にゲーム装置と記載する）３および当該ゲーム装置３に操作データを与えるコントローラ７によって構成される。また、モニタ２の周辺（図では画面の上側）には、２つのマーカ８ａおよび８ｂが設置される。マーカ８ａおよび８ｂは、具体的には赤外ＬＥＤであり、それぞれモニタ２の前方に向かって赤外光を出力する。ゲーム装置３は、接続端子を介して受信ユニット６が接続される。受信ユニット６は、コントローラ７から無線送信される操作データを受信し、コントローラ７とゲーム装置３とは無線通信によって接続される。なお、他の実施形態においてはコントローラ７とゲーム装置３とは有線で接続されてもよい。また、ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着される。ゲーム装置３の上部主面には、当該ゲーム装置３の電源ＯＮ／ＯＦＦスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置３上部の蓋を開くＯＰＥＮスイッチが設けられている。ここで、プレイヤがＯＰＥＮスイッチを押下することによって上記蓋が開き、光ディスク４の脱着が可能となる。
【００２７】
また、ゲーム装置３には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード５が必要に応じて着脱自在に装着される。ゲーム装置３は、光ディスク４に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ２に表示する。さらに、ゲーム装置３は、外部メモリカード５に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置３のプレイヤは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を楽しむことができる。
【００２８】
コントローラ７は、その内部に備える通信部３６（後述）から受信ユニット６が接続されたゲーム装置３へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術を用いて操作データを無線送信する。コントローラ７は、複数の操作ボタンからなる操作部が設けられている。また、後述により明らかとなるが、コントローラ７は、少なくとも直交２軸方向の加速度を検出する加速度センサ３７（後述）を備えている。加速度センサ３７によって検出された加速度を示すデータは上記操作データの一部としてゲーム装置３へ送信される。ゲーム装置３は、当該加速度を示すデータに所定の演算を行うことによりコントローラ７の傾き（姿勢）を算出し、当該傾きに応じた処理を適宜実行する。また、コントローラ７は、当該コントローラ７から見た画像を撮像するための撮像情報演算部３５（後述）を備えている。撮像情報演算部３５は、モニタ２の周辺に配置された各マーカ８ａおよび８ｂを撮像対象として、各マーカ８ａおよび８ｂの画像を撮像する。ゲーム装置３は、この画像に基づいた演算処理によってコントローラ７の位置および姿勢に応じた処理を実行する。
【００２９】
次に、図２を参照して、ゲーム装置３の構成について説明する。なお、図２は、ゲーム装置３の機能ブロック図である。
【００３０】
図２において、ゲーム装置３は、各種プログラムを実行する例えばリスク（ＲＩＳＣ）ＣＰＵ（セントラルプロセッシングユニット）１０を備える。ＣＰＵ１０は、図示しないブートＲＯＭに記憶された起動プログラムを実行し、メインメモリ１３等のメモリの初期化等を行った後、光ディスク４に記憶されているゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。ＣＰＵ１０には、メモリコントローラ１１を介して、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２、メインメモリ１３、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１４、およびＡＲＡＭ（Ａｕｄｉｏ  ＲＡＭ）１５が接続される。また、メモリコントローラ１１には、所定のバスを介して、コントローラＩ／Ｆ（インターフェース）１６、ビデオＩ／Ｆ１７、外部メモリＩ／Ｆ１８、オーディオＩ／Ｆ１９、およびディスクＩ／Ｆ２１が接続され、それぞれ受信ユニット６、モニタ２、外部メモリカード５、スピーカ２２、およびディスクドライブ２０が接続されている。
【００３１】
ＧＰＵ１２は、ＣＰＵ１０の命令に基づいて画像処理を行うものあり、例えば、３Ｄグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。ＧＰＵ１２は、図示しない画像処理専用のメモリやメインメモリ１３の一部の記憶領域を用いて画像処理を行う。ＧＰＵ１２は、これらを用いてモニタ２に表示すべきゲーム画像データやムービー映像を生成し、適宜メモリコントローラ１１およびビデオＩ／Ｆ１７を介してモニタ２に出力する。
【００３２】
メインメモリ１３は、ＣＰＵ１０で使用される記憶領域であって、ＣＰＵ１０の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ１３は、ＣＰＵ１０によって光ディスク４から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ１３に記憶されたゲームプログラムや各種データ等がＣＰＵ１０によって実行される。
【００３３】
ＤＳＰ１４は、ゲームプログラム実行時にＣＰＵ１０において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのＡＲＡＭ１５が接続される。ＡＲＡＭ１５は、ＤＳＰ１４が所定の処理（例えば、先読みしておいたゲームプログラムやサウンドデータの記憶）を行う際に用いられる。ＤＳＰ１４は、ＡＲＡＭ１５に記憶されたサウンドデータを読み出し、メモリコントローラ１１およびオーディオＩ／Ｆ１９を介してモニタ２に備えるスピーカ２２に出力させる。
【００３４】
メモリコントローラ１１は、データ転送を統括的に制御するものであり、上述した各種Ｉ／Ｆが接続される。コントローラＩ／Ｆ１６は、例えば４つのコントローラＩ／Ｆで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置３とを通信可能に接続する。例えば、受信ユニット６は、上記コネクタと嵌合し、コントローラＩ／Ｆ１６を介してゲーム装置３と接続される。上述したように受信ユニット６は、コントローラ７からの操作データを受信し、コントローラＩ／Ｆ１６を介して当該操作データをＣＰＵ１０へ出力する。なお、他の実施形態においては、ゲーム装置３は、受信ユニット６に代えて、コントローラ７から送信されてくる操作データを受信する受信モジュールをその内部に設ける構成としてもよい。この場合、受信モジュールが受信した送信データは、所定のバスを介してＣＰＵ１０に出力される。ビデオＩ／Ｆ１７には、モニタ２が接続される。外部メモリＩ／Ｆ１８には、外部メモリカード５が接続され、その外部メモリカード５に設けられたバックアップメモリ等とアクセス可能となる。オーディオＩ／Ｆ１９にはモニタ２に内蔵されるスピーカ２２が接続され、ＤＳＰ１４がＡＲＡＭ１５から読み出したサウンドデータやディスクドライブ２０から直接出力されるサウンドデータをスピーカ２２から出力可能に接続される。ディスクＩ／Ｆ２１には、ディスクドライブ２０が接続される。ディスクドライブ２０は、所定の読み出し位置に配置された光ディスク４に記憶されたデータを読み出し、ゲーム装置３のバスやオーディオＩ／Ｆ１９に出力する。
【００３５】
次に、図３Ａ〜図８を参照して、コントローラ７について説明する。図３Ａ〜図４は、コントローラ７の外観構成を示す斜視図である。図３Ａは、コントローラ７の上面後方から見た斜視図であり、図３Ｂは、コントローラ７を下面後方から見た斜視図である。図４は、コントローラ７を前方から見た図である。
【００３６】
図３Ａ〜図４において、コントローラ７は、例えばプラスチック成型によって形成されたハウジング３１を有している。ハウジング３１は、その前後方向（図３に示すＺ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ７を用いることによって、それに設けられたボタンを押下すること、コントローラ７自体の傾き（重力方向に対する角度）を変えること、および、コントローラ７自体の位置や向きを変えることによってゲーム操作を行うことができる。例えば、プレイヤは、コントローラ７の傾きを変化させることによって、ゲーム空間に登場する操作対象（後述するキャラクタ５１等）に対する操作を行うことができる。また、例えば、プレイヤは、長手方向を軸としてコントローラ７を回転させたり、コントローラ７によって指し示される画面上の位置を変えたりする操作によって、操作対象に対する操作を行うことができる。ここで、「コントローラ７によって指し示される画面上の位置」とは、理想的には、コントローラ７の前端部から上記長手方向に延ばした直線とモニタ２の画面とが交わる位置であるが、厳密に当該位置である必要はなく、その周辺の位置をゲーム装置３によって算出することができればよい。以下では、コントローラ７によって指し示される画面上の位置を「コントローラ７の指示位置」と呼ぶ。また、コントローラ７（ハウジング３１）の長手方向を、「コントローラ７の指示方向」と呼ぶことがある。
【００３７】
ハウジング３１には、複数の操作ボタンが設けられる。ハウジング３１の上面には、十字キー３２ａ、Ｘボタン３２ｂ、Ｙボタン３２ｃ、Ｂボタン３２ｄ、セレクトスイッチ３２ｅ、メニュースイッチ３２ｆ、およびスタートスイッチ３２ｇが設けられる。一方、ハウジング３１の下面には凹部が形成されており、当該凹部の後面側傾斜面にはＡボタン３２ｉが設けられる。これらの各ボタン（スイッチ）は、ゲーム装置３が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないため詳細な説明を省略する。また、ハウジング３１の上面には、遠隔からゲーム装置３本体の電源をオン／オフするための電源スイッチ３２ｈが設けられる。
【００３８】
また、コントローラ７は撮像情報演算部３５（図５Ｂ）を有しており、図４に示すように、ハウジング３１前面には撮像情報演算部３５の光入射口３５ａが設けられる。一方、ハウジング３１の後面にはコネクタ３３が設けられている。コネクタ３３は、例えば３２ピンのエッジコネクタであり、コントローラ７に他の機器を接続するために利用される。また、ハウジング３１上面の後面側には複数のＬＥＤ３４が設けられる。ここで、コントローラ７には、他のコントローラ７と区別するためにコントローラ種別（番号）が付与される。ＬＥＤ３４は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７からゲーム装置３へ操作データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ３４のいずれか１つが点灯する。
【００３９】
次に、図５Ａおよび図５Ｂを参照して、コントローラ７の内部構造について説明する。図５Ａおよび図５Ｂは、コントローラ７の内部構造を示す図である。なお、図５Ａは、コントローラ７の上筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図５Ｂは、コントローラ７の下筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図５Ｂに示す基板３００は、図５Ａに示す基板３００の裏面から見た斜視図となっている。
【００４０】
図５Ａにおいて、ハウジング３１の内部には基板３００が固設されており、当該基板３００の上主面上に操作ボタン３２ａ〜３２ｈ、加速度センサ３７、ＬＥＤ３４、水晶振動子４６、無線モジュール４４、およびアンテナ４５等が設けられる。そして、これらは、基板３００等に形成された配線（図示せず）によってマイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）４２（図６参照）に接続される。また、無線モジュール４４およびアンテナ４５によって、コントローラ７がワイヤレスコントローラとして機能する。なお、水晶振動子４６は、後述するマイコン４２の基本クロックを生成する。
【００４１】
一方、図５Ｂにおいて、基板３００の下主面上の前端縁に撮像情報演算部３５が設けられる。撮像情報演算部３５は、コントローラ７の前方から順に赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１によって構成されおり、それぞれ基板３００の下主面に取り付けられる。また、基板３００の下主面上の後端縁にコネクタ３３が取り付けられる。そして、撮像情報演算部３５の後方であって基板３００の下主面上にＡボタン３２ｉが取り付けられていて、それよりさらに後方に、電池４７が収容される。電池４７とコネクタ３３との間の基板３００の下主面上には、バイブレータ４８が取り付けられる。このバイブレータ４８は、例えば振動モータやソレノイドであってよい。バイブレータ４８が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームを実現することができる。
【００４２】
なお、図３Ａ〜図５Ｂに示したコントローラ７の形状や、各操作ボタンの形状、数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができることは言うまでもない。また、コントローラ７における撮像情報演算部３５の位置（撮像情報演算部３５の光入射口３５ａ）は、ハウジング３１の前面でなくてもよく、ハウジング３１の外部から光を取り入れることができれば他の面に設けられてもかまわない。このとき、上記「コントローラ７の指示方向」は、光入射口に垂直な方向、すなわち、撮像素子４０の撮像方向となる。
【００４３】
図６は、コントローラ７の構成を示すブロック図である。コントローラ７は、上述した加速度センサ３７をその内部に備えている。加速度センサ３７は、コントローラ７の加速度（重力加速度を含む）を検出する、すなわち、コントローラ７に加わる力（重力を含む）を検出する。以下、図７および図８を用いて、加速度の検出について詳細に説明する。
【００４４】
図７および図８は、コントローラ７の傾きと加速度センサの出力との関係を示す図である。なお、図７および図８に示すＸ’Ｙ’Ｚ’座標系は、コントローラ７を基準とした直交座標系であり、コントローラ７の回転に対応して回転し、コントローラ７の移動に対応して原点が移動する座標系である。ここでは、コントローラ７を基準とした上方向をＹ’軸正方向とし、前方向をＺ’軸正方向とし、後側から前側を向いたときの左方向をＸ’軸正方向とする。
【００４５】
図７および図８に示すように、加速度センサ３７は、コントローラ７を基準とした上下方向（図７に示すＹ’軸方向）、左右方向（図７に示すＸ’軸方向）および前後方向（図７に示すＺ’軸方向）の３軸方向に関してそれぞれ加速度を検出する。加速度センサ３７は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサからの出力は各軸ごとの加速度値を表す。したがって、検出された加速度は、コントローラ７を基準に設定されるＸ’Ｙ’Ｚ’座標系（図７および図８参照）における３次元のベクトルとして表される。
【００４６】
図７は、重力加速度（図７に示すベクトルＶａ）がコントローラ７を基準とした下方向を向く状態を示している。なお、図７および図８では、コントローラ７は静止状態にあるものとする。図７に示す状態では、加速度センサ３７によって検出される加速度の値（以下「加速度ベクトル」と呼ぶ）Ｖａは、Ｙ’軸負方向を向く。このとき、加速度ベクトルＶａは、Ｙ’座標値のみが０でない値をとり、Ｘ’座標値およびＺ’座標値は０となる。一方、図８は、図７に示す状態から、Ｚ’軸を中心として回転させるようにコントローラ７を傾けた状態を示している。図８に示す状態では、加速度ベクトルＶａの向きは図７に示す状態から変化し、Ｘ’座標値およびＹ’座標値が０でない値となり、Ｚ’軸を中心として回転させているのでｚ座標値は０となる。図７および図８に示したように、加速度センサ３７は、コントローラ７を基準とした３軸方向を各成分とする加速度の値を検出することができる。そして、マイコン４２やＣＰＵ１０などのコンピュータを利用したソフトウェア処理によって、検出した加速度の値を３軸方向の各成分からなる加速度ベクトルとして扱って演算を行うことによりコントローラ７の傾きを算出することができる。
【００４７】
加速度センサ３７が検出した加速度を示すデータ（加速度データ）は、マイコン４２へ出力される。なお、本実施形態では、加速度センサ３７は、逐次（具体的には１フレーム時間毎）に加速度に応じた値を出力する。ゲーム装置３は、この値を加速度ベクトルとして扱いかつ所定の演算によりコントローラ７の傾き（姿勢）を算出し、当該傾きに応じたゲーム処理を実行する。
【００４８】
また、本実施形態においては、コントローラ７が静止している状態で加速度センサ３７によって検出される加速度の大きさ、すなわち、加速度センサ３７によって検出される加速度が重力加速度のみを表すときの当該加速度の大きさを、１と表す。例えば、図７に示す状態において検出される加速度ベクトルＶａの各成分の値は、（Ｘ’，Ｙ’，Ｚ’）＝（０，１，０）となる。
【００４９】
なお、加速度センサ３７は、典型的には静電容量式の加速度センサが用いられるが、コントローラ７の傾きを算出することができるものであればよく、他の方式の加速度センサやジャイロスコープを用いることができる。しかしながら、加速度センサは各軸に沿った直線方向の加速度をそれぞれ検出するものであるのに対して、ジャイロスコープは回転に伴う角速度を検出するものである。つまり、加速度センサに代えてジャイロスコープを採用する場合には、上記のように検出される信号の性質が異なるため、両者を簡単に置き換えることはできない。そこで、加速度センサの代わりにジャイロスコープを用いて傾きを算出する場合には、大幅な変更を行う。具体的には、検出開始の状態において傾きの値を初期化する。そして、当該ジャイロスコープから出力される角速度のデータを積分する。さらに、積分結果を用いて、初期化された傾きの値からの傾きの変化量を算出する。この場合、算出される傾きは、角度で表されることになる。
【００５０】
なお、既に説明したように、加速度センサによって傾きを算出する場合には、重力加速度のそれぞれの軸に関する成分の値を、所定の基準と比較することによって傾きを算出する。したがって、算出される傾きはベクトルで表すことが可能であり、初期化を行わずとも絶対的な方向を検出することが可能である点で、加速度センサを用いる場合とジャイロスコープを用いる場合とで異なる。また、傾きとして算出される値の性質も上記のように角度であるかベクトルであるかの違いがあるので、加速度センサからジャイロスコープへの置き換えを行う際には当該傾きのデータに対しても所定の変換を行う必要がある。
【００５１】
図６の説明に戻り、コントローラ７は、加速度センサ３７の他に、操作部３２（各操作ボタン）、撮像情報演算部３５、および通信部３６を備えている。
【００５２】
撮像情報演算部３５は、撮像手段が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部３５は、例えば最大２００フレーム／秒程度のサンプリング周期を有するので、比較的高速なコントローラ７の動きでも追跡して解析することができる。
【００５３】
具体的には、撮像情報演算部３５は、赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を含んでいる。赤外線フィルタ３８は、コントローラ７の前方から入射する光から赤外線のみを通過させる。ここで、モニタ２の表示画面近傍に配置されるマーカ８ａおよび８ｂは、モニタ２の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ３８を設けることによってマーカ８ａおよび８ｂの画像をより正確に撮像することができる。レンズ３９は、赤外線フィルタ３８を透過した赤外線を集光して撮像素子４０へ入射させる。撮像素子４０は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ３９が集光した赤外線を撮像する。したがって、撮像素子４０は、赤外線フィルタ３８を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子４０によって撮像された画像を撮像画像と呼ぶ。撮像素子４０によって生成された画像データは、画像処理回路４１で処理される。画像処理回路４１は、撮像画像内における撮像対象（マーカ８ａおよび８ｂ）の位置を算出する。以下、図９を用いて撮像対象の位置の算出方法を説明する。
【００５４】
図９は、撮像画像の一例を示す図である。図９に示す撮像画像Ａ１においては、マーカ８ａの画像８ａ’およびマーカ８ｂの画像８ｂ’が左右に並んでいる。撮像画像が入力されると、まず、画像処理回路４１は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。ここで、所定条件とは、撮像対象の画像（対象画像）を特定するための条件であり、所定条件の具体的な内容は、輝度が所定値以上の領域（高輝度領域）であり、かつ、領域の大きさが所定範囲内の大きさであることである。なお、所定条件は撮像対象を特定するための条件であればよく、他の実施形態においては、画像の色に関する条件を含んでいてもよい。
【００５５】
対象画像の位置を算出する際、まず、画像処理回路４１は、撮像画像の領域から上記高輝度領域を対象画像の候補として特定する。撮像画像の画像データにおいて対象画像は高輝度領域として現れるからである。次に、画像処理回路４１は、特定された高輝度領域の大きさに基づいて、その高輝度領域が対象画像であるか否かを判定する判定処理を行う。撮像画像には、対象画像である２つのマーカ８ａおよび８ｂの画像８ａ’および８ｂ’の他、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれている場合がある。この場合、マーカ８ａおよび８ｂの画像８ａ’および８ｂ’以外の画像も高輝度領域として現れてしまう。上記の判定処理は、対象画像であるマーカ８ａおよび８ｂの画像８ａ’および８ｂ’とそれ以外の画像とを区別し、対象画像を正確に特定するための処理である。具体的には、当該判定処理においては、特定された高輝度領域が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度領域が所定範囲内の大きさである場合、当該高輝度領域は対象画像を表すと判定され、高輝度領域が所定範囲内の大きさでない場合、当該高輝度領域は対象画像以外の画像を表すと判定される。
【００５６】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度領域について、画像処理回路４１は当該高輝度領域の位置を算出する。具体的には、当該高輝度領域の重心位置を算出する。なお、重心位置は撮像素子４０の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子４０によって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、重心位置の座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。なお、撮像画像における位置は、図９に示すように、撮像画像の左上を原点とし、下向きをｙ軸正方向とし、右向きをｘ軸正方向とする座標系（ｘｙ座標系）で表現されるものとする。
【００５７】
以上のようにして、画像処理回路４１は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。なお、以下では、画像処理回路４１によって算出される座標をマーカ座標と呼ぶことがある。マーカ座標は、撮像画像に対応する平面上の位置を表すための座標系において撮像対象の位置を示す座標である。画像処理回路４１は、マーカ座標を通信部３６のマイコン４２へ出力する。マーカ座標のデータは、マイコン４２によって操作データとしてゲーム装置３に送信される。マーカ座標はコントローラ７自体の向きや位置に対応して変化するので、ゲーム装置３は当該座標値を用いてコントローラ７の向きや位置を算出することができる。なお、本実施形態では、撮像画像からマーカ座標を算出する処理までをコントローラ７の画像処理回路４１および／またはマイコン４２で行ったが、例えば撮像画像をゲーム装置３に送り、以降の処理と同等の処理をゲーム装置３のＣＰＵ１０等で行わせることもできる。
【００５８】
操作部３２は、上述した十字キー３２ａ等の各操作ボタン３２ａ〜３２ｉに相当し、各操作ボタン３２ａ〜３２ｉに対する入力状態（各操作ボタン３２ａ〜３２ｉが押下されたか否か）を示すデータを通信部３６のマイコン４２へ出力する。
【００５９】
通信部３６は、マイコン４２、メモリ４３、無線モジュール４４、およびアンテナ４５を含んでいる。マイコン４２は、処理の際にメモリ４３を記憶領域として用いながら、マイコン４２が取得したデータを無線送信する無線モジュール４４を制御する。
【００６０】
操作部３２、加速度センサ３７、および撮像情報演算部３５からマイコン４２へ出力されたデータは、一時的にメモリ４３に格納される。ここで、通信部３６から受信ユニット６への無線送信は所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として（１フレーム時間として）行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。マイコン４２は、受信ユニット６への送信タイミングが到来すると、メモリ４３に格納されているデータを操作データとして無線モジュール４４へ出力する。無線モジュール４４は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ４５から放射する。つまり、操作データは、無線モジュール４４で微弱電波信号に変調されてコントローラ７から送信される。微弱電波信号はゲーム装置３側の受信ユニット６で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置３は操作データを取得することができる。そして、ゲーム装置３のＣＰＵ１０は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。
【００６１】
上記コントローラ７を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ７の傾きを変化させたり、コントローラ７自身の位置を動かしたり、コントローラ７を回転させたりするというゲーム操作を行うことができる。以下、上記コントローラ７を用いたゲーム操作について説明する。
【００６２】
図１０は、コントローラ７を用いてゲーム操作するときの状態を概説する図解図である。図１０に示すように、ゲームシステム１でコントローラ７を用いてゲームをプレイする際、プレイヤは、一方の手でコントローラ７を把持する。ここで、マーカ８ａおよび８ｂは、モニタ２の画面の横方向と平行に、画面の上側に配置されている。なお、他の実施形態においては、マーカ８ａおよび８ｂの配置位置ならびに２つのマーカ８ａおよび８ｂを配置する向きは任意であり、例えば、マーカ８ａおよび８ｂが画面の下側に配置されてもよいし、２つのマーカ８ａおよび８ｂが画面の縦方向に沿って配置されてもよい。プレイヤは、コントローラ７の前面（撮像情報演算部３５が撮像する光の入射口側）がマーカ８ａおよび８ｂの方向を向く状態でコントローラ７を把持する。この状態で、プレイヤは、コントローラ７の傾きを変化させたり、コントローラ７が指し示す画面上の位置（指示位置）を変更したり、コントローラ７と各マーカ８ａおよび８ｂとの距離を変更したりすることによってゲーム操作を行う。
【００６３】
（第１実施例）
以下、上述したゲームシステム１を用いて行われるゲームの具体例について説明する。まず、第１実施例として、加速度センサ３７の出力（加速度ベクトル）を用いてゲーム操作が行われるゲームについて説明する。なお、第１実施例では、撮像情報演算部３５から出力されるデータはゲーム操作に用いられないので、コントローラ７は撮像情報演算部３５を備えていない構成であってもよい。このとき、モニタ２の画面周辺に設置されるマーカ８ａおよび８ｂは不要である。また、第１実施例では、コントローラ７のＺ’軸周りの回転に関するコントローラ７の傾きを算出するので、加速度センサ３７は、図７に示す３軸方向の加速度のうち、Ｘ’軸方向およびＹ’軸方向の２軸方向の加速度を少なくとも検知することができればよい。
【００６４】
図１１は、第１実施例におけるゲーム画像の例を示す図である。第１実施例におけるゲームは、仮想の３次元ゲーム空間（２次元でもよい）に配置されるキャラクタ５１を回転させて（図１１に示す矢印参照）遊ぶゲームである。第１実施例では、ゲーム装置３は、コントローラ７のＺ’軸周りの回転に基づいてキャラクタ５１を３次元ゲーム空間の所定の軸周りに回転させる。すなわち、モニタ２の画面に表示されるキャラクタ５１の傾きをコントローラ７のＸ’軸方向およびＹ’軸方向の傾きに基づいて決定する。本明細書では、通常のゲーム処理（第１実施例では、コントローラ７を傾ける操作に基づいてキャラクタ５１を回転させる処理）が行われているゲーム状態を、「非ポーズ状態」と呼ぶ。なお、以下に示す第１実施例の説明においては、「コントローラ７のＸ’軸方向およびＹ’軸方向の傾き」を単に「コントローラ７の傾き」と記載することがある。
【００６５】
非ポーズ状態において、ポーズボタン（一時停止を指示するためのボタン。例えばスタートスイッチ３２ｇ）をプレイヤが押下する操作（ポーズ操作）が行われると、ゲーム装置３はゲーム処理を一時停止し、ゲーム状態を非ポーズ状態からポーズ状態へ移行させる。ポーズ状態とは、ゲーム処理が一時停止されている状態であって、かつ、一時停止を解除するための操作の受け付けが開始されていない状態である。図１２は、ポーズ状態におけるゲーム画像の例を示す図である。ポーズ状態においては、ゲーム処理が一時停止されてゲーム処理は実行されないので、キャラクタ５１は回転しない。ポーズ状態においては、ポーズ画像５２がモニタ２の画面に表示される。ポーズ画像５２は、ゲーム処理が一時停止中であることをプレイヤに通知するための画像である。
【００６６】
ポーズ状態において、所定のボタン（例えばセレクトスイッチ３２ｅ）をプレイヤが押下すると、ゲーム装置３は、ゲーム状態をポーズ状態から解除受付状態へ移行させる。解除受付状態は、ゲーム処理が一時停止されている状態であって、かつ、一時停止を解除するための操作の受け付けが開始されている状態である。つまり、上記所定のボタンは、ゲーム状態をポーズ状態から解除受付状態へ移行させる指示を行うためのボタンである。以下では、上記所定のボタンを解除受付ボタンと呼ぶ。プレイヤは、ポーズ状態からゲームを再開したい場合、まず解除受付ボタンを押下して、一時停止の解除を受け付け可能な状態にする。図１３は、解除受付状態におけるゲーム画像の例を示す図である。解除受付状態において、ゲーム装置３は、コントローラ７を模した２つのモデル５３および５４をモニタ２の画面に表示させる。第１モデル５３は、現在のコントローラ７の状態を表す。すなわち、解除受付状態においてプレイヤがコントローラ７の傾きを変化させると、ゲーム装置３は当該傾きに合わせて第１モデル５３の傾きを変化させる。一方、第２モデル５４は、ゲーム処理が一時停止された時点のコントローラ７の状態を表す。
【００６７】
解除受付状態においてゲーム装置３は、現在のコントローラ７の傾きがポーズ操作時（ゲーム処理が一時停止された時点）の傾きに一致するか否かを判定する。なお、第１実施例では、ゲーム装置３は、現在の傾きとポーズ操作時の傾きとが完全に一致しなくても、２つの傾きが所定の基準よりも近いと判断される場合には当該２つの傾きが一致したと判定する。判定の結果、一致すると判定される場合、ゲーム装置３は一時停止を解除する。したがって、ゲームを再開したいプレイヤは、コントローラ７の傾きがポーズ操作時の傾きに一致するように、コントローラ７を操作する。上述のように、解除受付状態においては各モデル５３および５４が表示されているので、プレイヤは、各モデル５３および５４を見ながら、第１モデル５３の傾きが第２モデル５４の傾きに一致するようにコントローラ７を操作すればよい。
【００６８】
図１４は、一時停止が解除される時のゲーム画像の例を示す図である。図１４に示すように、一時停止が解除される時点では、第１モデル５３の傾きと第２モデル５４の傾きとはほぼ一致している。また、一時停止が解除されると、ポーズ画像５２ならびに各モデル５３および５４は消去される（画面に表示されなくなる）。なお、図１４では、画面から削除される様子を点線で示している。以上のように一時停止が解除されることによって、ゲーム状態は解除受付状態から非ポーズ状態へ移行し、ゲーム処理が再開される。すなわち、ゲーム装置３は、コントローラ７を傾ける操作に基づいてキャラクタ５１を回転させるゲーム処理を再開する。
【００６９】
以上のように、第１実施例によれば、ポーズ操作によってゲーム処理が一時停止された場合、コントローラ７の状態がポーズ操作時の状態に近くなったことを条件としてゲーム処理が再開される。これによれば、ゲーム処理が再開される時点におけるコントローラ７の状態は、ポーズ操作時の状態とほぼ同じ状態となる。したがって、一時停止を解除した時点における操作とポーズ時の操作とが全く異なることを防止することができるので、一時停止の前後において操作が変わってしまうことを防止することができる。例えば、図１１〜図１４に示す例で言えば、一時停止の直前には下方向を向いていたキャラクタ５１が、一時停止の解除時に急に（プレイヤが予期していない方向である）上方向を向くことを防止することができる。シビアな操作が要求されるゲーム（図２７参照）では、一時停止の前後でコントローラ７の状態をほぼ同じに保つことは特に有効である。
【００７０】
また、第１実施例によれば、ポーズ状態において一時停止を直接解除することは禁止されており、解除受付ボタンを押下することによってゲーム状態を解除受付状態へ移行するようにし、解除受付状態においてのみ一時停止の解除を可能としている。これによれば、プレイヤが意図しないにもかかわらずゲームが再開されてしまうことを防止することができる。具体的には、プレイヤはゲームを再開する意図がないにもかかわらず、コントローラ７の傾きがポーズ操作時の傾きと偶然一致してしまった結果、ゲームが再開されてしまうことを防止することができる。
【００７１】
次に、第１実施例においてゲーム装置３で実行されるプログラム処理について説明する。まず、ゲーム処理において用いられる主なデータについて図１５を用いて説明する。図１５は、ゲーム装置３のメインメモリ１３に記憶される主なデータを示す図である。図１５に示すように、メインメモリ１３には、ゲームプログラム６１、操作データ６２、およびポーズ処理用データ６３等が記憶される。なお、メインメモリ１３には、図１５に示すデータの他、ゲームに登場するキャラクタ５１の画像データや、キャラクタ５１の各種パラメータを示すデータ等、ゲーム処理に必要なデータが記憶される。
【００７２】
ゲームプログラム６１は、ゲーム装置３に電源が投入された後の適宜のタイミングで光ディスク４からその一部または全部が読み込まれてメインメモリ１３に記憶される。ゲームプログラム６１には、コントローラ７の傾きに応じてキャラクタ５１を回転させるゲーム処理等の実行に必要なプログラムが含まれている。
【００７３】
操作データ６２は、コントローラ７からゲーム装置３へ送信されてきて、メインメモリ１３に記憶される。操作データ６２には、加速度データ６２１および操作ボタンデータ６２２が含まれる。加速度データ６２１は、加速度センサ３７によって検出された加速度を示すデータである。ここでは、加速度データ６２１は、図７に示すＸ’Ｙ’Ｚ’の３軸の方向に関する加速度ベクトルを示すデータである。また、操作ボタンデータ６２２は、各操作ボタン３２ａ〜３２ｉに対する入力状態（各操作ボタン３２ａ〜３２ｉが押下されたか否か）を示すデータである。
【００７４】
ポーズ処理用データ６３は、後述するゲーム処理において、ゲーム処理を一時停止したり一時停止を解除したりする際に用いられるデータである。ポーズ処理用データ６３には、ゲーム状態データ６３１、キャラクタ方向データ６３２、ポーズ時状態データ６３３、しきい値データ６３４、第１モデルデータ６３５、および第２モデルデータ６３６が含まれる。
【００７５】
ゲーム状態データ６３１は、現在のゲーム状態を示すデータである。上述したように、本実施例では、ゲーム状態には「ポーズ状態」、「非ポーズ状態」、および「解除受付状態」という３つの状態がある。ゲーム状態データ６３１は、「ポーズ状態」、「非ポーズ状態」、および「解除受付状態」のいずれかを示す。
【００７６】
キャラクタ方向データ６３２は、プレイヤによって操作されるキャラクタ５１の（ゲーム空間における）方向を示す。キャラクタ方向データ６３２は、具体的には、３次元ゲーム空間内の方向を示す３次元のベクトルのデータである。
【００７７】
ポーズ時状態データ６３３は、ゲーム処理が一時停止させられるタイミングにおけるコントローラ７の状態を示す。第１実施例において、コントローラ７の状態とは、コントローラ７の傾きに関する状態を指す。したがって、ポーズ時状態データ６３３は、ゲーム処理が一時停止させられた時点の加速度ベクトルを示す。
【００７８】
しきい値データ６３４は、上記解除受付状態において行われる判定処理、すなわち、現在のコントローラ７の傾きがポーズ操作時の傾きに一致するか否かの判定処理において用いられるしきい値を示す。このしきい値は、ゲームプログラム６１において予め定められた固定値であってもよいし、プレイヤの指示やその他の条件に基づいて可変に定められる値であってもよい。
【００７９】
第１モデルデータ６３５は、上記第１モデルの方向を示すデータである。また、第２モデルデータ６３６は、上記第１モデルの方向を示すデータである。各モデルデータ６３５および６３６は、キャラクタ方向データ６３２と同様、３次元ゲーム空間内の方向を示す３次元のベクトルのデータである。
【００８０】
次に、ゲーム装置３において行われる処理の詳細を、図１６〜図１９を用いて説明する。図１６は、ゲーム装置３において実行される処理の流れを示すメインフローチャートである。ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ１０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ１３等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲームプログラムがメインメモリ１３に読み込まれ、ＣＰＵ１０によって当該ゲームプログラムの実行が開始される。図１６に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、図１６に示すフローチャートにおいては、ゲーム装置３において実行される処理のうち、ゲームを一時停止する処理および一時停止を解除する処理について詳細に示し、本願発明と直接関連しない他の処理については詳細な説明を省略する。
【００８１】
まず、ステップＳ１において、以降の処理において用いられるデータの初期化処理が実行される。具体的には、非ポーズ状態を示すデータがゲーム状態データ６３１としてメインメモリ１３に記憶される。また、ゲームプログラム６１において予め定められた値を示すデータがしきい値データ６３４としてメインメモリ１３に記憶される。
【００８２】
続くステップＳ２において、ゲーム空間が構築されてモニタ２に表示される。ＣＰＵ１０は、例えば３次元のゲーム空間を構築し、さらに、ゲーム空間に登場するキャラクタ５１を所定の初期位置に配置する。以上のように構築されたゲーム空間を表すゲーム画像が生成され、生成されたゲーム画像がモニタ２に表示される。以降、ステップＳ３〜Ｓ９の処理ループが１フレーム毎に繰り返されることによって、ゲームが進行していく。
【００８３】
ステップＳ３において、ＣＰＵ１０は、コントローラ７から操作データを取得する。すなわち、コントローラ７は所定時間間隔（例えば、１フレーム時間間隔）で操作データをゲーム装置３へ送信してくるので、ＣＰＵ１０は、送信されてきた操作データをメインメモリ１３に記憶する。この操作データには、少なくとも上記加速度データおよび操作ボタンデータが含まれている。ＣＰＵ１０は、加速度データおよび操作ボタンデータをメインメモリ１３に記憶する。なお、本実施例においてステップＳ２の処理は１フレーム時間毎に実行されるので、ゲーム装置３は、加速度データおよび操作ボタンデータを逐次取得することができる。
【００８４】
続くステップＳ４において、ＣＰＵ１０は、現在のゲーム状態が解除受付状態であるか否かを判定する。ステップＳ４の判定は、メインメモリ１３に記憶されているゲーム状態データ６３１を参照することによって行われる。具体的には、ゲーム状態データ６３１が解除受付状態を示す場合、ステップＳ４の判定結果は肯定となり、ゲーム状態データ６３１が解除受付状態以外の状態を示す場合、ステップＳ４の判定結果は否定となる。ステップＳ４の判定結果が肯定の場合、後述するステップＳ８の処理が実行される。一方、ステップＳ４の判定結果が否定の場合、ステップＳ５の処理が実行される。
【００８５】
ステップＳ５において、ＣＰＵ１０は、現在のゲーム状態がポーズ状態であるか否かを判定する。ステップＳ５の判定は、メインメモリ１３に記憶されているゲーム状態データ６３１を参照することによって行われる。具体的には、ゲーム状態データ６３１がポーズ状態を示す場合、ステップＳ５の判定結果は肯定となり、ゲーム状態データ６３１がポーズ状態以外の状態を示す場合、ステップＳ５の判定結果は否定となる。ステップＳ５の判定結果が肯定の場合、後述するステップＳ７の処理が実行される。一方、ステップＳ５の判定結果が否定の場合、ステップＳ６の処理が実行される。なお、ゲームが開始されてからポーズボタンが押下されていない状態では、ステップＳ４およびＳ５の判定結果は否定となるので、ステップＳ６の処理が実行される。
【００８６】
ステップＳ６においては、非ポーズ状態処理が実行される。非ポーズ状態処理は、通常のゲーム処理（本実施例では、コントローラ７を傾ける操作に基づいてキャラクタ５１を回転させる処理）を実行するための処理である。以下、図１７を参照して非ポーズ状態処理の詳細について説明する。
【００８７】
図１７は、図１６に示す非ポーズ状態処理（ステップＳ６）の詳細を示すフローチャートである。非ポーズ状態処理においては、まずステップＳ１１において、ＣＰＵ１０はポーズボタン（第１実施例では、スタートスイッチ３２ｇ）が押下されたか否かを判定する。ステップＳ１１の判定は、メインメモリ１３に記憶されている操作ボタンデータ６２２を参照することによって行われる。すなわち、操作ボタンデータ６２２が、スタートスイッチ３２ｇが押下されたことを示す場合、ステップＳ１１の判定結果は肯定となり、操作ボタンデータ６２２が、スタートスイッチ３２ｇが押下されていないことを示す場合、ステップＳ１１の判定結果は否定となる。ステップＳ１１の判定結果が肯定の場合、後述するステップＳ１４の処理が実行される。一方、ステップＳ１１の判定結果が否定の場合、ステップＳ１２の処理が実行される。
【００８８】
以上のように、非ポーズ状態が継続する場合、ステップＳ１１の判定結果が否定となるのでステップＳ１２およびＳ１３の処理が実行される。一方、非ポーズ状態においてポーズボタンが押下された場合、ステップＳ１１の判定結果が肯定となるのでステップＳ１４〜Ｓ１６の処理が実行される。
【００８９】
ステップＳ１２においては、ゲームを進行させるためのゲーム処理が実行される。第１実施例では、コントローラ７を傾ける操作に基づいてキャラクタ５１を回転させる処理が実行される。具体的には、ＣＰＵ１０は、メインメモリ１３に記憶されている加速度データ６２１により示される加速度ベクトルの方向に基づいて、ゲーム空間におけるキャラクタ５１の方向を決定する。キャラクタ５１の方向の算出方法はどのようなものであってもよい。例えば、加速度ベクトルの方向と一対一に対応するようにキャラクタ５１の方向を決定するようにしてもよい。また例えば、加速度ベクトルの変化量（今回のフレームにおける加速度ベクトルと前回のフレームにおける加速度ベクトルとの差分）に基づいてキャラクタ５１を回転させる角度を決定するようにしてもよい。決定されたキャラクタ５１の方向を示すデータは、キャラクタ方向データ６３２としてメインメモリ１３に記憶される。
【００９０】
続くステップＳ１３においては、ＣＰＵ１０は、ステップＳ１２の処理結果に従ってゲーム画像を生成してモニタ２に表示させる（図１１）。すなわち、ステップＳ１２で決定された方向を向くキャラクタ５１の画像がモニタ２に表示される。ステップＳ１３の処理が終了するとＣＰＵ１０は非ポーズ状態処理を終了する。
【００９１】
一方、ステップＳ１４においては、ゲーム状態がポーズ状態に設定される。具体的には、ＣＰＵ１０は、メインメモリ１３に記憶されているゲーム状態データ６３１の内容を、ポーズ状態を示すデータに書き換える。これによって、次のフレーム処理（ステップＳ３〜Ｓ９の処理）においては、ステップＳ４の判定結果が否定となるとともにステップＳ５の判定結果が肯定となるので、ステップＳ７の処理が実行される。したがって、ステップＳ１２およびＳ１３のゲーム処理が実行されないので、上記ステップＳ１４によってゲーム処理が一時停止されたこととなる。
【００９２】
続くステップＳ１５において、コントローラ７の状態（第１実施例では、コントローラ７の傾きの状態）が記憶される。第１実施例では、ＣＰＵ１０は、現在の加速度ベクトルを示すデータ、すなわち、ステップＳ３で取得された加速度データ６２１をポーズ時状態データ６３３としてメインメモリ１３に記憶する。なお、ステップＳ１５で記憶されるデータは、コントローラ７の傾きに関する状態を示すものであればどのようなものであってもよい。例えば、ステップＳ１５において、ステップＳ１２と同様の方法で、キャラクタ５１の方向を示すデータを算出し、算出されたデータをポーズ時状態データ６３３としてメインメモリ１３に記憶するようにしてもよい。また、例えば、加速度ベクトルからキャラクタ方向データを算出するまでの過程において算出される中間データをポーズ時状態データ６３３としてメインメモリ１３に記憶するようにしてもよい。
【００９３】
続くステップＳ１６において、ＣＰＵ１０は、一時停止中のゲーム画像をモニタ２に表示させる。具体的には、ゲーム処理が一時停止された時点のゲーム画像にポーズ画像５２を重ねた画像をモニタ２に表示させる（図１２参照）。なお、ゲーム処理が一時停止された時点のゲーム画像とは、前回のフレーム処理のステップＳ１３で表示されるゲーム画像のことである。ステップＳ１６の処理が終了するとＣＰＵ１０は非ポーズ状態処理を終了する。
【００９４】
以上に説明したように、非ポーズ状態（図１１）においてプレイヤがポーズボタンを押下すると、ゲーム装置３はゲーム状態をポーズ状態へ移行させ（ステップＳ１４）、一時停止中のゲーム画像をモニタ２に表示させる（ステップＳ１６、図１２参照）。このとき、ゲーム装置３は、ゲーム処理が一時停止させられるタイミングにおけるコントローラの傾きに関する状態を記憶する（ステップＳ１５）。
【００９５】
次に、ポーズ状態における処理について説明する。図１８は、図１６に示すポーズ状態処理（ステップＳ７）の詳細を示すフローチャートである。ポーズ状態処理においては、まずステップＳ２１において、ＣＰＵ１０は解除受付ボタン（本実施例では、セレクトスイッチ３２ｅ）が押下されたか否かを判定する。ステップＳ２１の判定は、メインメモリ１３に記憶されている操作ボタンデータ６２２を参照することによって行われる。すなわち、操作ボタンデータ６２２が、セレクトスイッチ３２ｅが押下されたことを示す場合、ステップＳ２１の判定結果は肯定となり、操作ボタンデータ６２２が、セレクトスイッチ３２ｅが押下されていないことを示す場合、ステップＳ２１の判定結果は否定となる。ステップＳ２１の判定結果が肯定の場合、後述するステップＳ２２の処理が実行される。一方、ステップＳ２１の判定結果が否定の場合、ステップＳ２２の処理がスキップされてステップＳ２３の処理が実行される。
【００９６】
なお、第１実施例においては、解除受付ボタンは、ポーズボタン（スタートスイッチ３２ｇ）とは異なるセレクトスイッチ３２ｅであるとしたが、他の実施例においては、解除受付ボタンとポーズボタンとを同じボタンとしてもよい。
【００９７】
ステップＳ２２においては、ゲーム状態が解除受付状態に設定される。具体的には、ＣＰＵ１０は、メインメモリ１３に記憶されているゲーム状態データ６３１の内容を、解除受付状態を示すデータに書き換える。これによって、次のフレーム処理（ステップＳ３〜Ｓ９の処理）においてはステップＳ４の判定結果が肯定となるのでステップＳ８の処理が実行されることとなる。
【００９８】
ステップＳ２３においては、ＣＰＵ１０は、一時停止中のゲーム画像をモニタ２に表示させる。具体的には、ゲーム処理が一時停止された時点のゲーム画像にポーズ画像５２を重ねた画像をモニタ２に表示させる（図１２参照）。ステップＳ２３の処理が終了するとＣＰＵ１０はポーズ状態処理を終了する。
【００９９】
次に、解除受付状態における処理について説明する。図１９は、図１６に示す解除受付状態処理（ステップＳ８）の詳細を示すフローチャートである。上述したように、ポーズ状態において解除受付ボタンが押下された場合（ステップＳ２１でＹｅｓ）、ゲーム状態は解除受付状態へ移行し（ステップＳ２２）、次のフレーム処理においては解除受付状態処理が実行される。
【０１００】
解除受付状態処理においては、まずステップＳ３１において、ＣＰＵ１０はポーズボタン（第１実施例では、スタートスイッチ３２ｇ）が押下されたか否かを判定する。ステップＳ３１の判定は、上述のステップＳ１１の処理と同じ処理である。ステップＳ３１の判定結果が肯定の場合、後述するステップＳ３７の処理が実行される。一方、ステップＳ３１の判定結果が否定の場合、ステップＳ３２の処理が実行される。
【０１０１】
ステップＳ３２においては、ＣＰＵ１０は、コントローラ７の現在の状態（傾き）とポーズ操作時のコントローラ７の状態（傾き）とを比較し、両者が一致するか否かを判定する。コントローラ７の現在の傾きは、メインメモリ１３に記憶されている加速度データ６２１によって示される。また、ポーズ操作時のコントローラ７の傾きは、メインメモリ１３に記憶されているポーズ時状態データ６３３によって示される。したがって、ＣＰＵ１０は、加速度データ６２１により示される傾きとポーズ時状態データ６３３により示される傾きとを比較する。上述したように、第１実施例では、２つの傾きが完全に一致しなくても、２つの傾きがある程度近いと判断される場合には当該２つの傾きが一致したと判断する。
【０１０２】
具体的には、ＣＰＵ１０は、加速度データ６２１により示されるベクトルと、ポーズ時状態データ６３３により示されるベクトルとの差分の大きさ（２つのベクトルの終点間の距離）を算出する。そして、この大きさが、予め定められたしきい値よりも小さいか否かを判定する。当該しきい値は、メインメモリ１３に記憶されているしきい値データ６３４により示される値である。上記差分の大きさがしきい値よりも小さい場合、コントローラ７の現在の傾きとポーズ操作時の傾きとが一致すると判定され、上記差分の大きさがしきい値以上である場合、コントローラ７の現在の傾きとポーズ操作時の傾きとが一致しないと判定される。
【０１０３】
なお、コントローラ７の現在の傾きとポーズ操作時の傾きとが一致するか否かの判定を行う方法は、上記差分の大きさを算出する方法に限らずどのような方法であってもよい。例えば、２つのベクトルのなす角度の大きさが、予め定められた所定値よりも小さい場合、コントローラ７の現在の傾きとポーズ操作時の傾きとが一致すると判定し、当該角度の大きさが所定値以上の場合、コントローラ７の現在の傾きとポーズ操作時の傾きとが一致しないと判定するようにしてもよい。
【０１０４】
ステップＳ３２の判定において、コントローラ７の現在の傾きとポーズ操作時の傾きとが一致すると判定される場合、ステップＳ３３の処理が実行される。一方、コントローラ７の現在の傾きとポーズ操作時の傾きとが一致すると判定される場合、ステップＳ３３およびＳ３４の処理がスキップされてステップＳ３５の処理が実行される。
【０１０５】
ステップＳ３３においては、ＣＰＵ１０は、現在の加速度ベクトルが信頼できるか否かを判定する。「加速度ベクトルが信頼できる」とは、加速度ベクトルがコントローラ７の傾きを正確に表していることを意味し、加速度ベクトルが重力加速度のみを表していることを意味する。ここで、本実施例で用いる加速度センサ３７は、コントローラ７が静止している時には重力加速度のみを表すので、コントローラ７の傾きは加速度ベクトルによって正確に表されることになる。しかし、コントローラ７がプレイヤによって動かされている時には、加速度センサ３７は、重力加速度の他にコントローラ７に加わる慣性力に起因する加速度の成分を含めた加速度を検出することになる。このような加速度が検出される場合、加速度ベクトルは、コントローラ７の傾きを正確に表すものではなくなる。
【０１０６】
そこで、本実施例では、ＣＰＵ１０は、加速度ベクトルが信頼できるか否かを、加速度ベクトルの大きさに基づいて判定する。具体的には、加速度ベクトルの大きさが重力加速度の大きさ（すなわち、１）に近い場合、加速度ベクトルが信頼できるものであると判定し、加速度ベクトルの大きさが重力加速度の大きさから離れている場合、加速度ベクトルは信頼できないと判定する。なお、加速度ベクトルの大きさが重力加速度の大きさに近いか、それとも離れているかの判定は、加速度ベクトルの大きさと重力加速度の大きさとの差分の絶対値が、予め定められた所定値よりも小さいか、それとも大きいかによって行えばよい。
【０１０７】
コントローラ７がプレイヤによって動かされている時、加速度ベクトルには、重力加速度の成分と、コントローラ７に加わる慣性力に起因する加速度の成分とが含まれるので、加速度ベクトルの大きさと重力加速度の大きさとは大きく異なることがある。したがって、加速度ベクトルが信頼できるか否かを加速度ベクトルの大きさに基づいて判定することによって、ステップＳ３３の判定を正確に行うことができる。
【０１０８】
なお、他の実施例においては、加速度ベクトルが信頼できるか否かの判定を、加速度ベクトル（または加速度ベクトルの向き）の変化量に基づいて行うようにしてもよい。具体的には、前回のフレーム処理において取得された加速度ベクトルと、今回のフレーム処理において取得された加速度ベクトルとの変化量を算出し、変化量が所定量よりも小さい場合には加速度ベクトルが信頼できると判定するようにしてもよい。
【０１０９】
ステップＳ３３の判定において、加速度ベクトルは信頼できると判定される場合、ステップＳ３４の処理が実行される。一方、加速度ベクトルは信頼できないと判定される場合、ステップＳ３４の処理がスキップされてステップＳ３５の処理が実行される。なお、他の実施例においては、一定時間（例えば、数フレーム処理の間連続して）加速度ベクトルが信頼できると判定された場合にのみ、ステップＳ３４の処理を実行するようにしてもよい。
【０１１０】
ステップＳ３４においては、ゲーム状態が非ポーズ状態に設定される。具体的には、ＣＰＵ１０は、メインメモリ１３に記憶されているゲーム状態データ６３１の内容を、非ポーズ状態を示すデータに書き換える。これによって、次のフレーム処理（ステップＳ３〜Ｓ９の処理）においては、ステップＳ４の判定結果が否定となるとともにステップＳ５の判定結果が否定となるので、ステップＳ６の処理が実行される。したがって、次のフレーム処理において（ポーズボタンが再び押下されなければ）ステップＳ１２およびＳ１３のゲーム処理が実行されるので、上記ステップＳ３４によって一時停止が解除されてゲーム処理が再開されることとなる。
【０１１１】
ステップＳ３５においては、ゲーム空間における各モデル５３および５４の方向が算出される。各モデル５３および５４の方向は、キャラクタ５１の方向を算出する場合と同様の方法で、加速度ベクトルに基づいて算出される。なお、現在のコントローラ７の傾きを表す第１モデル５３の方向は、現在の加速度ベクトル、すなわち、メインメモリ１３に記憶されている加速度データ６２１により示される加速度ベクトルに基づいて算出される。一方、ポーズ操作時のコントローラ７の傾きを表す第２モデル５４の方向は、ポーズ操作時の加速度ベクトル、すなわち、メインメモリ１３に記憶されているポーズ時状態データ６３３により示される加速度ベクトルに基づいて算出される。
【０１１２】
続くステップＳ３６において、ＣＰＵ１０は、一時停止中のゲーム画像に加えて各モデル５３および５４をモニタ２に表示させる（図１３参照）。なお、一時停止中のゲーム画像とは、上記ステップＳ１６において表示されるゲーム画像である。このように、本実施例においては、解除受付状態においては各モデル５３および５４が表示されるので、プレイヤは、これらのモデル５３および５４を参照しながら、第１モデル５３の方向が第２モデル５４の方向に一致するようにコントローラ７の傾きを操作すればよく、一時停止を解除する操作が容易になる。ステップＳ３６の処理が終了するとＣＰＵ１０は解除受付状態処理を終了する。
【０１１３】
一方、ステップＳ３７においては、ゲーム状態がポーズ状態に設定される。ステップＳ３７の具体的な処理内容は、図１７に示すステップＳ１４と同じである。ステップＳ３７によって、次のフレーム処理（ステップＳ３〜Ｓ９の処理）においては、ステップＳ４の判定結果が否定となるとともにステップＳ５の判定結果が肯定となるので、ステップＳ７の処理が実行される。したがって、ゲーム状態はポーズ状態に移行したこととなる。以上のように、本実施例では、解除受付状態においてポーズボタンが押下された場合には、ゲーム状態は再度ポーズ状態に戻ることになる。
【０１１４】
続くステップＳ３８においては、ＣＰＵ１０は、一時停止中のゲーム画像をモニタ２に表示させる（図１２参照）。ステップＳ３８の具体的な処理内容は、図１８に示すステップＳ２３と同じである。ステップＳ３８の処理が終了するとＣＰＵ１０は解除受付状態処理を終了する。
【０１１５】
以上に説明したように、解除受付状態においては、コントローラ７の現在の傾きとポーズ操作時のコントローラ７の傾きとの比較が行われ、両者が一致するか否かが判定される（ステップＳ３２）。さらに、両者が一致する場合には、ゲーム状態が非ポーズ状態へ移行され（ステップＳ３４）、ゲームが再開する。
【０１１６】
図１６の説明に戻り、ステップＳ６、Ｓ７、またはＳ８の処理の次に、ステップＳ９の処理が実行される。ステップＳ９において、ＣＰＵ１０はゲームを終了するか否かを判定する。ステップＳ９の判定は、例えば、プレイヤがゲームをクリアしたか否かや、ゲームに制限時間が設けられている場合には当該制限時間が経過したか否かによって行われる。ステップＳ９の判定結果が否定である場合、ステップＳ３の処理が再度実行され、以降、ゲームを終了すると判定されるまでステップＳ３〜Ｓ９の処理ループが実行される。一方、ステップＳ９の判定結果が肯定である場合、ＣＰＵ１０は図１６に示す処理を終了する。以上で、ゲーム装置３において実行される処理の説明を終了する。
【０１１７】
以上のように、第１実施例によれば、ゲーム処理が一時停止（ポーズ）される場合、ポーズ操作時におけるコントローラ７の傾き（加速度ベクトル）を記憶しておき、現在のコントローラ７の傾きとポーズ操作時におけるコントローラ７の傾きとを比較し、２つの傾きが一致することに応じて一時停止を解除する。これによって、一時停止が解除されてゲームが再開される際に、コントローラ７の傾きを、一時停止が行われる前と同じ傾きにすることができる。したがって、第１実施例によれば、一時停止の前後においてゲーム操作が変わってしまうことに起因するプレイヤのミスを防止することができ、操作性を向上することができる。
【０１１８】
なお、他の実施例においては、ポーズボタンが押下されたことに加えて、ポーズ操作時のコントローラ７の状態がプレイヤにとって再現しやすい状態であることを条件としてゲーム処理を一時停止するようにしてもよい。ポーズ操作時のコントローラ７の状態をプレイヤが再現することが困難な場合、一時停止を解除することがプレイヤにとって困難になるからである。なお、ポーズ操作時のコントローラ７の状態がプレイヤにとって再現しやすい場合とは、例えば、コントローラ７が激しく動かされていない場合である。コントローラ７が激しく動かされていないか否かの判定方法としては、加速度センサの出力である加速度ベクトルの大きさが重力加速度の大きさに近いか否かによって行う方法が考えられる。
【０１１９】
（第２実施例）
次に、第２実施例として、撮像情報演算部３５の出力（マーカ座標）を用いてゲーム操作が行われるゲームについて説明する。なお、第２実施例では、加速度センサ３７から出力される加速度ベクトルのデータはゲーム操作に用いられないので、コントローラ７は加速度センサ３７を備えていない構成であってもよい。
【０１２０】
図２０は、第２実施例におけるゲーム画像の例を示す図である。第２実施例におけるゲームは、画面上に表示されるカーソル５５を操作して、仮想の２次元ゲーム空間（３次元でもよい）に配置されるキャラクタ５１を変形させて遊ぶゲームである。第２実施例では、ゲーム装置３は、前述したコントローラ７の指示位置（コントローラ７によって指し示される画面上の位置）に基づいてカーソル５５を画面上で移動させる。すなわち、画面上におけるカーソル５５の位置を当該指示位置に基づいて決定する。なお、以下では、後述するカーソル５６と区別する目的で、カーソル５５を第１カーソル５５と呼ぶ。
【０１２１】
第２実施例では、非ポーズ状態においては、通常のゲーム処理として、コントローラ７の指示位置を変更する操作に基づいて第１カーソル５５を移動させるとともに、第１カーソル５５の位置に応じてキャラクタ５１を変形させる処理が実行される。すなわち、非ポーズ状態において、ゲーム装置３は、コントローラ７から送信されてくる操作データに含まれるマーカ座標データに基づいてコントローラ７の指示位置を算出する。そして、算出した指示位置に第１カーソル５５を移動させるとともに、第１カーソル５５の位置に応じてキャラクタ５１を変形させる。図２０に示す例では、キャラクタ５１の鼻が第１カーソル５５の位置に応じて変形する。具体的には、第１カーソル５５は画面の左端付近に位置しているので、キャラクタ５１の鼻が左に伸びるように変形している。なお、他の実施例では、キャラクタ５１の任意の位置をプレイヤが指定する（例えば、所望の位置まで第１カーソル５５を移動させてコントローラ７のＢボタン３２ｄを押下する）ことによって、任意の位置を変形させることができるようにしてもよい。
【０１２２】
非ポーズ状態において、ポーズボタン（例えばスタートスイッチ３２ｇ）をプレイヤが押下するポーズ操作が行われると、ゲーム装置３はゲーム処理を一時停止し、ゲーム状態を非ポーズ状態からポーズ状態へ移行させる。図２１は、第２実施例におけるポーズ状態のゲーム画像の例を示す図である。ポーズ状態においては、ゲーム処理が一時停止されてゲーム処理は実行されないので、第１カーソル５５は移動されず、ポーズ操作時の位置に固定される。第１実施例と同様、ポーズ状態においてはポーズ画像５２がモニタ２の画面に表示される。
【０１２３】
ポーズ状態において、解除受付ボタン（例えばセレクトスイッチ３２ｅ）をプレイヤが押下すると、ゲーム装置３は、ゲーム状態をポーズ状態から解除受付状態へ移行させる。つまり、プレイヤは、ポーズ状態からゲームを再開したい場合、第１実施例と同様、まず解除受付ボタンを押下する。図２２は、第２実施例における解除受付状態のゲーム画像の例を示す図である。解除受付状態において、ゲーム装置３は、第１カーソル５５とは異なる第２カーソル５６をモニタ２の画面に表示させる。第２カーソル５６は、現在のコントローラ７の指示位置を表す。
【０１２４】
解除受付状態においてゲーム装置３は、現在のコントローラ７の指示位置がポーズ操作時の指示位置に一致するか否かを判定する。なお、第２実施例では、ゲーム装置３は、現在の指示位置とポーズ時の指示位置とが完全に一致しなくても、２つの位置がある程度近いと判断される場合には当該２つの指示位置が一致したと判定する。判定の結果、一致すると判定される場合、ゲーム装置３は一時停止を解除する。したがって、ゲームを再開したいプレイヤは、コントローラ７の指示位置がポーズ操作時の指示位置に一致するようにコントローラ７を操作する。上述のように、解除受付状態においては２つのカーソル５５および５６が表示されているので、プレイヤは、各カーソル５５および５６を見ながら、第２カーソル５６の位置が第１カーソル５５の位置に一致するようにコントローラ７を操作すればよい。
【０１２５】
図２３は、第２実施例において一時停止が解除される時のゲーム画像の例を示す図である。図２３に示すように、一時停止が解除される時点では、第１カーソルの位置と第２カーソル５６の位置とはほぼ一致している。また、一時停止が解除されると、ポーズ画像５２および第２カーソル５６は消去される（画面に表示されなくなる）。なお、図２３では、画面から削除される様子を点線で示している。以上のように一時停止が解除されることによって、ゲーム状態は解除受付状態から非ポーズ状態へ移行し、ゲーム処理が再開される。すなわち、ゲーム装置３は、コントローラ７の指示位置を変更する操作に基づいて第１カーソル５５を移動させ、第１カーソル５５の位置に応じてキャラクタ５１を変形させる処理が実行される。
【０１２６】
以上のように、第２実施例によれば、第１実施例と同様、ポーズ操作によってゲーム処理が一時停止された場合、コントローラ７の状態がポーズ操作時の状態に近くなったことを条件としてゲーム処理が再開される。したがって、一時停止を解除した時点における操作とポーズ時の操作とが全く異なることを防止することができるので、一時停止の前後において操作が変わってしまうことを防止することができる。
【０１２７】
また、第２実施例では、コントローラ７の指示位置を用いてゲーム処理を行うものである。ここで、コントローラ７の指示位置は、コントローラ７の位置および姿勢に対応して変化するものであり、コントローラ７の位置および姿勢に関する状態を示す情報であると言える。つまり、第２実施例は、コントローラ７の位置および／または姿勢に関する状態を撮像情報演算部３５によって算出し、算出した結果をゲーム処理に用いるものである。本発明は、第２実施例のように、コントローラ７の状態を撮像情報演算部３５によって算出する場合にも適用することができる。
【０１２８】
次に、第２実施例においてゲーム装置３で実行されるプログラム処理について説明する。まず、ゲーム処理において用いられる主なデータについて図２４を用いて説明する。図２４は、第２実施例においてゲーム装置３のメインメモリ１３に記憶される主なデータを示す図である。なお、図２４においては、図１５に示すデータと同様のデータについては図１５と同じ参照符号を付して詳細な説明を省略する。以下、第１実施例との相違点を中心に図２４について説明する。
【０１２９】
図２４に示すように、第１実施例と同様、メインメモリ１３には、ゲームプログラム６１、操作データ６２、およびポーズ処理用データ６３等が記憶される。第２実施例においては、操作データ６２には、マーカ座標データ６２３および操作ボタンデータ６２２が含まれる。
【０１３０】
マーカ座標データ６２３は、撮像情報演算部３５の画像処理回路４１によって算出される座標、すなわち上記マーカ座標を示すデータである。マーカ座標は、撮像画像に対応する平面上の位置を表すための座標系（図９に示すｘｙ座標系）で表現される。
【０１３１】
第２実施例においては、ポーズ処理用データ６３は、ゲーム状態データ６３１、ポーズ時状態データ６３３、しきい値データ６３４、第１カーソル位置データ６３７、および第２カーソル位置データ６３８を含んでいる。
【０１３２】
第１カーソル位置データ６３７は、画面上における第１カーソル５５の位置を示すデータである。第２カーソル位置データ６３８は、画面上における第２カーソル５６の位置を示すデータである。
【０１３３】
また、第１実施例と同様、ポーズ時状態データ６３３は、ゲーム処理が一時停止させられるタイミングにおけるコントローラ７の状態を示す。なお、第２実施例においては、コントローラ７の状態とは、コントローラ７の指示位置に関する状態を指す。したがって、第２実施例においては、ゲーム処理が一時停止させられた時点の第１カーソル位置データ６３７がポーズ時状態データ６３３として記憶される。
【０１３４】
なお、第２実施例において用いられるしきい値データ６３４は、第１実施例において用いられたしきい値データと同じ目的で用いられるデータである。ただし、第２実施例におけるしきい値データ６３４の具体的な値は、第１実施例におけるしきい値データの値とは異なっていてもよい。
【０１３５】
以下、第２実施例においてゲーム装置３において行われるゲーム処理の詳細を、図２５および２６を用いて説明する。第２実施例において実行される処理を示すメインフローチャートは、図１６に示す処理と同様であるので、メインフローチャートに示される処理についての詳細な説明は省略する。なお、第２実施例におけるステップＳ３において取得される操作データはマーカ座標データおよび操作ボタンデータを含むので、ステップＳ３においては、マーカ座標データ６２３および操作ボタンデータ６２２がメインメモリ１３に記憶される。
【０１３６】
まず、第２実施例における非ポーズ状態処理について説明する。図２５は、第２実施例における非ポーズ状態処理の詳細を示すフローチャートである。非ポーズ状態処理においては、まずステップＳ４１において、ＣＰＵ１０はポーズボタン（第２実施例では、スタートスイッチ３２ｇ）が押下されたか否かを判定する。ステップＳ４１の処理は、第１実施例におけるステップＳ１１の処理と同じである。ステップＳ４１の判定結果が肯定の場合、後述するステップＳ４４の処理が実行される。一方、ステップＳ４１の判定結果が否定の場合、ステップＳ４２の処理が実行される。
【０１３７】
ステップＳ４２においては、ゲームを進行させるためのゲーム処理が実行される。第２実施例では、コントローラ７の指示位置に基づいて第１カーソル５５を移動させる処理、および、第１カーソル５５の位置に応じてキャラクタ５１を変形させる処理が実行される。具体的には、ＣＰＵ１０は、メインメモリ１３に記憶されているマーカ座標データ６２３により示されるマーカ座標に基づいて、コントローラ７の指示位置、すなわち、第１カーソル５５の位置を決定する。ここで、コントローラ７の指示位置の算出方法はどのようなものであってもよいが、例えば以下に示す方法が考えられる。
【０１３８】
以下、コントローラ７の指示位置の算出方法の一例を説明する。コントローラ７から取得されるマーカ座標データ６２３は、マーカ８ａおよび８ｂに対応する２つのマーカ座標を示すので、まずＣＰＵ１０は、マーカ座標データから２つのマーカ座標の中点を算出する。この中点の位置は、撮像画像に対応する平面上の位置を表すための上記ｘｙ座標系によって表現される。次に、ＣＰＵ１０は、当該中点の位置を示す座標を、モニタ２の画面上の位置を表すための座標系（ｘ’ｙ’座標系）の座標に変換する。なお、ｘ’ｙ’座標系が、画面の左上を原点とし、下向きをｙ軸正方向とし、右向きをｘ軸正方向とするものとすれば、上記変換は次のように行うことができる。すなわち、中点座標のｘ成分の正負を反転させて所定の割合（例えば、ｘｙ座標系における撮像画像のｘ軸方向の長さを、ｘ’ｙ’座標系における画面のｘ’軸方向の長さに一致させる割合）でスケーリングすることによって、指示位置のｘ’成分を得ることができる。また、中点座標のｙ成分を所定の割合（例えば、ｘｙ座標系における撮像画像のｙ軸方向の長さを、ｘ’ｙ’座標系における画面のｙ’軸方向の長さに一致させる割合）でスケーリングすることによって、指示位置のｙ’成分を得ることができる。なお、ｘ成分からｘ’成分への変換の際に正負を反転させるのは、マーカ座標の中点の移動方向と、コントローラ７の実際の指示位置の移動方向とは、左右方向（ｘ軸方向またはｘ’軸方向）に関して逆になるからである。つまり、コントローラ７の実際の指示位置がｘ’軸方向の負方向（正方向）に移動する場合、マーカ座標の中点がｘ軸方向の正方向（負方向）に移動するからである。以上のようにして算出されたｘ’ｙ’座標値により示される位置がコントローラ７の指示位置となる。また、より正確な指示位置の算出方法の他の一例としては、上記２つのマーカ座標を結ぶベクトルがｙ軸に平行になるように画像中央を中心とした画像の回転を行い、回転後の当該２つのマーカ座標の中点に対して上記変換処理を行う。このような回転による補正処理を行うことによって、コントローラ７が傾いている場合等にも、正確に指示位置を算出することができる。
【０１３９】
第２実施例では、以上のようにしてコントローラ７の指示位置、すなわち、第１カーソル５５の位置が算出される。算出された第１カーソル５５の位置を示すデータは、第１カーソル位置データ６３７としてメインメモリ１３に記憶される。ステップＳ４２においては、さらに、ＣＰＵ１０は、第１カーソル５５の位置に応じてキャラクタ５１を変形する。図２４には図示していないが、変形されたキャラクタの形状を示すデータがメインメモリ１３に記憶される。
【０１４０】
続くステップＳ４３において、ＣＰＵ１０は、ステップＳ４２の処理結果に従ってゲーム画像を生成してモニタ２に表示させる。すなわち、ステップＳ４２で決定された位置に第１カーソル５５を表示するとともに、ステップＳ４２で変形されたキャラクタ５１の画像がモニタ２に表示される（図２０）。ステップＳ４３の処理が終了するとＣＰＵ１０は非ポーズ状態処理を終了する。
【０１４１】
一方、ステップＳ４４においては、ゲーム状態がポーズ状態に設定される。ステップＳ４４の処理は、第１実施例におけるステップＳ１４の処理と同じである。第１実施例と同様、上記ステップＳ１４によってゲーム処理が一時停止されたこととなる。
【０１４２】
続くステップＳ４５において、コントローラ７の状態が算出される。具体的には、第２実施例では、コントローラ７の指示位置が算出される。コントローラ７の指示位置の算出方法は、上述したステップＳ４２における算出方法と同じである。算出された指示位置を示すデータは、第１カーソル位置データ６３７としてメインメモリ１３に記憶される。
【０１４３】
続くステップＳ４６において、ステップＳ４５で算出されたコントローラ７の状態が記憶される。第２実施例では、ＣＰＵ１０は、コントローラ７の指示位置を示すデータ、すなわち、第１カーソル位置データ６３７をポーズ時状態データ６３３としてメインメモリ１３に記憶する。なお、ステップＳ４６で記憶されるデータは、コントローラ７の指示位置に関する状態を示すものであればどのようなものであってもよい。例えば、ステップＳ３で取得されたマーカ座標データをポーズ時状態データ６３３として記憶するようにしてもよいし、マーカ座標データから得られる、２つのマーカ座標の中点の位置を示すデータをポーズ時状態データ６３３として記憶するようにしてもよい。また、例えば、キャラクタ５１の形状を示すデータをポーズ時状態データ６３３として記憶するようにしてもよい。
【０１４４】
続くステップＳ４７において、ＣＰＵ１０は、一時停止中のゲーム画像をモニタ２に表示させる。具体的には、ゲーム処理が一時停止された時点のゲーム画像にポーズ画像５２を重ねた画像をモニタ２に表示させる（図２１参照）。なお、ゲーム処理が一時停止された時点のゲーム画像とは、前回のフレーム処理のステップＳ４３で表示されるゲーム画像のことである。ステップＳ４７の処理が終了するとＣＰＵ１０は非ポーズ状態処理を終了する。
【０１４５】
第２実施例におけるポーズ状態処理は、第１実施例と同様であるので、詳細な説明を省略する。次に、第２実施例における解除受付状態処理について説明する。図２６は、第２実施例における解除受付状態処理の詳細を示すフローチャートである。
【０１４６】
解除受付状態処理においては、まずステップＳ５１において、ＣＰＵ１０はポーズボタン（第２実施例では、スタートスイッチ３２ｇ）が押下されたか否かを判定する。ステップＳ５１の処理は、第１実施例におけるステップＳ３１の処理と同じである。ステップＳ５１の判定結果が肯定の場合、後述するステップＳ５６の処理が実行される。一方、ステップＳ５１の判定結果が否定の場合、ステップＳ５２の処理が実行される。
【０１４７】
ステップＳ５２においては、コントローラ７の現在の状態が算出される。第２実施例では、コントローラ７の現在の状態として、コントローラ７の指示位置、すなわち、第２カーソル５６の位置が算出される。第２カーソル５６の位置は、メインメモリ１３に記憶されているマーカ座標データ６２３に基づいて算出される。なお、第２カーソル５６の位置の具体的な算出方法は、第１カーソル５５の位置を算出する場合と同じである。算出された第２カーソル５６の位置を示すデータは、第２カーソル位置データ６３８としてメインメモリ１３に記憶される。
【０１４８】
続くステップＳ５３においては、ＣＰＵ１０は、コントローラ７の現在の状態（指示位置）とポーズ操作時のコントローラ７の状態（指示位置）とを比較し、両者が一致するか否かを判定する。コントローラ７の現在の指示位置は、メインメモリ１３に記憶されている第２カーソル位置データ６３８によって示される。また、ポーズ操作時のコントローラ７の指示位置は、メインメモリ１３に記憶されているポーズ時状態データ６３３によって示される。したがって、ＣＰＵ１０は、第２カーソル位置データ６３８により示される傾きとポーズ時状態データ６３３により示される傾きとを比較する。上述したように、第２実施例では、２つの位置が完全に一致しなくても、２つの位置がある程度近いと判断される場合には当該２つの位置が一致したと判断する。すなわち、２つの位置間の距離が、しきい値データ６３４により示される値よりも小さい場合、２つの位置が一致したと判断し、２つの位置間の距離が当該しきい値以上である場合、２つの位置は一致しないと判断する。
【０１４９】
ステップＳ５３の判定において、コントローラ７の現在の指示位置とポーズ操作時の指示位置とが一致すると判定される場合、ステップＳ５４の処理が実行される。一方、コントローラ７の現在の指示位置とポーズ操作時の指示位置とが一致すると判定される場合、ステップＳ５４の処理がスキップされてステップＳ５５の処理が実行される。
【０１５０】
ステップＳ５４においては、ゲーム状態が非ポーズ状態に設定される。ステップＳ５４の処理は、第１実施例のステップＳ３４の処理と同じである。したがって、次のフレーム処理において（ポーズボタンが再び押下されなければ）一時停止が解除されてゲーム処理が再開されることとなる。
【０１５１】
ステップＳ５５において、ＣＰＵ１０は、一時停止中のゲーム画像に加えて第２カーソル５６をモニタ２に表示させる（図２２参照）。なお、一時停止中のゲーム画像とは、上記ステップＳ３６において表示されるゲーム画像である。このように、本実施例においては、解除受付状態においては２つのカーソル５５および５６が表示されるので、プレイヤは、これらのカーソル５５および５６を参照しながら、第２カーソル５６の位置が第１カーソル５５の位置に一致するようにコントローラ７の指示位置（コントローラ７の位置および／または姿勢）を操作すればよく、一時停止を解除する操作が容易になる。ステップＳ５５の処理が終了するとＣＰＵ１０は解除受付状態処理を終了する。
【０１５２】
一方、ステップＳ５６においては、ゲーム状態がポーズ状態に設定される。ステップＳ５６の処理は、第１実施例におけるステップＳ３７と同じである。このステップＳ５６によってゲーム処理が一時停止されたこととなる。以上のように、本実施例では、解除受付状態においてポーズボタンが押下された場合には、ゲーム状態は再度ポーズ状態に戻ることになる。
【０１５３】
続くステップＳ５７においては、ＣＰＵ１０は、一時停止中のゲーム画像をモニタ２に表示させる（図１２参照）。ステップＳ５７の処理は、第１実施例におけるステップＳ３８と同じである。ステップＳ５７の処理が終了するとＣＰＵ１０は解除受付状態処理を終了する。
【０１５４】
以上に説明したように、第２実施例における解除受付状態においては、コントローラ７の現在の指示位置とポーズ操作時のコントローラ７の指示位置との比較が行われ、両者が一致するか否かが判定される（ステップＳ５３）。さらに、両者が一致する場合には、ゲーム状態が非ポーズ状態へ移行され（ステップＳ５４）、ゲームが再開する。以上で、第２実施例においてゲーム装置３で実行される処理の説明を終了する。
【０１５５】
以上のように、第２実施例によれば、ゲーム処理が一時停止（ポーズ）される場合、ポーズ操作時におけるコントローラ７の指示位置（カーソルの位置）を記憶しておき、現在のコントローラ７の指示位置とポーズ操作時におけるコントローラ７の指示位置とを比較し、２つの位置が一致することに応じて一時停止を解除する。これによって、一時停止が解除されてゲームが再開される際に、コントローラ７の指示位置を、一時停止が行われる前と同じ位置にすることができる。したがって、第２実施例によれば第１実施例と同様、一時停止の前後においてゲーム操作が変わってしまうことに起因するプレイヤのミスを防止することができ、操作性を向上することができる。また、第２実施例においては、解除受付状態において第２カーソルを表示することにより、一時停止を解除する操作をプレイヤにとって容易にすることができる。また、解除受付状態においては、第２カーソルのみを表示し、当該第２カーソルに基づいて決められるキャラクタ自体の画像を表示しないので、当該キャラクタの画像を表示する場合に比べてＣＰＵ１０の処理負荷を軽減することができる。
【０１５６】
（ゲーム処理に用いるデータの変形例）
なお、第１実施例では、コントローラ７の傾き（姿勢）に基づいて行われるゲーム処理を説明し、第２実施例では、コントローラ７の位置または姿勢に対応して変化する（コントローラ７の）指示位置に基づいて行われるゲーム処理を説明した。ここで、他の実施例においては、ゲーム処理は、コントローラ７の位置および姿勢の少なくとも一方に関する状態に基づいて行われるものであればよい。なお、「コントローラ７の位置および姿勢の少なくとも一方に関する状態」とは、コントローラ７の位置、姿勢、位置の変化（速度）、および姿勢の変化（角速度）等を含む概念である。例えば、ゲーム装置３は、コントローラ７の位置を算出し、算出した位置を用いてゲーム処理を行ってもよいし、コントローラ７の位置または姿勢の変化量（速度または角速度）を算出し、算出した変化量を用いてゲーム処理を行ってもよい。
【０１５７】
例えば、ゲーム装置３は、上記撮像情報演算部３５によって算出されるマーカ座標を用いて、コントローラ７のＺ’軸周りの回転に関する姿勢を算出することができる。すなわち、Ｚ’軸周りにコントローラ７を回転させた場合、２つのマーカ座標を結ぶ方向はコントローラ７の回転に合わせて回転する。したがって、２つのマーカ座標を結ぶ方向に基づいて上記姿勢を算出することができる。ゲーム装置３は、この姿勢に基づいてゲーム処理を行うようにしてもよい。また、ゲーム装置３は、上記撮像情報演算部３５によって算出されるマーカ座標を用いて、マーカ８ａおよび８ｂからコントローラ７までの距離を算出することができる。すなわち、コントローラ７をマーカ８ａおよび８ｂに近づけた場合、２つのマーカ座標間の長さは長くなり、逆に、コントローラ７をマーカ８ａおよび８ｂから遠ざけた場合、２つのマーカ座標間の長さは短くなる。したがって、２つのマーカ座標間の長さに基づいて上記距離を算出することができる。ゲーム装置３は、この距離に基づいてゲーム処理を行うようにしてもよい。
【０１５８】
また、上記第１実施例では、コントローラ７の傾きを算出するために加速度センサ３７を用い、上記第２実施例では、コントローラ７の指示位置を算出するために撮像情報演算部３５を用いた。ここで、他の実施例では、ゲーム処理に反映されるコントローラ７の状態を算出するための任意のセンサが用いられてもよい。また、他の実施例では、加速度センサ３７および撮像情報演算部３５の両方を用いてコントローラ７の状態を算出するようにしてもよい。例えば、撮像情報演算部３５を用いてコントローラ７の指示位置を算出するとともに、加速度センサ３７を用いてコントローラ７の姿勢を算出するようにしてもよい。このとき、ゲーム処理は、コントローラ７の指示位置および姿勢に基づいて行われる。また、例えば、コントローラ７のＺ’軸周りの回転に関する姿勢を算出する場合、加速度センサ３７および撮像情報演算部３５の両方を用いて（具体的には、いずれを用いるかを切り替えて）当該姿勢を算出するようにしてもよい。具体的には、撮像情報演算部３５によってマーカ８ａおよび８ｂを撮像可能である場合には、撮像情報演算部３５から得られるマーカ座標データを用いて上記姿勢を算出し、撮像情報演算部３５によってマーカ８ａおよび８ｂを撮像不可能である場合には、加速度センサ３７から得られる加速度ベクトルを用いて上記姿勢を算出するようにしてもよい。
【０１５９】
（ポーズ操作時に記憶するゲームデータの変形例）
なお、上記第１実施例では、ポーズ操作時に加速度センサの出力（加速度ベクトル）を記憶し、上記第２実施例では、コントローラ７の指示位置（第１カーソル５５の位置）を記憶するようにした。ここで、他の実施例では、ポーズ操作時に記憶するデータは、コントローラ７の状態（位置および姿勢の少なくとも一方に関する状態）に応じて変化し、ゲーム処理に用いられるゲームデータであればよい。このゲームデータは、コントローラ７の状態を示すデータ（上記加速度データ６２１、第１カーソル位置データ６３７、および、マーカ座標データ６２３）、および、当該データから算出されるデータ（キャラクタ方向データ６３２、および、キャラクタ５１の形状を示すデータ）を含む概念である。なお、第１実施例のステップＳ３２または第２実施例のステップＳ５３において、上記記憶されるゲームデータとコントローラ７の現在の状態を示すゲームデータとを比較する場合、記憶されるゲームデータの種類に合わせて現在の状態を示すゲームデータの種類を変更する必要がある。例えば、第１実施例において、加速度データに代えてキャラクタ方向データを記憶する場合には、ステップＳ３２の処理の前に現在のキャラクタ方向データを算出し、算出されたキャラクタ方向データと記憶されたキャラクタ方向データとを比較する。
【０１６０】
（案内画像の変形例）
なお、解除受付状態において、上記第１実施例ではモデル５３および５４が表示され、第２実施例では第２カーソル５６が表示された。これらのモデルおよびカーソルは、ポーズ操作時のコントローラ７の状態になるようにプレイヤを案内するための画像である。つまり、これらの画像は、プレイヤが一時停止を解除する際にプレイヤの解除操作を容易にする目的で表示される。ここで、他の実施例では、上記の目的で表示される画像は、モデルやカーソルに限らず、例えば数値や操作方法を示す矢印であってもよい。具体的には、第１実施例においては、ポーズ操作時におけるコントローラ７の傾きと、現在の傾きとの角度差を画面に表示するようにしてもよい。また、第２実施例においては、指示位置を移動させるべき方向を示す矢印を画面に表示するようにしてもよい。さらに、他の実施例においては、解除受付状態において、操作対象となるオブジェクトの画像を案内用に表示してもよい。以下、図２７および図２８を用いて具体的に説明する。
【０１６１】
図２７および図２８は、他の実施例におけるゲーム画像の例を示す図である。図２７においては、２次元のゲーム空間に、板状オブジェクト７１および７２、ボールオブジェクト７３、および壁オブジェクト７４が配置されている。図２７に示すゲームは、ゲーム装置３のＣＰＵ１０によって制御される板状オブジェクト７２と板状オブジェクト７１との間でボールオブジェクト７３を打ち合って遊ぶホッケーゲームである。板状オブジェクト７１は、プレイヤによって操作される操作対象となるオブジェクト（プレイヤオブジェクト）である。板状オブジェクト７１は、プレイヤの操作によって、画面の上下左右方向に移動可能であるとともに回転可能である（図２７に示す矢印参照）。すなわち、板状オブジェクト７１は、コントローラ７の指示位置に応じて画面の上下左右方向に移動するとともに、コントローラ７の傾きに応じて回転する。
【０１６２】
図２８は、図２７に示すゲームにおいて解除受付状態となった場合のゲーム画像の例を示す図である。図２８においては、板状オブジェクト７１は、ポーズ操作時の状態で固定されている。このとき、ゲーム装置３は、現在のコントローラ７の状態から算出されるプレイヤオブジェクトの状態を表す案内用オブジェクト７５を表示する。具体的には、解除受付状態においてゲーム装置３は、コントローラ７の指示位置を算出して、算出された指示位置に基づいて案内用オブジェクト７５の画面上での位置を決定するとともに、コントローラ７の傾きを算出し、算出された傾きに基づいて案内用オブジェクト７５の方向を決定する。また、ゲーム装置３は、板状オブジェクト７１の位置と案内用オブジェクト７５の位置とが一致するか否か、および、板状オブジェクト７１の方向と案内用オブジェクト７５の方向とが一致するか否かを判定する。そして、両者の位置および方向がともに一致すると判定される場合、一時停止を解除してゲームを再開する。このように、コントローラ７の状態が複数種類（上記例では、コントローラ７の指示位置および傾きの２種類）である場合には、それぞれの状態についてポーズ操作時の状態と現在の状態とが一致したことに応じて一時停止を解除することが好ましい。また、以上の図２８に示したように、案内用の画像は、操作対象となるオブジェクトに対応する画像であってもよい。
【０１６３】
また、第２実施例のように操作対象が画面上を移動する場合において、表示装置（モニタ２）の設定等の原因で、操作対象が画面に表示されない（または、一部分のみが表示される）状況が起こることがある。図２９は、他の実施例におけるゲーム画像の例を示す図である。なお、図２９では、説明を容易にするために、３つのカーソル７６〜７８のみが表示されるものとして示している。図２９において、３つのカーソル７６〜７８とは、操作カーソル７６、案内用カーソル７７、および基準カーソル７８である。操作カーソル７６は、非ポーズ状態において操作対象となるカーソルである。
【０１６４】
図２９の例においては、解除受付状態において、画面から外れている操作カーソル７６から所定距離だけ上方に基準カーソル７８が表示される。また、コントローラ７の現在の指示位置に基づいて決定される位置に案内用カーソル７７が表示される。案内用カーソル７７は、コントローラ７の現在の指示位置に配置されるのではなく、当該指示位置から上記所定距離だけ上方の位置に配置される。解除受付状態において、プレイヤは、案内用カーソル７７が基準カーソル７８に一致するように案内用カーソル７７を操作する。そして、案内用カーソル７７が基準カーソル７８に一致すると、一時停止が解除されてゲーム処理が再開される。図２９に示したように、案内用の画像は、必ずしも操作対象の画像（操作カーソル７６）である必要はなく、操作対象の画像とは異なる画像を用いて位置合わせを行うようにしてもよい。これによれば、図２９に示したように、ポーズ操作時において操作対象が画面の端周辺に表示されていて操作対象が見にくい場合にも、案内用の画像を見やすく表示することができる。
【０１６５】
（ポーズ状態処理の変形例）
なお、上記第１実施例および第２実施例においては、ゲーム装置３は、ポーズ状態において解除受付ボタンが押下されたことに応じて解除受付状態への移行を行った。ここで、他の実施例においては、ゲーム装置３は、ゲーム処理が一時停止させられてから所定時間が経過したことに応じて解除受付状態への移行を行ってもよい。以下、図３０を用いてポーズ状態処理の変形例を説明する。
【０１６６】
図３０は、ポーズ状態処理の変形例を示すフローチャートである。図３０に示すポーズ状態処理においては、まずステップＳ６１において、ＣＰＵ１０は、ゲーム処理が一時停止させられてから所定時間が経過したか否かを判定する。なお、所定時間は、ゲームプログラム６１において予め定められた固定値であってもよいし、プレイヤの指示やその他の条件に基づいて可変に定められる値であってもよい。ステップＳ６１において、所定時間が経過したと判定される場合、ステップＳ６２の処理が実行される。一方、所定時間が経過していないと判定される場合、ステップＳ６２の処理がスキップされてステップＳ６３の処理が実行される。ステップＳ６２においては、ゲーム状態が解除受付状態に設定される。ステップＳ６２の処理は第１実施例におけるステップＳ２２の処理と同じである。また、ステップＳ６３の処理は第１実施例におけるステップＳ２３の処理と同じである。
【０１６７】
以上のように、他の実施例においては、ゲーム処理が一時停止させられてからの経過時間に基づいて、ポーズ状態から解除受付状態への移行を行うか否かを判定するようにしてもよい。これによれば、プレイヤは解除受付状態へ移行させる操作（上記第１実施例で言えば、解除受付ボタンを押下する操作）を行う必要がないので、プレイヤの操作を簡易化することができる。また、解除受付状態へ移行するために、一時停止してから一定時間経過したことを条件としているので、プレイヤが意図せずに、例えば一時停止直後に解除条件を満たしてしまうことなどによって一時停止が解除されることがない。
【０１６８】
また、他の実施例においては、ポーズ状態において、現在のコントローラ７の状態が、ポーズ操作時の状態に対して所定の基準よりも相違したことに応じて一時停止状態の解除の受付を開始するようにしてもよい。以下、図３１を用いてポーズ状態処理の変形例を説明する。
【０１６９】
図３１は、ポーズ状態処理の他の変形例を示すフローチャートである。図３１に示すポーズ状態処理においては、まずステップＳ６５において、ＣＰＵ１０は、コントローラ７の状態（位置および姿勢の少なくとも一方に関する状態）を算出する。例えば、上記第２実施例の場合には、コントローラ７の指示位置を算出する。このとき、算出された状態を示すデータがメインメモリ１３に記憶される。なお、この時点では、ポーズ操作時における状態を示すデータは、ポーズ時状態データ６３３としてメインメモリ１３に記憶されている。
【０１７０】
続くステップＳ６６において、ＣＰＵ１０は、ステップＳ６５で算出された現在のコントローラ７の状態とポーズ操作時の状態とを比較し、現在の状態がポーズ操作時の状態から所定の基準よりも離れているか否かを判定する。例えば、第１実施例の場合には、コントローラ７の現在の傾きが、ポーズ操作時の傾きから所定角度以上離れているか否かを判定する。また、第２実施例の場合には、コントローラ７の現在の指示位置が、ポーズ操作時の指示位置から所定距離以上離れているか否かを判定する。ステップＳ６６の判定結果が肯定の場合、ステップＳ６７の処理が実行され、ステップＳ６６の判定結果が否定の場合、ステップＳ６７の処理がスキップされてステップＳ６８の処理が実行される。ステップＳ６７の処理は第１実施例におけるステップＳ２２の処理と同じである。また、ステップＳ６８の処理は第１実施例におけるステップＳ２３の処理と同じである。
【０１７１】
以上のように、他の実施例においては、ポーズ状態においてコントローラ７の現在の状態とポーズ操作時の状態とが大きく離れたことに応じて、ポーズ状態から解除受付状態への移行を行うようにしてもよい。これによれば、プレイヤは解除受付状態へ移行させる操作を行う必要がないので、プレイヤの操作を簡易化することができる。また、解除受付状態へ移行するために、コントローラ７の現在の状態とポーズ操作時の状態とが大きく離れたことを条件としているので、プレイヤが意図せずに、例えば一時停止直後に解除条件を満たしてしまうことなどによって一時停止が解除されることがない。
【０１７２】
（ゲーム処理を一時停止するタイミングに関する変形例）
上記実施例においては、ゲーム装置３は、ポーズボタンが押下されたタイミングでゲーム処理を一時停止させるものであった。ここで、他の実施例においては、ポーズボタンが押下されるよりも少し前（具体的には、数フレーム前）の時点でゲーム処理が一時停止させられるようにしてもよい。つまり、当該時点から実際にポーズボタンが押下された時点までのゲーム処理を無効とし、ゲーム処理が再開される際には、ポーズボタンが押下されるよりも少し前の時点のゲーム処理状態から再開されるようにしてもよい。これによれば、プレイヤがポーズボタンを押下したことによってコントローラ７の位置または姿勢が変化してしまうおそれがある場合でも、プレイヤの意図したタイミングでゲーム処理を一時停止することができる。
【０１７３】
（プレイヤが複数人である場合の変形例）
なお、上記実施例においては、プレイヤが１人である場合を例として説明したが、プレイヤが複数人の場合であっても上記実施例を適用することができる。なお、この場合、プレイヤは１人につき１つのコントローラ７を操作するものとする。この場合、ゲーム装置３は、解除受付状態において、現在のコントローラの状態とポーズ操作時の状態とをコントローラ毎に比較する。そして、全てのコントローラについて、現在の状態とポーズ操作時の状態とが一致すると判定される場合、一時停止を解除してゲーム処理を再開する。なお、ポーズ状態から解除受付状態へ移行するための条件は、複数のコントローラのうちの１つのコントローラのポーズボタンが押下されたことであってもよいし、全てのコントローラのポーズボタンが押下されたことであってもよい。またポーズボタンを押下するという条件に代えて、上記図３０または図３１に示した条件を用いてもよい。
【産業上の利用可能性】
【０１７４】
以上のように、本発明は、ポーズを解除した時におけるゲームの操作性を改善すること等を目的として、例えばゲーム装置やゲームプログラムに利用することができる。
【図面の簡単な説明】
【０１７５】
【図１】本発明の一実施形態に係る座標算出装置一例であるゲーム装置を含むゲームシステムの外観図
【図２】ゲーム装置３の機能ブロック図
【図３Ａ】コントローラ７の斜視図
【図３Ｂ】コントローラ７の斜視図
【図４】コントローラ７を前方から見た図
【図５Ａ】コントローラ７の内部構造を示す図
【図５Ｂ】コントローラ７の内部構造を示す図
【図６】コントローラ７の構成を示すブロック図
【図７】コントローラ７の傾きと加速度センサの出力との関係を示す図
【図８】コントローラ７の傾きと加速度センサの出力との関係を示す図
【図９】撮像画像の一例を示す図
【図１０】コントローラ７を用いてゲーム操作するときの状態を概説する図解図
【図１１】第１実施例におけるゲーム画像の例を示す図
【図１２】ポーズ状態におけるゲーム画像の例を示す図
【図１３】解除受付状態におけるゲーム画像の例を示す図
【図１４】一時停止が解除される時のゲーム画像の例を示す図
【図１５】ゲーム装置３のメインメモリ１３に記憶される主なデータを示す図
【図１６】ゲーム装置３において実行される処理の流れを示すメインフローチャート
【図１７】図１６に示す非ポーズ状態処理（ステップＳ６）の詳細を示すフローチャート
【図１８】図１６に示すポーズ状態処理（ステップＳ７）の詳細を示すフローチャート
【図１９】図１６に示す解除受付状態処理（ステップＳ８）の詳細を示すフローチャート
【図２０】第２実施例におけるゲーム画像の例を示す図
【図２１】第２実施例におけるポーズ状態のゲーム画像の例を示す図
【図２２】第２実施例における解除受付状態のゲーム画像の例を示す図
【図２３】第２実施例において一時停止が解除される時のゲーム画像の例を示す図
【図２４】第２実施例においてゲーム装置３のメインメモリ１３に記憶される主なデータを示す図
【図２５】第２実施例における非ポーズ状態処理の詳細を示すフローチャート
【図２６】第２実施例における解除受付状態処理の詳細を示すフローチャート
【図２７】他の実施例におけるゲーム画像の例を示す図
【図２８】図２７に示すゲームにおいて解除受付状態となった場合のゲーム画像の例を示す図
【図２９】他の実施例におけるゲーム画像の例を示す図
【図３０】ポーズ状態処理の変形例を示すフローチャート
【図３１】ポーズ状態処理の他の変形例を示すフローチャート
【符号の説明】
【０１７６】
１  ゲームシステム
２  モニタ
３  ゲーム装置
４  光ディスク
５  外部メモリカード
７  コントローラ
８ａ，８ｂ  マーカ
１０  ＣＰＵ
１３  メインメモリ
３２  操作部
３５  撮像情報演算部
３６  通信部
３７  加速度センサ
４０  撮像素子
５１  キャラクタ
５２  ポーズ画像
５３  第１モデル
５４  第２モデル
５５  第１カーソル
５６  第２カーソル
６１  ゲームプログラム
【図１】
2007236696.tif 000003
【図２】
2007236696.tif 000004
【図３Ａ】
2007236696.tif 000005
【図３Ｂ】
2007236696.tif 000006
【図４】
2007236696.tif 000007
【図５Ａ】
2007236696.tif 000008
【図５Ｂ】
2007236696.tif 000009
【図６】
2007236696.tif 000010
【図７】
2007236696.tif 000011
【図８】
2007236696.tif 000012
【図９】
2007236696.tif 000013
【図１０】
2007236696.tif 000014
【図１１】
2007236696.tif 000015
【図１２】
2007236696.tif 000016
【図１３】
2007236696.tif 000017
【図１４】
2007236696.tif 000018
【図１５】
2007236696.tif 000019
【図１６】
2007236696.tif 000020
【図１７】
2007236696.tif 000021
【図１８】
2007236696.tif 000022
【図１９】
2007236696.tif 000023
【図２０】
2007236696.tif 000024
【図２１】
2007236696.tif 000025
【図２２】
2007236696.tif 000026
【図２３】
2007236696.tif 000027
【図２４】
2007236696.tif 000028
【図２５】
2007236696.tif 000029
【図２６】
2007236696.tif 000030
【図２７】
2007236696.tif 000031
【図２８】
2007236696.tif 000032
【図２９】
2007236696.tif 000033
【図３０】
2007236696.tif 000034
【図３１】
2007236696.tif 000035