(57)【特許請求の範囲】
【請求項１】
入力装置自体の動きに応じてゲーム処理を行うゲーム装置であって、
前記入力装置自体の動き量および動きの変化量の少なくとも一方と正の相関関係を有する第１出力データ及び第２出力データを取得する出力データ取得手段と、
前記第１出力データが第１の閾値以上であるかを判定し、第１の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第１の閾値未満であれば前記第１出力データ、及び第２出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する移動座標決定手段と、
前記仮想ゲーム空間で前記オブジェクトを前記決定された移動座標へ移動させるオブジェクト移動手段と、
前記オブジェクト移動手段の結果に応じて、前記仮想ゲーム空間を表示装置に表示させる表示制御手段とを備える、ゲーム装置。
【請求項２】
前記移動座標決定手段は、前記第１出力データが前記第１の閾値未満の時は、前記第２出力データに基づいた前記入力装置自体の動く方向に対応した前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項１に記載のゲーム装置。
【請求項３】
前記ゲーム装置は、前記第１出力データ、及び第２出力データを用いて前記入力装置自体の傾きを算出する傾き算出手段を更に備え、
前記移動座標決定手段は、前記第１出力データが前記第１の閾値未満の時は、前記傾き算出手段で算出された前記傾きに基づいて前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項１に記載のゲーム装置。
【請求項４】
前記移動座標決定手段は、前記第１出力データが第１の閾値以上であるとき、前記第２出力データが第２の閾値以上であるか否かを更に判定し、第２の閾値以上であれば前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第２の閾値未満であれば前記第１出力データ、及び第２出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項１に記載のゲーム装置。
【請求項５】
前記ゲーム装置は、単位時間毎の第２出力データの値を累積する出力データ累積手段を更に備え、
前記移動座標決定手段は、前記第１出力データが第１の閾値以上であるとき、前記累積された第２出力データの値が第３の閾値以上であるかを前記単位時間毎に判定し、第３の閾値以上であれば、前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第３の閾値未満であれば、前記第１出力データ、及び第２出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項１に記載のゲーム装置。
【請求項６】
前記出力データ累積手段は、前記第１出力データの値が前記第１の閾値以上である状態が所定時間以上継続しているときにのみ前記第２出力データの値の累積を開始する、請求項５に記載のゲーム装置。
【請求項７】
前記ゲーム装置は、前記出力データ累積手段が前記第２出力データの値の累積を開始した後、前記第１出力データが第１の閾値以下になったとき、前記第２出力データの累積した値を初期化する累積値初期化手段を更に備える、請求項６に記載のゲーム装置。
【請求項８】
前記ゲーム装置は、プレイヤの利き腕についての情報である利き腕情報を設定して記憶する利き腕情報記憶手段を更に備え、
前記出力データ累積手段は、前記利き腕情報に応じて、前記入力装置自体の動きの方向別に前記第２出力データの値の累積を開始する、請求項５に記載のゲーム装置。
【請求項９】
前記移動座標決定手段は、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、前記第１出力データが第１の閾値以上であるかどうかに関わらず前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項１に記載のゲーム装置。
【請求項１０】
前記入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えており、
前記第１出力データ、及び第２出力データは、前記入力装置自体の動きに応じて前記加速度センサから出力される加速度データであることを特徴とする、請求項１に記載のゲーム装置。
【請求項１１】
前記ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理であり、
前記オブジェクトは、前記プレイヤキャラクタが所持するアイテムオブジェクトであり、
前記所定の経路は、前記プレイヤキャラクタが前記アイテムをスイングする一連の動作を表示させるための経路である、請求項１に記載のゲーム装置。
【請求項１２】
入力装置自体の動きに応じてゲーム処理を行うゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記入力装置自体の動き量および動きの変化量の少なくとも一方と正の相関関係を有する第１出力データ及び第２出力データを取得する出力データ取得ステップと、
前記第１出力データが第１の閾値以上であるかを判定し、第１の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第１の閾値未満であれば前記第１出力データ、及び第２出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する移動座標決定ステップと、
前記仮想ゲーム空間で前記オブジェクトを前記決定された移動座標へ移動させるオブジェクト移動ステップと、
前記オブジェクト移動ステップの処理結果に応じて、前記仮想ゲーム空間を表示装置に表示させる表示制御ステップとを前記コンピュータに実行させる、ゲームプログラム。
【請求項１３】
前記移動座標決定ステップは、前記第１出力データが前記第１の閾値未満の時は、前記第２出力データに基づいた前記入力装置自体の動く方向に対応した前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項１２に記載のゲームプログラム。
【請求項１４】
前記ゲームプログラムは、前記第１出力データ、及び第２出力データを用いて前記入力装置自体の傾きを算出する傾き算出ステップを更に実行させ、
前記移動座標決定ステップは、前記第１出力データが前記第１の閾値未満の時は、前記傾き算出手段で算出された前記傾きに基づいて前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する、請求項１２に記載のゲームプログラム。
【請求項１５】
前記移動座標決定ステップは、前記第１出力データが第１の閾値以上であるとき、前記第２出力データが第２の閾値以上であるか否かを更に判定し、第２の閾値以上であれば前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第２の閾値未満であれば前記第１出力データ、及び第２出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項１２に記載のゲームプログラム。
【請求項１６】
前記ゲームプログラムは、単位時間毎の第２出力データの値を累積する出力データ累積ステップを更に実行させ、
前記移動座標決定ステップは、前記第１出力データが第１の閾値以上であるとき、前記累積された第２出力データの値が第３の閾値以上であるかを前記単位時間毎に判定し、第３の閾値以上であれば、前記所定の経路に沿って予め決められた変化量で前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定し、第３の閾値未満であれば、前記第１出力データ、及び第２出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項１２に記載のゲームプログラム。
【請求項１７】
前記出力データ累積ステップは、前記第１出力データの値が前記第１の閾値以上である状態が所定時間以上継続しているときにのみ前記第２出力データの値の累積を開始する、請求項１６に記載のゲームプログラム。
【請求項１８】
前記ゲームプログラムは、前記出力データ累積ステップが前記第２出力データの値の累積を開始した後、前記第１出力データが第１の閾値以下になったとき、前記第２出力データの累積した値を初期化する累積値初期化ステップを更に実行させる、請求項１７に記載のゲームプログラム。
【請求項１９】
前記ゲームプログラムは、プレイヤの利き腕についての情報である利き腕情報を設定してメモリに記憶する利き腕情報記憶ステップを更に実行させ、
前記出力データ累積ステップは、前記利き腕情報に応じて、前記入力装置自体の動きの方向別に前記第２出力データの値の累積を開始する、請求項１６に記載のゲーム装置。
【請求項２０】
前記移動座標決定ステップは、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、前記第１出力データが第１の閾値以上であるかどうかに関わらず前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する、請求項１２に記載のゲームプログラム。
【請求項２１】
前記入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えており、
前記第１出力データ、及び第２出力データは、前記入力装置自体の動きに応じて前記加速度センサから出力される加速度データであることを特徴とする、請求項１２に記載のゲームプログラム。
【請求項２２】
前記ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理であり、
前記オブジェクトは、前記プレイヤキャラクタが所持するアイテムオブジェクトであり、
前記所定の経路は、前記プレイヤキャラクタが前記アイテムをスイングする一連の動作を表示させるための経路である、請求項１２に記載のゲームプログラム。
【請求項２３】
入力装置自体の動きに応じてゲーム処理を行うゲームシステムであって、
前記入力装置自体の動き量および動きの変化量の少なくとも一方と正の相関関係を有する第１出力データ及び第２出力データを取得する出力データ取得手段と、
前記第１出力データが第１の閾値以上であるかを判定し、第１の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第１の閾値未満であれば前記第１出力データ、及び第２出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する移動座標決定手段と、
前記仮想ゲーム空間で前記オブジェクトを前記決定された移動座標へ移動させるオブジェクト移動手段と、
前記オブジェクト移動手段の結果に応じて、前記仮想ゲーム空間を表示装置に表示させる表示制御手段とを備える、ゲームシステム。
【請求項２４】
入力装置自体の動きに応じてゲーム処理を行うゲーム装置で用いられるゲーム制御方法であって、
前記入力装置自体の動き量および動きの変化量の少なくとも一方と正の相関関係を有する第１出力データ及び第２出力データを取得する出力データ取得ステップと、
前記第１出力データが第１の閾値以上であるかを判定し、第１の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第１の閾値未満であれば前記第１出力データ、及び第２出力データを用い、前記所定の経路に沿って前記オブジェクトを前記仮想ゲーム空間で次に移動させる座標を決定する移動座標決定ステップと、
前記仮想ゲーム空間で前記オブジェクトを前記決定された移動座標へ移動させるオブジェクト移動ステップと、
前記オブジェクト移動ステップの結果に応じて、前記仮想ゲーム空間を表示装置に表示させる表示制御ステップとを備える、ゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム装置およびゲームプログラムに関し、より特定的には、入力装置自体の動きに応じてゲーム処理を行うゲーム装置、ゲームプログラム、ゲームシステムおよびゲーム制御方法に関する。
【背景技術】
【０００２】
従来から、ゴルフクラブや野球のバット等のような棒状物を振るゲーム（ゴルフゲームや野球ゲーム）がある。これらのゲームにおいては、棒状物を振る動作を入力するためのコントローラに、スイッチを利用したボタンやレバーを用いていた。また、これとは別に、棒状の形状をしたコントローラ（入力制御装置）も開示されている（例えば特許文献１）。特許文献１に示すコントローラは、加速度センサを備えている。そして、プレイヤは、この棒状のコントローラを手に持ち、実際に振る動作を行う。例えば、剣劇を体感できる３Ｄゲームのような場合は、当該棒状のコントローラを刀剣に見立て、プレイヤがコントローラで刀剣を振るような動作を行う。すると、加速度センサから出力されるデータに基づいて、ゲーム空間内における刀剣の移動データが決められ、プレイヤの動作に沿ってプレイヤオブジェクトが刀剣を振る動作がゲーム画像として表示されていた。
【特許文献１】特開２０００−３０８７５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述したような上記特許文献１に開示された入力制御装置においては、以下に示す問題点があった。例えば、上記棒状のコントローラを激しく振った場合などは、その動きの早さに加速度センサの検出速度が追いつかず、その結果、プレイヤが実際に行った操作とは異なる動きの移動データが求められることがあった。そのため、プレイヤが意図した動作が表現されずに、利用者の動作とはかけ離れた動作が表示されたり、全く反映されていない動作が表示されたりすることがあり、ゲームの興趣を低下させていた。
【０００４】
それゆえに、本発明の目的は、加速度センサ等の速度を検出できる入力装置を用いたゲーム装置において、入力装置の動きが激しい場合であっても、プレイヤの意図に沿った動作を表示できるゲーム装置、ゲームプログラム、ゲームシステムおよびゲーム制御方法を提供することである。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００６】
第１の発明は、入力装置自体の動きに応じてゲーム処理を行うゲーム装置であって、出力データ取得手段（６，３６）と、移動座標決定手段（３０）と、オブジェクト移動手段（３０）と、表示制御手段（３０、３７）とを備える。出力データ取得手段は、前記入力装置自体の動き量および動きの変化量の少なくとも一方と正の相関関係を有する第１出力データ及び第２出力データを取得する。移動座標決定手段は、第１出力データが第１の閾値以上であるかを判定し、第１の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第１の閾値未満であれば第１出力データ、及び第２出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。オブジェクト移動手段は、仮想ゲーム空間でオブジェクトを決定された移動座標へ移動させる。表示制御手段は、オブジェクト移動手段の結果に応じて、仮想ゲーム空間を表示装置に表示させる。ここで、第１出力データとは、例えば、入力装置自体がＺ軸方向へ向かう動きについてのデータであり、第２出力データとは、例えば、Ｘ軸方向に向かう動きのデータ等が考えられる。
【０００７】
第２の発明は、第１の発明において、移動座標決定手段は、前記第１出力データが前記第１の閾値未満の時は、前記第２出力データに基づいた前記入力装置自体の動く方向に対応した前記仮想ゲーム空間の前記所定の経路に沿った方向に前記オブジェクトを移動させる座標を決定する。
【０００８】
第３の発明は、第１の発明において、ゲーム装置は、前記第１出力データ、及び第２出力データを用いて前記入力装置自体の傾きを算出する傾き算出手段（３０）を更に備える。また、移動経路決定手段は、第１出力データが第１の閾値未満の時は、傾き算出手段で算出された傾きに基づいて仮想ゲーム空間の所定の経路に沿った方向にオブジェクトを移動させる座標を決定する。
【０００９】
第４の発明は、第１の発明において、前記移動座標決定手段は、第１出力データが第１の閾値以上であるときに、第２出力データが第２の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第２の閾値未満であれば第１出力データ、及び第２出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【００１０】
第５の発明は、第１の発明において、ゲーム装置は、単位時間毎の第２出力データの値を累積する出力データ累積手段（３０）を更に備える。また、移動座標決定手段は、累積された第２出力データの値が第３の閾値以上であるかを単位時間毎に判定し、第３の閾値以上であれば、所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第３の閾値未満であれば、第１出力データ、及び第２出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【００１１】
第６の発明は、第５の発明において、出力データ累積手段は、第１出力データの値が第１の閾値以上である状態が所定時間以上継続しているときにのみ第２出力データの値の累積を開始する。
【００１２】
第７の発明は、第６の発明において、ゲーム装置は、出力データ累積手段が第２出力データの値の累積を開始した後、第１出力データが第１の閾値以下になったとき、第２出力データの累積した値を初期化する累積値初期化手段（３０）を更に備える。
【００１３】
第８の発明は、第５の発明において、ゲーム装置は、プレイヤの利き腕についての情報である利き腕情報を設定して記憶する利き腕情報記憶手段を更に備える。また、出力データ累積手段は、利き腕情報に応じて、入力装置自体の動きの方向別に第２出力データの値の累積を開始する。
【００１４】
第９の発明は、第１の発明において、移動座標決定手段は、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、第１出力データが第１の閾値以上であるかどうかに関わらず所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【００１５】
第１０の発明は、第１の発明において、入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えている。また、第１出力データ、及び第２出力データは、入力装置自体の動きに応じて加速度センサから出力される加速度データである。
【００１６】
第１１の発明は、第１の発明において、ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理である。また、オブジェクトは、プレイヤキャラクタが所持するアイテムオブジェクトである。また、所定の経路は、プレイヤキャラクタがアイテムをスイングする一連の動作を表示させるための情報である。
【００１７】
第１２の発明は、入力装置自体の動きに応じてゲーム処理を行うゲーム装置のコンピュータで実行されるゲームプログラムであって、出力データ取得ステップ（Ｓ１１）と、移動座標決定ステップ（Ｓ２）と、オブジェクト移動ステップ（Ｓ３２、Ｓ３６）と、表示制御ステップ（Ｓ３２、Ｓ３６）とをコンピュータに実行させる。出力データ取得ステップは、入力装置自体の動き量および動きの変化量の少なくとも一方と正の相関関係を有する第１出力データ及び第２出力データを取得する。移動座標決定ステップは、第１出力データが第１の閾値以上であるかを判定し、第１の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第１の閾値未満であれば第１出力データ、及び第２出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。オブジェクト移動ステップは、仮想ゲーム空間でオブジェクトを決定された移動座標へ移動させる。表示制御ステップは、オブジェクト移動ステップの処理結果に応じて、仮想ゲーム空間を表示装置に表示させる。
【００１８】
第１３の発明は、第１２の発明において、第１出力データが第１の閾値未満の時は、第２出力データに基づいた入力装置自体の動く方向に対応した仮想ゲーム空間の所定の経路に沿った方向にオブジェクトを移動させる座標を決定する。
【００１９】
第１４の発明は、第１２の発明において、ゲームプログラムは、第１出力データ、及び第２出力データを用いて入力装置自体の傾きを算出する傾き算出ステップ（Ｓ３５）を更に実行させる。また、移動座標決定ステップは、第１出力データが第１の閾値未満の時は、傾き算出手段で算出された傾きに基づいて仮想ゲーム空間の所定の経路に沿った方向にオブジェクトを移動させる座標を決定する。
【００２０】
第１５の発明は、第１２の発明において、移動座標決定ステップは、第１出力データが第１の閾値以上であるときに、第２出力データが第２の閾値以上であれば所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第２の閾値未満であれば第１出力データ、及び第２出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【００２１】
第１６の発明は、第１２の発明において、ゲームプログラムは、単位時間毎の第２出力データの値を累積する出力データ累積ステップを更に実行させる。また、移動座標決定ステップは、累積された第２出力データの値が第３の閾値以上であるかを単位時間毎に判定し、第３の閾値以上であれば、所定の経路に沿って予め決められた変化量でオブジェクトを仮想ゲーム空間で次に移動させる座標を決定し、第３の閾値未満であれば、第１出力データ、及び第２出力データを用い、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【００２２】
第１７の発明は、第１６の発明において、出力データ累積ステップは、第１出力データの値が第１の閾値以上である状態が所定時間以上継続しているときにのみ第２出力データの値の累積を開始する。
【００２３】
第１８の発明は、第１７の発明において、ゲームプログラムは、出力データ累積ステップが第２出力データの値の累積を開始した後、第１出力データが第１の閾値以下になったとき、第２出力データの累積した値を初期化する累積値初期化ステップ（Ｓ２７）を更に実行させる。
【００２４】
第１９の発明は、第１６の発明において、ゲームプログラムは、プレイヤの利き腕についての情報である利き腕情報を設定してメモリに記憶する利き腕情報記憶ステップを更に実行させる。また、出力データ累積ステップは、利き腕情報に応じて、入力装置自体の動きの方向別に第２出力データの値の累積を開始する。
【００２５】
第２０の発明は、第１２の発明において、移動経路決定ステップは、所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定した後から所定の時間が経過するまでの間は、第１出力データが第１の閾値以上であるかどうかに関わらず所定の経路に沿ってオブジェクトを仮想ゲーム空間で次に移動させる座標を決定する。
【００２６】
第２１の発明は、第１２の発明において、入力装置は、当該入力装置に生じる加速度を検出する加速度センサを備えている。また、第１出力データ、及び第２出力データは、入力装置の動きに応じて加速度センサから出力される加速度データである。
【００２７】
第２２の発明は、第１２の発明において、ゲーム処理は、仮想ゲーム世界においてプレイヤキャラクタが所持するアイテムをスイングしてボールを打撃して当該ボールを飛ばすゲームを実行する処理である。また、オブジェクトとは、プレイヤキャラクタが所持するアイテムオブジェクトである。また、所定の経路は、プレイヤキャラクタがアイテムをスイングする一連の動作を表示させるための経路である。
【発明の効果】
【００２８】
上記第１の発明によれば、入力装置の移動速度が速すぎて、プレイヤの腕の動きを正確に反映することができないような場合は、予め用意されている、プレイヤが行うであろう動作のアニメーションを表示する。また、そこまで移動速度が大きくないときは、プレイヤの腕の動きを反映した動作を逐次表示する。これにより、プレイヤの腕の振りが速すぎること等が原因でプレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【００２９】
上記第２の発明によれば、入力装置自体を動かした方向に応じてオブジェクトも移動するため、プレイヤのゲームに対する一体感を高め、感情移入がしやすくなり、ゲームの興趣を高めることができる。
【００３０】
上記第３の発明によれば、更に入力装置の傾きに応じてオブジェクトを移動させることができるため、ゲーム空間内におけるオブジェクトの移動具合のリアリティを高め、プレイヤはゲームに対してより強い感情移入を行うことが可能となる。その結果、ゲームの興趣をより高めることができる。
【００３１】
上記第４の発明によれば、例えばＸ軸方向のような傾き判定に用いる方向軸とは異なる方向軸（例えばＺ軸方向）を用いて、入力装置の移動座標を決定する。そのため、入力装置の動き、ひいてはプレイヤが腕を振った動作を、より正確に検出することができ、プレイヤの意図しない動作が表示されてしまうことをより適切に防ぐことができる。
【００３２】
上記第５の発明によれば、出力データを累積してから判定を行うため、過敏な反応によりプレイヤに与える違和感を低減することができる。
【００３３】
上記第６の発明によれば、第１出力データの値がある程度の値のまま継続したとき第２出力データの累積を開始するため、過敏な反応によりプレイヤに与える違和感を低減することができる。
【００３４】
上記第７の発明によれば、累積した値を初期化するため、例えば、プレイヤが腕を振っている途中に急に腕の振りを停止したとき等に、プレイヤが入力装置を動かす動作をより正確に反映することができる。
【００３５】
上記第８の発明によれば、プレイヤの利き腕に応じた方向別に移動速度を検知する。そのため、右利き・左利きの双方のプレイヤに対応したゲームを提供することができ、より感情移入を行いやすくさせることが可能となる。その結果、ゲームの興趣をより高めることができる。
【００３６】
上記第９の発明によれば、一旦決められた経路の動作が始まれば、所定時間内は当該動作が逐次表示されていく。そのため、一旦決められた経路の動作が始まった後の操作ミス等で、プレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【００３７】
上記第１０の発明によれば、加速度センサを用いて移動速度を判定することができる。そのため、より正確な移動速度の判定が可能となる。
【００３８】
上記第１１の発明によれば、入力装置の移動速度が速すぎることによりプレイヤの意図しない動作が行われることを低減することができ、ゴルフゲームにおけるゴルフクラブのスイング動作や野球ゲームにおけるバットのスイング動作等のように、行うべき動作がある程度決まっているようなゲームにおいて、より効果的にゲームの興趣を高めることが可能となる。
【００３９】
また、本発明のゲームプログラムによれば、上述した本発明のゲーム装置と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００４０】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【００４１】
図１を参照して、本発明の一実施形態に係るゲーム装置について説明する。以下、説明を具体的にするために、当該ゲーム装置を用いたゲームシステム１を一例として説明する。なお、図１は、当該ゲームシステム１を説明するための外観図である。以下、据置型ゲーム装置を一例にして、当該ゲームシステム１について説明する。
【００４２】
図１において、当該ゲームシステム１は、家庭用テレビジョン受像機等のスピーカ２ａを備えたディスプレイ（以下、モニタと記載する）２に、接続コードを介して接続される据置型ゲーム装置（以下、単にゲーム装置と記載する）３および当該ゲーム装置３に操作情報を与えるコントローラ７によって構成される。ゲーム装置３は、接続端子を介して受信ユニット６が接続される。受信ユニット６は、コントローラ７から無線送信される送信データを受信し、コントローラ７とゲーム装置３とは無線通信によって接続される。また、ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例の光ディスク４が脱着される。ゲーム装置３の上部主面には、当該ゲーム装置３の電源ＯＮ／ＯＦＦスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置３上部の蓋を開くＯＰＥＮスイッチが設けられている。ここで、プレイヤがＯＰＥＮスイッチを押下することによって上記蓋が開き、光ディスク４の脱着が可能となる。
【００４３】
また、ゲーム装置３には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード５が必要に応じて着脱自在に装着される。ゲーム装置３は、光ディスク４に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ２に表示する。さらに、ゲーム装置３は、外部メモリカード５に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置３のプレイヤは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を楽しむことができる。
【００４４】
コントローラ７は、その内部に備える通信部７５（後述）から受信ユニット６が接続されたゲーム装置３へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて送信データを無線送信する。コントローラ７は、主にモニタ２に表示されるゲーム空間に登場するプレイヤオブジェクトを操作するための操作手段である。コントローラ７は、複数の操作ボタン、キー、およびスティック等の操作部が設けられている。また、後述により明らかとなるが、コントローラ７は、当該コントローラ７から見た画像を撮像する撮像情報演算部７４を備えている。また、撮像情報演算部７４の撮像対象の一例として、モニタ２の表示画面近傍に２つのＬＥＤモジュール（以下、マーカと記載する）８Ｌおよび８Ｒが設置される。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって赤外光を出力する。なお、本実施例では、撮像情報演算部７４による撮像情報を用いないため、マーカ８Ｌおよび８Ｒを設置しなくてもかまわない。
【００４５】
次に、図２を参照して、ゲーム装置３の構成について説明する。なお、図２は、ゲーム装置３の機能ブロック図である。
【００４６】
図２において、ゲーム装置３は、各種プログラムを実行する例えばリスク（ＲＩＳＣ）ＣＰＵ（セントラルプロセッシングユニット）３０を備える。ＣＰＵ３０は、図示しないブートＲＯＭに記憶された起動プログラムを実行し、メインメモリ３３等のメモリの初期化等を行った後、光ディスク４に記憶されているゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。ＣＰＵ３０には、メモリコントローラ３１を介して、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２、メインメモリ３３、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３４、およびＡＲＡＭ（Ａｕｄｉｏ  ＲＡＭ）３５が接続される。また、メモリコントローラ３１には、所定のバスを介して、コントローラＩ／Ｆ（インターフェース）３６、ビデオＩ／Ｆ３７、外部メモリＩ／Ｆ３８、オーディオＩ／Ｆ３９、およびディスクＩ／Ｆ４１が接続され、それぞれ受信ユニット６、モニタ２、外部メモリカード５、スピーカ２ａ、およびディスクドライブ４０が接続されている。
【００４７】
ＧＰＵ３２は、ＣＰＵ３０の命令に基づいて画像処理を行うものであり、例えば、３Ｄグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。ＧＰＵ３２は、図示しない画像処理専用のメモリやメインメモリ３３の一部の記憶領域を用いて画像処理を行う。ＧＰＵ３２は、これらを用いてモニタ２に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ３１およびビデオＩ／Ｆ３７を介してモニタ２に出力する。
【００４８】
メインメモリ３３は、ＣＰＵ３０で使用される記憶領域であって、ＣＰＵ３０の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ３３は、ＣＰＵ３０によって光ディスク４から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ３３に記憶されたゲームプログラムや各種データ等がＣＰＵ３０によって実行される。
【００４９】
ＤＳＰ３４は、ゲームプログラム実行時にＣＰＵ３０において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのＡＲＡＭ３５が接続される。ＡＲＡＭ３５は、ＤＳＰ３４が所定の処理（例えば、先読みしておいたゲームプログラムやサウンドデータの記憶）を行う際に用いられる。ＤＳＰ３４は、ＡＲＡＭ３５に記憶されたサウンドデータを読み出し、メモリコントローラ３１およびオーディオＩ／Ｆ３９を介してモニタ２に備えるスピーカ２ａに出力させる。
【００５０】
メモリコントローラ３１は、データ転送を統括的に制御するものであり、上述した各種Ｉ／Ｆが接続される。コントローラＩ／Ｆ３６は、例えば４つのコントローラＩ／Ｆ３６ａ〜３６ｄで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置３とを通信可能に接続する。例えば、受信ユニット６は、上記コネクタと嵌合し、コントローラＩ／Ｆ３６を介してゲーム装置３と接続される。上述したように受信ユニット６は、コントローラ７からの送信データを受信し、コントローラＩ／Ｆ３６を介して当該送信データをＣＰＵ３０へ出力する。ビデオＩ／Ｆ３７には、モニタ２が接続される。外部メモリＩ／Ｆ３８には、外部メモリカード５が接続され、その外部メモリカード５に設けられたバックアップメモリ等とアクセス可能となる。オーディオＩ／Ｆ３９にはモニタ２に内蔵されるスピーカ２ａが接続され、ＤＳＰ３４がＡＲＡＭ３５から読み出したサウンドデータやディスクドライブ４０から直接出力されるサウンドデータをスピーカ２ａから出力可能に接続される。ディスクＩ／Ｆ４１には、ディスクドライブ４０が接続される。ディスクドライブ４０は、所定の読み出し位置に配置された光ディスク４に記憶されたデータを読み出し、ゲーム装置３のバスやオーディオＩ／Ｆ３９に出力する。
【００５１】
図３および図４を参照して、本発明の入力装置の一例であるコントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面後方から見た斜視図である。
【００５２】
図３および図４において、コントローラ７は、例えばプラスチック成型によって形成されたハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００５３】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、矢印で示す４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００５４】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、リング状に４方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記十字キー７２ａの代わりに設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。また、少なくとも４つの方向（前後左右）をそれぞれ示すスイッチに対して、プレイヤによって押下されたスイッチに応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。
【００５５】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、Ｘボタン、Ｙボタン、およびＢボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、セレクトスイッチ、メニュースイッチ、およびスタートスイッチ等としての機能が割り当てられる。これら操作ボタン７２ｂ〜７２ｇは、ゲーム装置３が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないため詳細な説明を省略する。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００５６】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置３本体の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００５７】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７から受信ユニット６へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００５８】
一方、ハウジング７１下面には、凹部が形成されている。後述で明らかとなるが、ハウジング７１下面の凹部は、プレイヤがコントローラ７を把持したときに当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＡボタンとして機能する操作部であり、シューティングゲームにおけるトリガスイッチや、プレイヤオブジェクトを所定オブジェクトに対して注目させる操作等に用いられる。
【００５９】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。また、ハウジング７０の後面には、コネクタ７３が設けられている。コネクタ７３は、例えば３２ピンのエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。なお、本発明は、この撮像情報演算部７４からの情報を使用しなくても実現可能であるため、ここではこれ以上の説明を省略する。
【００６０】
ここで、説明を具体的にするために、コントローラ７に対して設定する座標系について定義する。図３および図４に示すように、互いに直交するＸＹＺ軸をコントローラ７に対して定義する。具体的には、コントローラ７の前後方向となるハウジング７１の長手方向をＺ軸とし、コントローラ７の前面（撮像情報演算部７４が設けられている面）方向をＺ軸正方向とする。また、コントローラ７の上下方向をＹ軸とし、ハウジング７１の上面（十字キー７２ａ等が設けられた面）方向をＹ軸正方向とする。さらに、コントローラ７の左右方向をＸ軸とし、ハウジング７１の左側面（図３では表されずに図４で表されている側面）方向をＸ軸正方向とする。
【００６１】
次に、図５を参照して、コントローラ７の内部構造について説明する。なお、図５（ａ）は、コントローラ７の上筐体（ハウジング７１の一部）を外した状態を示す斜視図である。図５（ｂ）は、コントローラ７の下筐体（ハウジング７１の一部）を外した状態を示す斜視図である。ここで、図５（ｂ）に示す基板７００は、図５（ａ）に示す基板７００の裏面から見た斜視図となっている。
【００６２】
図５（ａ）において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、水晶振動子７０３、無線モジュール７５３、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１（図６参照）に接続される。加速度センサ７０１は、コントローラ７が配置された３次元空間における傾きや振動等の算出に用いることができる加速度を検出して出力する。
【００６３】
より詳細には、図６に示すように、コントローラ７は３軸の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向（図３に示すＹ軸）、左右方向（図３に示すＸ軸）、および前後方向（図３に示すＺ軸）で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、Ｘ軸とＹ軸（または他の対になった軸）のそれぞれに沿った直線加速度のみを検知する２軸の加速度検出手段を使用してもよい。例えば、この３軸または２軸の加速度センサ７０１は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。加速度センサ７０１は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式（静電容量結合式）であることが好ましい。しかしながら、既存の加速度検出手段の技術（例えば、圧電方式や圧電抵抗方式）あるいは将来開発される他の適切な技術を用いて３軸または２軸の加速度センサ７０１が提供されてもよい。
【００６４】
当業者には公知であるように、加速度センサ７０１に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度（直線加速度）のみを検知することができる。つまり、加速度センサ７０１からの直接の出力は、その２軸または３軸のそれぞれに沿った直線加速度（静的または動的）を示す信号である。このため、加速度センサ７０１は、非直線状（例えば、円弧状）の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【００６５】
しかしながら、加速度センサ７０１から出力される加速度の信号に対して追加の処理を行うことによって、コントローラ７に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、静的な加速度（重力加速度）が検知されると、加速度センサ７０１からの出力を用いて、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象（コントローラ７）の傾きを判定することができる。このように、加速度センサ７０１をマイコン７５１（または他のプロセッサ）と組み合わせて用いることによって、コントローラ７の傾き、姿勢または位置を判定することができる。同様に、加速度センサ７０１を備えるコントローラ７が例えば後述するようにユーザの手で動的に加速されて動かされる場合に、加速度センサ７０１によって生成される加速度信号を処理することによって、コントローラ７のさまざまな動きおよび／または位置を算出することができる。他の実施例では、加速度センサ７０１は、信号をマイコン４２に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度（例えば、重力加速度）を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００６６】
また、無線モジュール７５３およびアンテナ７５４を有する通信部７５によって、コントローラ７がワイヤレスコントローラとして機能する。なお、水晶振動子７０３は、後述するマイコン７５１の基本クロックを生成する。
【００６７】
一方、図５（ｂ）において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。そして、操作ボタン７２ｉが撮像情報演算部７４の後方の基板７００の下主面上に取り付けられていて、それよりさらに後方に、電池７０５が収容される。電池７０５とコネクタ７３との間の基板７００の下主面上には、バイブレータ７０４が取り付けられる。このバイブレータ７０４は、例えば振動モータやソレノイドであってよい。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。
【００６８】
次に、図６を参照して、コントローラ７の内部構成について説明する。なお、図６は、コントローラ７の構成を示すブロック図である。
【００６９】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。
【００７０】
加速度センサ７０１は、上述したようにコントローラ７の上下方向（Ｙ軸方向）、左右方向（Ｘ軸方向）、および前後方向（Ｚ軸方向）の３軸成分に分けてそれぞれ加速度を検知して出力するセンサである。加速度センサ７０１が検知した３軸成分の加速度を示すデータは、それぞれ通信部７５へ出力される。この加速度センサ７０１から出力される加速度データに基づいて、コントローラ７の動きを判定することができる。なお、加速度センサ７０１は、特定のアプリケーションで必要なデータに応じて何れか２軸に対してそれぞれ加速度を検出する加速度センサが用いられてもかまわない。
【００７１】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。
【００７２】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの３軸方向の加速度信号（Ｘ、Ｙ、およびＺ軸方向加速度データ）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、処理結果データ）を受信ユニット６へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から受信ユニット６への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（登録商標）で構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、受信ユニット６への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からのＸ、Ｙ、およびＺ軸方向加速度データ、および撮像情報演算部７４からの処理結果データがコントローラ７から送信される。そして、ゲーム装置３の受信ユニット６でその電波信号を受信し、ゲーム装置３で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、および処理結果データ）を取得する。そして、ゲーム装置３のＣＰＵ３０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Ｂｌｕｅｔｏｏｔｈ（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００７３】
次に、図７を用いて、本実施形態で想定するゲームの概要について説明する。本実施形態で想定するゲームはゴルフゲームであり、図７に示すように、ゴルフクラブを構えたプレイヤオブジェクト１０１を後ろから見た視点でゲーム画面が表示されている。そして、プレイヤは、コントローラ７をゴルフクラブに見立ててスイングする動作を行うと、この動きに連動してプレイヤオブジェクト１０１がゴルフクラブをスイングする動作が描画される。
【００７４】
スイング操作について、図８および図９を用いて、より詳しく説明する。図８は、ゴルフクラブでスイングを行うイメージを示す図であり、図９は、コントローラ７でスイングを行うイメージを示す図である。コントローラ７は、全体として大人や子供の片手でも把持可能な大きさである。そして、ゲームシステム１でコントローラ７を用いてゲームをプレイするためには、コントローラ７の前面が下方方向（重力方向）に向くようにプレイヤが両手でコントローラ７を把持する。例えば、プレイヤは、コントローラ７の前面を下方方向に露出させて、あたかもゴルフクラブを握っているかのようにコントローラ７を把持する。
【００７５】
図８に示すような、ゴルフクラブを左上方向８１に振り上げ、右下方向８２を経由して右方向８３へと振る動作をコントローラ７で行う場合は、図９に示すように、コントローラ７の前面を下向けにした状態を基準として、コントローラ７を把持している腕を図９における左上方向８１（プレイヤからすれば、右上）に振り上げ、右下方向８２、右方向８３へと振り下ろす動作を行う。これにより、コントローラ７から操作情報（例えば、Ｘ、Ｙ、およびＺ軸方向加速度データ）をゲーム装置３に与える。そして、当該操作情報（加速度データ）に基づいて、ゴルフクラブの傾き等が算出され、当該傾き等に基づいてゴルフクラブが移動する。その結果、プレイヤオブジェクト１０１がゴルフクラブをスイングする様子が描画されることになる。
【００７６】
このとき、腕を振る速度が速すぎる場合などは、プレイヤの腕の動きを正確に検出しきれないことがある。そのため、本実施形態では、例えばバックスイング動作中に、加速度が所定の閾値以上になったときは、その時点で、コントローラ７からの操作情報ではなく、予め決められている動作情報に基づいてゴルフクラブが動作する様子を描画する。つまり、バックスイング速度が速すぎて、ゲーム画面上に正確に反映できないようなときは、プレイヤの腕の動作とは関係なしに、予め決められているバックスイング動作を描画する（オートアニメーション処理）。
【００７７】
次に、ゲーム装置３において実行されるゲーム処理の流れを図１０〜図１３を用いて説明する。図１０は、ゲーム装置３において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ３０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、メインメモリ１３等の各ユニットが初期化される。そして、光ディスク４に格納されたゲームプログラムがメインメモリ３３に読み込まれ、当該ゲームプログラムの実行が開始される。その結果、ＧＰＵ１２を介してモニタ２にゲーム画像が表示されることによって、ゲームが開始される。この後、図１０〜図１１に示すフローチャートの処理が実行される。なお、図１０に示すステップＳ１〜ステップＳ４の処理は、１フレーム毎に繰り返し実行される。また、本実施形態におけるゲームは上述のようにゴルフゲームであり、当該処理は、ゴルフクラブのスイングに関する処理であるが、これ以外の当該ゴルフゲームに関する処理（コース選択やショットされたボールの軌道計算等）については、本発明と直接関連しないため、説明を省略する。
【００７８】
図１０において、まず、ＣＰＵ３０は、安定状態判定処理を行う（ステップＳ１）。当該処理は、スイング動作の開始時におけるコントローラ７の握り方やスイング開始位置の個人差を吸収するための処理である。スイング動作開始時のコントローラ７の向きとしては、理想としては、図９に示したように、真下を向いた状態が望ましい。しかし、コントローラ７の握り方やスイング開始位置については、人によって個人差がある。そのため、人によっては、コントローラ７の前面が真下方向を向いておらず、少しだけＸ軸方向に右あるいは左に傾いた状態からスイングが開始されることもある。このようなときは、スイング開始時の時点で、少し傾いている分だけＸ軸方向に加速度が既にかかった状態となっている。そのため、このようなスイング開始時点で既にかかっているＸ軸方向の加速度を無視して、コントローラ７の握り方やスイング開始位置の個人差を吸収できるように、Ｘ軸方向の加速度が発生したまま安定しているような状態（少しだけ傾いている状態）は、スイング動作ではなく、安定状態であると判定するための処理が行われる。
【００７９】
図１１は、上記ステップＳ１で示した安定状態判定処理の詳細を示すフローチャートである。図１１において、まず、ＣＰＵ３０は、コントローラ７より送信されてきた操作情報から加速度データを取得する（ステップＳ１１）。続いて、ＣＰＵ３０は、当該加速度データからＸ軸方向の加速度値（以下、Ｘ軸加速値）を取得する。更に、この値から、Ｘ軸方向の比較用加速度値（以下、比較用Ｘ軸加速値）を算出する（ステップＳ１２）。当該比較用Ｘ軸加速値は、例えば次の式で算出される。
今回フレームの比較用Ｘ軸加速値＝前回フレームの比較用Ｘ軸加速値＋（取得したＸ軸加速値−前回フレームの比較用Ｘ軸加速値）×Ｋ
ここで、Ｋは定数であり、例えば０．１という値が入る。
【００８０】
続いて、ＣＰＵ３０は、Ｘ軸加速値と今回フレームの比較用Ｘ軸加速値との差数を算出する（ステップＳ１３）。次に、当該差数が所定値以上か否かを判定する（ステップＳ１４）。その結果、所定値以上であれば（ステップＳ１４でＹＥＳ）、安定状態であることを示すカウンタである安定フレーム数に所定値を設定する（ステップＳ１５）。一方、所定値以下であれば（ステップＳ１４でＮＯ）、安定フレーム数から１を減算する（ステップＳ１６）。つまり、Ｘ軸加速値と比較用Ｘ軸加速値との差が所定値以上であれば安定していない状態（コントローラ７に動きがある）、所定値未満であれば、安定している状態（コントローラ７に動きがない）であると判定するものである。以上で、安定状態判定処理が終了する。
【００８１】
図１０に戻り、安定状態判定処理の次に、ＣＰＵ３０は、オートバックスイング判定処理を行う（ステップＳ２）。ここでは、Ｘ軸方向の加速度を累積しておき、当該累積値が所定閾値を超えたか否かで、コントローラ７からの加速度データに基づいてゴルフクラブを動かすか、予め決められたデータに基づいてゴルフクラブを動かすか（オートアニメーション）の判定を行う。
【００８２】
図１２は、上記ステップＳ２で示したオートバックスイング判定処理の詳細を示すフローチャートである。図１２において、まず、ＣＰＵ３０は、コントローラ７が振られているかどうかを判定する（ステップＳ２１）。より具体的に説明すると、Ｚ軸方向の加速度データが閾値を越えるＺ軸正方向の値を示しているとき、ゲーム装置３は、プレイヤがコントローラ７を振っていると判定する。例えば、コントローラ７が静止状態である場合、加速度センサ７０１は、重力加速度９．８ｍ／ｓ２を超える加速度を検出することはない。一方、上述したようにプレイヤがコントローラ７を把持して腕を振った場合、コントローラ７の前端部が円弧状の軌跡を描いて移動するため、遠心力の影響によってＺ軸正方向（図３参照）の加速度が検出される。本実施例では、重力加速度以上の閾値として１．１という値を設定し、Ｚ軸方向の加速度データが当該閾値を超える加速度を示している場合、プレイヤがコントローラ７を振っていると判定する。
【００８３】
ステップＳ２１の判定の結果、Ｚ軸方向の加速度データが所定値以上の場合、つまり、コントローラ７が振られていると判定された場合は（ステップＳ２１でＹＥＳ）、次に、Ｘ軸方向の加速度データを、正方向（コントローラ７を下に向けているため、図９の右方向になる）および負方向（図９の左方向）別に累積する（ステップＳ２２）。ここで、コントローラ７が振られている方向の判定について説明する。コントローラ７を把持して振った場合、振り始めは加速して振り終わりは減速となる。したがって、コントローラ７には、振り始めで振っている方向と同じ方向の加速度が生じた後、徐々に加速度の大きさが減少して、振り終わりで振っている方向とは逆の方向に加速度が生じる。一方、一般的に、加速度センサ７０１から出力される加速度ベクトル（あるいは、加速度の正負）は、コントローラ７の加速方向とは真逆のベクトルとなる。したがって、加速度センサ７０１は、コントローラ７の振り始めで振っている方向とは逆の方向に加速度を検出した後、徐々に加速度の大きさが減少して、振り終わりで振っている方向と同じ方向に加速度を検出する。例えば、図９において、コントローラ７の前面を下に向けて図９の左方向に加速（つまり、コントローラ７の加速方向がＸ軸負方向）したとき、加速度センサ７０１から得られる加速度ベクトルとしてはＸ軸正方向のベクトルが得られることになる。そのため、正方向の加速度データを累積していけば、左方向に振り上げている動作の加速度データを累積することができる。また、負方向の加速度データを累積していけば、右方向に振り上げている動作の加速度データを累積することができる。
【００８４】
次に、プレイヤの利き腕を判定する（ステップＳ２３）。これは、オプション画面などで、予めプレイヤが設定したユーザ設定値（メインメモリ３３に格納されている）を参照することで判定される。ここでは、当該ユーザ設定値は「右利き」「左利き」のうちの何れかであるものとする。当該判定の結果、プレイヤが右利きのときは（ステップＳ２３でＹＥＳ）、正方向の累積加速度が所定値を超えたかを判定する（ステップＳ２４）。その結果、正方向の累積加速度が所定値以上のときは（ステップＳ２４でＹＥＳ）、オートフレーム数に所定値を設定する（ステップＳ２５）。当該オートフレーム数とは、後述のオートアニメーションが行われる時間を示すためのカウンタである。所定値以上でないときは（ステップＳ２４でＮＯ）、そのままオートバックスイング処理を終了する。
【００８５】
一方、プレイヤが左利きのときは（ステップＳ２３でＮＯ）、負方向の累積加速度が所定値を超えたかを判定する（ステップＳ２５）。その結果、負方向の累積加速度が所定値以上であれば、オートフレーム数に所定値を設定する（ステップＳ２６）。一方、所定値以上でないときは（ステップＳ２５でＮＯ）、そのままオートバックスイング処理を終了する。
【００８６】
一方、ステップＳ２１の判定の結果、Ｚ軸方向の加速度データが所定値以下、つまり、コントローラ７が振られていないときは、累積値に０を設定する（ステップＳ２７）。更に、オートフレーム数に０を設定する（ステップＳ２８）。これにより、後述のスイング処理におけるオートアニメーション処理を途中でキャンセルすることができる。以上で、オートバックスイング判定処理が終了する。
【００８７】
図１０に戻り、ステップＳ２のオートバックスイング判定処理が終われば、続いてスイング処理が行われる（ステップＳ３）。図１３は、当該ステップＳ３のスイング処理の詳細を示すフローチャートである。ここでは、オートバックスイング判定処理における処理結果に基づいて、プレイヤオブジェクト１０１のスイング動作の描画処理が行われる。図１３において、まず、ＣＰＵ３０は、オートフレーム数が０より大きいか否かを判定する（ステップＳ３１）。つまり、オートアニメーションの処理を行うか否かを判定する。当該判定の結果、０より大きいときは（ステップＳ３１でＹＥＳ）、予め決められているゴルフクラブの移動データ（移動経路や移動速度）に沿ってゴルフクラブを移動させるような、プレイヤオブジェクト１０１のバックスイング動作を描画する（ステップＳ３２）。つまり、Ｘ軸方向の加速度が閾値を超えた時点で、それ以降のプレイヤの腕の実際の動きにかかわらずに、ゴルフクラブをバックスイングする動作がオートアニメーションとして描画されることになる。そして、オートフレーム数から１を減算し（ステップＳ３３）、スイング処理を終了する。
【００８８】
一方、ステップＳ３１の判定の結果、オートフレーム数が０のときは（ステップＳ３１でＮＯ）、安定フレーム数が０より大きいか否かを判定する（ステップＳ３４）。その結果、０より大きいとき（ステップＳ３４でＹＥＳ）は、オートアニメーションの処理を行うまでには至らないが、ある程度の速度でコントローラ７が振られている状態であると考えられる。例えば、利き腕が右腕の場合に、右方向にバックスイングするのではなく、反対方向の左方向に腕を振った場合がこれに該当する。この場合は、そのまま処理を終了する。その結果、プレイヤオブジェクト１０１がゴルフクラブを構えたまま、スイング動作の開始を待っている状態で描画される。
【００８９】
一方、安定フレーム数が０であれば（ステップＳ３４でＮＯ）、上記加速度データに基づいて、コントローラの傾きを算出する（ステップＳ３５）。続いて、当該傾きに基づいてゴルフクラブを移動させる座標を決定する。そして、この座標に沿ってゴルフクラブを移動させる様子を描画する（ステップＳ３６）。つまり、プレイヤの実際の入力動作に従って画面内のゴルフクラブを動かすことになる。その結果、プレイヤの腕の動きに連動する形でプレイヤオブジェクト１０１がゴルフクラブをスイングする動作が描画されることになる。以上で、スイング処理は終了する。
【００９０】
図１０に戻り、スイング処理が終われば、ＣＰＵ３０は、ショット開始条件が達成されたか否かを判定する（ステップＳ４）。例えば、コントローラ７のＸ軸方向の加速度データを、正方向および負方向に累積した上で、ステップＳ２３からＳ２５の判定とは逆の判定で、プレイヤが右利きのときは正方向の累積加速度が所定値を超えたかどうかを判定し、プレイヤが左利きのときは負方向の累積加速度が所定値を超えたかどうかを判定し、所定値を越えた際にはショット開始条件が満たされたと判定する。ショット開始条件が満たされたときは（ステップＳ４でＹＥＳ）、ＣＰＵ３０は、ショット処理（ステップＳ５）を行う。この処理では、ボールの弾道等を計算して、ボールを飛ばす処理が行われる。一方、ショット開始条件が満たされていない場合は（ステップＳ４でＮＯ）、上記ステップＳ１に戻って処理を繰り返す。以上で、本実施形態にかかるゲーム処理は終了する。
【００９１】
このように、本発明の実施形態では、プレイヤが入力装置を振ったときの加速度がある閾値以上かどうかを判定する。その結果、閾値を超えるような大きな加速度が加わったときは、予め決められた一連の動作が描画されるようにする。これにより、加速度が大きすぎて、プレイヤの腕の動きを正確に反映することができないような場合は、予め用意されている、プレイヤが行うであろう動作（あるいは行いたいと考えられる動作）のアニメーションを表示する。また、そこまで加速度が大きくないときは、プレイヤの腕の動きを反映した動作を表示する。これにより、プレイヤの腕の振りが速すぎること等が原因でプレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【００９２】
なお、上述の実施形態では、Ｘ軸方向の加速度を累積して判定を行っていたが、これに限らず、加速度の累積を行わずに、その時点の加速度のみで判定するようにしてもよい。このようにした場合も、プレイヤの腕の振りが速すぎること等が原因でプレイヤの意図しない動作が表示されてしまうことを防ぐことができる。
【００９３】
また、図１２のステップＳ２１の処理について、Ｚ軸の加速度が所定値以上の状態が所定時間以上継続したときに、Ｘ軸方法の加速値を正負別に累積する処理を行うようにしてもよい。これにより、過敏な反応によりプレイヤに与える違和感を低減することができる。
【００９４】
また、オートアニメーションの開始後は、一連の動作が終わるまで、入力を受け付けないようにしても良い。例えば、図１３のステップＳ３２のオートアニメーションの開始後は、オートフレーム数が０になるまでは、図１０のステップＳ２のオートバックスイング判定処理を行わないようにしてもよい。これにより、一旦オートアニメーションが始まった後の操作ミス等で、プレイヤの意図しない動作が表示されてしまうことを防ぐことができる。更に、オートアニメーションの再生速度（ゴルフクラブを振る速度）を、当該オートアニメーション開始時における加速度の値に応じて変化させるようにしても良い。
【産業上の利用可能性】
【００９５】
本発明にかかるゲーム装置およびゲームプログラムは、プレイヤの意図しない動作が表示されてしまうことを防ぐことができ、ゴルフゲーム等の、プレイヤキャラクタが所持するアイテムをスイングするようなゲーム処理を行うゲーム装置およびゲームプログラムに有用である。
【図面の簡単な説明】
【００９６】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置３の機能ブロック図
【図３】図３のコントローラ７の上面後方から見た斜視図
【図４】図３のコントローラ７を下面後方から見た斜視図
【図５】図３のコントローラ７の上筐体を外した状態を示す斜視図
【図６】図３のコントローラ７の構成を示すブロック図
【図７】本実施形態で想定するゲームのゲーム画面の一例
【図８】ゴルフクラブでスイングを行うイメージを示す図
【図９】コントローラ７でスイングを行うイメージを示す図
【図１０】ゲーム装置３において実行されるゲーム処理の流れを示すフローチャート
【図１１】図１０のステップＳ１で示した安定状態判定処理の詳細を示すフローチャート
【図１２】図１０のステップＳ２で示したオートバックスイング判定処理の詳細を示すフローチャート
【図１３】図１０のステップＳ３で示したスイング処理の詳細を示すフローチャート
【符号の説明】
【００９７】
１…ゲームシステム
２…モニタ
２ａ…スピーカ
３…ゲーム装置
３０…ＣＰＵ
３１…メモリコントローラ
３２…ＧＰＵ
３３…メインメモリ
３４…ＤＳＰ
３５…ＡＲＡＭ
３６…コントローラＩ／Ｆ
３７…ビデオＩ／Ｆ
３８…外部メモリＩ／Ｆ
３９…オーディオＩ／Ｆ
４０…ディスクドライブ
４１…ディスクＩ／Ｆ
４…光ディスク
５…外部メモリカード
６…受信ユニット
７…コントローラ
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０３…水晶振動子
７０４…バイブレータ
７０５…電池
【図１】
0005188682.tif 000002
【図２】
0005188682.tif 000003
【図３】
0005188682.tif 000004
【図４】
0005188682.tif 000005
【図５】
0005188682.tif 000006
【図６】
0005188682.tif 000007
【図７】
0005188682.tif 000008
【図８】
0005188682.tif 000009
【図９】
0005188682.tif 000010
【図１０】
0005188682.tif 000011
【図１１】
0005188682.tif 000012
【図１２】
0005188682.tif 000013
【図１３】
0005188682.tif 000014