(57)【特許請求の範囲】
【請求項１】
所定の検出面に対して遠隔から座標指示するためのデータを出力することが可能なポインティングデバイスを用いたゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記コンピュータに、
前記ポインティングデバイスから出力されたデータを用いて前記検出面上の座標を取得する座標取得ステップと、
前記座標取得ステップにおいて前記検出面における所定領域内の座標が取得されたか否かを検出する検出ステップと、
前記検出ステップによる検出に応じて、指示座標関連処理ステップと、指示座標非関連処理ステップとを切り替えて実行する切替ステップとを実行させ、
前記指示座標非関連処理ステップは、ゲーム空間を第１の視点により表現したゲーム画像を画面に表示する第１表示制御ステップを含み、
前記指示座標関連処理ステップは、ゲーム空間を前記第１の視点と異なる第２の視点により表現したゲーム画像を画面に表示する第２表示制御ステップを含み、
前記ポインティングデバイスは、前記遠隔から座標指定するポインティング操作とは別に、プレイヤの操作に応じた操作データを発生する入力部を、さらに備え、
前記指示座標関連処理ステップでは、前記座標取得ステップにおいて取得された座標を用いたゲーム処理である指示座標関連処理を前記コンピュータに実行させ、
前記指示座標非関連処理ステップでは、前記座標取得ステップにおいて取得された座標を用いないゲーム処理である指示座標非関連処理を前記コンピュータに実行させ、
前記指示座標関連処理ステップでは、前記指示座標関連処理に加えて、前記入力部からの操作データに基づいて、前記指示座標関連処理におけるゲーム処理とは異なるゲーム処理がおこなわれ、
前記検出ステップでは、前記座標取得ステップにおいて前記検出面における所定領域内の座標が取得されたと検出される状態から当該検出がされない状態に移行したことが検出され、
前記切替ステップでは、前記検出ステップにおいて前記移行が検出されたときであっても、前記入力部から所定の操作データが出力されているときには、前記指示座標関連処理ステップから前記指示座標非関連処理ステップに切り替えて実行されず、前記指示座標関連処理ステップの実行が継続される、ゲームプログラム。
【請求項２】
前記切替ステップでは、前記検出ステップにおいて前記移行が検出されたときに、前記入力部から所定の操作データが出力されているときには、前記指示座標関連処理ステップから前記指示座標非関連処理ステップに切り替えて実行されず、前記指示座標関連処理ステップの実行が継続され、かつ、当該指示座標関連ステップの実行が継続している場合は前記第２表示制御ステップでは、前記座標取得ステップにおいて最後に取得された座標または前記座標取得ステップにおいて最後に取得された所定領域内の座標に応じて注視点が変更されたゲーム画像が表示される、請求項１に記載のゲームプログラム。
【請求項３】
所定の検出面に対して遠隔から座標指示するためのデータを出力することが可能なポインティングデバイスを用いたゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記コンピュータに、
前記ポインティングデバイスから出力されたデータを用いて前記検出面上の座標を取得する座標取得ステップと、
前記座標取得ステップにおいて前記検出面における所定領域内の座標が取得されたか否かを検出する検出ステップと、
前記検出ステップによる検出に応じて、指示座標関連処理ステップと、指示座標非関連処理ステップとを切り替えて実行する切替ステップとを実行させ、
前記指示座標非関連処理ステップは、ゲーム空間を第１の視点により表現したゲーム画像を画面に表示する第１表示制御ステップを含み、
前記指示座標関連処理ステップは、ゲーム空間を前記第１の視点と異なる第２の視点により表現したゲーム画像を画面に表示する第２表示制御ステップを含み、
前記ポインティングデバイスは、前記遠隔から座標指定するポインティング操作とは別に、プレイヤの操作に応じた操作データを発生する入力部を、さらに備え、
前記指示座標関連処理ステップでは、前記座標取得ステップにおいて取得された座標を用いたゲーム処理である指示座標関連処理を前記コンピュータに実行させ、
前記指示座標非関連処理ステップでは、前記座標取得ステップにおいて取得された座標を用いないゲーム処理である指示座標非関連処理を前記コンピュータに実行させ、
前記指示座標非関連処理ステップでは、前記指示座標非関連処理として、前記入力部からの操作データに基づいてゲーム処理がおこなわれ、
前記検出ステップでは、前記座標取得ステップにおいて前記検出面における所定領域内の座標が取得されたと検出されない状態から当該検出がされる状態に移行したことが検出され、
前記切替ステップでは、前記検出ステップにおいて前記移行が検出されたときであっても、前記入力部から所定の操作データが出力されているときには、前記指示座標非関連処理ステップから前記指示座標関連処理ステップに切り替えて実行されず、前記指示座標非関連処理ステップの実行が継続される、ゲームプログラム。
【請求項４】
所定の検出面に対して遠隔から座標指示するためのデータを出力することが可能なポインティングデバイスを用いたゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記コンピュータに、
前記ポインティングデバイスから出力されたデータを用いて前記検出面上の座標を取得する座標取得ステップと、
前記座標取得ステップにおいて前記検出面における所定領域内の座標が取得されたか否かを検出する検出ステップと、
前記検出ステップによる検出に応じて、指示座標関連処理ステップと、指示座標非関連処理ステップとを切り替えて実行する切替ステップと、
プレイヤの操作に応じて、仮想ゲーム世界に存在するプレイヤキャラクタを動作させるプレイヤキャラクタ動作制御ステップとを実行させ、
前記指示座標非関連処理ステップは、ゲーム空間を第１の視点により表現したゲーム画像を画面に表示する第１表示制御ステップを含み、
前記指示座標関連処理ステップは、ゲーム空間を前記第１の視点と異なる第２の視点により表現したゲーム画像を画面に表示する第２表示制御ステップを含み、
前記検出ステップでは、前記座標取得ステップにおいて前記検出面における所定領域内の座標が取得されたと検出される状態から当該検出がされない状態に移行したことが検出され、
前記切替ステップでは、前記検出ステップにおいて前記移行が検出されたときに、前記プレイヤキャラクタが特定の動作をしているときには、前記指示座標関連処理ステップから前記指示座標非関連処理ステップに切り替えて実行されず、前記指示座標関連処理ステップの実行が継続される、ゲームプログラム。
【請求項５】
所定の検出面に対して遠隔から座標指示するためのデータを出力することが可能なポインティングデバイスを用いたゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記コンピュータに、
前記ポインティングデバイスから出力されたデータを用いて前記検出面上の座標を取得する座標取得ステップと、
前記座標取得ステップにおいて前記検出面における所定領域内の座標が取得されたか否かを検出する検出ステップと、
前記検出ステップによる検出に応じて、指示座標関連処理ステップと、指示座標非関連処理ステップとを切り替えて実行する切替ステップとを実行させ、
前記指示座標非関連処理ステップは、ゲーム空間を第１の視点により表現したゲーム画像を画面に表示する第１表示制御ステップを含み、
前記指示座標関連処理ステップは、ゲーム空間を前記第１の視点と異なる第２の視点により表現したゲーム画像を画面に表示する第２表示制御ステップを含み、
前記ポインティングデバイスは、プレイヤによって把持されるハウジングを含み、
前記ハウジングは、動きセンサが設けられ、
前記検出ステップでは、前記座標取得ステップにおいて前記検出面における所定領域内の座標が取得されたと検出される状態から当該検出がされない状態に移行したことが検出され、
前記切替ステップでは、前記検出ステップにおいて前記移行が検出されたときであっても、前記動きセンサが所定の閾値以上の出力を示しているときには、前記指示座標関連処理ステップから前記指示座標非関連処理ステップに切り替えて実行されず、前記指示座標関連処理ステップの実行が継続される、ゲームプログラム。
【請求項６】
所定の検出面に対して遠隔から座標指示するためのデータを出力することが可能なポインティングデバイスを用いたゲーム装置を含むゲームシステムであって、
前記ゲーム装置は、
前記ポインティングデバイスから出力されたデータに基づいて、前記検出面上の座標を取得する座標取得手段と、
前記座標取得手段において前記検出面における所定領域内の座標が取得されたか否かを検出する検出手段と、
前記検出手段による検出に応じて、指示座標関連処理手段と、指示座標非関連処理手段とを切り替えて実行する切替手段とを備え、
前記指示座標非関連処理手段は、ゲーム空間を第１の視点により表現したゲーム画像を画面に表示する第１表示制御手段を含み、
前記指示座標関連処理手段は、ゲーム空間を前記第１の視点と異なる第２の視点により表現したゲーム画像を画面に表示する第２表示制御手段を含み、
前記ポインティングデバイスは、前記遠隔から座標指定するポインティング操作とは別に、プレイヤの操作に応じた操作データを発生する入力部を、さらに備え、
前記指示座標関連処理手段は、前記座標取得手段において取得された座標を用いたゲーム処理である指示座標関連処理を実行し、
前記指示座標非関連処理手段は、前記座標取得手段において取得された座標を用いないゲーム処理である指示座標非関連処理を実行し、
前記指示座標関連処理手段は、前記指示座標関連処理に加えて、前記入力部からの操作データに基づいて、前記指示座標関連処理におけるゲーム処理とは異なるゲーム処理をおこない、
前記検出手段は、前記座標取得手段において前記検出面における所定領域内の座標が取得されたと検出される状態から当該検出がされない状態に移行したことを検出し、
前記切替手段は、前記検出手段が前記移行を検出したときであっても、前記入力部から所定の操作データが出力されているときには、前記指示座標関連処理手段から前記指示座標非関連処理手段に切り替えて実行せず、前記指示座標関連処理手段の実行を継続する、ゲームシステム。
【請求項７】
所定の検出面に対して遠隔から座標指示するためのデータを出力することが可能なポインティングデバイスを用いたゲーム装置を含むゲームシステムであって、
前記ゲーム装置は、
前記ポインティングデバイスから出力されたデータを用いて前記検出面上の座標を取得する座標取得手段と、
前記座標取得手段において前記検出面における所定領域内の座標が取得されたか否かを検出する検出手段と、
前記検出手段による検出に応じて、指示座標関連処理手段と、指示座標非関連処理手段とを切り替えて実行する切替手段とを備え、
前記指示座標非関連処理手段は、ゲーム空間を第１の視点により表現したゲーム画像を画面に表示する第１表示制御手段を含み、
前記指示座標関連処理手段は、ゲーム空間を前記第１の視点と異なる第２の視点により表現したゲーム画像を画面に表示する第２表示制御手段を含み、
前記ポインティングデバイスは、前記遠隔から座標指定するポインティング操作とは別に、プレイヤの操作に応じた操作データを発生する入力部を、さらに備え、
前記指示座標関連処理手段は、前記座標取得手段において取得された座標を用いたゲーム処理である指示座標関連処理を実行し、
前記指示座標非関連処理手段は、前記座標取得手段において取得された座標を用いないゲーム処理である指示座標非関連処理を実行し、
前記指示座標非関連処理手段は、前記指示座標非関連処理として、前記入力部からの操作データに基づいたゲーム処理をおこない、
前記検出手段は、前記座標取得手段において前記検出面における所定領域内の座標が取得されたと検出されない状態から当該検出がされる状態に移行したことを検出し、
前記切替手段は、前記検出手段において前記移行が検出されたときであっても、前記入力部から所定の操作データが出力されているときには、前記指示座標非関連処理手段から前記指示座標関連処理手段に切り替えて実行せず、前記指示座標非関連処理手段の実行を継続する、ゲームシステム。
【請求項８】
所定の検出面に対して遠隔から座標指示するためのデータを出力することが可能なポインティングデバイスを用いたゲーム装置を含むゲームシステムであって、
前記ゲーム装置は、
前記ポインティングデバイスから出力されたデータを用いて前記検出面上の座標を取得する座標取得手段と、
前記座標取得手段において前記検出面における所定領域内の座標が取得されたか否かを検出する検出手段と、
前記検出手段による検出に応じて、指示座標関連処理手段と、指示座標非関連処理手段とを切り替えて実行する切替手段と、
プレイヤの操作に応じて、仮想ゲーム世界に存在するプレイヤキャラクタを動作させるプレイヤキャラクタ動作制御手段とを備え、
前記指示座標非関連処理手段は、ゲーム空間を第１の視点により表現したゲーム画像を画面に表示する第１表示制御手段を含み、
前記指示座標関連処理手段は、ゲーム空間を前記第１の視点と異なる第２の視点により表現したゲーム画像を画面に表示する第２表示制御手段を含み、
前記検出手段は、前記座標取得手段において前記検出面における所定領域内の座標が取得されたと検出される状態から当該検出がされない状態に移行したことを検出し、
前記切替手段は、前記検出手段において前記移行が検出されたときに、前記プレイヤキャラクタが特定の動作をしているときには、前記指示座標関連処理手段から前記指示座標非関連処理手段に切り替えて実行せず、前記指示座標関連処理手段の実行を継続する、ゲームシステム。
【請求項９】
所定の検出面に対して遠隔から座標指示するためのデータを出力することが可能なポインティングデバイスを用いたゲーム装置を含むゲームシステムであって、
前記ゲーム装置は、
前記ポインティングデバイスから出力されたデータを用いて前記検出面上の座標を取得する座標取得手段と、
前記座標取得手段において前記検出面における所定領域内の座標が取得されたか否かを検出する検出手段と、
前記検出手段による検出に応じて、指示座標関連処理手段と、指示座標非関連処理手段とを切り替えて実行する切替手段とを備え、
前記指示座標非関連処理手段は、ゲーム空間を第１の視点により表現したゲーム画像を画面に表示する第１表示制御手段を含み、
前記指示座標関連処理手段は、ゲーム空間を前記第１の視点と異なる第２の視点により表現したゲーム画像を画面に表示する第２表示制御手段を含み、
前記ポインティングデバイスは、プレイヤによって把持されるハウジングを含み、
前記ハウジングは、動きセンサが設けられ、
前記検出手段は、前記座標取得手段において前記検出面における所定領域内の座標が取得されたと検出される状態から当該検出がされない状態に移行したことを検出し、
前記切替手段は、前記検出手段において前記移行が検出されたときであっても、前記動きセンサが所定の閾値以上の出力を示しているときには、前記指示座標関連処理手段から前記指示座標非関連処理手段に切り替えて実行せず、前記指示座標関連処理手段の実行を継続する、ゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法に関し、より特定的には、所定の検出面に対して遠隔から座標指定するためのデータを出力可能なポインティングデバイスを用いて操作するゲーム装置で実行されるゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法に関する。
【背景技術】
【０００２】
従来、所定の検出面としての表示画面に対して遠隔から座標指定するポインティングデバイスを用いて操作するゲーム装置がある（例えば、特許文献１参照）。上記特許文献１で開示されたビデオゲームは、銃２０により表示画面３Ａ上の位置を指定してターゲットを射撃するゲームを進行するものであり、フットスイッチ７０を操作することによって表示画面３Ａに表示されるゲーム画像の視点を変更する。
【０００３】
また、他にも表示画面に表示するゲーム画像の視点を変更するゲーム装置がある（例えば、特許文献２および３参照）。上記特許文献２で開示された電子遊戯機器は、プレイヤの姿勢を検出し、当該姿勢に応じて表示画面に表示するゲーム画像の視点を変更する。上記特許文献３で開示されたビデオゲーム装置は、例えばプレイヤキャラクタの表示位置および挙動に応じて表示画面に表示するゲーム画像の視点を変更する。具体的には、当該ビデオゲーム装置は、プレイヤの操作に応じて、プレイヤキャラクタがゲーム空間内を移動中のときは俯瞰視点（プレイヤキャラクタの上部後方に位置するゲーム空間内の視点）とし、プレイヤキャラクタが停止しているときは主観視点（プレイヤキャラクタの位置とほぼ一致するゲーム空間内の視点）とし、プレイヤキャラクタがゲーム空間内の特定場所に潜入したときも同様に主観視点としている。
【０００４】
一方、ゲーム画像の視点とは異なり、装置に対する操作方法を変更するゲーム装置がある（例えば、特許文献４〜６参照）。上記特許文献４で開示された手持ち型液晶ゲーム機は、実行するゲームが縦長画面用ゲームか横長画面用ゲームかに応じて、装置に対する操作方法を変更するものである。上記特許文献５で開示された情報配信装置は、キー操作とその操作に対する応答をユーザが定義することによって、操作方法を変更するものである。上記特許文献６で開示されたゲーム装置は、プレイヤの操作に応じて生成される操作信号に対応して行われるゲーム制御を、操作部５０の姿勢に応じて変更するものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−９００４３号公報
【特許文献２】特開平７−１１６３４３号公報
【特許文献３】特開平１１−２７２８４１号公報
【特許文献４】特開平１０−２３５０１４号公報
【特許文献５】特開２００１−１０９７１４号公報
【特許文献６】特開２００３−２５１０７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１で開示されたビデオゲームは、表示画面に表示するゲーム画像の視点を変更するためにはフットスイッチを操作する必要があるため、操作性が悪い。また、上記特許文献２で開示された電子遊戯機器および上記特許文献３で開示されたビデオゲーム装置は、キーやジョイスティック等をプレイヤが操作することによってゲーム入力を行うものであるため、検出面に対して遠隔から座標指定するポインティングデバイスを用いて操作するゲーム装置にそのまま適用しても好適とならない。
【０００７】
また、上記特許文献４で開示された手持ち型液晶ゲーム機は、当該ゲーム機で実行するゲームの種類に応じて操作方法を変更するものであり、同じゲームの実行中に適宜操作方法を変更するものではない。上記特許文献５で開示された情報配信装置は、ユーザがその都度キー操作とその操作に対する応答を定義することが必要であり操作が煩雑となる。また、特許文献６で開示されたゲーム装置は、方向キーやボタン等をプレイヤが操作することによってゲーム入力を行うものであるため、検出面に対して遠隔から座標指定するポインティングデバイスを用いて操作するゲーム装置にそのまま適用しても好適とならない。
【０００８】
それ故に、本発明の目的は、上述の課題のうち少なくとも１つを解決することであり、所定の検出面に対して遠隔から座標指定するためのデータを出力可能なポインティングデバイスを用いて操作するゲーム装置において、表示画面に表示するゲーム画像の視点や操作方法等のゲーム処理を適宜変更するゲームプログラム、ゲーム装置、およびゲームシステムを提供することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１０】
第１の発明は、所定の検出面に対して遠隔から座標指示するためのデータを出力可能なポインティングデバイス（７、７４、８）を用いたゲーム装置（３）のコンピュータ（３０）で実行されるゲームプログラム（ＧＰ）である。ゲームプログラムは、座標取得ステップ（Ｓ５１）、指示座標関連処理ステップ（Ｓ９０〜Ｓ９３）、指示座標非関連処理ステップ（Ｓ８６、Ｓ８７、Ｓ９２、Ｓ９３）、検出ステップ（Ｓ５４）、および切替ステップ（Ｓ５５〜Ｓ８５、Ｓ８８、Ｓ８９）をコンピュータに実行させる。座標取得ステップは、ポインティングデバイスから出力されたデータを用いて検出面上の座標（Ｄｂ３）を取得する。指示座標関連処理ステップは、座標取得ステップで取得された座標を用いたゲーム処理である指示座標関連処理をおこなう（図１６、図１７、図２０）。指示座標非関連処理ステップは、座標取得ステップで取得された座標を用いないゲーム処理である指示座標非関連処理をおこなう（図１４、図１５、図１９）。検出ステップは、座標取得ステップにより検出面における所定領域（所定範囲）内の座標が取得された（図１０〜図１２）か否か（図８、図９）を検出する。切替ステップは、検出ステップによる検出に応じて、指示座標関連処理ステップと、指示座標非関連処理ステップとを切り替えて実行する。
【００１１】
ポインティングデバイスは、所定の検出面に対して遠隔から（すなわち、検出面から離れた位置から）座標指示するためのデータを出力することが可能なものであり、代表的には、プレイヤが把持するハウジングにより指される検出面上の位置を取得するためのデータを出力するものである。例えば、プレイヤに把持されるハウジングの所定位置（端部など）から所定方向（例えば、ハウジングの姿勢に応じて定まる方向であり、ハウジングの長手方向など）に伸ばした直線が所定の検出面と交わる位置（すなわち、当該検出面上に設定される検出座標系における座標）を取得するためのデータを出力するものが挙げられる。また、ポインティングデバイスからの検出出力データと指示座標との関係が固定的な関係であるようなものであるのが好ましい（すなわち、ポインティングデバイスから出力されるデータに応じて直前に取得された指示座標に対する変化を決定するのではなく、ポインティングデバイスから出力されるデータに応じて一意に、または、一対一に指示座標が取得されるものが好ましい）。また、検出面はゲーム画像が表示される表示画面であってもよいし、検出面が表示画面と異なっていても良いが、後者の場合には、検出面上の座標と表示画面上の座標との対応関係を設定するのが好ましい（言い換えると、前者は表示画面上の座標をそのまま検出するものであり、後者は表示画面と異なる検出面上の座標を検出し、検出面上の座標を表示画面上の座標に変換するものである）。また、検出面と表示画面とが一致する場合、検出可能な最大領域は、表示画面（またはゲーム画像が表示される表示領域）と一致する領域であっても良いし、当該表示画面（または表示領域）よりも大きな領域であっても良いし、小さい領域であってもよい。また、検出面が表示画面と一致する場合、所定領域は表示画面（またはゲーム画像が表示される表示領域）と一致する領域であってもよいし、より大きな領域であってもよいし、小さい領域であってもよい。また、「所定領域」は、検出可能な最大領域より小さな領域であってもよいし、当該最大領域であってもよい。後者の場合、検出ステップは、座標取得ステップにより座標が取得されたか、それとも、取得できなかったかを検出する。
【００１２】
また、ポインティングデバイスは、ハードウェアにより指示座標を算出してもよいし、ハードウェアにより検出した検出値をソフトウェア処理することにより指示座標を算出してもよい。また、後者の場合、当該ソフトウェア処理を、ポインティングデバイス内蔵のソフトウェアにより処理してもよいし、ゲームアプリケーション内のソフトウェア処理によりおこなってもよい。
【００１３】
また、指示座標関連処理ステップは、座標取得ステップにより所定領域内の座標が取得されたときに限り、当該取得された座標を用いてゲーム処理をおこなってもよい。この場合、検出ステップが判断に用いる所定領域（第１領域）と、指示座標関連処理ステップがゲーム処理に用いる所定領域（第２領域）は同じであっても良いし、異なっていても良いが、異なる場合には、第１領域は第２領域を含みさらに当該第２領域の周辺領域を含む領域であることが好ましい。例えば、第１領域を検出可能な最大領域とし（この場合、検出ステップは、座標が取得されたかそれとも取得できなかったかを判断する）、第２領域をゲーム画像が表示される表示領域としてもよい。なお、所定の検出面は、現実に存在しない面であって現実の空間中に仮想的に設定される面であってもかまわないし、表示画面など現実に存在する面であってもかまわない。
【００１４】
第２の発明は、上記第１の発明において、検出ステップでは、座標取得ステップにより検出面における座標が取得できたか否か（Ｓ５２）が検出される。
【００１５】
第３の発明は、上記第１の発明において、表示制御ステップ（Ｓ９３）を、さらにコンピュータに実行させる。表示制御ステップは、仮想３次元ゲーム空間（Ｓ）に配置された仮想カメラ（Ｃ）から見たゲーム画像を表示画面に表示する。指示座標非関連処理ステップは、第１仮想カメラ制御ステップ（Ｓ８６）を含む。第１仮想カメラ制御ステップは、ゲームパラメータ（Ｐｈ）に基づいて第１の演算をすることによって仮想カメラのパラメータを決定する（図１５）。指示座標関連処理ステップは、第２仮想カメラ制御ステップ（Ｓ９０）を含む。第２仮想カメラ制御ステップは、ゲームパラメータに基づいて第１の演算とは異なった第２の演算をすることによって仮想カメラのパラメータを決定する（図１７）。
【００１６】
第４の発明は、上記第１の発明において、表示制御ステップを、さらにコンピュータに実行させる。表示制御ステップは、仮想３次元ゲーム空間に配置された仮想カメラから見たゲーム画像を表示画面に表示する。指示座標非関連処理ステップは、第１仮想カメラ制御ステップを含む。第１仮想カメラ制御ステップは、仮想３次元ゲーム空間に存在するプレイヤキャラクタを客観的に眺めたゲーム画像が生成されるように、仮想カメラのパラメータを決定する。指示座標関連処理ステップは、第２仮想カメラ制御ステップを含む。第２仮想カメラ制御ステップは、プレイヤキャラクタが主観的に仮想３次元ゲーム空間を眺めたゲーム画像が生成されるように、仮想カメラのパラメータを決定する。なお、典型的には、第１仮想カメラ制御ステップでは、プレイヤキャラクタおよびその全周方向の仮想ゲーム空間が撮影されるようにされ、第２仮想カメラ制御ステップでは、プレイヤキャラクタの位置から所定方向（多くても１８０°以下の範囲の方向）の仮想ゲーム空間が撮影されるように設定される。
【００１７】
第５の発明は、上記第１の発明において、表示制御ステップを、さらにコンピュータに実行させる。表示制御ステップは、仮想３次元ゲーム空間に配置された仮想カメラから見たゲーム画像を表示画面に表示する。指示座標非関連処理ステップは、第１仮想カメラ制御ステップを含む。第１仮想カメラ制御ステップは、仮想カメラの注視点がそのプレイヤキャラクタの位置（Ｐｈ）とほぼ一致するように仮想カメラのパラメータを決定する。指示座標関連処理ステップは、第２仮想カメラ制御ステップを含む。第２仮想カメラ制御ステップは、仮想カメラの視点がプレイヤキャラクタの位置とほぼ一致するように仮想カメラのパラメータを決定する。なお、指示座標非関連処理ステップにおいて、仮想カメラの注視点とプレイヤキャラクタの位置との距離が、仮想カメラの視点とプレイヤキャラクタの位置との距離よりも３次元仮想ゲーム空間において小さくなるように、仮想カメラのパラメータを決定し、指示座標関連処理ステップにおいて、仮想カメラの視点とプレイヤキャラクタの位置との距離が、仮想カメラの注視点とプレイヤキャラクタの位置との距離よりも小さくなるように、仮想カメラのパラメータを決定するのが好ましい。
【００１８】
第６の発明は、上記第１の発明において、表示制御ステップを、さらにコンピュータに実行させる。表示制御ステップは、仮想３次元ゲーム空間に配置された仮想カメラから見たゲーム画像を表示画面に表示する。指示座標非関連処理ステップでは、仮想カメラの視点からプレイヤキャラクタの位置までの距離が、指示座標関連処理ステップで決定されるその距離より長くなるように仮想カメラのパラメータが決定される。
【００１９】
第７の発明は、上記第１の発明において、表示制御ステップを、さらにコンピュータに実行させる。表示制御ステップは、仮想３次元ゲーム空間に配置された仮想カメラから見たゲーム画像を表示画面に表示する。指示座標非関連処理ステップでは、プレイヤキャラクタの進行方向または向き（Ｐｄ）に対して横方向から仮想３次元ゲーム空間を眺めたゲーム画像が生成されるように仮想カメラのパラメータが決定される。指示座標関連処理ステップでは、プレイヤキャラクタの進行方向または向きに向かって仮想３次元ゲーム空間を眺めたゲーム画像が生成されるように仮想カメラのパラメータが決定される。なお、指示座標非関連処理ステップでは、仮想カメラの向きを仮想水平面上に投影した方向が、キャラクタの進行方向またはキャラクタの向き（顔または体が向いている方向）を当該仮想水平面上に投影した方向に略直交するようにし、指示座標関連処理ステップでは、これらの投影２方向が略一致するようにする。
【００２０】
第８の発明は、上記第１〜第７の発明の何れかにおいて、ポインティングデバイスは、方向指示部（７２）を備える。方向指示部は、遠隔から座標指定するポインティング操作とは別に、プレイヤの操作によって方向指示可能である。指示座標非関連処理ステップでは、方向指示部からの操作データに応じてプレイヤキャラクタが仮想３次元ゲーム空間において移動制御される。
【００２１】
第９の発明は、上記第１の発明において、ポインティングデバイスは、入力部（７２、７０１）を備える。入力部は、遠隔から座標指定するポインティング操作（７４）とは別に、プレイヤによる操作を検出可能である。指示座標非関連処理ステップでは、指示座標非関連処理として、入力部が発生した操作データに基づいて所定のゲーム処理が実行される（図１９）。指示座標関連処理ステップでは、指示座標関連処理に加えて、入力部が発生した同じ操作データに基づいて所定のゲーム処理とは異なるゲーム処理が実行される（図２０）。ポインティングデバイスは、プレイヤによって把持されるハウジングを含み、入力部はそのハウジングに設けられることが好ましい。「入力部」は、押下操作を検出する、例えば操作スイッチや十字キー、傾倒操作を検出する例えばジョイスティック、タッチ操作を検出する例えばタッチパネル、プレイヤがハウジングを動かす操作に応じて当該ハウジングに生じる加速度を検出する例えば加速度センサなどであり、ハウジングの表面に設けられても良いし、内部に設けられても良い。また、「入力部」は、プレイヤ操作を単独で検出可能なデバイスを用いた操作部（すなわち、ハウジング外に設けられる他のデバイスを用いずに、ハウジング表面または内部に設けられるそれのみでプレイヤ操作を検出可能なデバイスを用いた操作部）であるのが好ましい。
【００２２】
第１０の発明は、上記第１の発明において、ポインティングデバイスは、プレイヤによって把持されるハウジング（７１）を含む。ハウジングの表面の異なる位置には、プレイヤによる操作を検出可能な第１入力部および第２入力部（７２）が設けられる。指示座標非関連処理ステップでは、指示座標非関連処理として、第１入力部が発生した操作データに基づいて所定のゲーム処理が実行される。指示座標関連処理ステップでは、指示座標関連処理に加えて、第２入力部が発生した操作データに基づいて所定のゲーム処理と同じゲーム処理が実行される。
【００２３】
第１１の発明は、上記第１０の発明において、指示座標関連処理ステップでは、さらに第１入力部が発生した操作データに基づいて所定のゲーム処理とは異なるゲーム処理が実行される。
【００２４】
第１２の発明は、上記第１の発明において、ポインティングデバイスは、入力部を備える。入力部は、遠隔から座標指定するポインティング操作とは別に、プレイヤによる操作を検出可能である。指示座標関連処理ステップでは、指示座標関連処理として、座標取得ステップで取得された座標に基づいて所定のゲームパラメータが決定される。指示座標非関連処理ステップでは、指示座標非関連処理として、入力部が発生した操作データに基づいてゲームパラメータが決定される。
【００２５】
第１３の発明は、上記第１２の発明において、ゲームパラメータは、仮想３次元ゲーム空間における方向を示す方向パラメータである。入力部は、方向指示可能な入力部である。指示座標関連処理ステップでは、指示座標関連処理として、座標取得ステップで取得された座標に基づいて方向パラメータが決定される。指示座標非関連処理ステップでは、指示座標非関連処理として、入力部により指示された方向に基づいて方向パラメータが決定される。なお、指示座標非関連処理では、例えば、加速度センサ、傾きセンサ、方向センサの出力に対応して方向パラメータを決定したり（すなわち、加速度センサにより検出された現実世界における加速度や、傾きセンサ、方向センサにより検出された現実世界における角速度や方向に応じて仮想世界の方向パラメータを決定する）、ジョイスティックの傾きに対応して方向パラメータを決定したり、方向パラメータの変化を決定したりする。また、指示座標関連処理では、例えば、仮想３次元ゲーム空間におけるプレイヤキャラクタの位置と、ポインティングデバイスから出力されたデータに応じて取得された座標に対応する画面座標と重なる仮想３次元ゲーム空間における位置とに基づいて（例えば、両者を結ぶ方向に）、仮想ゲーム空間における方向パラメータを決定する。
【００２６】
第１４の発明は、上記第１の発明において、検出面は、ゲーム画像が表示される表示画面（２）に対応して設定される。ポインティングデバイスは、表示画面に対して遠隔から座標指示するためのデータを出力可能なものである。ゲームプログラムは、表示制御ステップおよびゲーム空間座標算出ステップ（Ｓ９２）を、さらにコンピュータに実行させる。表示制御ステップは、ゲーム空間を表現したゲーム画像を表示画面に表示する。ゲーム空間座標算出ステップは、座標取得ステップで取得された座標がゲーム画像上で重なるゲーム空間の対応座標（Ｄｃ１）を算出する。指示座標関連処理ステップでは、指示座標関連処理として、ゲーム空間座標算出ステップで算出された仮想３次元ゲーム空間の位置に応じた処理が行われる。
【００２７】
第１５の発明は、上記第１の発明において、ポインティングデバイスは、入力部を、さらに備える。入力部は、遠隔から座標指定するポインティング操作とは別に、プレイヤの操作に応じた操作データを発生する。指示座標関連処理ステップでは、指示座標関連処理に加えて、入力部からの操作データに基づいて、指示座標関連処理におけるゲーム処理とは異なるゲーム処理がおこなわれる。検出ステップでは、座標取得ステップにより検出面における所定領域内の座標が取得されたと検出される状態からその検出がされない状態に移行したことが検出される。切替ステップでは、検出ステップにより移行が検出されたときであっても、入力部から所定の操作データが出力されているときには、指示座標関連処理ステップから指示座標非関連処理ステップに切り替えて実行されず、指示座標関連処理ステップの実行が継続される。
【００２８】
第１６の発明は、上記第１の発明において、ポインティングデバイスは、入力部を、さらに備える。入力部は、遠隔から座標指定するポインティング操作とは別に、プレイヤの操作に応じた操作データを発生する。指示座標非関連処理ステップでは、指示座標非関連処理として、入力部からの操作データに基づいてゲーム処理がおこなわれる。検出ステップでは、座標取得ステップにより検出面における所定領域内の座標が取得されたと検出されない状態からその検出がされる状態に移行したことが検出される。切替ステップでは、検出ステップにより移行が検出されたときであっても、入力部から所定の操作データが出力されているときには、指示座標非関連処理ステップから指示座標関連処理ステップに切り替えて実行されず、指示座標非関連処理ステップの実行が継続される。
【００２９】
第１７の発明は、上記第１の発明において、ポインティングデバイスは、入力部を、さらに備える。入力部は、遠隔から座標指定するポインティング操作とは別に、プレイヤの操作に応じた操作データを発生する。ゲームプログラムは、表示制御ステップを、さらにコンピュータに実行させる。表示制御ステップは、仮想３次元ゲーム空間に配置された仮想カメラから見たゲーム画像を表示画面に表示する。検出ステップでは、座標取得ステップにより検出面における所定領域内の座標が取得されたと検出される状態からその検出がされない状態に移行したことが検出される。切替ステップでは、検出ステップにより移行が検出されたときに、入力部から所定の操作データが出力されているときには、指示座標関連処理ステップから指示座標非関連処理ステップに切り替えて実行されず、指示座標関連処理ステップの実行が継続され、かつ、座標取得ステップにより取得される座標に応じて仮想カメラの視線方向が変更される。なお、座標取得ステップによって座標が取得されない場合には、最後に取得された座標に基づいて仮想カメラの視線方向を変更してもよい。また、座標取得ステップによって最後に取得された所定領域内の座標に基づいて仮想カメラの視線方向を変更してもよい。また、仮想カメラの視点の位置をそのままにして視線方向を変更してもよい。
【００３０】
第１８の発明は、上記第１の発明において、ゲームプログラムは、プレイヤキャラクタ動作制御ステップ（Ｓ９２）を、さらにコンピュータに実行させる。プレイヤキャラクタ動作制御ステップは、プレイヤの操作に応じて、仮想ゲーム世界に存在するプレイヤキャラクタを動作させる。検出ステップでは、座標取得ステップにより検出面における所定領域内の座標が取得されたと検出される状態からその検出がされない状態に移行したことが検出される。切替ステップでは、検出ステップにより移行が検出されたときに、プレイヤキャラクタが特定の動作をしているときには、指示座標関連処理ステップから指示座標非関連処理ステップに切り替えて実行されず、指示座標関連処理ステップの実行が継続される。
【００３１】
第１９の発明は、上記第１の発明において、ポインティングデバイスは、プレイヤによって把持されるハウジングを含む。ハウジングは、動きセンサが設けられる。ゲームプログラムは、データ取得ステップ（Ｓ５１）および動き処理ステップを、さらにコンピュータに実行させる。データ取得ステップは、動きセンサが検出して出力されたデータ（Ｄａ４）を取得する。動き処理ステップは、動きデータ取得ステップによって取得されたデータに基づいて所定のゲーム処理をおこなう。検出ステップでは、座標取得ステップにより検出面における所定領域内の座標が取得されたと検出される状態からその検出がされない状態に移行したことが検出される。切替ステップでは、検出ステップにより移行が検出されたときであっても、動きセンサが所定の閾値以上の出力を示しているときには、指示座標関連処理ステップから指示座標非関連処理ステップに切り替えて実行されず、指示座標関連処理ステップの実行が継続される。なお、動きセンサは、自身または自身が収納されるハウジングの動きが取得可能なデータを検出可能なものであり、例えば、ハウジングに生じる所定の直線方向の加速度を検出する加速度センサである。
【００３２】
第２０の発明は、所定の検出面に対して遠隔から座標指示するためのデータを出力することが可能なポインティングデバイスを用いたゲーム装置である。ゲーム装置は、座標取得手段、指示座標関連処理手段、指示座標非関連処理手段、検出手段、および切替手段を備える。座標取得手段は、ポインティングデバイスから出力されたデータを用いて検出面上の座標を取得する。指示座標関連処理手段は、座標取得手段で取得された座標を用いたゲーム処理である指示座標関連処理をおこなう。指示座標非関連処理手段は、座標取得手段で取得された座標を用いないゲーム処理である指示座標非関連処理をおこなう。検出手段は、座標取得手段により検出面における所定領域内の座標が取得されたか否かを検出する。切替手段は、検出手段による検出に応じて、指示座標関連処理手段と、指示座標非関連処理手段とを切り替えて実行する。
【００３３】
第２１の発明は、所定の検出面に対して遠隔から座標指示するためのデータを出力することが可能なポインティングデバイスを用いたゲーム装置を含むゲームシステムである。ポインティングデバイスは、プレイヤによって把持される縦長形状のハウジングを含み、かつ、その長軸方向の端部からその長軸方向に伸ばした直線が検出面と交わる位置を指示座標として取得するためのデータを出力するものである。ハウジングには、長軸方向に沿った両側部にそれぞれ操作キーが設けられる。ゲーム装置は、座標取得手段、指示座標関連処理手段、指示座標非関連処理手段、検出手段、および切替手段を備える。座標取得手段は、ポインティングデバイスから出力されたデータに基づいて、検出面上の座標を取得する。指示座標関連処理手段は、座標取得手段で取得された座標を用いたゲーム処理である指示座標関連処理をおこなう。指示座標非関連処理手段は、座標取得手段で取得された座標を用いず、両側部の操作キーから出力された操作データを用いたゲーム処理である指示座標非関連処理をおこなう。検出手段は、座標取得手段により検出面における所定領域内の座標が取得されたか否かを検出する。切替手段は、検出手段による検出に応じて、指示座標関連処理手段と、指示座標非関連処理手段とを切り替えて実行する。
【発明の効果】
【００３４】
上記第１の発明によれば、ポインティングデバイスを用いてプレイヤが座標指定することによりゲーム処理をおこなうゲームにおいて、ポインティングデバイスの出力に応じてゲーム処理内容が異なったそれぞれのモードに自動的に変更される。したがって、プレイヤにバリエーションに富んだ操作性のよい操作環境を提供できる。
【００３５】
上記第２の発明によれば、ポインティングデバイスの出力に応じて検出面における座標が取得できた場合と、検出面における座標が取得できなかった場合とによって、ゲーム処理内容が異なったそれぞれのモードに自動的に変更される。
【００３６】
上記第３の発明によれば、ポインティングデバイスの出力に応じて、視点が異なったそれぞれのゲーム画像に自動的に変更される。したがって、プレイヤにバリエーションに富んだゲーム画像を操作性のよい操作環境で変更することができる。
【００３７】
上記第４〜第７の発明によれば、ポインティングデバイスの出力に応じて、ゲーム空間における仮想カメラのパラメータが変更されるため、例えば、プレイヤは主観的画像と客観的画像とを容易に切り替えることができる。また、プレイヤキャラクタの周辺の状況を眺めることができるゲーム画像と、プレイヤキャラクタから見た視界を眺めることができるゲーム画像とがポインティングデバイスの出力に応じて切り替わるため、プレイヤがゲーム状況に応じたゲーム画像の切り替えを操作性よく行うことができる。
【００３８】
上記第８の発明によれば、ポインティングデバイスからの出力から取得される検出座標が取得できないとき、方向指示部を用いてプレイヤキャラクタを移動させることができる。
【００３９】
上記第９の発明によれば、同じ操作部に対して同じ操作をしてもポインティングデバイスの出力に応じて異なるゲーム処理となるため、プレイヤにバリエーションに富んだ操作環境で変更することができる。また、例えば、プレイヤがポインティングデバイスを把持する方向に応じて操作部に対するゲーム処理を適切に割り当てることができる。
【００４０】
上記第１０および第１１の発明によれば、ポインティングデバイスの出力に応じて、同じゲーム処理を異なる操作部を用いておこなうこととなるため、プレイヤにバリエーションに富んだ操作環境で変更することができる。また、例えば、プレイヤがポインティングデバイスを把持する方向に応じて所定のゲーム処理を指示する操作部をプレイヤが操作しやすい操作部に適切に割り当てることができる。
【００４１】
上記第１２の発明によれば、ポインティングデバイスからの出力から取得される検出座標が取得できないときでも他の入力部を用いて同様のゲーム処理を行うことができる。
【００４２】
上記第１３の発明によれば、ポインティングデバイスからの出力から取得される検出座標に応じて方向パラメータを算出する際、当該検出座標が取得できないときでも他の入力部を用いて同様の方向パラメータを算出することができる。
【００４３】
上記第１４の発明によれば、ポインティングデバイスからの出力から取得される検出座標に応じて直接ゲーム空間内の位置を指示するようなゲーム操作が可能となる。
【００４４】
上記第１５および第１６の発明によれば、プレイヤが操作部を操作中のときはゲーム処理が切り替わらないため、プレイヤの操作が混乱することを防止することができる。
【００４５】
上記第１７の発明によれば、所定の操作部を操作しながら表示画面外等を座標指定することによって、視線方向の変更処理を両立させることができる。
【００４６】
上記第１８の発明によれば、プレイヤキャラクタが特定の動作中のときはゲーム処理が切り替わらないため、プレイヤに混乱を与えることを防止することができる。
【００４７】
上記第１９の発明によれば、プレイヤがポインティングデバイス全体を移動させることによって加速度などを生じさせているとき（例えば、ポインティングデバイスを振り上げる等）、ポインティングデバイスの座標指定位置が所定領域から逸脱することもある。この逸脱に応じて、ゲーム処理を移行してしまうとプレイヤの操作に混乱が生じる。したがって、加速度データが所定の閾値以上の出力（加速度など）を示しているときは移行を禁止することによって、このようなゲーム処理の変更を防止することができる。
【００４８】
また、本発明のゲーム装置やゲームシステムによれば、上述したゲームプログラムと同様の効果を得ることができる。
【００４９】
さらに、ポインティングデバイスを縦持ちして操作性よく座標指定によるゲーム操作を可能にし、ポインティングデバイスを横持ちして操作性よく両側の操作キーによるゲーム操作を可能にし、縦持ちと横持ちとを切り替える際の自然な動きに自動的に連動して適切なゲーム処理に切り替えることができる。
【図面の簡単な説明】
【００５０】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置３の機能ブロック図
【図３】図１のコントローラ７の上面後方から見た斜視図
【図４】図３のコントローラ７を下面前方から見た斜視図
【図５】図３のコントローラ７の上筐体を外した状態を示す斜視図
【図６】図３のコントローラ７の下筐体を外した状態を示す斜視図
【図７】図３のコントローラ７の構成を示すブロック図
【図８】図３のコントローラ７を用いて第１操作モードでゲーム操作するときの状態を概説する図解図
【図９】第１操作モードにおいてプレイヤがコントローラ７を横持ちにして両手で把持した状態をコントローラ７の側面側から見た一例
【図１０】図３のコントローラ７を用いて第２操作モードでゲーム操作するときの状態を概説する図解図
【図１１】第２操作モードにおいて、プレイヤがコントローラ７を右手で把持した状態をコントローラ７の前面側から見た一例
【図１２】第２操作モードにおいて、プレイヤがコントローラ７を右手で把持した状態をコントローラ７の左側面側から見た一例
【図１３】マーカ８Ｌおよび８Ｒと撮像情報演算部７４との視野角を説明するための図
【図１４】第１操作モードでモニタ２に表示される客観的画像によるゲーム画像の一例
【図１５】客観的画像における仮想カメラＣの位置をプレイヤキャラクタＰの上方から見た俯瞰概略図
【図１６】第２操作モードでモニタ２に表示される主観的画像によるゲーム画像の一例
【図１７】主観的画像における仮想カメラＣの位置をプレイヤキャラクタＰの横から見た概略図
【図１８】ゲーム装置３のメインメモリ３３に記憶される主なデータを示す図
【図１９】メインメモリ３３に記憶される第１操作テーブルデータＤｃ４の一例を示す図
【図２０】メインメモリ３３に記憶される第２操作テーブルデータＤｃ５の一例を示す図
【図２１】ゲーム装置３において実行されるゲーム処理の前半の流れを示すフローチャート
【図２２】ゲーム装置３において実行されるゲーム処理の後半の流れを示すフローチャート
【発明を実施するための形態】
【００５１】
図１を参照して、本発明の一実施形態に係るゲームシステム１について説明する。なお、図１は、当該ゲームシステム１を説明するための外観図である。以下、据置型ゲーム装置を一例にして、本発明のゲームシステム１について説明する。
【００５２】
図１において、当該ゲームシステム１は、家庭用テレビジョン受像機等のスピーカ２ａを備えたディスプレイ（以下、モニタと記載する）２に、接続コードを介して接続される据置型ゲーム装置（以下、単にゲーム装置と記載する）３および当該ゲーム装置３に操作情報を与えるコントローラ７によって構成される。ゲーム装置３は、接続端子を介して受信ユニット６が接続される。受信ユニット６は、コントローラ７から無線送信される送信データを受信し、コントローラ７とゲーム装置３とは無線通信によって接続される。また、ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例の光ディスク４が脱着される。ゲーム装置３の上部主面には、当該ゲーム装置３の電源ＯＮ／ＯＦＦスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置３上部の蓋を開くＯＰＥＮスイッチが設けられている。ここで、プレイヤがＯＰＥＮスイッチを押下することによって上記蓋が開き、光ディスク４の脱着が可能となる。
【００５３】
また、ゲーム装置３には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード５が必要に応じて着脱自在に装着される。ゲーム装置３は、光ディスク４に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ２に表示する。さらに、ゲーム装置３は、外部メモリカード５に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置３のプレイヤは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を楽しむことができる。
【００５４】
コントローラ７は、その内部に備える通信部７５（後述）から受信ユニット６が接続されたゲーム装置３へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて送信データを無線送信する。コントローラ７は、主にモニタ２に表示されるゲーム空間に登場するプレイヤオブジェクトを操作するための操作手段である。コントローラ７は、複数の操作ボタン、キー、およびスティック等の操作部が設けられている。また、後述により明らかとなるが、コントローラ７は、当該コントローラ７から見た画像を撮像する撮像情報演算部７４を備えている。また、撮像情報演算部７４の撮像対象の一例として、モニタ２の表示画面近傍に２つのＬＥＤモジュール（以下、マーカと記載する）８Ｌおよび８Ｒが設置される。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって赤外光を出力する。
【００５５】
次に、図２を参照して、ゲーム装置３の構成について説明する。なお、図２は、ゲーム装置３の機能ブロック図である。
【００５６】
図２において、ゲーム装置３は、各種プログラムを実行する例えばリスク（ＲＩＳＣ）ＣＰＵ（セントラルプロセッシングユニット）３０を備える。ＣＰＵ３０は、図示しないブートＲＯＭに記憶された起動プログラムを実行し、メインメモリ３３等のメモリの初期化等を行った後、光ディスク４に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。ＣＰＵ３０には、メモリコントローラ３１を介して、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２、メインメモリ３３、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３４、およびＡＲＡＭ（Ａｕｄｉｏ  ＲＡＭ）３５が接続される。また、メモリコントローラ３１には、所定のバスを介して、コントローラＩ／Ｆ（インターフェース）３６、ビデオＩ／Ｆ３７、外部メモリＩ／Ｆ３８、オーディオＩ／Ｆ３９、およびディスクＩ／Ｆ４１が接続され、それぞれ受信ユニット６、モニタ２、外部メモリカード５、スピーカ２ａ、およびディスクドライブ４０が接続されている。
【００５７】
ＧＰＵ３２は、ＣＰＵ３０の命令に基づいて画像処理を行うものあり、例えば、３Ｄグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。ＧＰＵ３２は、図示しない画像処理専用のメモリやメインメモリ３３の一部の記憶領域を用いて画像処理を行う。ＧＰＵ３２は、これらを用いてモニタ２に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ３１およびビデオＩ／Ｆ３７を介してモニタ２に出力する。
【００５８】
メインメモリ３３は、ＣＰＵ３０で使用される記憶領域であって、ＣＰＵ３０の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ３３は、ＣＰＵ３０によって光ディスク４から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ３３に記憶されたゲームプログラムや各種データ等がＣＰＵ３０によって実行される。
【００５９】
ＤＳＰ３４は、ゲームプログラム実行時にＣＰＵ３０において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのＡＲＡＭ３５が接続される。ＡＲＡＭ３５は、ＤＳＰ３４が所定の処理（例えば、先読みしておいたゲームプログラムやサウンドデータの記憶）を行う際に用いられる。ＤＳＰ３４は、ＡＲＡＭ３５に記憶されたサウンドデータを読み出し、メモリコントローラ３１およびオーディオＩ／Ｆ３９を介してモニタ２に備えるスピーカ２ａに出力させる。
【００６０】
メモリコントローラ３１は、データ転送を統括的に制御するものであり、上述した各種Ｉ／Ｆが接続される。コントローラＩ／Ｆ３６は、例えば４つのコントローラＩ／Ｆ３６ａ〜３６ｄで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置３とを通信可能に接続する。例えば、受信ユニット６は、上記コネクタと嵌合し、コントローラＩ／Ｆ３６を介してゲーム装置３と接続される。上述したように受信ユニット６は、コントローラ７からの送信データを受信し、コントローラＩ／Ｆ３６を介して当該送信データをＣＰＵ３０へ出力する。ビデオＩ／Ｆ３７には、モニタ２が接続される。外部メモリＩ／Ｆ３８には、外部メモリカード５が接続され、その外部メモリカード５に設けられたバックアップメモリ等とアクセス可能となる。オーディオＩ／Ｆ３９にはモニタ２に内蔵されるスピーカ２ａが接続され、ＤＳＰ３４がＡＲＡＭ３５から読み出したサウンドデータやディスクドライブ４０から直接出力されるサウンドデータをスピーカ２ａから出力可能に接続される。ディスクＩ／Ｆ４１には、ディスクドライブ４０が接続される。ディスクドライブ４０は、所定の読み出し位置に配置された光ディスク４に記憶されたデータを読み出し、ゲーム装置３のバスやオーディオＩ／Ｆ３９に出力する。
【００６１】
図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００６２】
図３および図４において、コントローラ７は、例えばプラスチック成型によって形成されたハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００６３】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００６４】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に４つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。
【００６５】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置３が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられ、後述により明らかとなるがプレイヤがコントローラ７を操作する向きに応じてそれぞれ割り当てられる操作機能が切り替わる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００６６】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置３本体の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００６７】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７から受信ユニット６へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００６８】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ（図５のスピーカ７０６）からの音を外部に放出するための音抜き孔が形成されている。
【００６９】
一方、ハウジング７１下面には、凹部が形成されている。後述で明らかとなるが、ハウジング７１下面の凹部は、プレイヤがコントローラ７の前面をマーカ８Ｌおよび８Ｒに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。なお、後述により明らかとなるが、操作ボタン７２ｉについても、プレイヤがコントローラ７を操作する向きに応じて割り当てられる操作機能が切り替わる。
【００７０】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７０の後面には、コネクタ７３が設けられている。コネクタ７３は、例えば３２ピンのエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００７１】
次に、図５および図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上筐体（ハウジング７１の一部）を外した状態を後面側から見た斜視図である。図６は、コントローラ７の下筐体（ハウジング７１の一部）を外した状態を前面側から見た斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た斜視図となっている。
【００７２】
図５において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１等（図６、図７参照）に接続される。また、図示しない無線モジュール７５３（図７参照）およびアンテナ７５４によって、コントローラ７がワイヤレスコントローラとして機能する。なお、ハウジング７１内部には図示しない水晶振動子７０３が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６およびアンプ７０８が設けられる。加速度センサ７０１が、基板７００の中央部ではなく周辺部に設けられていることにより、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ７の回転を良好な感度で判定することができる。
【００７３】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。さらに、基板７００の下主面上にサウンドＩＣ７０７およびマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１およびアンプ７０８と接続され、ゲーム装置３から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。そして、基板７００の下主面上には、バイブレータ７０４が取り付けられる。このバイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。バイブレータ７０４は、ハウジング７１のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング７１が大きく振動することになり、振動を感じやすくなる。
【００７４】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成を示すブロック図である。
【００７５】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。
【００７６】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。後述により明らかとなるが、この撮像情報演算部７４から出力される処理結果データに基づいて、コントローラ７の位置や動きに応じた信号を得ることができる。
【００７７】
コントローラ７は、３軸（Ｘ、Ｙ、Ｚ軸）の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、上下および左右方向（または他の対になった方向）のそれぞれに沿った直線加速度のみを検知する２軸の加速度検出手段を使用してもよい。例えば、この３軸または２軸の加速度センサ７０１は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。加速度センサ７０１は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式（静電容量結合式）であってもよい。しかしながら、既存の加速度検出手段の技術（例えば、圧電方式や圧電抵抗方式）あるいは将来開発される他の適切な技術を用いて３軸または２軸の加速度センサ７０１が提供されてもよい。
【００７８】
当業者には公知であるように、加速度センサ７０１に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度（直線加速度）のみを検知することができる。つまり、加速度センサ７０１からの直接の出力は、その２軸または３軸のそれぞれに沿った直線加速度（静的または動的）を示す信号である。このため、加速度センサ７０１は、非直線状（例えば、円弧状）の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【００７９】
しかしながら、加速度センサ７０１から出力される加速度の信号に対して追加の処理を行うことによって、コントローラ７に関するさらなる情報を推測または算出することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、静的な加速度（重力加速度）が検知されると、加速度センサ７０１からの出力を用いて、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象（コントローラ７）の傾きをそれぞれ推測することができる。このように、加速度センサ７０１をマイコン７５１（または他のプロセッサ）と組み合わせて用いることによって、コントローラ７の傾き、姿勢または位置を決定することができる。同様に、加速度センサ７０１を備えるコントローラ７が、例えばユーザの手で動的に加速されてそれぞれ動かされる場合に、加速度センサ７０１によって生成される加速度信号を処理することによって、コントローラ７のさまざまな動きおよび／または位置をそれぞれ算出または推測することができる。他の実施例では、加速度センサ７０１は、信号をマイコン７５１に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度（例えば、重力加速度）を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角に変換するものであってもよい。加速度センサ７０１でそれぞれ検知された加速度を示すデータは通信部７５に出力される。
【００８０】
他の実施形態の例では、加速度センサ７０１の代わりに、回転素子または振動素子などを内蔵したジャイロセンサを用いてもよい。この実施形態で使用されるＭＥＭＳジャイロセンサの一例として、アナログ・デバイセズ株式会社から入手可能なものがある。加速度センサ７０１と異なり、ジャイロセンサは、それが内蔵する少なくとも一つのジャイロ素子の軸を中心とした回転（または角速度）を直接検知することができる。このように、ジャイロセンサと加速度センサとは基本的に異なるので、個々の用途のためにいずれの装置が選択されるかによって、これらの装置からの出力信号に対して行う処理を適宜変更する必要がある。
【００８１】
具体的には、加速度センサの代わりにジャイロセンサを用いて傾きや姿勢を算出する場合には、大幅な変更を行う。すなわち、ジャイロセンサを用いる場合、検出開始の状態において傾きの値を初期化する。そして、当該ジャイロセンサから出力される角速度データを積分する。次に、初期化された傾きの値からの傾きの変化量を算出する。この場合、算出される傾きは、角度に対応する値が算出されることになる。一方、加速度センサによって傾きを算出する場合には、重力加速度のそれぞれの軸に関する成分の値を、所定の基準と比較することによって傾きを算出するので、算出される傾きはベクトルで表すことが可能であり、初期化を行わずとも、加速度検出手段を用いて検出される絶対的な方向を検出することが可能である。また、傾きとして算出される値の性質は、ジャイロセンサが用いられる場合には角度であるのに対して、加速度センサが用いられる場合にはベクトルであるという違いがある。したがって、加速度センサに代えてジャイロセンサが用いられる場合、当該傾きのデータに対して、２つのデバイスの違いを考慮した所定の変換を行う必要がある。加速度検出手段とジャイロスコープとの基本的な差異と同様にジャイロスコープの特性は当業者に公知であるので、本明細書ではさらなる詳細を省略する。ジャイロセンサは、回転を直接検知できることによる利点を有する一方、一般的には、加速度センサは、本実施形態で用いるようなコントローラに適用される場合、ジャイロセンサに比べて費用効率が良いという利点を有する。
【００８２】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置３からのデータに応じて、サウンドＩＣ７０７およびバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置３から送信されたサウンドデータ等を処理する。
【００８３】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの加速度信号（Ｘ、Ｙ、およびＺ軸方向加速度データ；以下、単に加速度データと記載する）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、加速度データ、処理結果データ）を受信ユニット６へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から受信ユニット６への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ；登録商標）で構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、受信ユニット６への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥース（登録商標）の技術に基づいて、所定周波数の搬送波を用いて操作情報で変調し、その電波信号をアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からの加速度データ、および撮像情報演算部７４からの処理結果データが無線モジュール７５３で電波信号に変調されてコントローラ７から送信される。そして、ゲーム装置３の受信ユニット６でその電波信号を受信し、ゲーム装置３で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、加速度データ、および処理結果データ）を取得する。そして、ゲーム装置３のＣＰＵ３０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、ブルートゥース（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００８４】
次に、ゲーム装置３が行う具体的な処理を説明する前に、本ゲーム装置３で行うゲームの概要について説明する。当該ゲームでは、少なくとも２つの操作モード（第１操作モード、第２操作モード）が設定され、それぞれモニタ２に表示するゲーム画像の視点が切り替えられる。
【００８５】
図８は、当該ゲームに設定された第１操作モードによってプレイヤがコントローラ７を操作している一例である。図９は、第１操作モードにおいてプレイヤがコントローラ７を横持ちにして両手で把持した状態をコントローラ７の側面側から見た一例である。図８および図９に示すように、第１操作モードでは、例えばコントローラ７の長軸方向を横にして両手でコントローラ７をプレイヤが把持して操作する。具体的には、プレイヤは、左手でコントローラ７の前面側を持ち、右手でコントローラ７の後面側を持って、左右の指で操作部７２（例えば、十字キー７２ａ、操作ボタン７２ｂ〜７２ｇ）を押下することによってゲーム操作を行う。この場合、コントローラ７の側面（図８および図９の例では右側面）がモニタ２の表示画面と対向するようにコントローラ７が把持される。例えば、プレイヤは、両手のひらをそれぞれコントローラ７の前面および後面に添え、人差し指、中指、薬指、小指をコントローラ７下面に添える。そして、両手の親指をコントローラ７の上面に設けられた操作部７２（例えば、十字キー７２ａ付近や操作ボタン７２ｂ〜７２ｄ付近）に添える。このとき、コントローラ７が縦長形状であり、当該長手方向の一方端部に十字キー７２ａが配設されているため、プレイヤがコントローラ７を横持ちしたときに一方の手の親指等で十字キー７２ａの操作がやりやすくなる。また、操作ボタン７２ｂや操作ボタン７２ｃは、当該長手方向の他方端部に配設されているため、横持ちしたときに他方の手の親指等で操作がやりやすくなる。一方、操作ボタン７２ｉは、図９に示すようにプレイヤがコントローラ７を横持ちしたとき、プレイヤの死角となりコントローラ７の凹部の後面側傾斜面に配設されているために操作が難しく、操作ボタン７２ｉからプレイヤの指が自然と離れる状態となる。このように第１操作モードでは、プレイヤがコントローラ７を横持ちで把持した状態で、十字キー７２ａや操作ボタン７２ｂ〜７２ｄ等の操作部７２を容易に操作することができる。
【００８６】
図１０は、当該ゲームに設定された第２操作モードによってプレイヤがコントローラ７を操作している一例である。図１１は、第２操作モードにおいて、プレイヤがコントローラ７を右手で把持した状態をコントローラ７の前面側から見た一例である。図１２は、第２操作モードにおいて、プレイヤがコントローラ７を右手で把持した状態をコントローラ７の左側面側から見た一例である。図１０〜図１２に示すように、第２操作モードでゲームをプレイするためには、コントローラ７の前面（撮像情報演算部７４が撮像する光の入射口側）がモニタ２の表示画面と対向するようにプレイヤが一方の手（例えば右手）でコントローラ７を把持する。そして、プレイヤの親指をコントローラ７の上面（例えば、操作ボタン７２ｄ付近）に添え、プレイヤの人差し指をコントローラ７下面の凹部（例えば、操作ボタン７２ｉ付近）に添えたとき、コントローラ７の前面に設けられている撮像情報演算部７４の光入射口がプレイヤの前方方向に露出する。一方、モニタ２の表示画面近傍には、２つのマーカ８Ｌおよび８Ｒが設置される。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって赤外光を出力し、撮像情報演算部７４の撮像対象となる。マーカ８Ｌおよび８Ｒは、モニタ２に一体的に設けられても良いし、モニタ２とは別体で設けられてモニタ２の近く（モニタ２の上や下など）に載置されて使用されるものであってもよい。なお、このようなコントローラ７に対する把持状態は、プレイヤの左手であっても同様に行えることは言うまでもない。
【００８７】
このように、第２操作モードにおいて、コントローラ７は、プレイヤが片手で把持した状態で操作ボタン７２ｄおよび７２ｉ等の操作部７２を容易に操作することができる。さらに、プレイヤがコントローラ７を片手で把持したとき、当該コントローラ７の前面に設けられている撮像情報演算部７４の光入射口が露出するため、上述した２つのマーカ８Ｌおよび８Ｒからの赤外光を容易に当該光入射口から取り入れることができる。つまり、プレイヤは、撮像情報演算部７４の機能を阻害することなくコントローラ７を片手で把持することができる。ここで、コントローラ７が縦長形状であり、当該長手方向の端部前面に撮像情報演算部７４の光入射口が配設されているため、撮像情報演算部７４を利用してプレイヤがコントローラ７で指し示すような操作に好適である。一方、操作ボタン７２ｉは、図１２に示すようにプレイヤがコントローラ７を縦持ちしたとき、コントローラ７の凹部の後面側傾斜面に配設されているためにプレイヤの指で容易に操作できる。このように第２操作モードでは、プレイヤがコントローラ７を縦持ちで把持した状態で、撮像情報演算部７４や操作部７２を容易に操作することができる。
【００８８】
ここで、図１３に示すように、マーカ８Ｌおよび８Ｒは、それぞれ視野角θ１を有している。また、撮像素子７４３は、視野角θ２を有している。例えば、マーカ８Ｌおよび８Ｒの視野角θ１は共に３４°（半値角）であり、撮像素子７４３の視野角θ２は４１°である。そして、撮像素子７４３の視野角θ２の中にマーカ８Ｌおよび８Ｒが共に存在し、マーカ８Ｌの視野角θ１の中でかつマーカ８Ｒの視野角θ１の中に撮像素子７４３が存在するとき、ゲーム装置３は、２つのマーカ８Ｌおよび８Ｒによる高輝度点に関する位置データを用いてコントローラ７の位置を算出する。
【００８９】
プレイヤがその前面がモニタ２に向くようにコントローラ７を把持することによって、撮像情報演算部７４には２つのマーカ８Ｌおよび８Ｒが出力した赤外光が入射する。そして、赤外線フィルタ７４１およびレンズ７４２を介して、入射した赤外光を撮像素子７４３が撮像し、当該撮像画像を画像処理回路７４４が処理する。ここで、撮像情報演算部７４では、マーカ８Ｌおよび８Ｒから出力される赤外線成分を検出することで、上記撮像画像における当該マーカ８Ｌおよび８Ｒの位置情報（対象画像の位置）や面積、直径、幅等のサイズ情報を取得する。具体的には、画像処理回路７４４は、撮像素子７４３が撮像した画像データを解析して、まず面積情報からマーカ８Ｌおよび８Ｒからの赤外光ではあり得ない画像を除外し、さらに輝度が高い点をマーカ８Ｌおよび８Ｒそれぞれの位置として判別する。そして、撮像情報演算部７４は、判別されたそれらの輝点の重心位置等の位置情報を取得し、上記処理結果データとして出力する。ここで、上記処理結果データである位置情報は、撮像画像における所定の基準点（例えば、撮像画像の中央や左上隅）を原点とした座標値として出力するものでもよく、所定のタイミングにおける輝点位置を基準点として、当該基準位置からの現在の輝点位置の差をベクトルとして出力するものでもよい。つまり、上記対象画像の位置情報は、撮像素子７４３が撮像した撮像画像に対して所定の基準点を設定した場合に、当該基準点に対する差として用いられるパラメータである。このような位置情報をゲーム装置３へ送信することによって、ゲーム装置３では、基準からの上記位置情報の差に基づいて、マーカ８Ｌおよび８Ｒに対する撮像情報演算部７４、すなわちコントローラ７の動き、姿勢、位置等に応じた信号の変化量を得ることができる。具体的には、コントローラ７が動かされることによって、通信部７５から送信される画像内の高輝度点の位置が変化するため、高輝度点の位置の変化に対応させた方向入力や座標入力を行うことで、３次元空間に対してコントローラ７の移動方向に沿った方向入力や座標入力を行うことができる。なお、後述するゲーム処理動作例では、撮像情報演算部７４が撮像画像におけるマーカ８Ｌおよび８Ｒの対象画像それぞれの重心位置の座標を少なくとも取得し、上記処理結果データとして出力する例を用いる。
【００９０】
このように、コントローラ７の撮像情報演算部７４によって、固定的に設置されたマーカ（実施例では、２つのマーカ８Ｌおよび８Ｒからの赤外光）を撮像することによって、ゲーム装置３におけるゲーム処理において、コントローラ７から出力されるデータを処理してコントローラ７の動き、姿勢、位置等に対応した操作が可能となり、ボタンを押下するような操作ボタンや操作キーとは異なった直感的な操作入力となる。また、上述したように上記マーカ８Ｌおよび８Ｒは、モニタ２の表示画面近傍に設置されているため、マーカ８Ｌおよび８Ｒに対する位置をモニタ２の表示画面に対するコントローラ７の動き、姿勢、位置等に換算することも容易に行うことができる。つまり、コントローラ７の動き、姿勢、位置等による処理結果データは、モニタ２の表示画面に直接作用する操作入力として用いることができる。したがって、第２操作モードでは、プレイヤがコントローラ７を把持した手をモニタ２の表示画面に対して動かすことによって、プレイヤの手の運動が表示画面に直接的に作用する操作入力を備えることができ、コントローラ７が表示画面に対して遠隔から座標指定するためのデータを出力可能なポインティングデバイスとして機能する。
【００９１】
また、上記第１操作モードおよび第２操作モード何れにおいても、上述したようにコントローラ７に設けられた加速度センサ７０１からの出力（加速度データ）を用いることによって、コントローラ７の傾き、姿勢、または位置を決定することができる。つまり、プレイヤがコントローラ７を把持した手を上下左右等に動かすことによって、コントローラ７は、プレイヤの手の運動や向きに応じた操作入力手段として機能する。
【００９２】
また、本実施例のゲームでは、第１操作モードおよび第２操作モードに応じて、それぞれモニタ２に表示するゲーム画像（客観的画像、主観的画像）が切り替えられる。なお、客観的画像とは、プレイヤキャラクタおよびその周辺の仮想ゲーム空間を客観的に眺めた画像であり、主観的画像とは、プレイヤキャラクタから仮想ゲーム空間を主観的に見た画像である。
【００９３】
図１４は、上記第１操作モードでモニタ２に表示される客観的画像の一例である。図１５は、客観的画像を生成する際の仮想カメラＣの位置をプレイヤキャラクタＰの上方から見た俯瞰概略図である。図１４に示すように、上記第１操作モードにおいて、上記処理結果データを除くコントローラ７から受信した操作情報（キーデータ、加速度データ）に応じて、モニタ２にアクションゲーム等が表現される。具体的には、上記第１操作モードでは、プレイヤキャラクタＰの横方向（プレイヤキャラクタの向きを基準とする横方向、または、プレイヤキャラクタの進行方向を基準とする横方向）の比較的遠方に位置する仮想ゲーム空間内の視点からプレイヤキャラクタＰ（またはその付近）を注視点とした仮想ゲーム空間が、３次元のゲーム画像としてモニタ２に表現される（このゲーム画像を客観的画像と記載する）。そして、プレイヤが操作するプレイヤキャラクタＰおよび敵キャラクタＥ等が仮想ゲーム空間Ｓに配置されてモニタ２に表現される。図１４に示すように、上記第１操作モードで設定される客観的画像によれば、プレイヤキャラクタＰの全身が表現され、当該プレイヤキャラクタＰを含むゲーム世界を客観的に広く見渡した視界がゲーム画像で生成される。
【００９４】
図１５を用いて、客観的画像を生成する際の仮想カメラＣのパラメータ設定の一例について説明する。空間Ｓには予めルートＲが設定されており、プレイヤキャラクタＰはルートＲ上を移動可能に設定されている。すなわち、十字キー７２ａの左を押下することにより、プレイヤキャラクタＰはルートＲ上を左に進み、十字キー７２ａの右を押下することにより、プレイヤキャラクタＰはルートＲ上を右に進む。そして、仮想カメラＣの注視点は、空間ＳにおけるプレイヤキャラクタＰの現在位置Ｐｈ（例えば、プレイヤキャラクタＰにおける頭部の位置座標（ｘｈ，ｙｈ，ｚｈ））に設定される。なお、仮想カメラＣの注視点を、現在位置Ｐｈからある距離だけ離れた点（例えば、プレイヤキャラクタＰの前方方向または進行方向、やプレイヤキャラクタＰによる攻撃方向（銃の向いている方向など））やルートＲ上に沿ってある距離だけ離れた点などに設定してもよい。ただし、この場合でも、仮想カメラＣによって撮影されるゲーム空間の範囲に対して、上記ある距離が十分小さいことが好ましく、また、注視点からプレイヤキャラクタＰまでの距離が、視点からプレイヤキャラクタＰまでの距離よりも小さくするのが好ましい。
【００９５】
一方、仮想カメラＣの視点は、プレイヤキャラクタＰの位置Ｐｈ（ｘｈ，ｙｈ，ｚｈ）のそれぞれ（すなわち、ルートＲ上の点のそれぞれ）に対応して決定される仮想ゲーム空間の点Ｃｐｈ（ｘｃｐ，ｙｃｐ，ｚｃｐ）を基準とし、プレイヤキャラクタＰの方向（当該方向は、例えば、プレイヤキャラクタＰの前方方向または進行方向であるが、プレイヤキャラクタＰによる攻撃方向であってもよい）Ｐｄに応じて当該基準からずれた位置に設定される。具体的には、視点から注視点までの方向および視点と注視点との距離のそれぞれが、ルートＲ上の点のそれぞれに対応して予め設定されており、位置Ｐｈ（ｘｈ，ｙｈ，ｚｈ）から当該位置に対応する上記方向に上記距離だけ離れた点を点Ｃｐｈ（ｘｃｐ，ｙｃｐ，ｚｃｐ）とする。例えば、点Ｃｐｈから注視点までの方向は、ルートＲに対して垂直な水平方向に設定されている。また、点Ｃｐｈと注視点との距離は、所定距離（例えば、プレイヤキャラクタＰの肩幅など）の数倍（例えば、８倍程度）に設定されている。そして、仮想カメラＣの視点は、プレイヤキャラクタＰの方向Ｐｄ（当該方向は、例えば、プレイヤキャラクタＰによる攻撃方向（プレイヤキャラクタＰが所持する銃Ｇの銃口方向）であるが、プレイヤキャラクタの前方方向または進行方向であってもよい）と逆方向（つまり、後方）に点Ｃｐｈから上記所定距離の数倍（例えば、５倍程度）ずらした位置に設定される。
【００９６】
なお、仮想カメラＣの視点を、点Ｃｐｈに設定してもよい。また、本実施例では、プレイヤキャラクタＰの位置のそれぞれ（ルートＲ上の点のそれぞれ）に対応して上述の方向と距離とが設定されるので、ゲーム空間の状況やゲームの状況に応じて、上述の方向や距離を任意に変更できる。ただし、上記方向や距離を固定して、例えば、ルートＲの軌跡方向またはプレイヤキャラクタＰの前方方向や進行方向を基準とする方向（略垂直な方向など）を視線方向としたり、視点から注視点までの距離を一定にしたりしてもよい。
【００９７】
なお、上述した客観的画像における仮想カメラＣの位置および方向は、第１操作モードにおける基本設定であり、第１操作モードにおけるコントローラ７への操作に応じて仮想カメラＣが当該基本位置から移動することもある。ただし、第１操作モードでは、基本位置から移動したとしても、空間Ｓを比較的遠方からプレイヤキャラクタＰの配置位置またはその近傍を注視点として客観的に広く見渡した画像を生成しており、本発明ではこのような画像を客観的画像と定義する。
【００９８】
なお、上述ではプレイヤキャラクタＰの横方向の比較的遠方を視点とし、プレイヤキャラクタＰの現在位置を注視点として仮想空間を撮影したが、プレイヤキャラクタＰの後方の比較的遠方を視点とし、プレイヤキャラクタＰの現在位置を注視点として仮想ゲーム空間を撮影してもよい。また、上述では、主に、視点および注視点の水平面における位置について説明したが、視点および注視点の高さ方向の位置は、プレイヤキャラクタＰの現在位置と一致していてもよいし、それより高い位置に設定してもよい（場合によっては低い位置に設置してもよい）。
【００９９】
図１６は、上記第２操作モードでモニタ２に表示される主観的画像の一例である。図１７は、主観的画像を生成する際の仮想カメラＣの位置をプレイヤキャラクタＰの横から見た概略図である。図１６に示すように、上記第２操作モードにおいて、コントローラ７から受信した操作情報（キーデータ、加速度データ、処理結果データ）に応じて、モニタ２にアクションゲーム等が表現される。具体的には、上記第２操作モードでは、空間Ｓを、当該プレイヤキャラクタＰの位置とほぼ一致する仮想ゲーム空間内の視点から見た仮想ゲーム空間が３次元のゲーム画像としてモニタ２に表現される（このゲーム画像を主観的画像と記載する）。図１６に示すように、上記第２操作モードで設定される主観的画像によれば、プレイヤキャラクタＰの一部が表現され、当該プレイヤキャラクタＰが空間Ｓを主観的に見ているような視界がゲーム画像で生成される。
【０１００】
図１７を用いて、主観的画像における仮想カメラＣの位置の一例について説明する。仮想カメラＣの注視点は、空間ＳにおけるプレイヤキャラクタＰの位置Ｐｈを基準に、プレイヤキャラクタＰの前方に設定される。具体的には、仮想カメラＣの注視点の水平方向位置は、プレイヤキャラクタＰにおける頭部の位置座標Ｐｈ（ｘｈ，ｙｈ，ｚｈ）から正面（プレイヤキャラクタＰの前方方向または進行方向）に所定距離（例えば、プレイヤキャラクタＰの肩幅）だけ離れた位置から、さらにプレイヤキャラクタＰの攻撃方向（プレイヤキャラクタが所持する銃Ｇの銃口方向）に上記所定距離の数倍（例えば、４倍程度）ずらした位置（図示Ｔ１）に設定される。また、仮想カメラＣの注視点の垂直方向位置は、位置座標Ｐｈ（ｘｈ，ｙｈ，ｚｈ）から下方に上記所定距離の数分の１（例えば、１／４程度）ずらした位置（図示Ｔ２）に設定される。
【０１０１】
一方、仮想カメラＣの視点は、空間ＳにおけるプレイヤキャラクタＰの位置Ｐｈを基準に、プレイヤキャラクタＰの後方近傍に設定される。具体的には、仮想カメラＣの視点の水平方向位置は、位置座標Ｐｈ（ｘｈ，ｙｈ，ｚｈ）から正面に上記所定距離だけ離れた位置から、プレイヤキャラクタＰによる攻撃方向（プレイヤキャラクタＰが所持する銃Ｇの銃口方向）の逆方向に上記所定距離の数倍（例えば、２倍程度）ずらした位置（図示Ｖ１；実質的には、位置座標Ｐｈから上記所定距離程度だけ後方に離れた位置）に設定される。また、仮想カメラＣの視点の垂直方向位置は、位置座標Ｐｈ（ｘｈ，ｙｈ，ｚｈ）から上方にプレイヤキャラクタＰの頭部の大きさ程度（上記所定距離の１／４程度）ずらした位置（図示Ｖ２）に設定される。なお、仮想カメラＣの視点の水平方向位置を、上記Ｖ２の位置から、さらに、プレイヤキャラクタＰの右方向または左方向（プレイヤキャラクタＰの向いている方向または進行方向に対して直交右方向または直交左方向）に上記所定距離の半分程度だけずらした位置を視点に設定してもよい。また、第１操作モードにおいてルートＲ上を右方向に進行している状態で第２操作モードに切り替わったときは、プレイヤキャラクタＰの上記直交右方向にずらし、第１操作モードにおいてルートＲ上を左方向に進行している状態で第２操作モードに切り替わったときは、プレイヤキャラクタＰの上記直交左方向にずらしてもよい。
【０１０２】
なお、図１７において、プレイヤキャラクタＰの頭部の位置Ｐｈから左右に延びる線は、プレイヤキャラクタＰの視線方向（仮想カメラＣの視線方向とは異なる）を示すものである。上述ではプレイヤキャラクタＰの視線方向は水平方向であるとして説明したが、実際には、状況によってプレイヤキャラクタＰの視線方向は上下に傾いた方向になる。プレイヤキャラクタＰの視線方向が上下に傾いている場合、図１７の当該左右に延びる線も傾いて、仮想カメラＣの注視点は、当該左右に延びる線上の点（ＰｈからＴ１だけ離れた点）から下方にＴ２だけずらした点となり、仮想カメラＣの視点は、当該左右に延びる線上の点（ＰｈからＶ１だけ離れた点）から上方にＶ２だけずらした点となる。
【０１０３】
また、上述した主観的画像における仮想カメラＣの位置および方向は、第２操作モードにおける基本設定であり、第２操作モードにおけるコントローラ７への操作に応じて仮想カメラＣが当該基本位置から移動することもある。ただし、第２操作モードでは、基本位置から移動したとしても、プレイヤキャラクタＰの位置の近傍または一致する位置を視点としており、本発明ではこのようなゲーム画像を主観的画像と定義する。
【０１０４】
図１４と図１６とを比較すれば明らかなように、客観的画像によるゲーム画像は、プレイヤキャラクタＰの周辺の空間Ｓが広く見渡せるため、プレイヤキャラクタＰが空間Ｓを移動するときに好適な画像である。一方、主観的画像によるゲーム画像は、プレイヤキャラクタＰが空間Ｓを見ているような視界であるため、敵キャラクタＥを銃Ｇでシューティングするようなシチュエーションで好適な画像である。さらに、プレイヤがコントローラ７を把持した手をモニタ２の表示画面に対して動かすことによって、照準カーソルＴの位置（射撃位置）を直接的に指示し、操作ボタン７２ｄや操作ボタン７２ｉ（図３参照）の押下に応じて、プレイヤキャラクタＰが所持する銃Ｇが照準カーソルＴに向かって射撃されるように制御することによって、あたかもプレイヤ自身が敵キャラクタＥを射撃しているような操作感覚が得られる。
【０１０５】
次に、ゲームシステム１において行われるゲーム処理の詳細を説明する。まず、図１８〜図２０を参照して、ゲーム処理において用いられる主なデータについて説明する。なお、図１８は、ゲーム装置３のメインメモリ３３に記憶される主なプログラムおよびデータの一例を示す図である。図１９は、メインメモリ３３に記憶される第１操作テーブルデータＤｃ４の一例を示す図である。図２０は、メインメモリ３３に記憶される第２操作テーブルデータＤｃ５の一例を示す図である。
【０１０６】
図１８に示すように、メインメモリ３３には、ゲームプログラムＧＰ、操作情報Ｄａ、操作状態情報Ｄｂ、およびゲーム情報Ｄｃ等が記憶される。なお、メインメモリ３３には、図１８に示す情報に含まれるデータの他、ゲームに登場するプレイヤキャラクタに関する他のデータ、敵キャラクタのデータ、およびゲーム空間に関するデータ（地形データ等）等、ゲーム処理に必要なデータが記憶される。
【０１０７】
ゲームプログラムＧＰは、ＣＰＵ３０が処理に必要なプログラムを光ディスク４から読み出して適宜記憶するものであり、ゲーム処理（後述するステップ５０〜ステップ９４）を定義するプログラムである。このゲームプログラムＧＰの実行開始によってゲーム処理が開始される。
【０１０８】
操作情報Ｄａは、コントローラ７から送信データとして送信されてくる一連の操作情報であり、最新の操作情報に更新される。操作情報Ｄａには、上述の処理結果データに相当する第１座標データＤａ１および第２座標データＤａ２が含まれる。第１座標データＤａ１は、撮像素子７４３が撮像した撮像画像に対して、２つのマーカ８Ｌおよび８Ｒのうちの一方の画像の位置（撮像画像内における位置）を表す座標のデータである。第２座標データＤａ２は、他方のマーカの画像の位置（撮像画像内における位置）を表す座標のデータである。例えば、マーカの画像の位置は、撮像画像におけるＸＹ座標系によって表される。
【０１０９】
また、操作情報Ｄａには、撮像画像から得られる処理結果データの一例の座標データ（第１座標データＤａ１および第２座標データＤａ２）の他、操作部７２から得られるキーデータＤａ３および加速度センサ７０１から得られる加速度データＤａ４等が含まれる。なお、ゲーム装置３に備える受信ユニット６は、コントローラ７から所定間隔例えば５ｍｓごとに送信される操作情報Ｄａを受信し、受信ユニット６に備える図示しないバッファに蓄えられる。その後、ゲーム処理間隔である例えば１フレーム毎（１／６０秒）に読み出され、その最新の情報がメインメモリ３３に記憶される。
【０１１０】
操作状態情報Ｄｂは、コントローラ７の操作状態を撮像画像に基づいて判断した情報である。操作状態情報Ｄｂは、撮像画像に含まれる対象画像（マーカ）の位置や向きから得られるデータであり、具体的には、方向データＤｂ１、中点データＤｂ２、スクリーン座標データＤｂ３、チェックカウンタデータＤｂ４、および有効フラグデータＤｂ５等を含む。方向データＤｂ１は、第１座標データＤａ１から第２座標データＤａ２への方向を示すデータである。例えば、方向データＤｂ１は、第１座標データＤａ１の位置を始点とし第２座標データＤａ２の位置を終点とするベクトルのデータとする。中点データＤｂ２は、第１座標データＤａ１と第２座標データＤａ２との中点の座標を示す。ここで、２つのマーカ（マーカ８Ｌおよび８Ｒ）の画像を１つの対象画像としてみた場合、中点データＤｂ２は、対象画像の位置を示すことになる。スクリーン座標データＤｂ３は、モニタ２の表示画面に対してコントローラ７が指し示している位置を示すスクリーン座標系の位置データであり、方向データＤｂ１および中点データＤｂ２を用いて算出される。チェックカウンタデータＤｂ４は、チェックカウンタ値ＣＣを示すデータである。チェックカウンタ値ＣＣは、コントローラ７が指し示している位置が連続して所定範囲内であった回数を正の整数で示し、連続して所定範囲外であった回数を負の整数で示す。有効フラグデータＤｂ５は、有効フラグｆの状態を示すデータである。有効フラグｆは、コントローラ７からの処理結果データをゲーム処理に用いることが可能な状態であるときに有効（ｔｒｕｅ）に設定され、処理結果データをゲーム処理に用いることができない状態であるときに無効（ｆａｌｓｅ）に設定される。
【０１１１】
ゲーム情報Ｄｃは、指示位置データＤｃ１、プレイヤキャラクタ位置データＤｃ２、仮想カメラデータＤｃ３、第１操作テーブルデータＤｃ４、第２操作テーブルデータＤｃ５、および画像データＤｃ６等が含まれる。指示位置データＤｃ１は、スクリーン座標データＤｂ３に基づいて、表示画面に表示される仮想３次元ゲーム画像上において、当該スクリーン座標に対応する（重なる）仮想ゲーム空間の位置を示す座標データである。プレイヤキャラクタ位置データＤｃ２は、プレイヤキャラクタＰが配置される仮想ゲーム空間の位置を示す座標データである。仮想カメラデータＤｃ３は、仮想カメラＣが配置される仮想ゲーム空間の視点位置および視線方向を示すデータである。第１操作テーブルデータＤｃ４および第２操作テーブルデータＤｃ５は、第１操作モードおよび第２操作モードでそれぞれ操作手段に対応するゲーム制御処理内容を示すデータである。画像データＤｃ６は、プレイヤキャラクタ画像データ、他のキャラクタ画像データ、背景画像データ等を含み、仮想ゲーム空間にプレイヤキャラクタや他のキャラクタを配置してゲーム画像を生成するためのデータである。
【０１１２】
図１９を参照して、第１操作テーブルデータＤｃ４の一例について説明する。第１操作テーブルデータＤｃ４は、上述した第１操作モードにおいてプレイヤの操作に対応したゲーム制御処理内容が記述された第１操作テーブルを示すデータである。例えば、第１操作テーブルには、プレイヤが十字キー（操作ボタン７２ａ）の上下方向の突出片（コントローラ７を横持ちするとプレイヤから見て左右方向の突出片）を押下することに応じて、仮想ゲーム空間をプレイヤキャラクタＰが左右に移動することが記述されている。プレイヤが十字キーの左方向の突出片（コントローラ７を横持ちするとプレイヤから見て下方向の突出片）を押下することに応じて、仮想ゲーム空間でプレイヤキャラクタＰがしゃがむ動作をすることが記述されている。プレイヤが１番ボタン（操作ボタン７２ｂ）を押下することに応じて、プレイヤキャラクタＰが第１ビームを撃つことが記述されている。プレイヤが１番ボタンを所定時間継続して押下（長押し）した後、１番ボタンの押下をやめる（離す、リリースする）ことに応じて、プレイヤキャラクタＰがチャージした後に第１ビームを撃つことが記述されている。プレイヤが十字キーの右方向の突出片（コントローラ７を横持ちするとプレイヤから見て上方向の突出片）を押下しながら、１番ボタンを押下することに応じて、プレイヤキャラクタＰが第１ビームとは異なった第２ビームを撃つことが記述されている。プレイヤが２番ボタン（操作ボタン７２ｃ）を押下することに応じて、仮想ゲーム空間をプレイヤキャラクタＰがジャンプすることが記述されている。プレイヤがＡボタン（操作ボタン７２ｄ）を押下することに応じて、仮想カメラＣとプレイヤキャラクタＰとの距離を長くすることが記述されている。そして、加速度データＤａ４を用いて算出されたコントローラ７の傾きに応じて、プレイヤキャラクタＰが所持する銃Ｇの銃口方向（プレイヤキャラクタＰの攻撃方向であり、弾の発射方向）を変更することが記述されている（すなわち、弾の発射方向パラメータが決定される）。具体的には、たとえば、横持ち時にコントローラの左端を上に持ち上げたとき、弾の発射方向がプレイヤキャラクタの位置から左上方向になるように設定される。
【０１１３】
なお、本実施例では、後述の通り、プレイヤキャラクタＰはルートＲ上を移動するので、プレイヤキャラクタＰの移動制御は、十字キーの左右方向のみでおこなうが、プレイヤキャラクタＰがルートＲ上に限らず自由に移動できる場合には、十字キーの上下方向の指示でプレイヤキャラクタＰを他の方向へ移動させてもよい。
【０１１４】
図２０を参照して、第２操作テーブルデータＤｃ５の一例について説明する。第２操作テーブルデータＤｃ５は、上述した第２操作モードにおいてプレイヤの操作に対応したゲーム制御処理内容が記述された第２操作テーブルを示すデータである。例えば、第２操作テーブルには、プレイヤがコントローラ７で指し示したスクリーン座標の位置に照準カーソルＴを移動させることが記述されている（なお、照準カーソルＴは射撃位置を示すものであり、照準カーソルＴを移動することによって弾の発射方向パラメータが決定される。より具体的には、照準カーソルＴに対応する仮想ゲーム空間内の位置とプレイヤキャラクタの位置を結ぶ方向が発射方向パラメータとして設定される）。プレイヤがＢボタン（操作ボタン７２ｉ）を押下しながらコントローラ７でゲーム画像の周辺領域を指し示すことに応じて、仮想カメラＣの方向を変更することが記述されている。プレイヤがＡボタンを押下することに応じて、プレイヤキャラクタＰが第１ビームを撃つことが記述されている。プレイヤがＡボタンを長押しした後、Ａボタンを離すことに応じて、プレイヤキャラクタＰがチャージした後に第１ビームを撃つことが記述されている。プレイヤがＡボタンおよびＢボタンを押下した後、Ａボタンのみ離すことに応じて、プレイヤキャラクタＰが第１ミサイルを撃つことが記述されている。プレイヤがＡボタンおよびＢボタンを押下した後、Ａボタンを長押しして離すことに応じて、プレイヤキャラクタＰが第１ミサイルとは異なった第２ミサイルを撃つことが記述されている。
【０１１５】
加速度データＤａ４を用いて算出されたコントローラ７の動きが振り上げる動作の場合、仮想ゲーム空間をプレイヤキャラクタＰがジャンプすることが記述されている。加速度データＤａ４を用いて算出されたコントローラ７の動きが手前に引く動作の場合、仮想ゲーム空間をプレイヤキャラクタＰが振り返ることが記述されている。そして、プレイヤがＢボタンを押下している間、仮想カメラＣの視点がプレイヤキャラクタＰの頭部に移動する（すなわち、前述のＰｈの位置に移動する）ことが記述されている。また、プレイヤがコントローラ７で仮想ゲーム空間（疑似３次元画像）を照準カーソルＴにより指し示した状態で、Ａボタンを押しながら、コントローラ７を上に振り上げた後振り下ろす動作をした場合、当該照準カーソルＴで指し示された仮想ゲーム空間内の位置に対して第１ビームとは異なった第２ビームを撃つ（または、先端に鎖のついたチェーンなどの武器が飛んでいくようにしてもよい）ことが記述されている。この場合、Ａボタンを押すことで、後述のステップ８４の判断がＹＥＳとなり、その後コントローラ７の振り上げによりコントローラ７で指し示されたスクリーン座標系の位置座標が所定範囲内でなくなったとしても、客観的画像への切り替えや第１操作モードへの切り替えがおこらない。
【０１１６】
なお、本実施例では、照準カーソルＴの位置に対応する仮想ゲーム空間の位置に弾が発射されるように制御するが、変形例では、照準カーソルＴの位置に対応する仮想ゲーム空間の位置に向かってプレイヤキャラクタＰが移動するように制御しても良い。
【０１１７】
第１操作テーブルおよび第２操作テーブルを比較すれば明らかなように、それぞれ操作手段に対応するゲーム制御処理内容が異なっている。例えば、プレイヤがＡボタンを押下することに応じて、第１操作テーブルでは仮想カメラＣの位置が変更されるが、第２操作テーブルではプレイヤキャラクタＰが第１ビームを撃つ。また、第１操作テーブルでは撮像情報演算部７４からの処理結果データやＢボタンを用いる処理が記述されていない。これは、第１操作モードではプレイヤがコントローラ７を横持ちするためにＢボタンを押下しにくい状態にあり、また撮像情報演算部７４がマーカ８Ｌおよび８Ｒを撮像できない状態にあるため、プレイヤがそれらの操作手段を用いることが困難になるからである。このように、第１操作テーブルおよび第２操作テーブルには、プレイヤがコントローラ７を把持する方向やコントローラ７が指し示す方向によって切り替わる操作モードに応じて、プレイヤの操作に好適なゲーム制御内容が記述される。
【０１１８】
次に、図２１および図２２を参照して、ゲーム装置３において行われるゲーム処理の詳細を説明する。なお、図２１は、ゲーム装置３において実行されるゲーム処理の前半の流れを示すフローチャートである。図２２は、ゲーム装置３において実行されるゲーム処理の後半の流れを示すフローチャートである。なお、図２１および図２２に示すフローチャートにおいては、ゲーム処理のうち、コントローラ７を用いた操作モードの切り替えに関するゲーム処理について主に説明し、本願発明と直接関連しない他のゲーム処理については詳細な説明を省略する。また、図２１および図２２では、ＣＰＵ３０が実行する各ステップを「Ｓ」と略称する。
【０１１９】
ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ３０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ３３等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲームプログラムがメインメモリ３３に読み込まれ、ＣＰＵ３０によって当該ゲームプログラムの実行が開始される。図２１および図２２に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。
【０１２０】
図２１において、ＣＰＵ３０は、ゲーム処理の初期設定を行い（ステップ５０）、処理を次のステップに進める。例えば、ＣＰＵ３０は、チェックカウンタ値ＣＣを０に設定してチェックカウンタデータＤｂ４として記憶させる。また、ＣＰＵ３０は、有効フラグｆをｆａｌｓｅに設定して有効フラグデータＤｂ５として記憶させる。
【０１２１】
次に、ＣＰＵ３０は、コントローラ７から受信した操作情報を取得して（ステップ５１）、処理を次のステップに進める。そして、ＣＰＵ３０は、操作情報を操作情報Ｄａとしてメインメモリ３３に記憶する。ここで、ステップ５１で取得される操作情報には、マーカ８Ｌおよび８Ｒの撮像画像内における位置を示す座標データ（第１座標データＤａ１および第２座標データＤａ２）の他、コントローラ７の操作部７２がどのように操作されたか示すデータ（キーデータＤａ３）、および加速度センサ７０１が検出した加速度を示すデータ（加速度データＤａ４）が含まれている。ここでは、通信部７５は、所定の時間間隔（例えば５ｍｓ間隔）で操作情報をゲーム装置３へ送信する。そして、ＣＰＵ３０は、１フレーム毎に操作情報を利用するものとする。したがって、図２１および図２２に示すステップ５１〜ステップ９４の処理ループは、１フレーム毎に繰り返し実行される。
【０１２２】
次に、ＣＰＵ３０は、コントローラ７から有効な処理結果データ（第１座標データＤａ１および第２座標データＤａ２）が得られているか否かを判断する（ステップ５２）。例えば、ＣＰＵ３０は、第１座標データＤａ１および第２座標データＤａ２の少なくとも一方が最新の座標情報に更新されている場合（つまり、撮像情報演算部７４がマーカ８Ｌおよび８Ｒの少なくとも一方を撮像している場合）、有効な処理結果データが得られていると判断する。そして、ＣＰＵ３０は、有効な処理結果データが得られている場合、処理を次のステップ５３に進める。一方、ＣＰＵ３０は、有効な処理結果データが得られていない場合、処理を次のステップ５８に進める。
【０１２３】
ステップ５３において、ＣＰＵ３０は、上記ステップ５１で取得した操作情報を用いてスクリーン座標系の位置座標を算出してスクリーン座標データＤｂ３として格納し（ステップ５１）、処理を次のステップ５４に進める。以下、操作情報を用いてスクリーン座標を算出する一例について詳述する。
【０１２４】
上記ステップ５３において、ＣＰＵ３０は、第１座標データＤａ１から第２座標データＤａ２への方向データＤｂ１を算出する。具体的には、ＣＰＵ３０は、第１座標データＤａ１および第２座標データＤａ２を参照して、第１座標データＤａ１の位置を始点とし第２座標データＤａ２の位置を終点とするベクトルを算出する。そして、ＣＰＵ３０は、算出されたベクトルのデータを、方向データＤｂ１としてメインメモリ３３に記憶する。方向データＤｂ１と所定の基準方向との差によって、コントローラ７の撮像面に垂直な方向を軸とする回転を算出することができる。
【０１２５】
また、ＣＰＵ３０は、第１座標データＤａ１と第２座標データＤａ２との中点を示す中点データＤｂ２を算出する。具体的には、ＣＰＵ３０は、第１座標データＤａ１および第２座標データＤａ２を参照して、当該中点の座標を算出する。そして、ＣＰＵ３０は、算出された中点の座標のデータを、中点データＤｂ２としてメインメモリ３３に記憶する。ここで、中点データＤｂ２は、撮像画像内における対象画像（マーカ８Ｌおよび８Ｒ）の位置を示している。中点データＤｂ２と所定の基準位置との差によって、コントローラ７の位置の変化による画像位置の変化を算出することができる。
【０１２６】
ここで、マーカ８Ｌおよび８Ｒと、モニタ２の表示画面と、コントローラ７との位置関係について考える。例えば、モニタ２の上面に２つのマーカ８Ｌおよび８Ｒを設置し（図１０参照）、上面が上方向を向いたコントローラ７を用いてプレイヤがモニタ２の表示画面の中央を指し示した場合（撮像情報演算部７４の撮像画像の中央に表示画面中央が撮像されている状態）を考える。このとき、撮像情報演算部７４の撮像画像において、対象画像の中点（マーカ８Ｌおよび８Ｒの中点）位置と指し示した位置（表示画面中央）とが一致しない。具体的には、上記撮像画像における対象画像の位置は撮像画像の中心から上方の位置となる。このような位置に対象画像が位置する場合に、表示画面中央を指し示しているという基準位置の設定を行う。一方、コントローラ７の移動に対応して、撮像画像中の対象画像の位置も移動する（移動方向は逆方向となる）ので、撮像画像中の対象画像の位置の移動に対応させて表示画面を指し示す位置を移動させる処理を行うことによって、コントローラ７で指し示された表示画面基準の位置（スクリーン座標系の位置座標）を算出することができる。ここで、基準位置の設定は、予めプレイヤが表示画面の所定位置を指し示し、そのときの対象画像の位置を当該所定位置と対応させて記憶しておくようにしてもよいし、対象画像と表示画面との位置関係が固定的であれば、予め設定されていても良い。また、マーカ８Ｌおよび８Ｒが、モニタ２とは別体で設けられてモニタ２の近く（モニタ２の上や下など）に載置されて使用されるものである場合には、ゲーム開始前に、マーカ８Ｌおよび８Ｒをモニタに対してどの位置に載置しているかをプレイヤに入力させ（例えば、モニタ２の上に載置したか下に載置したか等の選択肢から選択させ）、光ディスク４やゲーム装置３の内蔵不揮発メモリなどに、モニタの上に載置した場合の基準位置データと、モニタの下に載置した場合の基準位置データをそれぞれ記憶しておいて、それらを選択して使用してもよい。このようなスクリーン座標系の位置座標は、中点データＤｂ２からモニタ２の表示画面基準の座標（スクリーン座標データＤｂ３）を算出する関数を用いた線形変換で算出される。この関数は、ある撮像画像から算出される中点座標の値を、当該撮像画像が撮像される時のコントローラ７によって指し示される表示画面上の位置（スクリーン座標系の位置座標）を表す座標に変換するものである。この関数によって、中点座標から表示画面を基準とした指し示し位置を算出することができる。
【０１２７】
しかしながら、上面が上方向以外（例えば、右方向）を向いたコントローラ７を用いてプレイヤがモニタ２の表示画面の中央を指し示した場合、上記撮像画像における対象画像の位置は撮像画像の中心から上方以外（例えば、左方）の方向にずれた位置となる。つまり、コントローラ７の傾きによって、コントローラ７の移動方向と、表示画面基準の指し示し位置の移動方向が一致しないことになる。そこで、方向データＤｂ１に基づいて、中点データＤｂ２を補正する。具体的には、中点データＤｂ２を、コントローラ７の上面が上方向を向いた状態であるとした場合における中点座標に補正する。より具体的には、上記基準位置の設定の際には方向データの基準も設定され、ステップ６４で算出された中点データＤｂ２を、方向データＤｂ１と当該基準方向との角度差に応じた量だけ、撮像画像の中心を軸として中点データＤｂ２が示す座標を回転移動させて補正する。そして、補正された中点データＤｂ２を用いて上述したようにスクリーン座標データＤｂ３を算出する。
【０１２８】
図２１に戻り、ステップ５４において、ＣＰＵ３０は、スクリーン座標系の位置座標が所定範囲内か否かを判断する。そして、ＣＰＵ３０は、位置座標が所定範囲内である場合、処理を次のステップ５５に進める。一方、ＣＰＵ３０は、位置座標が所定範囲外である場合、処理を次のステップ５８に進める。ここで、上記所定範囲は、コントローラ７が指し示した位置が検出可能な範囲内であれば、どのような範囲でもよい。例えば、検出可能な範囲がモニタ２の表示画面より大きな領域である場合、上記所定範囲を表示画面と同じ範囲に指定してもいいし、表示画面より大きな範囲に指定してもかまわない。また、表示画面の一部を上記所定範囲に指定してもかまわない。
【０１２９】
ステップ５５において、ＣＰＵ３０は、チェックカウンタデータＤｂ４として記憶されているチェックカウンタ値ＣＣが０未満か否かを判断する。そして、ＣＰＵ３０は、チェックカウンタ値ＣＣが０未満である場合、チェックカウンタ値ＣＣを０に設定して（ステップ５６）、処理を次のステップ５７に進める。一方、ＣＰＵ３０は、チェックカウンタ値ＣＣが０以上である場合、そのまま処理を次のステップ５７に進める。そして、ＣＰＵ３０は、ステップ５７において現在のチェックカウンタ値ＣＣに１を加算してチェックカウンタデータＤｂ４を更新し、処理を次のステップ６１に進める。
【０１３０】
一方、有効な処理結果データが得られていない場合（上記ステップ５２でＮｏ）およびスクリーン座標系の位置座標が所定範囲外である場合（上記ステップ５４でＮｏ）、ＣＰＵ３０は、処理をステップ５８に進める。ステップ５８において、ＣＰＵ３０は、チェックカウンタデータＤｂ４として記憶されているチェックカウンタ値ＣＣが０より大きいか否かを判断する。そして、ＣＰＵ３０は、チェックカウンタ値ＣＣが０より大きい場合、チェックカウンタ値ＣＣを０に設定して（ステップ５９）、処理を次のステップ６０に進める。一方、ＣＰＵ３０は、チェックカウンタ値ＣＣが０以下である場合、そのまま処理を次のステップ６０に進める。そして、ＣＰＵ３０は、ステップ６０において現在のチェックカウンタ値ＣＣから１を減算してチェックカウンタデータＤｂ４を更新し、処理を次のステップ６１に進める。
【０１３１】
次に、ＣＰＵ３０は、チェックカウンタデータＤｂ４に記憶されているチェックカウンタ値ＣＣが２より大きいか否か（ステップ６１）、およびチェックカウンタ値ＣＣが−８以下か否か（ステップ６３）を判断する。そして、ＣＰＵ３０は、チェックカウンタ値ＣＣが２より大きい場合（ステップ６１でＹｅｓ）、有効フラグｆをｔｒｕｅに設定して有効フラグデータＤｂ５として記憶させて（ステップ６２）、処理を次のステップ８１（図２２）に進める。また、ＣＰＵ３０は、チェックカウンタ値ＣＣが−８以下である場合（ステップ６３でＹｅｓ）、有効フラグｆをｆａｌｓｅに設定して有効フラグデータＤｂ５として記憶させて（ステップ６４）、処理を次のステップ８１に進める。また、ＣＰＵ３０は、チェックカウンタ値ＣＣが−８より大きく２以下である場合（ステップ６１およびステップ６３が何れもＮｏ）、そのまま処理を次のステップ８１に進める。
【０１３２】
上記ステップ５２〜ステップ６４の処理から明らかなように、スクリーン座標系の位置座標が所定範囲外から所定範囲内に移動したときにチェックカウンタ値ＣＣが０に設定され、連続して、再度スクリーン座標系の位置座標が所定範囲内であることが確認できたときに有効フラグｆがｔｒｕｅに設定される。そして、スクリーン座標系の位置座標が所定範囲内である限り、有効フラグｆがｔｒｕｅとなる。一方、スクリーン座標系の位置座標が所定範囲内から所定範囲外に移動したときにチェックカウンタ値ＣＣが０に設定され、その後連続して７回の処理周期でスクリーン座標系の位置座標が所定範囲外であることが確認されたときに有効フラグｆがｆａｌｓｅに設定される。そして、スクリーン座標系の位置座標が所定範囲外である限り、有効フラグｆがｆａｌｓｅとなる。つまり、有効フラグｆがｆａｌｓｅからｔｒｕｅへの変化に対して、有効フラグｆがｔｒｕｅからｆａｌｓｅへの変化が遅いことになる。したがって、後述により明らかとなるが、第１操作モードから第２操作モードへは移行が早く、第２操作モードから第１操作モードへは移行が遅い設定となっている。
【０１３３】
図２２において、ステップ８１でＣＰＵ３０は、有効フラグデータＤｂ５として記憶されている有効フラグｆがｆａｌｓｅか否かを判断する。そして、ＣＰＵ３０は、有効フラグｆがｆａｌｓｅである場合、現在、客観的画像であるか否か（ステップ８２）、特殊な動作中であるか否か（ステップ８３）、特殊な操作中であるか否か（ステップ８４）、および加速度変化量が閾値以上か否か（ステップ８５）をそれぞれ判断して、ステップ８２〜ステップ８５が何れもＮｏである場合、処理を次のステップ８６に進める。一方、ＣＰＵ３０は、有効フラグｆがｔｒｕｅである場合、またはステップ８３〜ステップ８５の少なくとも１つの判断がＹｅｓである場合、処理を次のステップ８８に進める。また、ＣＰＵ３０は、ステップ８２の判断がＹｅｓである場合、処理を次のステップ９２に進める。
【０１３４】
ステップ８６において、ＣＰＵ３０は、第２操作モードから第１操作モードに移行し、客観的画像（図１４および図１５参照）に切り替えた仮想カメラＣの位置および方向を算出して仮想カメラデータＤｃ３に記憶する。なお、客観的画像における仮想カメラＣの位置および方向については、図１４および図１５を用いて説明した方法と同様であるため、ここでは詳細な説明を省略する。そして、ＣＰＵ３０は、ゲーム制御処理に用いる操作テーブルを第２操作テーブルから第１操作テーブル（図１９参照）に切り替えて（ステップ８７）、処理を次のステップ９２に進める。
【０１３５】
一方、ＣＰＵ３０は、有効フラグｆがｔｒｕｅである場合、またはステップ８３〜ステップ８５の少なくとも１つの判断がＹｅｓである場合、現在、主観的画像であるか否か（ステップ８８）および特殊な動作中であるか否か（ステップ８９）をそれぞれ判断する。そして、ステップ８８およびステップ８９の判断が何れもＮｏである場合、処理を次のステップ９０に進める。一方、ＣＰＵ３０は、ステップ８８およびステップ８９の少なくとも１つの判断がＹｅｓである場合、処理を次のステップ９２に進める。
【０１３６】
ステップ９０において、ＣＰＵ３０は、第１操作モードから第２操作モードに移行し、主観的画像（図１６および図１７参照）に切り替えて仮想カメラＣの位置および方向を算出して仮想カメラデータＤｃ３に記憶する。なお、主観的画像における仮想カメラＣの位置および方向については、図１６および図１７を用いて説明した方法と同様であるため、ここでは詳細な説明を省略する。そして、ＣＰＵ３０は、ゲーム制御処理に用いる操作テーブルを第１操作テーブルから第２操作テーブル（図２０参照）に切り替えて（ステップ９１）、処理を次のステップ９２に進める。
【０１３７】
ステップ９２において、ＣＰＵ３０は、現在対象となっている第１操作テーブルまたは第２操作テーブルを用いて、上記ステップ５１で取得した操作情報に応じたゲーム制御処理を行い、処理を次のステップに進める。ＣＰＵ３０は、操作情報Ｄａとして更新されて格納されているキーデータＤａ３および加速度データＤａ４と、操作状態情報Ｄｂとして更新されて格納されているスクリーン座標データＤｂ３および指示位置データＤｃ１とを用いて、プレイヤキャラクタＰにアクションや移動をさせたり、仮想カメラＣを移動させたりする。ここで、ステップ９２で用いる操作テーブルは、第１操作モードおよび第２操作モードによってそれぞれ異なるため、それぞれの操作手段に対応するゲーム制御処理の内容が異なることになる。したがって、プレイヤは、それぞれの操作モードに応じてコントローラ７を操作してゲームをコントロールすることができる。
【０１３８】
また、第２操作モードにおいて、上記ステップ５３で算出したスクリーン座標系の位置座標をゲーム空間内における位置を表す座標に変換する場合には、当該スクリーン座標系における位置に対応するゲーム空間内における位置にさらに変換すればよい。ここで、スクリーン座標系における位置に対応するゲーム空間内における位置とは、モニタ２の表示画面上における位置に表示されるゲーム空間内における位置（例えば、透視投影される位置）やスクリーン座標系の位置座標から直接的に指定されるゲーム空間の３次元座標値等である。
【０１３９】
上記スクリーン座標データＤｂ３の算出処理の本質的な原理は、コントローラ７の移動による対象画像の位置の変化によって、指し示された２次元座標の所定の基準位置からの変位を算出し、座標を設定するというものである。したがって、スクリーン座標系の位置座標は、他の２次元座標の入力としても幅広く用いることができる。例えば、スクリーン座標系の位置座標をワールド座標系におけるｘ座標およびｙ座標の値として直接的に用いることができる。この場合、モニタ２の表示画面とは無関係に、対象画像の移動をワールド座標系におけるｘ座標およびｙ座標の基準位置からの移動に対応付ける算出処理を行えばよい。また、２次元のゲーム画像がモニタ２に表示されている場合などは、スクリーン座標系の位置座標をそのまま２次元のゲーム座標系におけるｘ座標およびｙ座標の値として直接的に用いることができる。
【０１４０】
次に、ＣＰＵ３０は、仮想カメラＣを視点とした仮想ゲーム空間を描画し、モニタ２にゲーム画像を表示して（ステップ９３）、処理を次のステップに進める。ここで、仮想ゲーム空間の仮想カメラＣは、現在の操作モードに応じてプレイヤキャラクタＰに対する客観的画像または主観的画像となるようにパラメータが設定される。そして、プレイヤの操作に応じて、仮想カメラＣの配置位置を調整してゲーム画像を生成する。
【０１４１】
例えば、第２操作モードにおいてプレイヤがコントローラ７の１番ボタン（操作ボタン７２ｂ）を押下している場合、プレイヤキャラクタＰの頭部を視点とする主観的画像の位置に仮想カメラＣが配置される。
【０１４２】
また、第２操作モードにおいてプレイヤがコントローラ７のＢボタン（操作ボタン７２ｉ）を押下しながら、コントローラ７で指し示す位置（照準カーソルＴの位置）を移動した場合に、当該照準カーソルＴの位置がゲーム画像の周辺領域（例えば、図１６に示す表示画像内の周辺領域Ａ、または、表示画像外の周辺領域）に入ったとき、または、当該照準カーソルＴが当該周辺領域に入っている状態で、Ｂボタンを押下した場合には、当該照準カーソルＴの位置に応じた仮想ゲーム空間の位置がモニタ２の表示画面に表示されるような方向に仮想カメラＣの方向を変化させる（このとき、仮想カメラＣの視点位置は変更しなくてもよい）。すなわち、照準カーソルＴがゲーム画像の上部領域にあるときには、仮想カメラＣの方向を現在の方向よりも上向きに変更し、下部領域にあるときには、現在の方向より下向きに変更し、右部領域にあるときには、現在の方向よりも右向きに変更し、左部領域にあるときには、現在の方向よりも左向きに変更する（つまり、プレイヤがコントローラ７で表示画面外を指し示した方向にゲーム画像がスクロールするようにモニタ２に表示される。）。なお、この状態において（すなわち、Ｂボタンを押しながら照準カーソルが当該周辺領域に入ったとき、または、照準カーソルが当該周辺領域に入っている状態でＢボタンを押したときに、仮想カメラＣの方向が変化している状態において）、さらに、コントローラ７で指し示す位置がゲーム画像外または表示画面外または検出不能になったときは、Ｂボタンが押され続けている限り、当該周辺領域において最後に照準カーソルが存在していた領域（上部／下部／左部／右部）に応じて上方向／下方向／左方向／右方向に仮想カメラの方向を変化させ続けても良い。
【０１４３】
ここで、上述したゲーム画像がスクロールする状態は、後述から明らかとなるがステップ８４でＹｅｓと判断されてコントローラ７が上記所定範囲外を指し示しているにもかかわらず第２操作モードから第１操作モードへの移行がされない状態である。つまり、この状態は、プレイヤにコントローラ７で上記所定範囲外を指し示しているのに第１操作モードに移行しない不安を与えることが考えられる。例えば、プレイヤがＢボタンを押下した状態でコントローラ７を縦持ちから横持ちへ変更した場合、この事態が顕著となる。しかしながら、コントローラ７の下面凹部に設けられたＢボタンは、コントローラ７を横持ちするとプレイヤの指から強制的に離れる（図９参照）ため、上記不安を与える事態を自然に避けることができる。
【０１４４】
次に、ＣＰＵ３０は、ゲームを終了するか否かを判断する（ステップ９４）。ゲームを終了する条件としては、例えば、ゲームオーバーとなる条件（例えば、プレイヤキャラクタＰの体力を示すパラメータが０になったこと等）が満たされたことや、プレイヤがゲームを終了する操作を行ったこと等がある。ＣＰＵ３０は、ゲームを終了しない場合に上記ステップ５１（図２１）に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。
【０１４５】
ここで、上述した各ステップ８１〜ステップ８５の具体的内容について説明する。上記ステップ８３〜ステップ８５が実行される条件は、有効フラグｆがｆａｌｓｅで主観的画像である状態である。つまり、コントローラ７で指し示されたスクリーン座標系の位置座標が所定範囲内にない状態（例えば、プレイヤがコントローラ７の前面をモニタ２に向けていない）でありながら、仮想カメラＣの視点が主観的画像に設定されている状態である。具体的には、特殊な動作中、特殊な操作中、および加速度変化量が閾値以上のときは、第２操作モードから第１操作モードへの移行および主観的画像から客観的画像への移行を行わない。
【０１４６】
上記ステップ８３の条件である特殊な動作中とは、第２操作モードにおいて仮想ゲーム空間でプレイヤキャラクタＰが特殊な動作をしている途中であることを示しており、例えば、加速度センサの振り上げ入力により仮想ゲーム空間においてプレイヤキャラクタＰがジャンプ中の状態や、Ａボタンの長押によりビームチャージ中の状態等である。なお、ジャンプ中の状態を判定する場合、ジャンプ動作が完了するまで「動作中」と判定してもよいし、ジャンプ動作が完了してしばらくの間も含めて「動作中」と判定してもよいし、ジャンプ動作の途中までの所定期間のみ「動作中」と判定してもよい。また、上記ステップ８４の条件である特殊な操作中とは、第２操作モードにおいてプレイヤがコントローラ７を用いた特殊な操作をしている途中であることを示しており、例えば、プレイヤがＢボタン（操作ボタン７２ｉ）や１番ボタン（操作ボタン７２ｂ）を押下している操作中であることを示している。ここで、図２０に示したように、第２操作モードでプレイヤがＢボタンを押下しているときは、ゲーム画像をスクロールするように表示している状態や、他のボタン操作の組み合わせによって操作する途中段階であることが多い。また、第２操作モードでプレイヤが１番ボタンを押下しているときは、視点がプレイヤキャラクタＰの頭部に移動している状態である。これらの例のように、特殊な動作中や特殊な操作中に操作モードや視点を強制的に切り替えると、プレイヤの操作が強制的にキャンセルされたり、視点の切り替えに無理があるゲーム画面の変更になったりすることによって、操作に混乱が生じることがある。このようなモード変更を防止するために、動作中および操作中においてモード切り替えを一部制限している。
【０１４７】
上記ステップ８５の条件である加速度変化量が閾値以上のときとは、加速度センサ７０１が検出したＸ、Ｙ、およびＺ軸方向の加速度を合成した変化量が予め設定された閾値以上を示しているときである（なお、所定成分が閾値以上であることを検出してもよい）。例えば、第２操作モードにおいて、プレイヤがコントローラ７全体を移動させることによって操作しているとき（例えば、コントローラ７を振り上げる等）、コントローラ７で指し示している位置が上述した所定範囲から逸脱することもある。この所定範囲からの逸脱に応じて、第２操作モードから第１操作モードへ移行してしまうと、プレイヤの操作に混乱が生じる。また、コントローラ７で指し示す位置が上記所定範囲から逸脱することなくコントローラ７全体を移動させることは、非常に困難となる。したがって、このようなモード変更を防止するために、コントローラ７全体をプレイヤが移動させているときは、加速度センサ７０１が検出するＸ、Ｙ、およびＺ軸方向の加速度の変化量の何れかが大きくなることを利用して、コントローラ７の移動中はモード変更が行われないように制御している。
【０１４８】
また、上述した各ステップ８１、ステップ８８、およびステップ８９の具体的内容について説明する。上記ステップ８９が実行される条件は、有効フラグｆがｔｒｕｅで客観的画像である状態である。つまり、コントローラ７で指し示されたスクリーン座標系の位置座標が所定範囲内にある状態（例えば、プレイヤがコントローラ７の前面をモニタ２に向けている）でありながら、仮想カメラＣの視点が客観的画像に設定されている状態である。具体的には、特殊な動作中のときは、第１操作モードから第２操作モードへの移行および客観的画像から主観的画像への移行を行わない。
【０１４９】
上記ステップ８９の条件である特殊な動作中とは、第１操作モードにおいて仮想ゲーム空間でプレイヤキャラクタＰが特殊な動作をしている途中であることを示しており、例えば、上記ステップ８３と同様に仮想ゲーム空間においてプレイヤキャラクタＰがジャンプ中の状態等である。この例のように、特殊な動作中に操作モードや視点を強制的に切り替えると、視点の切り替えに無理があるゲーム画面の変更になることによって、操作に混乱が生じることがある。このようなモード変更を防止するために、第１操作モードから第２操作モードへの移行においても動作中においてモード切り替えを一部制限している。
【０１５０】
なお、上述した客観的画像および主観的画像や各操作手段における操作に対応するゲーム制御内容は、単なる一例であり他の視点変更や他のゲーム制御内容に設定しても本発明を実現できることは言うまでもない。例えば、第１操作モードでは、仮想ゲーム空間における銃口方向を加速度センサ７０１が検出した加速度に応じて変更しているが、コントローラ７に設けられた操作部７２の何れかの操作によって変更してもかまわない。また、コントローラ７にジョイスティックが設けられている場合、第１操作モードでは当該スティックの傾倒方向に応じて銃口方向を変更してもかまわない。このように、コントローラ７に設けられている操作部７２の態様に応じて、プレイヤの操作姿勢に合わせて各操作手段における操作に対応するゲーム制御内容を設定することによって、様々な変更が可能となる。
【０１５１】
このように、表示画面に対して遠隔から座標指定するためのデータを出力可能なポインティングデバイスを用いてプレイヤが座標指定する位置に応じて、ゲーム処理内容が異なったそれぞれの操作モードに自動的に変更される。変更されるゲーム処理内容の一例として、ゲーム空間における仮想カメラＣの配置位置や方向が主観的画像や客観的画像に変更される。変更されるゲーム処理内容の他の例として、各操作手段における操作に対応するゲーム制御内容を変更する。例えば、第１操作モードでは、プレイヤキャラクタＰが所持する銃の仮想ゲーム空間における銃口方向（照準位置）を加速度センサ７０１が検出した加速度や操作部７２に対する操作に応じて変更しているが、第２操作モードでは、撮像情報演算部７４の処理結果データに応じて照準位置を変更している。また、第１操作モードでは、プレイヤがコントローラ７を横持ちすることによって、プレイヤキャラクタＰの横方向から注視点をプレイヤキャラクタＰとほぼ一致させたゲーム画像が表示される。そして、第２操作モードでは、モニタ２を指し示すようにプレイヤがコントローラ７を縦持ちすることによって、視点をプレイヤキャラクタＰとほぼ一致させて当該プレイヤキャラクタＰが対向する方向に注視点を設定したゲーム画像が表示される。したがって、本発明では、表示画面に対して遠隔から座標指定するためのデータを出力可能なポインティングデバイスを用いたゲーム装置において、同じゲームの実行中に適宜操作方法や視点を自動的に変更することができる。
【０１５２】
なお、上述した説明では、表示画面に対して遠隔から座標指定するためのデータを出力可能なポインティングデバイスの一例として、コントローラ７に設けられた撮像素子７４３で撮像対象を撮像した画像データを解析することによって、モニタ２の表示画面に対して座標指定する態様を用いた。この態様は、表示画面近傍に撮像対象となる２つのマーカを設置し、撮像手段およびその撮像方向を自在に変更可能なハウジングを備えたデバイスが撮像画像中の２つのマーカを検出し、当該撮像画像におけるマーカの位置に基づいて当該デバイスが指定する座標位置を導出するものである。しかしながら、他の態様で上記ポインティングデバイスを構成してもかまわない。
【０１５３】
例えば、表示画面近傍に設置する撮像対象は、上述した電気的なマーカ（ＬＥＤモジュール）の他に、光を反射する部材や特定色や特定形状を有する物理的なマーカでもかまわない。また、モニタ２の表示画面に撮像対象を表示してもかまわない。また、コントローラ７が備える撮像手段でラスタスキャン型モニタの走査線を読み取ることによって、当該モニタ自体を撮像対象にしてもかまわない。また、磁気発生装置を設け、当該磁気発生装置から生じる磁気を利用して遠隔から座標指定してもかまわない。この場合、コントローラ７には、上記磁気を検出するための磁気センサを設けることになる。
【０１５４】
また、上述した説明では、２つのマーカ８Ｌおよび８Ｒからの赤外光を、コントローラ７の撮像情報演算部７４の撮像対象としたが、他のものを撮像対象にしてもかまわない。例えば、１つまたは３つ以上のマーカをモニタ２の近傍に設置し、それらのマーカからの赤外光を撮像情報演算部７４の撮像対象としてもかまわない。例えば、所定の長さを有する１つのマーカをモニタ２の近傍に設置しても、本発明を同様に実現することができる。また、モニタ２の表示画面自体や他の発光体（室内灯等）を撮像情報演算部７４の撮像対象としてもかまわない。撮像対象とモニタ２の表示画面との配置関係に基づいて、当該表示画面に対するコントローラ７の位置を演算すれば、様々な発光体を撮像情報演算部７４の撮像対象として用いることができる。
【０１５５】
また、コントローラ７側にマーカ等の撮像対象を設けて、撮像手段をモニタ２側に設けてもかまわない。さらに他の例では、コントローラ７の前面から光を放射する機構を設けてもかまわない。この場合、コントローラ７およびモニタ２とは別の場所にモニタ２の表示画面を撮像する撮像装置を設置し、モニタ２の表示画面にコントローラ７から放射された光が反射した位置を当該撮像装置が撮像した画像から解析することによって、同様に表示画面に対して遠隔から座標指定するためのデータを出力可能なポインティングデバイスを構成することができる。さらに、コントローラ７に設けられた加速度センサ７０１からの加速度データを用いてコントローラ７の姿勢や動作を算出することによって、表示画面に対して遠隔から座標指定するように構成してもかまわない。このように、ハウジングに加速度センサを備えたコントローラであっても、同様に表示画面に対して遠隔から座標指定するためのデータを出力可能なポインティングデバイスを構成することができる。
【０１５６】
また、上述した説明では、コントローラ７とゲーム装置３とが無線通信によって接続された態様を用いたが、コントローラ７とゲーム装置３とがケーブルを介して電気的に接続されてもかまわない。この場合、コントローラ７に接続されたケーブルをゲーム装置３の接続端子に接続する。
【０１５７】
また、コントローラ７から無線送信される送信データを受信する受信手段として、ゲーム装置３の接続端子に接続された受信ユニット６を用いて説明したが、ゲーム装置３の本体内部に設けられた受信モジュールによって当該受信手段を構成してもかまわない。この場合、受信モジュールが受信した送信データは、所定のバスを介してＣＰＵ３０に出力される。
【０１５８】
また、撮像素子７４３で撮像した画像データを解析してマーカ８Ｌおよび８Ｒからの赤外光の位置座標やそれらの重心座標等を取得し、それらを処理結果データとしてコントローラ７内で生成してゲーム装置３へ送信する態様を説明したが、他の処理段階のデータをコントローラ７からゲーム装置３へ送信してもかまわない。例えば、撮像素子７４３が撮像した画像データをコントローラ７からゲーム装置３へ送信し、ＣＰＵ３０において上記解析処理を行って処理結果データを取得してもかまわない。この場合、コントローラ７に設けられた画像処理回路７４４が不要となる。また、上記画像データの解析途中のデータをコントローラ７からゲーム装置３へ送信してもかまわない。例えば、画像データから得られる輝度、位置、および面積等を示すデータをコントローラ７からゲーム装置３へ送信し、ＣＰＵ３０において残りの解析処理を行って処理結果データを取得してもかまわない。
【０１５９】
また、上述したコントローラ７の形状や、それらに設けられている操作部７２の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、コントローラ７における撮像情報演算部７４の位置（撮像情報演算部７４の光入射口）は、ハウジング７１の前面でなくてもよく、ハウジング７１の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【０１６０】
また、上述した説明では、第１操作モードにおけるゲーム画像および第２操作モードにおけるゲーム画像は、共に同一の３次元ゲーム空間に対して視点を変更して生成される例を説明したが、他のゲーム画像をモニタ２に表示してもかまわない。例えば、少なくとも一方のゲーム画像が、２次元のゲーム画像であってもかまわない。また、一方のゲーム画像が、アイコン画像等の機能的画像であってもかまわない。例えば、第２操作モードにおけるゲーム画像を複数のアイコンが表示された機能的画像を表示することによって、コントローラ７で指し示されたアイコンを選択する等のプレイヤの操作に好適な態様となる。
【産業上の利用可能性】
【０１６１】
本発明に係るゲームプログラム、ゲーム装置、およびゲームシステムは、表示画面に対して遠隔から座標指定するためのデータを出力可能なポインティングデバイスを用いてプレイヤが座標指定する位置に応じて、ゲーム処理内容が異なったそれぞれの操作モードに自動的に変更することができ、当該ポインティングデバイス等を用いて操作するゲーム装置で実行されるゲームプログラム、ゲーム装置、ゲームシステム等として有用である。
【符号の説明】
【０１６２】
１…ゲームシステム
２…モニタ
２ａ、７０６…スピーカ
３…ゲーム装置
３０…ＣＰＵ
３１…メモリコントローラ
３２…ＧＰＵ
３３…メインメモリ
３４…ＤＳＰ
３５…ＡＲＡＭ
３６…コントローラＩ／Ｆ
３７…ビデオＩ／Ｆ
３８…外部メモリＩ／Ｆ
３９…オーディオＩ／Ｆ
４０…ディスクドライブ
４１…ディスクＩ／Ｆ
４…光ディスク
５…外部メモリカード
６…受信ユニット
７…コントローラ
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０３…水晶振動子
７０４…バイブレータ
７０７…サウンドＩＣ
７０８…アンプ
８…マーカ
【図１】
0005357998.tif 000002
【図２】
0005357998.tif 000003
【図３】
0005357998.tif 000004
【図４】
0005357998.tif 000005
【図５】
0005357998.tif 000006
【図６】
0005357998.tif 000007
【図７】
0005357998.tif 000008
【図８】
0005357998.tif 000009
【図９】
0005357998.tif 000010
【図１０】
0005357998.tif 000011
【図１１】
0005357998.tif 000012
【図１２】
0005357998.tif 000013
【図１３】
0005357998.tif 000014
【図１４】
0005357998.tif 000015
【図１５】
0005357998.tif 000016
【図１６】
0005357998.tif 000017
【図１７】
0005357998.tif 000018
【図１８】
0005357998.tif 000019
【図１９】
0005357998.tif 000020
【図２０】
0005357998.tif 000021
【図２１】
0005357998.tif 000022
【図２２】
0005357998.tif 000023