(57)【要約】【構成】ゲーム装置はコントローラを含み、コントローラには互いに直交する少なくとも２軸の加速度を検出する加速度センサが設けられる。ゲームプレイの際には、２軸に直交する軸の周りを回転するような回転操作がコントローラに施される。回転操作に応じて検出された２軸の加速度は２次元座標系の点（ｘｎ，ｙｎ）に変換される。変換された各点の角度θｎが算出され、さらに角度変化Ｖｎが算出される。そして、なめらかに変化するように補正された角度変化Ｔ´と前回の補正角度に基づいて、今回の補正角度Ｖが算出される。当該補正角度Ｖに応じたゲーム処理が実行され、たとえばゲームオブジェクトが補正角度Ｖに相当する分だけ動作される。【効果】回転操作によって、プレイヤに新しい体感を与えることができ、今までに無い興趣性を備えたゲームを実現できる。【選択図】図６
2007296219.tif 000002
【特許請求の範囲】
【請求項１】
互いに直交する少なくとも２軸の加速度を検出する加速度センサを有する操作手段を備えるゲーム装置において、前記操作手段が前記２軸に直交する軸の周りを移動される回転操作に応じてゲーム処理を行うためのゲームプログラムであって、
前記ゲーム装置のプロセサに、
前記加速度センサによって検出される２軸の加速度を取得する取得ステップ、
前記２軸の加速度を２次元座標系の点に変換する変換ステップ、
変換された前記点と基準点とを結ぶ線が基準方向となす角度を算出する角度算出ステップ、
前記角度算出ステップで算出される今回の角度と前回の角度との角度変化を算出する角度変化算出ステップ、
前記角度変化算出ステップで算出された角度変化と前回の補正角度に基づいて補正角度を算出する角度補正ステップ、および
前記角度補正ステップで算出された補正角度に基づいてゲーム処理を行うゲーム処理ステップを実行させる、ゲームプログラム。
【請求項２】
前記プロセサに、前記角度算出ステップで算出された角度変化に基づいて回転方向が過去と同一であるか否かを判定する回転方向判定ステップをさらに実行させ、
前記角度補正ステップは、前記回転方向判定ステップで回転方向が同一でないと判定されたとき、前記角度変化をゼロと見なして補正角度を算出する、請求項１記載のゲームプログラム。
【請求項３】
前記ゲーム処理ステップは、前記補正角度に基づいて動作したオブジェクトを表示手段に表示する表示制御ステップを含む、請求項１または２記載のゲームプログラム。
【請求項４】
前記ゲーム処理ステップは、前記補正角度に基づいてゲームクリア条件が満足されたか否かを判定するゲームクリア判定ステップを含む、請求項１ないし３のいずれかに記載のゲームプログラム。
【請求項５】
前記ゲーム処理ステップは、前記補正角度に基づいて前記回転操作の回転回数を算出する回転回数算出ステップを含み、
前記ゲームクリア判定ステップは、前記ゲームクリア条件として、前記回転回数が制限時間内に所定の閾値以上になったか否かを判定する、請求項４記載のゲームプログラム。
【請求項６】
互いに直交する少なくとも２軸の加速度を検出する加速度センサを有する操作手段を備え、前記操作手段が前記２軸に直交する軸の周りを移動される回転操作に応じてゲーム処理を行うゲーム装置であって、
前記加速度センサによって検出される２軸の加速度を取得する取得手段、
前記２軸の加速度を２次元座標系の点に変換する変換手段、
変換された前記点と基準点とを結ぶ線が基準方向となす角度を算出する角度算出手段、
前記角度算出手段によって算出される今回の角度と前回の角度との角度変化を算出する角度変化算出手段、
前記角度変化算出手段によって算出された角度変化と前回の補正角度に基づいて補正角度を算出する角度補正手段、および
前記角度補正手段で算出された補正角度に基づいてゲーム処理を行うゲーム処理手段を備える、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ゲームプログラムおよびゲーム装置に関し、特にたとえば、互いに直交する少なくとも２軸の加速度センサを備えたゲームコントローラが２軸にさらに直交する軸の回りを移動されるような回転操作によってプレイされるゲームのための、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
近年、加速度センサを備えるゲームコントローラによってゲームがプレイされることがよく知られている。関連技術の一例がたとえば特許文献１および２に開示されている。特許文献１に記載の技術では、普通一般によく見られるようなゲームコントローラに２軸の加速度センサが設けられ、このコントローラの傾きが検出されることによってゲームが行われる。
【０００３】
また、特許文献２に記載の技術では、釣具などの道具を模した形態に形成されたコントローラの内部に加速度センサが設けられ、このコントローラの振り動作の強さや傾きが検出されることによってゲームが行われる。
【特許文献１】特開２００５−４７１号公報
【特許文献２】特開平１０−２１４１５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、２軸加速度センサが水平に配置され、２軸の周りの回転角度の検出によってコントローラの傾きを検出することのみ開示されているので、今まで長年採用されてきた操作形態に基づいて、両手でコントローラを把持して、傾けたり、向きを変化させたりする操作ができるに過ぎない。そのため、今までと大幅に異なるような操作環境を備えるゲームを提供することはできない。
【０００５】
また、特許文献２に記載の技術では、昨今見られるようになった、振りの動作を取り入れた体感的なゲームを提供することはできる。しかし、ゲームコントローラそのものを回転操作するような形態でゲームをプレイするような、新たな体感性を有するゲームを提供することはできない。
【０００６】
それゆえに、この発明の主たる目的は、ゲームコントローラを今までにない方法で操作することによって、プレイヤに新しい体感を与えることができる、ゲームプログラムおよびゲーム装置を提供することである。
【０００７】
この発明の更なる目的は、ゲームコントローラを所定の軸の周りを移動させるような操作に応じたゲーム処理を行うことによって、今までに無い興趣性を備えたゲームを実現できる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【０００８】
第１の発明（請求項１の発明）は、互いに直交する少なくとも２軸の加速度を検出する加速度センサを有する操作手段を備えるゲーム装置において、操作手段が２軸に直交する軸の周りを移動される回転操作に応じてゲーム処理を行うためのゲームプログラムである。このゲームプログラムは、ゲーム装置のプロセサに、取得ステップ、変換ステップ、角度算出ステップ、角度変化算出ステップ、角度補正ステップ、およびゲーム処理ステップを実行させる。取得ステップは、加速度センサによって検出される２軸の加速度を取得する。変換ステップは、２軸の加速度を２次元座標系の点に変換する。角度算出ステップは、変換された点と基準点とを結ぶ線が基準方向となす角度を算出する。角度変化算出ステップは、角度算出ステップで算出される今回の角度と前回の角度との角度変化を算出する。角度補正ステップは、角度変化算出ステップで算出された角度変化と前回の補正角度に基づいて補正角度を算出する。ゲーム処理ステップは、角度補正ステップで算出された補正角度に基づいてゲーム処理を行う。
【０００９】
請求項１の発明では、ゲームプログラムは、ゲーム装置（１２：後述する実施例で相当する参照符号。以下同じ。）のプロセサ（２６）に以下に説明する各ステップを実行させる。なお、ゲーム装置は、加速度センサ（６０）を有する操作手段（１４）を備えていて、加速度センサは互いに直交する少なくとも２軸の加速度を検出する。ゲームプログラムは、２軸に直交する軸（７０）の周りを操作手段が移動されるような回転操作に応じてゲーム処理を行うためのプログラムである。取得ステップ（Ｓ３）では、加速度センサによって検出される２軸の加速度が取得される。変換ステップ（Ｓ５）では、２軸の加速度が２次元座標系（ｘｙ座標系）の各軸の成分（座標）とする点に変換される。回転操作では、２軸の作る平面内の回転が行われるので、遠心力に由来する加速度が検出される。したがって、変換された点の軌跡は回転運動のような軌道を描き、また回転操作の状態を示している。角度算出ステップ（Ｓ７）では、変換された点と基準点（たとえば２次元座標系の原点）とを結ぶ線が基準方向（たとえばｘ軸）となす角度が算出される。角度変化算出ステップ（Ｓ１１）では、今回算出された角度と前回算出された角度との角度変化（Ｖｎ）が算出される。角度補正ステップ（Ｓ２９）では、今回算出された角度変化と前回の補正角度に基づいて、今回の補正角度（Ｖ）が算出される。なお、補正角度の算出に使用される角度変化は、必要に応じて補正され、たとえば所定の回転操作が行われていると判定される場合には、算出された角度変化が使用され、そうでない場合には、たとえばゼロに補正される。さらに、この角度変化（Ｔ）をなめらかに変化するように補正した角度変化（Ｔ´）が算出される。そして、補正角度は、補正された角度変化と前回の補正角度に基づいて（実施例では数２に従って）算出される。補正角度は、角度変化に前回の補正角度をも考慮して算出されるので、このような補正角度を用いることによって、回転操作の状態を適切かつ円滑にゲーム処理に反映させることができる。ゲーム処理ステップ（Ｓ３１、Ｓ３３、Ｓ３７）では、補正角度に基づいてゲーム処理が行われ、たとえば、補正角度に相当する分だけオブジェクトの動作が制御される。
【００１０】
請求項１の発明によれば、２軸の加速度を成分とする点の角度変化を算出することによって、操作手段の回転操作による回転の状態を検出し、ゲーム処理に使用するようにした。したがって、操作手段の回転操作に応じてゲーム処理が行われるので、今までに無い興趣性を備えたゲームを実現し提供することができる。また、操作手段を回転操作するので、新しい体感ができるゲームをプレイヤに提供することができる。
【００１１】
請求項２の発明は、請求項１の発明に従属し、プロセサに、角度算出ステップで算出された角度変化に基づいて回転方向が過去と同一であるか否かを判定する回転方向判定ステップをさらに実行させる。角度補正ステップは、回転方向判定ステップで回転方向が同一でないと判定されたとき、角度変化をゼロと見なして補正角度を算出する。
【００１２】
請求項２の発明では、回転方向判定ステップ（Ｓ１７、Ｓ１９）では、角度変化に基づいて回転方向が過去と同一であるか否かが判定される。角度補正ステップ（Ｓ２７、Ｓ２９）では、回転方向が同一でないと判定されるとき、角度変化をゼロと見なして、補正角度が算出される。したがって、同一方向への回転操作が行われていないときには当該回転操作がゲーム処理に反映されなくなる。つまり、過去と同一方向へ回転操作が行われる場合には、当該回転操作がゲーム処理に反映されることとなる。単純に回転操作を行うだけではなく、同一方向へ回転操作を続けることによってゲームが進行されるので、さらに興趣性を高めることができる。
【００１３】
請求項３の発明は、請求項１または２の発明に従属し、ゲーム処理ステップは、補正角度に基づいて動作したオブジェクトを表示手段に表示する表示制御ステップを含む。
【００１４】
請求項３の発明では、表示制御ステップ（Ｓ３１、Ｓ３７）では、補正角度に基づいて動作の制御されたオブジェクト（８０、８２）が表示手段（１６）に表示される。したがって、回転操作に応じて画面上のオブジェクトが動作するので、興趣性の高いゲームを実現できる。
【００１５】
請求項４の発明は、請求項１ないし３のいずれかの発明に従属し、ゲーム処理ステップは、補正角度に基づいてゲームクリア条件が満足されたか否かを判定するゲームクリア判定ステップを含む。
【００１６】
請求項４の発明では、ゲームクリア判定ステップ（Ｓ３９、Ｓ４１）では、補正角度に基づいてゲームクリア条件が満足されたか否かが判定される。したがって、回転操作に応じてゲームがクリアされたりされなかったりするという興趣性に優れたゲームを実現できる。
【００１７】
請求項５の発明は、請求項４の発明に従属し、ゲーム処理ステップは、補正角度に基づいて回転操作の回転回数を算出する回転回数算出ステップを含み、ゲームクリア判定ステップは、ゲームクリア条件として、回転回数が制限時間内に所定の閾値以上になったか否かを判定する。
【００１８】
請求項５の発明では、回転回数算出ステップ（Ｓ３３）では、補正角度に基づいて回転操作の回転回数が算出される。ゲームクリア判定ステップでは、ゲームクリア条件として、回転回数が制限時間内に所定の閾値以上になったか否かが判定される。したがって、制限時間内に所定の回転操作を行うことが必要であるので、興趣性をさらに高めたゲームを実現できる。
【００１９】
第２の発明（請求項６の発明）は、互いに直交する少なくとも２軸の加速度を検出する加速度センサを有する操作手段を備え、操作手段が２軸に直交する軸の周りを移動される回転操作に応じてゲーム処理を行うゲーム装置である。ゲーム装置は、取得手段、変換手段、角度算出手段、角度変化算出手段、角度補正手段、およびゲーム処理手段を備える。取得手段は、加速度センサによって検出される２軸の加速度を取得する。変換手段は、２軸の加速度を２次元座標系の点に変換する。角度算出手段は、変換された点と基準点とを結ぶ線が基準方向となす角度を算出する。角度変化算出手段は、角度算出手段によって算出される今回の角度と前回の角度との角度変化を算出する。角度補正手段は、角度変化算出手段によって算出された角度変化と前回の補正角度に基づいて補正角度を算出する。ゲーム処理手段は、角度補正手段で算出された補正角度に基づいてゲーム処理を行う。
【００２０】
請求項６の発明は、第１の発明のゲームプログラムに対応するゲーム装置であり、第１の発明と同様な効果を奏する。
【発明の効果】
【００２１】
この発明によれば、操作手段に設けられた加速度センサによって検出される２軸の加速度を２次元座標系の点に変換し、当該点の角度の変化から補正角度を算出し、当該補正角度に基づいてゲーム処理が実行されるようにした。したがって、操作手段の回転操作の状態を検出して、これに応じたゲーム処理を実行できるので、今までに無い興趣性を備えたゲームを実現できる。また、操作手段を回転させるという今までに無い操作方法によってゲームをプレイできるので、プレイヤに新しい体感を与えることができる。
【００２２】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２３】
図１を参照して、この実施例のゲームシステム１０はゲーム装置１２およびコントローラ１４を含む。ゲーム装置１２は、据置型ゲーム装置であり、家庭用テレビジョン受像機のようなディスプレイないしモニタ１６にケーブルを介して接続される。コントローラ１４は、プレイヤないしユーザによって操作される操作装置であり、ゲーム装置１２に操作データを与える。
【００２４】
ゲーム装置１２には、接続端子を介して受信ユニット１８が接続される。受信ユニット１８は、コントローラ１４から無線送信される操作データを受信する。具体的には、コントローラ１４は、たとえばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）のような無線通信技術を用いて、受信ユニット１８が接続されたゲーム装置１２へ操作データを送信する。
【００２５】
また、ゲーム装置１２には、当該ゲーム装置１２に対して交換可能に用いられる情報記憶媒体の一例である光ディスク２０が脱着される。ゲーム装置１２の上部主面には、当該ゲーム装置１２の電源ＯＮ／ＯＦＦスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置１２上部の蓋を開くＯＰＥＮスイッチが設けられている。ここで、プレイヤがＯＰＥＮスイッチを押下することによって上記蓋が開き、光ディスク２０の脱着が可能となる。また、ゲーム装置１２には、外部メモリカード２２が必要に応じて着脱自在に装着される。当該メモリカード２２に搭載されるフラッシュメモリ等にはセーブデータ等が記憶される。
【００２６】
ゲーム装置１２は、光ディスク２０に記憶されたゲームプログラムを実行することによって、その結果をゲーム画像としてモニタ１６に表示する。なお、ゲーム装置１２は、外部メモリカード２２に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、当該ゲーム画像をモニタ１６に表示することもできる。また、モニタ１６に備えられるスピーカ２４（図２参照）からはゲームサウンドが出力される。そして、プレイヤは、コントローラ１４を操作することによって、仮想ゲームをプレイする。
【００２７】
図２にはゲーム装置１２の電気的構成の一例が示される。ゲーム装置１２は、各種プログラムを実行するたとえばリスク（ＲＩＳＣ）ＣＰＵ（セントラルプロセッシングユニット）２６を含む。ＣＰＵ２６は、図示しないブートＲＯＭに記憶された起動プログラムを実行し、メインメモリ２８等のメモリの初期化等を行った後、光ディスク２０に記憶されているゲームプログラムおよびデータをロードし、当該ゲームプログラムに従ってゲーム処理を行う。
【００２８】
ＣＰＵ２６には、メモリコントローラ３０を介して、ＧＰＵ（Graphics Processing Unit）３２、メインメモリ２８、ＤＳＰ（Digital Signal Processor）３４、およびＡＲＡＭ（Audio RAM）３６が接続される。また、メモリコントローラ３０には、所定のバスを介して、コントローラＩ／Ｆ（インターフェース）３８、ビデオＩ／Ｆ４０、外部メモリＩ／Ｆ４２、オーディオＩ／Ｆ４４、およびディスクＩ／Ｆ４６が接続され、それぞれ受信ユニット１８、モニタ１６、外部メモリカード２２、スピーカ２４、およびディスクドライブ４８が接続されている。
【００２９】
ＧＰＵ３２は、ＣＰＵ２６の命令に従って画像処理を行う。ＧＰＵ３２は、たとえば、３Ｄグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。ＧＰＵ３２は、図示しない画像処理専用のメモリやメインメモリ２８の一部の記憶領域を用いて画像処理を行う。ＧＰＵ３２は、表示すべきゲーム画像データやムービー映像を生成し、適宜メモリコントローラ３０およびビデオＩ／Ｆ４０を介してモニタ１６に出力する。
【００３０】
メインメモリ２８は、ＣＰＵ２６によって使用される記憶領域であり、ＣＰＵ２６の処理に必要なゲームプログラムおよびデータを適宜記憶する。たとえば、メインメモリ２８は、ＣＰＵ２６によって光ディスク２０から読み出されたゲームプログラムや各種データ等を記憶する。
【００３１】
ＤＳＰ３４はサウンドプロセサとして機能し、ＤＳＰ３４にはサウンドデータ等を記憶するためのＡＲＡＭ３６が接続される。ＡＲＡＭ３６は、ＤＳＰ３４が所定の処理（たとえば、先読みしておいたゲームプログラムやサウンドデータの記憶）を行う際に用いられる。ＤＳＰ３４は、ＡＲＡＭ３６に記憶されたサウンドデータ（音波形データ）を読み出し、ＣＰＵ２６からの音制御データと当該音波形データ等に基づいて音出力のためのデータを生成し、メモリコントローラ３０およびオーディオＩ／Ｆ４４を介してモニタ１６に備えられるスピーカ２４から音を出力させる。
【００３２】
メモリコントローラ３０は、データ転送を統括的に制御し、メモリコントローラ３０には上述した各種Ｉ／Ｆが接続される。コントローラＩ／Ｆ３８は、たとえば４つのコントローラＩ／Ｆで構成され、それらが有するコネクタを介して外部機器とゲーム装置１２とを通信可能に接続する。たとえば、受信ユニット１８は、上記コネクタと嵌合し、コントローラＩ／Ｆ３８を介してゲーム装置１２と接続される。上述したように受信ユニット１８は、コントローラ１４からの操作データを受信し、コントローラＩ／Ｆ３８を介して当該操作データをＣＰＵ２６へ出力する。なお、他の実施例では、ゲーム装置１２には、受信ユニット１８に代えて、コントローラ１４から送信されてくる操作データを受信する受信モジュールがその内部に設けられてよい。この場合、受信モジュールが受信した送信データは、所定のバスを介してＣＰＵ２６に出力される。
【００３３】
ビデオＩ／Ｆ４０にはモニタ１６が接続され、モニタ１６にはビデオＩ／Ｆ４０からの画像信号によってゲーム画像が表示される。外部メモリＩ／Ｆ４２には外部メモリカード２２が接続され、ＣＰＵ２６は、メモリコントローラ３０を介して外部メモリカード２２に設けられたフラッシュメモリ等にアクセスする。
【００３４】
オーディオＩ／Ｆ４４にはモニタ１６に内蔵されるスピーカ２４が接続される。オーディオＩ／Ｆ４４は、ＤＳＰ３４によってＡＲＡＭ３６から読み出されたり生成されたりしたサウンドデータやディスクドライブ４８から直接出力されるサウンドデータに対応するオーディオ信号をスピーカ２４に与える。スピーカ２４からは当該サウンドが出力される。
【００３５】
ディスクＩ／Ｆ４６には、ディスクドライブ４８が接続される。ディスクドライブ４８は、所定の読み出し位置に配置された光ディスク２０に記憶されているデータを読み出す。読み出されたデータはディスクＩ／Ｆ４６およびメモリコントローラ３０等を介してメインメモリ２８に書き込まれ、あるいは、オーディオＩ／Ｆ４４に出力される。
【００３６】
図３にはコントローラ１４の外観の一例が示される。図３（Ａ）は、コントローラ１４の上面後方から見た斜視図であり、図３（Ｂ）は、コントローラ１４を下面後方から見た斜視図である。
【００３７】
コントローラ１４は、たとえばプラスチック成型によって形成されたハウジング５０を有している。ハウジング５０は、その前後方向（図３に示すＺ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング５０は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、コントローラ１４を用いて、それに設けられたボタンを押下するゲーム操作を行うことと、コントローラ１４自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。たとえば、或るゲームでは、プレイヤは、長手方向を軸としてコントローラ１４を回転させることによって、操作対象に移動動作を行わせることができる。
【００３８】
ハウジング５０には、複数の操作ボタンが設けられる。ハウジング５０の上面には、十字キー５２ａ、Ｘボタン５２ｂ、Ｙボタン５２ｃ、Ａボタン５２ｄ、セレクトスイッチ５２ｅ、メニュースイッチ５２ｆ、およびスタートスイッチ５２ｇが設けられる。一方、ハウジング５０の下面には凹部が形成されており、当該凹部の後面側傾斜面にはＢボタン５２ｉが設けられる。これらの各ボタン（スイッチ）５２は、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれの機能が割り当てられる。また、ハウジング５０の上面には、遠隔からゲーム装置１２本体の電源をオン／オフするための電源スイッチ５２ｈが設けられる。
【００３９】
また、ハウジング５０の後面にはコネクタ５４が設けられている。コネクタ５４は、たとえば３２ピンのエッジコネクタであり、コントローラ１４に他の機器を接続するために利用される。また、ハウジング５０上面の後面側には複数のＬＥＤ５６が設けられる。ここで、コントローラ１４には、他のコントローラ１４と区別するためにコントローラ種別（番号）が付与される。コントローラ１４からゲーム装置１２へ操作データを送信する際、当該コントローラ１４に現在設定されているコントローラ種別に対応する１つのＬＥＤ５６が点灯する。
【００４０】
図４にはコントローラ１４の電気的構成が示される。コントローラ１４は、操作部５２（各操作ボタン５２ａ−５２ｈ）の他に、その内部に通信部５８および加速度センサ６０を備えている。
【００４１】
加速度センサ６０は、当該加速度センサの検出部に加わっている加速度のうち、センシング軸ごとの直線成分の加速度や重力加速度を検出する。加速度センサ６０は、少なくとも２つの互いに直交する軸方向の加速度を検出する。たとえば、２軸または３軸の加速度センサの場合には、加速度センサの検出部に加わっている加速度を、各軸に沿った直線成分の加速度としてそれぞれ検出する。具体的には、この実施例では、３軸加速度センサが適用され、コントローラ１４の上下方向（図３に示すＹ軸方向）、左右方向（図３に示すＸ軸方向）および前後方向（図３に示すＺ軸方向）の３軸でそれぞれ加速度を検知する。また、この加速度センサ６０の各軸ごとに検出される加速度に所定の演算処理を施すことによって、コントローラ１４の傾きや回転を算出することが可能である。たとえば、加速度センサ６０が静止した状態においては、常に重力加速度が加わっており、この重力加速度に対する各軸の傾きに応じた加速度が各軸ごとに検出される。具体的には、加速度センサ６０が水平状態で静止しているとき、加速度センサのＹ軸に１Ｇの重力加速度が加わり、他の軸の重力加速度はほぼ０となる。次に、加速度センサ６０の姿勢が水平状態より傾くと、加速度センサ６０の各軸方向と重力方向との角度に応じて、重力加速度が加速度センサ６０の各軸に分散され、このとき、加速度センサ６０の各軸の加速度値が検出される。このような各軸ごとの加速度値に演算を加えることによって、重力方向に対する加速度センサ６０の姿勢を算出することができる。
【００４２】
なお、加速度センサ６０としては、必要な操作信号の種類によっては、上下方向、左右方向および前後方向のうちいずれか２つの組合せの２軸でそれぞれ加速度を検出する２軸加速度センサが用いられてもかまわない。この実施例では、ユーザによるコントローラ１４に対する回転操作のような操作状態を加速度センサ６０で検出する。この実施例で実行されるゲームでは、後述する図５に示すように、ユーザはハウジング５０の長手方向（Ｚ軸方向）をおおよそ水平方向に向けた状態でコントローラ１４を把持し、コントローラ１４が当該Ｚ軸方向の周りを移動するように腕を動かす。したがって、この実施例で、もし２軸加速度センサを使用するのであれば、ＸおよびＹ軸方向の加速度を検出する２軸加速度センサが適用され得る。
【００４３】
加速度センサ６０が検出した加速度を示すデータは、通信部５８へ出力される。なお、加速度センサ６０は、典型的には静電容量式の加速度センサが用いられ得る。加速度センサ６０は、たとえば最大２００フレーム／秒程度のサンプリング周期を有する。
【００４４】
通信部５８は、マイクロコンピュータ（Micro Computer：マイコン）６２、メモリ６４、無線モジュール６６およびアンテナ６８を含む。マイコン６２は、処理の際にメモリ６４を記憶領域として用いながら、取得したデータを無線送信する無線モジュール６６を制御する。
【００４５】
操作部５２および加速度センサ６０からマイコン６２へ出力されたデータは、一時的にメモリ６４に格納される。ここで、通信部５８から受信ユニット１８への無線送信は所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。マイコン６２は、受信ユニット１８への送信タイミングが到来すると、メモリ６４に格納されているデータを操作データとして無線モジュール６６へ出力する。無線モジュール６６は、たとえばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ６８から放射する。つまり、操作データは、無線モジュール６６で微弱電波信号に変調されてコントローラ１４から送信される。微弱電波信号はゲーム装置１２側の受信ユニット１８で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置１２は操作データを取得することができる。ゲーム装置１２のＣＰＵ２６は、コントローラ１４から取得した操作データに基づいてゲーム処理を行う。
【００４６】
なお、図３に示したコントローラ１４の形状や、各操作スイッチ５２の形状、数および設置位置等は単なる一例に過ぎず、他の形状、数および設置位置に適宜変更され得る。
【００４７】
上記コントローラ１４を用いることによって、プレイヤは、各操作スイッチを押下する従来の一般的なゲーム操作に加えて、コントローラ１４自身の位置を動かしたり、コントローラ１４を回転させたりするというゲーム操作を行うことができる。
【００４８】
この実施例では、回転操作によってプレイされるゲームが実行される。回転操作の方法の概要が図５に示されている。この図５では、プレイヤの右手で把持されたコントローラ１４の回転操作の様子がプレイヤの右手側から見て描かれている。プレイヤは、コントローラ１４をほぼ水平状態にして、つまり、Ｚ軸方向がほぼ水平になるようにして把持している。そして、プレイヤは、コントローラ１４がＺ軸方向に平行な軸７０の周りを移動するように、つまり、軸７０の周りを回転運動するように、腕を回している。回転操作の軸７０は、Ｚ軸方向に平行であり、つまり、ＸおよびＹ軸に直交する方向を有する軸である。このように、回転操作とは、コントローラ１４が所定の軸７０の周りを移動（回転運動）するような操作のことをいう。
【００４９】
なお、人間が腕を動かすので、コントローラ１４が軸７０の周りに完全な円運動をしなくてもよいし、コントローラ１４のＺ軸方向は水平方向から多少傾いてもよい。また、この実施例では、後述するように、画面上で水平なハンドルを回すことを想定したゲームが行われるので、プレイヤはコントローラ１４をハンドルに見立てて水平状態にして把持しているだけである。他の実施例のゲームで、回転運動の軸７０がたとえば鉛直方向であるような設定が行われる場合には、コントローラ１４は理想的にはＺ軸方向が鉛直方向になるような姿勢で把持されて水平面内で回転される。要するに、回転操作の状態をＸおよびＹの２軸の加速度で検出するような設定がなされている場合には、Ｚ軸方向に平行な軸７０の周りを回転するように（つまり、ＸＹ平面内で回転するように）、コントローラ１４は操作される。
【００５０】
回転操作が行われると、コントローラ１４には回転軸７０に垂直でかつ回転軸７０から外側へ向かう方向に遠心力が働き、これによって加速度センサ６０で加速度が検出される。この実施例では、Ｚ軸方向を軸７０とした回転操作であるため、遠心力によってＸおよびＹ軸方向の加速度が検出される。この２軸の加速度には回転操作の操作状態が反映されているので、この実施例では、ＸおよびＹ軸の加速度を回転操作による入力と見なして、当該入力に基づいてゲーム処理を実行する。この実施例では、検出された２軸の加速度から回転操作状態をより的確に表す情報を抽出し、当該情報に基づいてゲーム処理を実行することによって、回転操作状態をより的確にゲーム処理に生かすようにしている。
【００５１】
図６に、回転操作によって検出される加速度データからゲーム処理に使用するための入力データを算出する方法の概要が示される。まず、検出された２軸の加速度を２次元座標系の点に変換する。つまり、この実施例では、Ｘ軸およびＹ軸加速度に回転操作の状態が反映されているので、Ｘ軸加速度をｘ軸の成分、Ｙ軸加速度をｙ軸の成分とするｘｙ座標系を定義し、検出される加速度を当該ｘｙ座標系の点Ｐ（ｘｐ，ｙｐ）に変換する。
【００５２】
なお、この実施例では、図５に示したように、コントローラ１４の長手方向が水平方向に平行にされた状態で回転操作が行われるので、検出されるＹ軸加速度には重力加速度（−１．０Ｇ）が加算されている。そのため、変換時にはＹ軸加速度値から−１．０Ｇ分を減算する。回転操作が行われるまでは、点（０，０）に変換される。
【００５３】
検出されるＸ軸加速度およびＹ軸加速度は、回転操作に応じて変化する。変換された点Ｐの履歴は、図６に示すように、原点Ｏから始まって原点Ｏの周りを回転するような軌道を描くこととなる。この変換された点の回転運動の軌跡は回転操作の状態を示していると見なせる。そこで、各点の角度を算出して、さらに角度の変化を算出する。
【００５４】
各点の角度とは、定点（ここでは原点）と各点とを結ぶ線と、基準方向（ここではｘ軸）とがなす角度を意味する。図６では、現フレーム（フレーム番号ｎ）における点（ｘｎ，ｙｎ）の角度はθｎで示され、前フレーム（フレーム番号ｎ−１）における点（ｘｎ−１，ｙｎ−１）の角度はθｎ−１で示される。したがって、角度変化Ｖｎは、θｎからθｎ−１を減算することによって算出される。角度変化Ｖｎは、点Ｐの一定時間（１フレーム）における移動量ないし回転量であり、つまり、回転の速度を示している。
【００５５】
また、所定の回転操作が行われているか否かを判定して、当該判定結果に応じて、角度変化を補正する。具体的には、コントローラ１４が停止しているか否かを判定し、コントローラ１４が停止されている場合には、角度変化はゼロに補正される。また、回転に急激な変化が発生したか否かを判定し、急激な変化の場合には、角度変化はゼロに補正される。急激な変化は、角度変化Ｖｎの差分によって示される。角度変化の差分は、速度の変化であり、つまり、加速度を示す。したがって、回転の速度に一定以上の変化が見られる場合には、コントローラ１４の回転操作に異常があったものと見なして、その角度変化のデータを無効にする。また、一定方向の回転であったか否かを判定し、一定方向の回転でない場合には、角度変化はゼロに補正される。現在から過去の所定時間内に、所定範囲外の角度変化が見られる場合、同じ方向への回転操作ではなくなったものと見なして、その角度変化のデータを無効にする。このようにすれば、単純に回転操作を行うだけではなく、同一方向へ回転操作を続けることによってゲームが進行されるので、さらにゲームの興趣性を高めることができる。
【００５６】
所定の回転操作ではないと判定される場合には、角度変化はゼロに設定される。この補正後の角度変化を、「停止を考慮した角度変化」と呼ぶものとし、変数Ｔを用いて示す。一方、所定の回転操作が行われていると判定される場合には、算出された角度変化Ｖｎがそのまま停止を考慮した角度変化Ｔとして設定される。
【００５７】
そして、停止を考慮した角度変化Ｔに基づいて、ゲーム処理に使用する入力データとしての補正角度Ｖを算出する。補正角度Ｖは、２段階の補正をかけることによって算出される。
【００５８】
まず、停止を考慮した角度変化Ｔを、次の数１に従って、補正された角度変化Ｔ´に補正する。
【００５９】
［数１］
Ｔ´＝Ｔ´＋（Ｔ−Ｔ´×定数）
ここで、右辺のＴ´は、前フレームで算出された、補正された角度変化Ｔ´である。定数には適切な値（１より小さい正数）が選ばれる。なお、Ｔ´の初期値は０である。
【００６０】
Ｔ´は、Ｔをなめらかに変化するように補正した角度変化である。この補正された角度変化Ｔ´に基づいて、補正角度Ｖを、次の数２に従って算出する。
【００６１】
［数２］
Ｖ＝Ｖ＋Ｔ´
ここで、右辺のＶは、前フレームで算出された補正角度Ｖである。
【００６２】
このように、現フレームで算出された角度変化Ｖｎそのものを使用せず、なめらかに変化するように補正した角度変化Ｔ´と前フレームにおいてゲーム処理に使用した補正角度Ｖとを基にして、現フレームにおける補正角度Ｖを算出するようにしている。このため、補正角度Ｖが滑らかに変化されることとなる。このような補正角度Ｖを用いることによって、回転操作の状態を適切かつ円滑にゲーム処理に反映させることができる。換言すれば、ゲーム処理における変化を、回転操作の状態に円滑に合わせていくことができ、たとえばオブジェクトの動きを滑らかに変化させることができる。
【００６３】
一例として、図７に示すような手動シュレッダゲームが実行される。このゲームでは、プレイヤは、回転操作によってシュレッダのハンドルオブジェクト８０を回転させ、紙オブジェクト８２を裁断する。制限時間が設けられていて、プレイヤは制限時間が経過するまでに、所定回数以上ハンドルオブジェクト８０を回転させることによって、所定長さの紙オブジェクト８２を裁断しなければならない。制限時間は、数字で表示されてもよいが、図７では、時間経過に応じて導火線の長さが短くなり制限時間で爆発する爆弾によって表示されている。爆弾が爆発する前に紙の裁断を完了すれば、ゲームクリアとなる。
【００６４】
操作対象としてのハンドルオブジェクト８０は、その長手方向が画面の左右方向となるようにして水平に設置されている。そのため、このゲームでは、図５に示したように、コントローラ１４は、そのＺ軸方向がプレイヤの左右方向になるようにして把持される。ゲームプレイの際には、プレイヤは、画面に向かって、ハンドルオブジェクト８０とコントローラ１４を平行にする。そして、プレイヤは、Ｚ軸方向に平行な軸７０の周りを回転するように、コントローラ１４を動かす。この回転操作に応じて、ハンドルオブジェクト８０が回転され、紙オブジェクト８２が上から下に移動して裁断される。このように、プレイヤは、画面に向かってコントローラ１４を回転させることによって、画面上の紙を裁断することができる。コントローラ１４の回転操作というこれまでに無い操作方法によって、プレイヤには新たな体感を与えることができる。
【００６５】
また、図８に示すように、ハンドルオブジェクト８０は補正角度Ｖに相当する分だけ仮想ゲーム空間内で回転され、紙オブジェクト８２も補正角度Ｖに相当する分の長さだけ裁断される。このように、プレイヤの回転操作の状態に応じてゲームオブジェクトの動作が制御され、その結果が画面に表示されるので、今までに無い興趣性を備えたゲームを実現でき、今までに無い操作感やゲーム体験をプレイヤに与えることができる。
【００６６】
図９にはメモリマップの一例が示される。メインメモリ２８はプログラム記憶領域９０およびデータ記憶領域９２を含む。なお、図９にはメモリマップの一部が示されており、ゲームの進行に必要な他のプログラムおよびデータも、光ディスク２０等から読み出されたりＣＰＵ２６によって生成されたり取得されたりして、メインメモリ２８に記憶される。図示は省略されるが、ゲーム画面を生成するプログラム、画面表示を制御するプログラム、サウンド出力を制御するプログラム、画像データおよびオブジェクトデータ等も記憶される。
【００６７】
プログラム記憶領域９０の記憶領域９４には操作データ取得プログラムが記憶されている。このプログラムによって、コントローラ１４からの操作データが、受信ユニット１８およびコントローラＩ／Ｆ３８を介してメインメモリ２８に取得される。上述のように、コントローラ１４は、ゲーム装置１２における１フレーム（たとえば１／６０秒）よりも短い周期で操作データを送信してくる。また、コントローラ１４の加速度センサ６０のサンプリング周期は、ゲーム装置１２における１フレームよりも短い周期（たとえば１／２００秒）に設定されており、コントローラ１４の１回の送信データには複数の検出タイミングにおける加速度値が含まれる。したがって、この実施例では、ゲーム装置１２は１フレームに複数個の操作情報（加速度値等）を含む操作データを取得することができる。ＣＰＵ２６は、複数個の操作情報を必要に応じて利用してゲーム処理を実行することができる。
【００６８】
記憶領域９６には角度算出プログラムが記憶されている。このプログラムによって、加速度に基づいて角度が算出される。具体的には、上述の図６に示したように、Ｘ軸加速度およびＹ軸加速度が２次元座標系の点に変換され、当該変換点と原点とを結ぶ線が基準方向（ｘ軸）となす角度θが算出される。ゲーム処理は１フレームごとに行われるので、そのフレームを代表する角度θを算出する。また、上述のように、ゲーム装置１２の１フレームに複数個の加速度値が検出されて取得されるので、各検出加速度ごとに角度θを算出してゲーム処理に利用することもできる。第ｎフレームの角度θｎは、たとえば、第ｎフレームに取得された複数の加速度値から算出される各角度の平均値である。あるいは最大値もしくは最小値が採用されてもよい。
【００６９】
記憶領域９８には角度変化算出プログラムが記憶されている。現フレームの角度θと前フレームの角度θｎ−１との差分をとることによって、角度変化Ｖｎが算出される。
【００７０】
記憶領域１００には停止判定プログラムが記憶される。このプログラムによって、コントローラ１４の回転操作が停止されているか否かが判定される。たとえば、過去所定数のサンプリングデータを後述する操作データバッファ１１４から参照し、Ｘ軸加速度、Ｙ軸加速度およびＺ軸加速度の絶対値のそれぞれが所定の範囲以内であれば、停止と判定する。この実施例では、たとえば過去８回の検出タイミングにおける加速度値を、つまり、現在から過去の２−３フレームの間に取得された加速度値を参照するようにしている。
【００７１】
記憶領域１０２には急変化判定プログラムが記憶されている。このプログラムによって、回転操作に急激な変化があったか否かが判定される。具体的には、上述したように、現フレームで算出された角度変化Ｖｎと前フレームで算出された角度変化Ｖｎ−１との差分Ａｎを算出し、当該差分Ａｎが所定の範囲外であれば、急激な変化が生じているものと判定する。
【００７２】
記憶領域１０４には回転方向判定プログラムが記憶されている。このプログラムによって回転操作の回転方向が判定される。具体的には、過去所定回数連続して同じ方向に回転しているか否かが判定され、同じ方向に回転していると判定される場合には、当該方向に回転しているものと見なす。同じ方向に回転していると見なすための条件は、或る検出タイミングにおける角度θとその直前の検出タイミングにおける角度θとの差分が所定の範囲内にあることである。この実施例では、過去８回の検出タイミングにおける加速度値（現在から過去の２−３フレーム分に取得された加速度値）を変換して算出した角度のそれぞれについて、直前の検出タイミングにおける角度との差分を算出し、すべての差分が所定の範囲内であるか否かが判定される。一例として、差分が０から４５度の範囲内であれば、図６において反時計回りの回転と判断され、差分が−４５から０度の範囲内であれば、図６において時計回りの回転と判断される。
【００７３】
記憶領域１０６には角度補正プログラムが記憶されている。このプログラムによってゲーム処理に使用する補正角度Ｖが算出される。具体的には、上述の図６に示したように、まず、角度変化算出プログラムによって算出された角度変化Ｖｎから、停止を考慮した角度変化Ｔが算出される。つまり、所定の回転操作が行われている場合には、ＴはＶｎであり、その他の場合には、Ｔは０である。所定の回転操作である条件は、この実施例では、コントローラ１４が停止してないこと、急激な変化が起こっていないこと、回転方向が変化していないことである。また、この実施例では、回転方向が所定の方向であることも条件として設定される。図７および図８に示したように、シュレッダのハンドルオブジェクト８０は、画面の奥行き側で下向きに回転される必要があり、これは、図６で言えば、時計回りの回転である。さらに、上述の数１に従って、補正された角度変化Ｔ´が算出される。そして、上述の数２に従って、補正された角度変化Ｔと前フレームで算出された補正角度Ｖに基づいて、補正角度Ｖが算出される。なお、Ｖの初期値は０である。
【００７４】
記憶領域１０８にはオブジェクト制御プログラムが記憶されている。このプログラムによって、補正角度Ｖに基づいてオブジェクトの動作が制御される。この実施例では、上述の図８に示したように、ハンドルオブジェクト８０の回転が補正角度Ｖに応じて制御され、紙オブジェクト８２の移動および裁断も補正角度Ｖに応じて制御される。
【００７５】
記憶領域１１０には回転回数判定プログラムが記憶されている。このプログラムによって、回転操作の回転回数が所定の閾値を超えたか否かが判定される。回転回数は、加速度値を変換した点の回転の回数でもあり、したがって、補正角度Ｖの累計が３６０度を超えるごとに１ずつカウントすることによって回転回数が算出される。
【００７６】
記憶領域１１２には制限時間判定プログラムが記憶されている。このプログラムによって、ゲーム開始からの経過時間が所定の制限時間内であるか否かが判定される。上述のように、この実施例では、制限時間内に紙オブジェクト８２の裁断を完了すること、つまり、制限時間内に所定回数だけ回転操作を行うことがゲームクリア条件であり、回転回数判定プログラムおよび制限時間判定プログラムによってゲームクリア条件が満足されたか否かが判定されている。
【００７７】
データ記憶領域９２の記憶領域１１４は操作データバッファであり、コントローラ１４から送信される操作データが記憶される。操作データは、加速度センサ６０で検出されたＸ、Ｙ、Ｚ軸の加速度値を示す加速度データを含む。なお、図９では省略されるが、操作部５２の各ボタンの操作の有無を示すボタン操作データも含まれる。上述のように、ゲーム装置１２における１フレームの間に、コントローラ１４から複数個の操作情報を含む操作データを少なくとも１回受信するので、受信された操作データが順次この記憶領域９４に蓄積される。たとえば、コントローラ１４における６０個分のサンプリングデータが蓄積される。
【００７８】
記憶領域１１６には座標履歴が記憶されている。上述の角度算出プログラムによって、操作データバッファ１１４から取得されたＸ軸加速度値およびＹ軸加速度値が２次元座標系の点に変換されるので、変換された点の座標が記憶される。たとえば６０個のサンプリングデータに相当する数の点の履歴が記憶される。
【００７９】
記憶領域１１８には角度履歴が記憶されている。上述の角度算出プログラムによって算出された点の角度θの履歴が記憶される。各フレームごとに、当該フレームを代表する１つの角度θｎが記憶される。また、各フレームで取得される複数の点のそれぞれの角度も記憶されてよい。
【００８０】
記憶領域１２０には角度変化履歴が記憶される。上述の角度変化算出プログラムによって算出された角度変化Ｖｎの履歴が記憶される。現フレームの角度変化Ｖｎは、現フレーム（第ｎフレーム）の角度θｎと前フレーム（第ｎ−１フレーム）の角度θｎ−１との差分によって算出される。
【００８１】
記憶領域１２２には補正角度履歴が記憶される。上述の補正角度算出プログラムによって算出された補正角度Ｖの履歴が記憶される。現フレームの補正角度Ｖを算出する際には、この記憶領域１２２に記憶されている前フレームの補正角度Ｖが参照される。
【００８２】
記憶領域１２４には回転回数カウンタが記憶される。上述のように、補正角度Ｖの累計が３６０度を超えるごとに、回転回数に１だけ加算される。
【００８３】
記憶領域１２６には経過時間カウンタが記憶される。経過時間はたとえば経過フレーム数であり、１フレームごとに経過時間に１だけ加算される。
【００８４】
図１０および図１１にはゲーム装置１２の動作の一例が示される。まず、ステップＳ１で、ＣＰＵ２６は初期設定を行う。具体的には、メインメモリ２８がクリアされ、必要なプログラムおよびデータが光ディスク２０からメインメモリ２８に読み出される。また、各種変数やフラグに初期値が設定される。
【００８５】
続くステップＳ３からステップＳ４１の処理は、ステップＳ３９またはＳ４１でゲームオーバまたはゲームクリアが判断されるまで、１フレームごとに実行される。ＣＰＵ２６は、ステップＳ３で、コントローラＩ／Ｆ３８を介して操作データを操作データバッファ１１４に取得し、操作データから現フレームにおける加速度データを取得する。
【００８６】
続いて、ステップＳ５で、ＣＰＵ２６は、Ｘ軸加速度およびＹ軸加速度をそれぞれｘ成分およびｙ成分とするｘｙ座標系の点に変換する（図６参照）。１フレームあたり複数個の加速度データが取得されるので、変換によって複数の点が得られる。なお、この実施例では、加速度センサ６０は常に重力加速度を検出し、また、図５に示すように、Y軸正方向が鉛直上方向となる状態でコントローラ１４は回転操作されることが前提であるので、検出されるＹ軸加速度に１．０Ｇを加算する。変換された各点の座標は、座標履歴記憶領域１１６に記憶される。
【００８７】
ステップＳ７では、ＣＰＵ２６は変換された点の角度θｎを算出する。上述のように、１フレームあたり複数の点に変換されるので、各点の角度θが算出され、また、現フレームを代表する角度θｎが、たとえば平均、最大または最小を取ることによって算出される。算出された角度は角度履歴記憶領域１１８に記憶される。
【００８８】
そして、ステップＳ９では、コントローラ１４が停止しているか否かを判定する。たとえば、過去８個分の加速度情報を操作データバッファ１１４から読み出し、Ｘ、ＹおよびＺ軸加速度の絶対値のすべてが、それぞれの所定の範囲内の値であるか否かを判定する。ステップＳ９で“ＹＥＳ”の場合、コントローラ１４が停止しており、所定の回転操作が行われていないと見なせるので、処理は図１１のステップＳ２７に進む。
【００８９】
一方、ステップＳ９で“ＮＯ”の場合には、ＣＰＵ２６は、ステップＳ１１で角度変化Ｖｎを、現フレームにおける角度θｎと前フレームにおける角度θｎ−１の差分を取ることによって算出する。算出した角度変化Ｖｎは角度変化履歴記憶領域１２０に記憶される。
【００９０】
続くステップＳ１３で、ＣＰＵ２６は角度変化Ｖｎの差分Ａｎを、現フレームにおける角度変化Ｖｎと前フレームにおける角度変化Ｖｎ−１とに基づいて算出する。
【００９１】
そして、ステップＳ１５で、ＣＰＵ２６は、差分Ａｎは所定の範囲内であるか否かを判定する。つまり、ここでは、回転操作において急激な変化が生じていないことを確認している。ステップＳ１５で“ＮＯ”の場合、つまり、急激な変化が生じていると見なせる場合には、所定の回転操作が行われていないので、処理は図１１のステップＳ２７に進む。
【００９２】
一方、ステップＳ１５で“ＹＥＳ”であれば、続くステップＳ１７およびＳ１９の処理で回転方向が判定される。ステップＳ１７では、ＣＰＵ２６は、現在から過去の連続する所定個数の角度（たとえば８個分のサンプリング時に対応する角度）のそれぞれについて、直前のサンプリング時に対応する角度との差分を算出する。続いて、ステップＳ１９で、ＣＰＵ２６はすべての差分が所定の範囲内であるか否かを判断する。つまり、過去の所定時間の間継続的に同じ方向の回転が行われているか否かを判定する。ステップＳ１９で“ＮＯ”の場合、一定方向の回転操作が行われていないと見なせるので、処理は図１１のステップＳ２７に進む。
【００９３】
一方、ステップＳ１９で“ＹＥＳ”の場合、つまり、同じ方向の回転である場合には、ＣＰＵ２６は、ステップＳ２１で差分の示す方向を現フレームの回転方向に設定する。差分の符号が正であれば、回転方向は図６で反時計回りであり、差分の符号が負であれば、図６で時計回りである。ステップＳ２１を終了すると、処理は図１１のステップＳ２３に進む。
【００９４】
図１１のステップＳ２３では、ＣＰＵ２６は、回転方向は所定方向であるか否かを判断する。この実施例の手動シュレッダゲームでは、所定方向の回転のみ許可されているので、この判定が行われる。ステップＳ２３で“ＹＥＳ”の場合、処理はステップＳ２５へ進み、“ＮＯ”の場合にはステップＳ２７へ進む。なお、別のゲームでは、両方向の回転を許容するようにしてもよく、つまり、ステップＳ２３の判定を行わないようにしてもよい。
【００９５】
ステップＳ２５では、ＣＰＵ２６は、停止を考慮した角度変化を示す変数Ｔに、現フレームで算出された角度変化Ｖｎを設定する。これによって、現フレームのゲーム処理には、現フレームで取得された回転操作による角度変化が反映されることとなる。
【００９６】
一方、ステップＳ２７では、ＣＰＵ２６は、停止を考慮した角度変化を示す変数Ｔにゼロを設定する。つまり、所定の回転操作が行われていないと見なせる場合には、現フレームのゲーム処理には、現フレームで取得された回転操作による角度変化は考慮されない。
【００９７】
続いて、ステップＳ２９では、ＣＰＵ２６は補正角度Ｖを算出する。具体的には、まず、補正された角度変化Ｔ´を、上述の数１に従って、停止を考慮した角度変化Ｔと前フレームの補正された角度変化Ｔ´とに基づいて算出する。そして、補正角度Ｖを、補正された角度変化Ｔ´と前フレームで算出された補正角度Ｖに基づいて算出する。補正角度Ｖは上述の数２に従って算出される。算出された補正角度Ｖは、補正された角度変化Ｔ´とともに補正角度履歴記憶領域１２２に記憶される。
【００９８】
この補正角度Ｖに応じたゲーム処理が実行される。すなわち、ステップＳ３１では、ＣＰＵ２６は、図８に示したように、シュレッダのハンドルオブジェクト８０と紙オブジェクト８２をそれぞれＶ相当分だけ動かす。
【００９９】
また、ステップＳ３３で、ＣＰＵ２６は回転回数を算出し、回転回数カウンタ記憶領域１２４に記憶する。具体的には、補正角度Ｖを累計し、３６０度ごとに回転回数に１を加算する。
【０１００】
さらに、ステップＳ３５では、ＣＰＵ２６は経過時間をカウントし、経過時間カウンタ記憶領域１２６に記憶する。たとえばゲーム開始から経過したフレーム数が記憶される。なお、この経過時間カウンタ記憶領域１２６の情報に基づいて、経過時間ないし残り時間を示す画像（図７の爆弾の導火線）が生成されることとなる。
【０１０１】
そして、ステップＳ３７で、ＣＰＵ２６は、ＧＰＵ３２を用いてゲーム処理結果が反映されたゲーム画像を生成して、図７に示すような画面をモニタ１６に表示する。
【０１０２】
続いて、ステップＳ３９で、ＣＰＵ２６は経過時間は制限時間内であるか否かを判定する。ステップＳ３９で“ＹＥＳ”の場合、ＣＰＵ２６は、さらにステップＳ４１で回転回数が所定の閾値を超えたか否かを判定する。ステップＳ４１で“ＮＯ”の場合、つまり、ゲームクリア条件が満足されていない場合には、ゲームを続行すべく、処理は図１０のステップＳ３に戻る。
【０１０３】
一方、ステップＳ４１で“ＹＥＳ”の場合、つまり、ゲームクリア条件が満足された場合には、ＣＰＵ２６は、ステップＳ４３でゲームクリア処理を実行して、たとえばゲームクリアを示す画面を表示する。また、ステップＳ３９で“ＮＯ”の場合、つまり、ゲームオーバ条件が満足された場合には、ＣＰＵ２６は、ステップＳ４５でゲームオーバ処理を実行して、たとえばゲームオーバを示す画面を表示する。ステップＳ４３またはＳ４５を終了すると、このゲーム処理を終了する。
【０１０４】
この実施例によれば、コントローラ１４に設けられた加速度センサ６０によって検出される２軸の加速度を２次元座標系の点に変換し、当該点の角度の変化から補正角度を算出し、当該補正角度に基づいてゲーム処理が実行されるようにした。つまり、検出される２軸加速度を成分とする点の回転する角度を算出することによって、コントローラ１４の回転操作の状態を検出し、ゲーム処理に使用するようにした。したがって、コントローラ１４の回転操作に応じたゲーム処理を実行できるので、今までに無い興趣性を備えたゲームを実現できる。また、コントローラ１４を回転させるという今までに無い操作方法によってゲームをプレイできるので、プレイヤに新しい体感を与えることができる。
【０１０５】
なお、上述の実施例では、図５に示したように、コントローラ１４（加速度センサ６０）のＺ軸方向に平行な軸７０の周りに移動する回転操作によってプレイされるゲームを実行するようにしていた。そして、当該回転操作によって加速度センサ６０のＸおよびＹ軸方向に働く遠心力に由来する加速度を検出するようにしていた。しかしながら、回転操作方法はこれに限定されるものではない。たとえば、Ｙ軸方向に平行な軸の周りを移動するような回転操作が要求されるゲームを実行するようにしてもよい。この場合には、ＸＺ平面内の回転操作であるので、ＸおよびＺ軸方向の加速度を取得してゲーム処理に使用する。あるいは、Ｘ軸方向に平行な軸周りを移動するような回転操作によってプレイされるゲームであってもよい。この場合には、ＹＺ平面内の回転であるため、ＹおよびＺ軸方向の加速度を取得してゲーム処理を実行する。
【図面の簡単な説明】
【０１０６】
【図１】この発明の一実施例のゲームシステムの一例を示す外観図である。
【図２】図１のゲーム装置の電気的構成の一例を示すブロック図である。
【図３】図１のコントローラの一例を示す図解図であり、（Ａ）は後方上側から見た斜視図であり、（Ｂ）は後方下側から見た斜視図である。
【図４】図１のコントローラの電気的構成の一例を示すブロック図である。
【図５】コントローラの回転操作の方法を示す図解図である。
【図６】回転操作によって検出される加速度データからゲーム処理に使用するための入力データを算出する方法の概要を示す図解図である。
【図７】ゲーム画面の一例を示す図解図である。
【図８】補正角度に応じて制御されるオブジェクトの一例を示す図解図である。
【図９】メモリマップの一例を示す図解図である。
【図１０】ゲーム装置の動作の一例の一部を示すフロー図である。
【図１１】図１０の続きを示すフロー図である。
【符号の説明】
【０１０７】
１０  …ゲームシステム
１２  …ゲーム装置
１４  …コントローラ
１６  …モニタ
１８  …受信ユニット
２０  …光ディスク
２６  …ＣＰＵ
２８  …メインメモリ
５８  …通信部
６０  …加速度センサ
【図１】
2007296219.tif 000003
【図２】
2007296219.tif 000004
【図３】
2007296219.tif 000005
【図４】
2007296219.tif 000006
【図５】
2007296219.tif 000007
【図６】
2007296219.tif 000008
【図７】
2007296219.tif 000009
【図８】
2007296219.tif 000010
【図９】
2007296219.tif 000011
【図１０】
2007296219.tif 000012
【図１１】
2007296219.tif 000013