(57)【特許請求の範囲】
【請求項１】
入力装置の姿勢に基づいてゲーム処理を行うゲーム装置のコンピュータを、
前記入力装置の姿勢を検出する姿勢検出手段、
前記入力装置の姿勢が第１条件を満たしているか第２条件を満たしているかを判断する姿勢判断手段、および
前記入力装置の姿勢が前記第１条件を満たしている間は、前記入力装置の第１軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第２条件を満たしている間は、前記入力装置の第２軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理手段として機能させる、ゲームプログラム。
【請求項２】
前記姿勢判断手段は、前記入力装置の第３軸周りの姿勢が前記第１条件を満たしているか前記第２条件を満たしているかを判断する、請求項１記載のゲームプログラム。
【請求項３】
前記ゲーム処理手段は、前記入力装置の姿勢が前記第１条件と前記第２条件のいずれも満たしていない間は、前記入力装置の前記第１軸周りの姿勢の変化も、前記入力装置の前記第２軸周りの姿勢の変化も、前記特定のゲームパラメータに反映させない、請求項１記載のゲームプログラム。
【請求項４】
前記入力装置は角速度センサを含み、
前記姿勢検出手段は、前記角速度センサから出力される角速度データに基づいて、前記入力装置の姿勢を検出する、請求項１記載のゲームプログラム。
【請求項５】
前記角速度センサは、前記入力装置の前記第１軸周りの角速度、前記第２軸周りの角速度、および前記第３軸周りの角速度を検出可能であり、
前記姿勢検出手段は、前記角速度センサによって検出される前記入力装置の前記第１軸周りの角速度、前記第２軸周りの角速度、および前記第３軸周りの角速度に基づいて、前記入力装置の前記第１軸周りの姿勢、前記第２軸周りの姿勢、および前記第３軸周りの姿勢を検出する、請求項４記載のゲームプログラム。
【請求項６】
前記ゲーム処理手段は、
所定の基準姿勢からの前記入力装置の前記第１軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第１判断手段と、
所定の基準姿勢からの前記入力装置の前記第２軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第２判断手段とを含み、
前記ゲーム処理手段は、前記入力装置の姿勢が前記第１条件を満たしている間は、前記第１判断手段の判断結果が肯定である場合に限り、前記入力装置の第１軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第２条件を満たしている間は、前記第２判断手段の判断結果が肯定である場合に限り、前記入力装置の第２軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新する、請求項１記載のゲームプログラム。
【請求項７】
前記コンピュータを、
前記特定のゲームパラメータに応じたゲーム画像を生成するゲーム画像生成手段としてさらに機能させる、請求項１記載のゲームプログラム。
【請求項８】
前記特定のゲームパラメータは、ゲーム世界の特定のオブジェクトの位置、姿勢及び動作の少なくともいずれか１つに影響を与えるゲームパラメータであり、
前記ゲーム画像生成手段は、前記特定のオブジェクトを含むゲーム画像を生成する、請求項７記載のゲームプログラム。
【請求項９】
前記ゲーム画像生成手段は、前記姿勢判断手段の判断結果を示す画像を含む前記ゲーム画像を生成する、請求項８記載のゲームプログラム。
【請求項１０】
入力装置の姿勢に基づいてゲーム処理を行うゲーム装置であって、
前記入力装置の姿勢を検出する姿勢検出手段、
前記入力装置の姿勢が第１条件を満たしているか第２条件を満たしているかを判断する姿勢判断手段、および
前記入力装置の姿勢が前記第１条件を満たしている間は、前記入力装置の第１軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第２条件を満たしている間は、前記入力装置の第２軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理手段を備える、ゲーム装置。
【請求項１１】
入力装置の姿勢に基づいてゲーム処理を行うゲームシステムであって、
前記入力装置の姿勢を検出する姿勢検出手段、
前記入力装置の姿勢が第１条件を満たしているか第２条件を満たしているかを判断する姿勢判断手段、および
前記入力装置の姿勢が前記第１条件を満たしている間は、前記入力装置の第１軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第２条件を満たしている間は、前記入力装置の第２軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理手段を備える、ゲームシステム。
【請求項１２】
入力装置の姿勢に基づいてゲーム処理を行うゲーム方法であって、
前記入力装置の姿勢を検出する姿勢検出ステップ、
前記入力装置の姿勢が第１条件を満たしているか第２条件を満たしているかを判断する姿勢判断ステップ、および
前記入力装置の姿勢が前記第１条件を満たしている間は、前記入力装置の第１軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、前記入力装置の姿勢が前記第２条件を満たしている間は、前記入力装置の第２軸周りの姿勢の変化に応じて前記特定のゲームパラメータを更新するゲーム処理ステップを備える、ゲーム方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力装置の姿勢に基づいてゲーム処理を行うゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム方法に関する。
【背景技術】
【０００２】
従来、プレイヤの操作するコントローラの姿勢に応じて仮想ゲーム世界内におけるオブジェクトを制御するものが知られている。
【０００３】
例えば、特許文献１には、多軸加速度センサーと多軸ジャイロセンサーを備えたコントローラを用いてゲームを行うゲーム装置が開示されている。具体的には、多軸加速度センサーの出力に基づいてゲーム内のオブジェクトである刀を振る制御が行われ、多軸ジャイロセンサーの出力に基づいて、刀をひねったり傾けたりする制御が行われる。
【０００４】
また、特許文献２には、ジャイロセンサで検出したコントローラの姿勢をゲーム空間内のオブジェクトの姿勢に反映するゲーム装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３０８７５６号公報（段落［００１９］〜［００２１］）
【特許文献２】特開２０１０−１７３８９号公報（要約、段落［０１９５］）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１および特許文献２のゲーム装置では、コントローラの姿勢に対するオブジェクトの姿勢が一義的に決められているため、コントローラの自由な操作ができなかった。例えば、オブジェクトに対して所定の動作をさせるために、コントローラをひねる操作を好むプレイヤとコントローラを左右に振る操作を好むプレイヤがいたとしても、特許文献１および特許文献２のゲーム装置では、いずれかの操作のみを許容するしかなかった。
【０００７】
それゆえに、この発明の主たる目的は、入力装置の姿勢に基づいて実行されるゲームにおいて、操作性を向上させることである。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明は以下の構成を採用した。
【０００９】
本発明のゲームプログラムは、入力装置の姿勢に基づいてゲーム処理を行うゲーム装置のコンピュータを、姿勢検出手段、姿勢判断手段、およびゲーム処理手段として機能させる。上記姿勢検出手段は、上記入力装置の姿勢を検出する。上記姿勢判断手段は、上記入力装置の姿勢が第１条件を満たしているか第２条件を満たしているかを判断する。上記ゲーム処理手段は、上記入力装置の姿勢が上記第１条件を満たしている間は、上記入力装置の第１軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第２条件を満たしている間は、上記入力装置の第２軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
これにより、特定のゲームパラメータを入力装置の第１軸周りの姿勢の変化に基づいて更新する第１の入力操作モードと、当該特定のゲームパラメータを入力装置の第２軸周りの姿勢の変化に基づいて更新する第２の入力操作モードが、当該入力装置の姿勢に応じて自動的に切り替わるため、入力装置の姿勢に関わらず、常に良好な操作性が得られるようになる。また、プレイヤは自分の好みにあった入力操作モードで入力操作ができるので、操作の自由度が増す。
【００１０】
なお、上記姿勢判断手段は、上記入力装置の第３軸周りの姿勢が上記第１条件を満たしているか上記第２条件を満たしているかを判断してもよい。
これにより、入力装置の第３軸周りの姿勢に基づいて、上記第１の入力操作モードと上記第２の入力操作モードを自動的に切り替えることができる。
【００１１】
また、上記ゲーム処理手段は、上記入力装置の姿勢が上記第１条件と上記第２条件のいずれも満たしていない間は、上記入力装置の上記第１軸周りの姿勢の変化も、上記入力装置の上記第２軸周りの姿勢の変化も、上記特定のゲームパラメータに反映させないようにしてもよい。
これにより、入力装置の姿勢が第１条件と第２条件のいずれも満たさないときは、上記第１の入力操作モードも上記第２の入力操作モードも無効にすることができる。
【００１２】
また、上記入力装置は角速度センサを含み、上記姿勢検出手段は、上記角速度センサから出力される角速度データに基づいて、上記入力装置の姿勢を検出してもよい。
これにより、入力装置の所定軸周りの姿勢の変化を容易に検出することができる。
【００１３】
また、上記角速度センサは、上記入力装置の上記第１軸周りの角速度、上記第２軸周りの角速度、および上記第３軸周りの角速度を検出可能であり、上記姿勢検出手段は、上記角速度センサによって検出される上記入力装置の上記第１軸周りの角速度、上記第２軸周りの角速度、および上記第３軸周りの角速度に基づいて、上記入力装置の上記第１軸周りの姿勢、上記第２軸周りの姿勢、および上記第３軸周りの姿勢を検出してもよい。
【００１４】
また、上記ゲーム処理手段は、所定の基準姿勢からの上記入力装置の上記第１軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第１判断手段と、所定の基準姿勢からの上記入力装置の上記第２軸周りの姿勢の変化量が、所定の閾値を超えたかどうかを判断する第２判断手段とを含み、上記ゲーム処理手段は、上記入力装置の姿勢が上記第１条件を満たしている間は、上記第１判断手段の判断結果が肯定である場合に限り、上記入力装置の第１軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第２条件を満たしている間は、上記第２判断手段の判断結果が肯定である場合に限り、上記入力装置の第２軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新してもよい。
これにより、基準姿勢からの姿勢の変化量が所定の閾値を超えたときに限って、入力装置の姿勢に応じて特定のゲームパラメータの更新が行われるので、手振れなどによる誤制御を防止することができる。
【００１５】
また、上記ゲームプログラムは、上記コンピュータを、上記特定のゲームパラメータに応じたゲーム画像を生成するゲーム画像生成手段としてさらに機能させてもよい。
【００１６】
また、上記特定のゲームパラメータは、ゲーム世界の特定のオブジェクト（９０）の位置、姿勢及び動作の少なくともいずれか１つに影響を与えるゲームパラメータであり、上記ゲーム画像生成手段は、上記特定のオブジェクトを含むゲーム画像を生成してもよい。
【００１７】
また、上記ゲーム画像生成手段は、上記姿勢判断手段の判断結果を示す画像（９１）を含む上記ゲーム画像を生成してもよい。
これにより、現在の入力操作モードが上記第１の入力操作モードなのか上記第２の入力操作モードなのかをプレイヤに提示することができる。
【００１８】
本発明のゲーム装置は、入力装置の姿勢に基づいてゲーム処理を行うゲーム装置であって、姿勢検出手段、姿勢判断手段、およびゲーム処理手段を備える。上記姿勢検出手段は、上記入力装置の姿勢を検出する。上記姿勢判断手段は、上記入力装置の姿勢が第１条件を満たしているか第２条件を満たしているかを判断する。上記ゲーム処理手段は、上記入力装置の姿勢が上記第１条件を満たしている間は、上記入力装置の第１軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第２条件を満たしている間は、上記入力装置の第２軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
【００１９】
本発明のゲームシステムは、入力装置の姿勢に基づいてゲーム処理を行うゲームシステムであって、姿勢検出手段、姿勢判断手段、およびゲーム処理手段を備える。上記姿勢検出手段は、上記入力装置の姿勢を検出する。上記姿勢判断手段は、上記入力装置の姿勢が第１条件を満たしているか第２条件を満たしているかを判断する。上記ゲーム処理手段は、上記入力装置の姿勢が上記第１条件を満たしている間は、上記入力装置の第１軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第２条件を満たしている間は、上記入力装置の第２軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
【００２０】
本発明のゲーム方法は、入力装置の姿勢に基づいてゲーム処理を行うゲーム方法であって、姿勢検出ステップ、姿勢判断ステップ、およびゲーム処理ステップを備える。上記姿勢検出ステップでは、上記入力装置の姿勢を検出する。上記姿勢判断ステップでは、上記入力装置の姿勢が第１条件を満たしているか第２条件を満たしているかを判断する。上記ゲーム処理ステップは、上記入力装置の姿勢が上記第１条件を満たしている間は、上記入力装置の第１軸周りの姿勢の変化に応じて特定のゲームパラメータを更新し、上記入力装置の姿勢が上記第２条件を満たしている間は、上記入力装置の第２軸周りの姿勢の変化に応じて上記特定のゲームパラメータを更新する。
【発明の効果】
【００２１】
この発明によれば、入力装置の姿勢に基づいて実行されるゲームにおいて、操作性を向上させることができる。
【図面の簡単な説明】
【００２２】
【図１】ゲームシステムの外観図
【図２】ゲーム装置の機能ブロック図
【図３】入力装置の外観構成を示す斜視図
【図４】コントローラの外観構成を示す斜視図
【図５】コントローラの内部構造を示す図
【図６】コントローラの内部構造を示す図
【図７】入力装置の構成を示すブロック図
【図８】ゲーム画像の一例を示す図
【図９】ゲーム画像の一例を示す図
【図１０】ゲーム画像の一例を示す図
【図１１】メインメモリのメモリマップ
【図１２】メイン処理のフローチャート
【図１３】第１制御処理のフローチャート
【図１４】第２制御処理のフローチャート
【図１５】ゲームプレイ時のプレイヤの手を横から見た図
【図１６】ゲームプレイ時のプレイヤの手を横から見た図
【図１７】第１範囲及び第２範囲の一例を示す図
【図１８】ロール角θｒを示す図
【図１９】ヨー角θｙを示す図
【図２０】第１範囲及び第２範囲の一例を示す図
【図２１】第１範囲及び第２範囲の一例を示す図
【図２２】変形例におけるゲーム画像の一例を示す図
【図２３】変形例におけるゲーム画像の一例を示す図
【発明を実施するための形態】
【００２３】
［ゲームシステムの全体構成］
図１を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置及びゲームプログラムについて説明する。図１において、ゲームシステム１は、テレビジョン受像器（以下、単に「テレビ」と記載する）２、ゲーム装置３、光ディスク４、入力装置８、及びマーカ部６を含む。本システムは、入力装置８を用いたゲーム操作に基づいてゲーム装置３でゲーム処理を実行するものである。
【００２４】
ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるためのゲームプログラムが記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【００２５】
ゲーム装置３には、表示装置の一例であるテレビ２が接続コードを介して接続される。テレビ２は、ゲーム装置３において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ２の画面の周辺（図１では画面の上側）には、マーカ部６が設置される。マーカ部６は、その両端に２つのマーカ６Ｒ及び６Ｌを備えている。マーカ６Ｒ（マーカ６Ｌも同様）は、具体的には１以上の赤外ＬＥＤであり、テレビ２の前方に向かって赤外光を出力する。マーカ部６はゲーム装置３に接続されており、ゲーム装置３はマーカ部６が備える各赤外ＬＥＤの点灯を制御することが可能である。
【００２６】
入力装置８は、自機に対して行われた操作の内容を示す操作データをゲーム装置３に与えるものである。本実施形態では、入力装置８はコントローラ５とジャイロセンサユニット７とを含む。詳細は後述するが、入力装置８は、コントローラ５に対してジャイロセンサユニット７が着脱可能に接続されている構成である。コントローラ５とゲーム装置３とは無線通信によって接続される。本実施形態では、コントローラ５とゲーム装置３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ５とゲーム装置３とは有線で接続されてもよい。
【００２７】
［ゲーム装置３の内部構成］
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の構成を示すブロック図である。ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、及びＡＶ−ＩＣ１５等を有する。
【００２８】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４及びＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩ１１の内部構成については後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅ又は外部メインメモリ１２に読み出したデータを書き込む。
【００２９】
また、システムＬＳＩ１１には、入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、及び内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００３０】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００３１】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。
【００３２】
上述のように生成された画像データ及び音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像がテレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００３３】
入出力プロセッサ１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、及びメモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００３４】
入出力プロセッサ１１ａは、無線通信モジュール１８及びアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール１８及びアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２及び無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０はゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データ又は途中データ）が記憶されてもよい。
【００３５】
また、入出力プロセッサ１１ａは、コントローラ５から送信される操作データをアンテナ２３及び無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅ又は外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００３６】
さらに、入出力プロセッサ１１ａには、拡張コネクタ２０及びメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【００３７】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、及びイジェクトボタン２６が設けられる。電源ボタン２４及びリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンされると、ゲーム装置３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００３８】
［入力装置８の構成］
次に、図３〜図６を参照して、入力装置８について説明する。図３は、入力装置８の外観構成を示す斜視図である。図４は、コントローラ５の外観構成を示す斜視図である。図３は、コントローラ５の上側後方から見た斜視図であり、図４は、コントローラ５を下側前方から見た斜視図である。
【００３９】
図３及び図４において、コントローラ５は、例えばプラスチック成型によって形成されたハウジング３１を有している。ハウジング３１は、その前後方向（図３に示すＺ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ５に設けられたボタンを押下すること、及び、コントローラ５自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
【００４０】
ハウジング３１には、複数の操作ボタンが設けられる。図３に示すように、ハウジング３１の上面には、十字ボタン３２ａ、１番ボタン３２ｂ、２番ボタン３２ｃ、Ａボタン３２ｄ、マイナスボタン３２ｅ、ホームボタン３２ｆ、プラスボタン３２ｇ、及び電源ボタン３２ｈが設けられる。一方、図４に示すように、ハウジング３１の下面には凹部が形成されており、当該凹部の後面側傾斜面にはＢボタン３２ｉが設けられる。これらの各操作ボタン３２ａ〜３２ｉには、ゲーム装置３が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン３２ｈは遠隔からゲーム装置３本体の電源をオン／オフするためのものである。ホームボタン３２ｆ及び電源ボタン３２ｈは、その上面がハウジング３１の上面に埋没している。これによって、プレイヤがホームボタン３２ｆ又は電源ボタン３２ｈを誤って押下することを防止することができる。
【００４１】
ハウジング３１の後面にはコネクタ３３が設けられている。コネクタ３３は、コントローラ５に他の機器（例えば、ジャイロセンサユニット７や他のコントローラ）を接続するために利用される。また、ハウジング３１の後面におけるコネクタ３３の両側には、上記他の機器が容易に離脱することを防止するために係止穴３３ａが設けられている。
【００４２】
ハウジング３１上面の後方には複数（図３では４つ）のＬＥＤ３４ａ〜３４ｄが設けられる。ここで、コントローラ５には、他のメインコントローラと区別するためにコントローラ種別（番号）が付与される。各ＬＥＤ３４ａ〜３４ｄは、コントローラ５に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ５の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ５を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のＬＥＤ３４ａ〜３４ｄのいずれか１つが点灯する。
【００４３】
また、コントローラ５は撮像情報演算部３５（図７）を有しており、図４に示すように、ハウジング３１前面には撮像情報演算部３５の光入射面３５ａが設けられる。光入射面３５ａは、マーカ６Ｒ及び６Ｌからの赤外光を少なくとも透過する材質で構成される。
【００４４】
ハウジング３１上面における１番ボタン３２ｂとホームボタン３２ｆとの間には、コントローラ５に内蔵されるスピーカ４９（図５）からの音を外部に放出するための音抜き孔３１ａが形成されている。
【００４５】
次に、図５及び図６を参照して、コントローラ５の内部構造について説明する。図５及び図６は、コントローラ５の内部構造を示す図である。なお、図５は、コントローラ５の上筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図６は、コントローラ５の下筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図６に示す斜視図は、図５に示す基板３０を裏面から見た斜視図となっている。
【００４６】
図５において、ハウジング３１の内部には基板３０が固設されており、当該基板３０の上主面上に各操作ボタン３２ａ〜３２ｈ、各ＬＥＤ３４ａ〜３４ｄ、加速度センサ３７、アンテナ４５、及びスピーカ４９等が設けられる。これらは、基板３０等に形成された配線（図示せず）によってマイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）４２（図６参照）に接続される。本実施形態では、加速度センサ３７は、Ｘ軸方向に関してコントローラ５の中心からずれた位置に配置されている。これによって、コントローラ５をＺ軸回りに回転させたときのコントローラ５の動きが算出しやすくなる。また、加速度センサ３７は、長手方向（Ｚ軸方向）に関してコントローラ５の中心よりも前方に配置されている。また、無線モジュール４４（図７）及びアンテナ４５によって、コントローラ５がワイヤレスコントローラとして機能する。
【００４７】
一方、図６において、基板３０の下主面上の前端縁に撮像情報演算部３５が設けられる。撮像情報演算部３５は、コントローラ５の前方から順に赤外線フィルタ３８、レンズ３９、撮像素子４０、及び画像処理回路４１を備えている。これらの部材３８〜４１はそれぞれ基板３０の下主面に取り付けられる。
【００４８】
さらに、基板３０の下主面上には、上記マイコン４２及びバイブレータ４８が設けられている。バイブレータ４８は、例えば振動モータやソレノイドであり、基板３０等に形成された配線によってマイコン４２と接続される。マイコン４２の指示によりバイブレータ４８が作動することによってコントローラ５に振動が発生する。これによって、コントローラ５を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ４８は、ハウジング３１のやや前方寄りに配置される。つまり、バイブレータ４８がコントローラ５の中心よりも端側に配置することによって、バイブレータ４８の振動によりコントローラ５全体を大きく振動させることができる。また、コネクタ３３は、基板３０の下主面上の後端縁に取り付けられる。なお、図５及び図６に示す他、コントローラ５は、マイコン４２の基本クロックを生成する水晶振動子、スピーカ４９に音声信号を出力するアンプ等を備えている。
【００４９】
また、ジャイロセンサユニット７は、３軸回りの角速度を検知するジャイロセンサ（図７に示すジャイロセンサ５５及び５６）を有する。ジャイロセンサユニット７は、コントローラ５のコネクタ３３に着脱可能に装着される。ジャイロセンサユニット７の前端（図３に示すＺ軸正方向側の端部）には、コネクタ３３に接続可能なプラグ（図７に示すプラグ５３）が設けられる。さらに、プラグ５３の両側にはフック（図示せず）が設けられる。ジャイロセンサユニット７がコントローラ５に対して装着される状態では、プラグ５３がコネクタ３３に接続されるとともに、上記フックがコントローラ５の係止穴３３ａに係止する。これによって、コントローラ５とジャイロセンサユニット７とがしっかりと固定される。また、ジャイロセンサユニット７は側面（図３に示すＸ軸方向の面）にボタン５１を有している。ボタン５１は、それを押下すれば上記フックの係止穴３３ａに対する係止状態を解除することができるように構成されている。したがって、ボタン５１を押下しながらプラグ５３をコネクタ３３から抜くことによって、ジャイロセンサユニット７をコントローラ５から離脱することができる。
【００５０】
また、ジャイロセンサユニット７の後端には、上記コネクタ３３と同形状のコネクタが設けられる。したがって、コントローラ５（のコネクタ３３）に対して装着可能な他の機器は、ジャイロセンサユニット７のコネクタに対しても装着可能である。なお、図３においては、当該コネクタに対してカバー５２が着脱可能に装着されている。
【００５１】
なお、図３〜図６に示したコントローラ５及びジャイロセンサユニット７の形状や、各操作ボタンの形状、加速度センサやバイブレータの数及び設置位置等は単なる一例に過ぎず、他の形状、数、及び設置位置であってもよい。また、本実施形態では、撮像手段による撮像方向はＺ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ５における撮像情報演算部３５の位置（撮像情報演算部３５の光入射面３５ａ）は、ハウジング３１の前面でなくてもよく、ハウジング３１の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【００５２】
図７は、入力装置８（コントローラ５及びジャイロセンサユニット７）の構成を示すブロック図である。コントローラ５は、操作部３２（各操作ボタン３２ａ〜３２ｉ）、コネクタ３３、撮像情報演算部３５、通信部３６、及び加速度センサ３７を備えている。コントローラ５は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置３へ送信するものである。
【００５３】
操作部３２は、上述した各操作ボタン３２ａ〜３２ｉを含み、各操作ボタン３２ａ〜３２ｉに対する入力状態（各操作ボタン３２ａ〜３２ｉが押下されたか否か）を示す操作ボタンデータを通信部３６のマイコン４２へ出力する。
【００５４】
撮像情報演算部３５は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部３５は、例えば最大２００フレーム／秒程度のサンプリング周期を有するので、比較的高速なコントローラ５の動きでも追跡して解析することができる。
【００５５】
撮像情報演算部３５は、赤外線フィルタ３８、レンズ３９、撮像素子４０、及び画像処理回路４１を含んでいる。赤外線フィルタ３８は、コントローラ５の前方から入射する光から赤外線のみを通過させる。レンズ３９は、赤外線フィルタ３８を透過した赤外線を集光して撮像素子４０へ入射させる。撮像素子４０は、例えばＣＭＯＳセンサやあるいはＣＣＤセンサのような固体撮像素子であり、レンズ３９が集光した赤外線を受光して画像信号を出力する。ここで、テレビ２の表示画面近傍に配置されるマーカ部６のマーカ６Ｒ及び６Ｌは、テレビ２の前方に向かって赤外光を出力する赤外ＬＥＤで構成される。したがって、赤外線フィルタ３８を設けることによって、撮像素子４０は、赤外線フィルタ３８を通過した赤外線だけを受光して画像データを生成するので、マーカ６Ｒ及び６Ｌの画像をより正確に撮像することができる。以下では、撮像素子４０によって撮像された画像を撮像画像と呼ぶ。撮像素子４０によって生成された画像データは、画像処理回路４１で処理される。画像処理回路４１は、撮像画像内における撮像対象（マーカ６Ｒ及び６Ｌ）の位置を算出する。画像処理回路４１は、算出された位置を示す座標を通信部３６のマイコン４２へ出力する。この座標のデータは、マイコン４２によって操作データとしてゲーム装置３に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ５自体の向き（傾斜角度）や位置に対応して変化するので、ゲーム装置３はこのマーカ座標を用いてコントローラ５の向きや位置を算出することができる。
【００５６】
なお、他の実施形態においては、コントローラ５は画像処理回路４１を備えていない構成であってもよく、撮像画像自体がコントローラ５からゲーム装置３へ送信されてもよい。このとき、ゲーム装置３は、画像処理回路４１と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【００５７】
加速度センサ３７は、コントローラ５の加速度（重力加速度を含む）を検出する、すなわち、コントローラ５に加わる力（重力を含む）を検出する。加速度センサ３７は、当該加速度センサ３７の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度（直線加速度）の値を検出する。例えば、２軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。なお、加速度センサ３７は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【００５８】
本実施形態では、加速度センサ３７は、コントローラ５を基準とした上下方向（図３に示すＹ軸方向）、左右方向（図３に示すＸ軸方向）及び前後方向（図３に示すＺ軸方向）の３軸方向に関してそれぞれ直線加速度を検出する。加速度センサ３７は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ３７からの出力は３軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置８（コントローラ５）を基準に設定されるＸＹＺ座標系（コントローラ座標系）における３次元のベクトル（ａｘ，ａｙ，ａｚ）として表される。以下では、加速度センサ３７によって検出される３軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
【００５９】
加速度センサ３７が検出した加速度を示すデータ（加速度データ）は、通信部３６へ出力される。
【００６０】
通信部３６は、マイコン４２、メモリ４３、無線モジュール４４、及びアンテナ４５を含んでいる。マイコン４２は、処理を行う際にメモリ４３を記憶領域として用いながら、マイコン４２が取得したデータをゲーム装置３へ無線送信する無線モジュール４４を制御する。また、マイコン４２はコネクタ３３に接続されている。ジャイロセンサユニット７から送信されてくるデータは、コネクタ３３を介してマイコン４２に入力される。以下、ジャイロセンサユニット７の構成について説明する。
【００６１】
ジャイロセンサユニット７は、プラグ５３、マイコン５４、２軸ジャイロセンサ５５、及び１軸ジャイロセンサ５６を備えている。上述のように、ジャイロセンサユニット７は、３軸（本実施形態では、図３に示すＸＹＺ軸）周りの角速度を検出し、検出した角速度を示すデータ（角速度データ）をコントローラ５へ送信する。
【００６２】
２軸ジャイロセンサ５５は、Ｘ軸周りの角速度及びＹ軸周りの（単位時間あたりの）角速度を検出する。また、１軸ジャイロセンサ５６は、Ｚ軸周りの（単位時間あたりの）角速度を検出する。なお、本明細書では、コントローラ５のＺ軸周り、Ｘ軸周り、Ｙ軸周りの回転方向を、それぞれ、ロール方向、ピッチ方向、ヨー方向と呼ぶ。すなわち、２軸ジャイロセンサ５５は、ピッチ方向（Ｘ軸周りの回転方向）及びヨー方向（Ｙ軸周りの回転方向）の角速度を検出し、１軸ジャイロセンサ５６は、ロール方向（Ｚ軸周りの回転方向）の角速度を検出する。
【００６３】
なお、本実施形態では、３軸回りの角速度を検出するために、２軸ジャイロセンサ５５と１軸ジャイロセンサ５６とを用いる構成としたが、他の実施形態においては、３軸回りの角速度を検出することができればよく、用いるジャイロセンサの数及び組み合わせはどのようなものであってもよい。
【００６４】
また、本実施形態では、各ジャイロセンサ５５及び５６が角速度を検出する３つの軸は、加速度センサ３７が加速度を検出する３つの軸（ＸＹＺ軸）と一致するように設定される。ただし、他の実施形態においては、各ジャイロセンサ５５及び５６が角速度を検出する３つの軸と、加速度センサ３７が加速度を検出する３つの軸とは一致しなくてもよい。
【００６５】
ジャイロセンサ５５及び５６で検出された角速度を示すデータは、マイコン５４に出力される。したがって、マイコン５４には、ＸＹＺ軸の３軸回りの角速度を示すデータが入力されることになる。マイコン５４は、上記３軸回りの角速度を示すデータを角速度データとしてプラグ５３を介してコントローラ５へ送信する。なお、マイコン５４からコントローラ５への送信は所定の周期毎に逐次行われるが、ゲームの処理は１／６０秒を単位として（１フレーム時間として）行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
【００６６】
コントローラ５の説明に戻り、操作部３２、撮像情報演算部３５、及び加速度センサ３７からマイコン４２へ出力されたデータ、ならびに、ジャイロセンサユニット７からマイコン４２へ送信されてきたデータは、一時的にメモリ４３に格納される。これらのデータは、上記操作データとしてゲーム装置３へ送信される。すなわち、マイコン４２は、ゲーム装置３の無線コントローラモジュール１９への送信タイミングが到来すると、メモリ４３に格納されている操作データを無線モジュール４４へ出力する。無線モジュール４４は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ４５から放射する。つまり、操作データは、無線モジュール４４で微弱電波信号に変調されてコントローラ５から送信される。微弱電波信号はゲーム装置３側の無線コントローラモジュール１９で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置３は操作データを取得することができる。そして、ゲーム装置３のＣＰＵ１０は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部３６から無線コントローラモジュール１９への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は１／６０秒を単位として（１フレーム時間として）行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ５の通信部３６は、例えば１／２００秒に１回の割合で各操作データをゲーム装置３の無線コントローラモジュール１９へ出力する。
【００６７】
ゲーム装置３では、無線コントローラモジュール１９を通じて入力される操作データに基づいて、種々の処理が行われる。例えば、前述のコントローラ５のＸＹＺ軸の３軸回りの角速度を示すデータから、コントローラ５の姿勢が算出され、当該コントローラ５の姿勢に応じて仮想空間内のオブジェクトの動作が制御される。
【００６８】
上記コントローラ５を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ５を任意の方向（ロール方向、ピッチ方向、ヨー方向）に傾ける操作を行うことができる。その他、上記コントローラ５によれば、プレイヤは、コントローラ５によって画面上の任意の位置を指示する操作、及び、コントローラ５自体を動かす操作を行うこともできる。
【００６９】
［ゲーム処理の詳細］
次に、図８〜図１９を参照して、上記ゲームシステム１において実行されるゲーム処理について詳細に説明する。
【００７０】
図８〜図１０は、本実施形態においてゲームの実行中にテレビ２の画面に表示されるゲーム画像の例を示している。本実施形態において実行されるゲームでは、プレイヤの操作に応じて、ゲーム世界（仮想空間）内の所定のオブジェクトの動作が制御される。より具体的には、図８に示すように、ゲーム世界において、トロッコを模したオブジェクト９０が線路上を進んでおり、プレイヤが入力装置８の姿勢を変化させると、それに応じてオブジェクト９０が右方向または左方向に傾く。例えば、図９に示すように、線路が右へカーブしている箇所では、カーブの度合いに応じた適切な角度でオブジェクト９０を右に傾ける必要がある。さもないとオブジェクト９０は脱線してしまう。同様に、図１０に示すように、線路が左へカーブしている箇所では、カーブの度合いに応じた適切な角度でオブジェクト９０を左に傾ける必要がある。このゲームにおけるプレイヤの目標は、オブジェクト９０を脱線させることなくゴール地点までオブジェクト９０を導くことである。
【００７１】
図１１は、ゲームプログラム６１の実行時に外部メインメモリ１２（または内部メインメモリ１１ｅ）に格納されるデータの一例を示している。図１１に示すように、外部メインメモリ１２には、ゲームプログラム６１、操作データ６２、入力装置姿勢データ６３、オブジェクトデータ６４、その他データ６５等が格納される。
【００７２】
ゲームプログラム６１は、ゲーム装置３のＣＰＵ１０に、後述する図１２〜図１４のフローチャートで示される各種処理を実行させるためのコンピュータプログラムである。当該ゲームプログラム６１は、例えば、光ディスク４から外部メインメモリ１２にロードされる。
【００７３】
操作データ６２は、入力装置８からゲーム装置３へと送信される信号に含まれている、入力装置８に対するプレイヤの操作を示すデータである。操作データ６２には、入力装置８のジャイロセンサユニット７から出力された角速度データ（Ｘ軸周りの角速度とＹ軸周りの角速度とＺ軸周りの角速度とを示すデータ）が含まれている。
【００７４】
入力装置姿勢データ６３は、入力装置８の姿勢を示すデータであって、入力装置８のＸ軸周りの姿勢を表すピッチ角θｐ、入力装置８のＺ軸周りの姿勢を表すロール角θｒ、および入力装置８のＹ軸周りの姿勢を表すヨー角θｙを含む。ピッチ角θｐは、基準姿勢（例えば、図１に示すように、入力装置８のＺ軸の正方向をテレビ２に向け、入力装置８のＹ軸の正方向を鉛直上方に向けたときの入力装置８の姿勢）からのＸ軸周りの回転角度を示している。ロール角θｒは、基準姿勢からのＺ軸周りの回転角度を示している。ヨー角θｙは、基準姿勢からのＹ軸周りの回転角度を示している。
【００７５】
オブジェクトデータ６４は、ゲーム世界におけるオブジェクト９０に関するデータであって、オブジェクト９０の形状、位置、姿勢、模様等のデータを含む。オブジェクト９０の姿勢は、例えば、姿勢ベクトルで表される。
【００７６】
次に、図１２〜図１４のフローチャートを参照して、ゲームプログラム６１に基づくＣＰＵ１０の処理の流れを説明する。
【００７７】
ゲームプログラム６１の実行が開始されると、図１２のステップＳ１０において、ＣＰＵ１０は、初期化処理を行う。ここでは、ゲーム処理に用いられる各種変数に初期値をセットしたり、入力装置８の基準姿勢を取得（すなわち、図１に示すような位置に入力装置８を置くようにプレイヤに指示した後、入力装置姿勢データ６３のピッチ角θｐ、ロール角θｒ、およびヨー角θｙを０にセットする）したり等の処理が行われる。
【００７８】
ステップＳ１１において、ＣＰＵ１０は、仮想空間の所定位置にオブジェクト９０を配置する。
【００７９】
ステップＳ１２において、ＣＰＵ１０は、オブジェクト９０の移動制御を行う。すなわち、線路の起伏等に応じて、ゲーム世界におけるオブジェクト９０の位置を更新する。
【００８０】
ステップＳ１３において、ＣＰＵ１０は、入力装置８から操作データ６２を取得して、外部メインメモリ１２に格納する。
【００８１】
ステップＳ１４において、ＣＰＵ１０は、操作データ６２に含まれる角速度データに基づいて、入力装置８の姿勢（Ｘ軸周りの姿勢、Ｙ軸周りの姿勢、およびＺ軸周りの姿勢）を検出して、入力装置姿勢データ６３のピッチ角θｐ、ロール角θｒ、およびヨー角θｙを更新する。
【００８２】
ステップＳ１５において、ＣＰＵ１０は、ピッチ角θｐが第１範囲内かどうかを判断する。本実施形態では、ステップＳ１５および後述するステップＳ１７において、ピッチ角θｐに基づいて、プレイヤが入力装置８を「前向き持ち」で持っているのか、「上向き持ち」でもっているのかが判断される。「前向き持ち」とは、図１５に示すように、入力装置８のＺ軸の正方向がプレイヤから見て概ね前方を向くような持ち方であり、「上向き持ち」とは、図１６に示すように、入力装置８のＺ軸の正方向がプレイヤから見て概ね上方を向くような持ち方である。ステップＳ１５では、ＣＰＵ１０は、ピッチ角θｐが第１範囲内かどうかを判断し、第１範囲内である場合には「前向き持ち」であると判断してステップＳ１６に進み、そうでない場合にはステップＳ１７に進む。本実施形態では、第１範囲は、図１７に示すように、−９０°〜＋４５°の範囲とする。
【００８３】
ステップＳ１６において、ＣＰＵ１０は、第１制御処理を行う。第１制御処理は、ロール角θｒ（図１８参照）に基づいてオブジェクト９０の姿勢を制御する処理である。第１制御処理の詳細は後述する。
【００８４】
ステップＳ１７において、ＣＰＵ１０は、ピッチ角θｐが第２範囲内かどうかを判断し、第２範囲内である場合には「上向き持ち」であると判断してステップＳ１８に進み、そうでない場合にはステップＳ１９に進む。本実施形態では、第２範囲は、図１７に示すように、＋４５°〜＋１３５°の範囲とする。
【００８５】
ステップＳ１８において、ＣＰＵ１０は、第２制御処理を行う。第２制御処理は、ヨー角θｙ（図１９参照）に基づいてオブジェクト９０の姿勢を制御する処理である。第２制御処理の詳細は後述する。
【００８６】
ステップＳ１９において、ＣＰＵ１０は、オブジェクト９０の姿勢と、オブジェクト９０の現在位置における線路のカーブ度合いとに基づいて、オブジェクト９０が転倒するか否かを判定し、転倒すると判定された場合にはステップＳ２０に進み、そうでない場合にはステップＳ２１に進む。
【００８７】
ステップＳ２０において、ＣＰＵ１０は、オブジェクトの転倒処理（例えば、オブジェクト９０が転倒して脱線してしまうアニメーション表示の開始）を行う。
【００８８】
ステップＳ２１において、ＣＰＵ１０は、ステップＳ１２で更新されたオブジェクト９０の位置、および、ステップＳ１６またはステップＳ１８で更新されたオブジェクト９０の姿勢に基づいて、ゲーム世界のオブジェクト９０を描画して、ゲーム画像を生成する。生成されたゲーム画像は、所定のタイミングでテレビ２へと出力され、テレビ２の画面に表示される。
【００８９】
ステップＳ２２において、ＣＰＵ１０は、ゲームが終了したかどうかを判断し、ゲームが終了した場合にはゲームプログラム６１の実行を終了し、そうでない場合にはステップＳ１２に戻る。
【００９０】
次に、図１３のフローチャートを参照して、図１２のステップＳ１６の第１制御処理について詳細に説明する。
【００９１】
図１３のステップＳ４０において、ＣＰＵ１０は、ロール角θｒ（図１８参照）の絶対値が第１閾値（例えば１０°）以上かどうかを判断し、第１閾値以上である場合にはステップＳ４１に進み、そうでない場合には第１制御処理を終了する。すなわち、ロール角θｒの絶対値が第１閾値未満である場合には、ロール角θｒに応じたオブジェクト９０の姿勢の制御は行われない。この結果、プレイヤがオブジェクト９０を傾けようとしていないにも関わらず、手ぶれに過敏に反応してオブジェクト９０がふらついてしまうのを防止することができる。
【００９２】
ステップＳ４１において、ＣＰＵ１０は、ロール角θｒの絶対値が第２閾値（例えば９０°）以上かどうかを判断し、第２閾値以上である場合にはステップＳ４３に進み、そうでない場合にはステップＳ４２に進む。
【００９３】
ステップＳ４２において、ＣＰＵ１０は、ロール角θｒに応じてオブジェクト９０の姿勢（姿勢ベクトル）を更新する。
【００９４】
ステップＳ４３において、ＣＰＵ１０は、オブジェクトの転倒処理（例えば、オブジェクト９０が転倒して脱線してしまうアニメーション表示の開始）を行う。すなわち、ロール角θｒの絶対値が第２閾値以上である場合には、オブジェクト９０の現在位置における線路のカーブ度合いに関係なく、オブジェクト９０が転倒するようにしている。なお、第２閾値はゲーム進行の状況（例えば、線路のカーブの度合い）に応じて動的に変化させてもよい。
【００９５】
このように、第１制御処理では、オブジェクト９０の姿勢はロール角θｒに応じて更新され、ヨー角θｙには依存しない。
【００９６】
次に、図１４のフローチャートを参照して、図１２のステップＳ１８の第２制御処理について詳細に説明する。
【００９７】
図１４のステップＳ５０において、ＣＰＵ１０は、ヨー角θｙ（図１９参照）の絶対値が第３閾値（例えば１０°）以上かどうかを判断し、第３閾値以上である場合にはステップＳ５１に進み、そうでない場合には第２制御処理を終了する。すなわち、ヨー角θｙの絶対値が第３閾値未満である場合には、ヨー角θｙに応じたオブジェクト９０の姿勢の制御は行われない。この結果、プレイヤがオブジェクト９０を傾けようとしていないにも関わらず、手ぶれに過敏に反応してオブジェクト９０がふらついてしまうのを防止することができる。なお、この第３閾値は、前述の第１閾値と同じ値であってもよいし、異なる値であってもよい。
【００９８】
ステップＳ５１において、ＣＰＵ１０は、ヨー角θｙの絶対値が第４閾値（例えば９０°）以上かどうかを判断し、第４閾値以上である場合にはステップＳ５３に進み、そうでない場合にはステップＳ５２に進む。なお、この第４閾値は、前述の第２閾値と同じ値であってもよいし、異なる値であってもよい。
【００９９】
ステップＳ５２において、ＣＰＵ１０は、ヨー角θｙに応じてオブジェクト９０の姿勢（姿勢ベクトル）を更新する。
【０１００】
ステップＳ５３において、ＣＰＵ１０は、オブジェクトの転倒処理（例えば、オブジェクト９０が転倒して脱線してしまうアニメーション表示の開始）を行う。すなわち、ヨー角θｙの絶対値が第４閾値以上である場合には、オブジェクト９０の現在位置における線路のカーブ度合いに関係なく、オブジェクト９０が転倒するようにしている。なお、第４閾値はゲーム進行の状況（例えば、線路のカーブの度合い）に応じて動的に変化させてもよい。
【０１０１】
このように、第２制御処理では、オブジェクト９０の姿勢はヨー角θｙに応じて更新され、ロール角θｒには依存しない。
【０１０２】
［実施形態の効果］
以上のように、本実施形態では、プレイヤが入力装置８をどのように持っているかによって、入力装置８の入力操作モードが自動的に変化する。すなわち、プレイヤが入力装置８を「前向き持ち」しているときには、ロール角θｒに応じてオブジェクト９０の姿勢を制御する第１の入力操作モードが選択され、プレイヤが入力装置８を「上向き持ち」しているときには、ヨー角θｙに応じてオブジェクト９０の姿勢を制御する第２の入力操作モードが選択される。入力装置８をオブジェクト９０と見立てた場合、プレイヤが入力装置８を「前向き持ち」しているときには、入力装置８をロール方向に傾けることによってオブジェクト９０が左右に傾くのが、自然でかつ直感的である。同様に、プレイヤが入力装置８を「上向き持ち」しているときには、入力装置８をヨー方向に傾けることによってオブジェクト９０が左右に傾くのが、自然でかつ直感的である。したがって、本実施形態によれば、プレイヤによる入力装置８の持ち方に関わらず、常に良好な操作性（すなわち、自然でかつ直感的な操作性）が得られるようになる。また、プレイヤは自分の好みにあった入力操作モードで入力操作ができるので、操作の自由度が増す。
【０１０３】
［変形例］
なお、上記実施形態では、ピッチ角θｐが図１７に示す第１範囲（−９０°〜＋４５°の範囲）内のときには、ロール角θｒに応じてオブジェクト９０の姿勢が制御される第１の入力操作モードが選択され、ピッチ角θｐが図１７に示す第２範囲（＋４５°〜＋１３５°の範囲）内のときには、ヨー角θｙに応じてオブジェクト９０の姿勢が制御される第２の入力操作モードが選択されるが、これは単なる一例に過ぎない。他の実施形態では、例えば、図２０に示すように、ピッチ角θｐがθ２をまたいで大きくなった時点で第１の入力操作モードから第２の入力操作モードへと入力操作モードが切り替わり、ピッチ角θｐがθ１（ただしθ２＞θ１）をまたいで小さくなった時点で第２の入力操作モードから第１の入力操作モードへと入力操作モードが切り替わるようにしてもよい。これにより、図１７において例えばピッチ角θｐが４５°となるような状態でプレイヤが入力装置８を持っている場合に、入力操作モードが第１の入力操作モードと第２の入力操作モードとの間で頻繁に切り替わってしまうことを防止することができ、より良好な操作性が得られる。
【０１０４】
また、上記実施形態では、入力装置８のＸ軸周りの姿勢（ピッチ角θｐ）に応じて、第１の入力操作モードか第２の入力操作モードかを判断しているが、他の実施形態では、入力装置８の姿勢が任意の所定条件を満たすかどうかに応じて、第１の入力操作モードか第２の入力操作モードかを判断してもよい。例えば、図２１に示すように、入力装置８の現在方向が、基準方向を中心とした所定の第１範囲に含まれている場合には、ロール角θｒに応じてオブジェクト９０の姿勢が制御され、入力装置８の現在方向が第１範囲の外側の第２範囲に含まれている場合には、ヨー角θｙに応じてオブジェクト９０の姿勢が制御されるようにしてもよい。なお、入力装置８の現在方向が第１範囲および第２範囲のいずれであるかの判断は、ピッチ角θｐとヨー角θｙを用いた演算によって判断してもよいし、ピッチ角θｐとヨー角θｙの条件を規定したテーブルを予め規定しておき、当該テーブルに基づいて判断してもよい。
【０１０５】
また、上記実施形態では、現在の入力操作モードが第１の入力操作モードと第２の入力操作モードのいずれであるかは、プレイヤに対して特に提示されていないが、他の実施形態では、現在の入力操作モードが第１の入力操作モードと第２の入力操作モードのいずれであるかをプレイヤに提示してもよい。例えば、現在の入力操作モードが第１の入力操作モードである場合には、図２２に示すように、その旨を示す画像９１をゲーム画像と同時に表示し、現在の入力操作モードが第２の入力操作モードである場合には、図２３に示すように、その旨を示す画像９１をゲーム画像と同時に表示してもよい。
【０１０６】
また、上記実施形態では、入力装置８の姿勢に応じてオブジェクトの姿勢を更新しているが、他の実施形態では、入力装置８の姿勢に応じてオブジェクトの位置または動作を更新してもよい。さらには、オブジェクトの制御に限らず、他の任意のゲームパラメータを入力装置８の姿勢に応じて更新するようにしてもよい。
【０１０７】
また、上記実施形態では、入力装置８のジャイロセンサユニット７から出力された角速度データ（Ｘ軸周りの角速度とＹ軸周りの角速度とＺ軸周りの角速度とを示すデータ）に基づいて入力装置８の姿勢を検出しているが、入力装置８の姿勢の検出方法は任意である。例えば、入力装置８の加速度センサ３７から出力される加速度データに基づいて入力装置８の姿勢を検出してもよい。この場合、加速度センサ３７の３軸方向のそれぞれの加速度の値を検出することによって、入力装置８の重力加速度がどの向きにかかっているか、つまりは入力装置８の姿勢を判別することができる。また、例えば、入力装置８をカメラで撮影することによって入力装置８の姿勢を検出してもよい。
【０１０８】
また、上記実施形態では、第１制御処理において入力装置８のＺ軸周りの姿勢（ロール角θｒ）の変化に応じてオブジェクト９０の姿勢を更新しているが、他の実施形態では、入力装置８のＺ軸とは異なる任意の所定軸周りの姿勢の変化に応じてオブジェクト９０の姿勢を更新してもよい。同様に、上記実施形態では、第２制御処理において入力装置８のＸ軸周りの姿勢（ヨー角θｙ）の変化に応じてオブジェクト９０の姿勢を更新しているが、他の実施形態では、入力装置８のＸ軸とは異なる任意の所定軸周りの姿勢の変化に応じてオブジェクト９０の姿勢を更新してもよい。
【０１０９】
また、上記実施形態では、第１制御処理においてロール角θｒが第１閾値未満のときには、ロール角θｒに応じたオブジェクト９０の姿勢の更新は行っていないが、他の実施形態では、ロール角θｒが第１閾値未満のときにもロール角θｒに応じたオブジェクト９０の姿勢の更新を行ってもよい。同様に、上記実施形態では、第２制御処理においてヨー角θｙが第３閾値未満のときには、ヨー角θｙに応じたオブジェクト９０の姿勢の更新は行っていないが、他の実施形態では、ヨー角θｙが第３閾値未満のときにもヨー角θｙに応じたオブジェクト９０の姿勢の更新を行ってもよい。
【０１１０】
また、上記実施形態では、入力装置８とゲーム装置３とが無線通信によって接続されているが、他の実施形態では、入力装置８とゲーム装置３とがケーブルを介して電気的に接続されてもよい。
【０１１１】
また、上記実施形態では、ゲーム装置３のＣＰＵ１０がゲームプログラム６１を実行することによって、上述したフローチャートの処理が行われたが、他の実施形態では、上述したフローチャートの処理の一部又は全部が、ゲーム装置３が備える専用回路によって行われてもよい。
【０１１２】
また、上記実施形態では、１台のゲーム装置３によって上記ゲーム処理を実行しているが、他の実施形態では、互いに通信可能な複数のゲーム装置からなるゲームシステムによって上記ゲーム処理を分担して実行するようにしてもよい。例えば、ゲーム装置と、当該ゲーム装置とネットワークを介して通信可能なサーバ装置とを含むゲームシステムにおいて、上記一連の処理のうちの一部の処理（例えば、上記ステップＳ１６の第１制御処理、上記ステップＳ１８の第２制御処理等）がサーバ装置によって実行されてもよい。また、上記ゲームシステムにおいて、サーバ装置は、複数の情報処理装置によって構成され、サーバで実行するべき処理を複数の情報処理装置が分担して実行してもよい。
【０１１３】
なお、ゲーム装置としては、ゲームプログラム６１を実行することによって上記ゲーム処理を実行可能な任意の情報処理装置（例えば、据え置き型ゲーム装置、携帯型ゲーム装置、パーソナルコンピュータ、携帯電話など）を用いることができる。
【符号の説明】
【０１１４】
１    ゲームシステム
２    テレビジョン受像器（テレビ）
３    ゲーム装置
４    光ディスク
５    コントローラ
６    マーカ部
６Ｒ    マーカ
６Ｌ    マーカ
７    ジャイロセンサユニット
８    入力装置
９０    オブジェクト
９１    現在の入力操作モードを示す画像
【図１】
0005576721.tif 000002
【図２】
0005576721.tif 000003
【図３】
0005576721.tif 000004
【図４】
0005576721.tif 000005
【図５】
0005576721.tif 000006
【図６】
0005576721.tif 000007
【図７】
0005576721.tif 000008
【図８】
0005576721.tif 000009
【図９】
0005576721.tif 000010
【図１０】
0005576721.tif 000011
【図１１】
0005576721.tif 000012
【図１２】
0005576721.tif 000013
【図１３】
0005576721.tif 000014
【図１４】
0005576721.tif 000015
【図１５】
0005576721.tif 000016
【図１６】
0005576721.tif 000017
【図１７】
0005576721.tif 000018
【図１８】
0005576721.tif 000019
【図１９】
0005576721.tif 000020
【図２０】
0005576721.tif 000021
【図２１】
0005576721.tif 000022
【図２２】
0005576721.tif 000023
【図２３】
0005576721.tif 000024